[網際網路] TCP_IP 階層模型-基礎 part 2
此文章為各筆記之整理,非原創,擷取來源可見下方資料來源。
資料傳送
乙太網路的傳輸機制:訊框(frame)
乙太網路會先將資料切割為較小單位,稱為訊框(frame),接著轉換為電子訊號或光訊號後,再傳送給通訊媒體。以 TCP/IP 協定來說,訊框最多可以包含 1,500 bytes,一旦資料超過這個大小,就必須要分成多次反覆傳送。
廣播、單播與群播
封包的傳送可以分為:
- 單播(Unicast):僅將資料傳送給一台電腦,也就是一對一的傳輸方式。
- 群播(Multicast):將資料傳送到同一群組中的特定電腦。
- 廣播(Broadcast):將資料傳送到所有在同一個乙太網路上的所有電腦。
其中廣播和群播這兩種通訊方式都可以用來和多台目的端電腦互相通訊,但兩者的傳送範圍不同。
有線廣播位址和直接廣播位址
要進行廣播時,可以將封包傳送到有限廣播位址(255.255.255.255)
或直接廣播位址(IP 位址中,主機位址全為 1 的位址)。以有限廣播位址為目的端的資料會被傳送到同一個網路中的所有電腦,但不會超出路由器涵蓋範圍以外的網路。
利用 MAC 位址傳送資料
乙太網路等網路硬體裝置會利用 MAC 位址來指定專屬的通訊對象。
傳統上,會透過 匯流排拓撲(Bus Topology) 的概念,利用 集線器 (Hub):不同電腦間的封包傳遞,將多台電腦連接到同一條同軸纜線,將接收端的 MAC 位址附加在乙太網路訊框(frame)上。接著將資料傳送給所有的設備,電腦接收到訊框後根據 MAC 位址確認是自己的接收端才能接受資料,否則將利用 **cut-through(直通轉發)**的機制將資料傳送出去。
現有的乙太網路設備會於交換器上紀錄每個連線設備的 MAC Address 以及所對應的連接埠,因此當資料傳送到交換器時,會先根據所儲存的 MAC Address Table 指定該裝置是對應到哪個連接埠上,最後再將乙太網路訊框傳送到該連接埠上,因此資料只會被傳送到正確的裝置上。
洪泛(flooding)
- 在資料接收端的 MAC 位址尚未註冊到 MAC Address Table 上時,會先將資料傳送到「除了來源埠」之外的「所有連接埠」,這種情況稱作「洪泛(flooding)」。
- 除了上述情況會發生洪泛外,當交換器在廣播或群播時也會 執行洪泛的動作。
ARP:根據 IP 位址查詢 MAC 位址
連接到乙太網路的硬體設備需要透過 MAC 位址來指定通訊目的端,但在 TCP/IP 協定中則需透過 IP 位址來指定目的端。此時需要先
- 判斷發送端和接收端的電腦是否處於相同的區域網路內:利用網路遮罩可以算出發送端和接收端的網路位址,當兩者的網路位址相同時,表示兩台電腦是連接到同一個實體網路。
- 將 IP 位址轉換成 MAC 位址:接著利用**位址解析通訊協定(ARP,Address Resolution Protocol)**可查詢目的端電腦的 MAC 位址,查詢到目的端電腦的 MAC 位址後,即可將乙太網路訊框傳送到目的端。
ARP 動作概述
路由(Routing)預設閘道(Default Gateway)
路由(Routing):處理封包的轉送
IP 封包必須透過 路由器(Router):將一個 IP 分享給多個電腦,決定資料傳遞路徑)轉送才能與另一個網路上的主機通訊,而轉送封包的過程就稱為路由(routing),而決定轉送規則最重要的因素就是路由表(routing table)。
當某部主機使用 TCP/IP 嘗試與另一個裝置通訊時,該主機會使用接收端和發送端的子網路遮罩和 IP 位址來取得網路位址(Network Address),以此判斷目的地是同一網路內的電腦或遠端的電腦。
若這項程序的結果判斷目的地是同一網路內的電腦,則電腦只會在本機子網路上傳送封包。若比較的結果判斷目的是遠端主機,電腦會將封包轉送到 TCP/IP 內容中所定義的預設閘道(Default Gateway),再從路由表中找出和該網路位址相關的轉送規則,找到規則後,然後再由路由器負責將封包轉送到正確的子網路。
通常需要由好幾台路由反覆的進行這項轉送處理作業,才能將封包順利送到目的端電腦。
路由表的更新與路由協定
路由表並不是註冊一次就一勞永逸,當有新增網路或電腦時,都需要修正路由表。修正的方式主要有兩種:
- 靜態路由:採用固定的路由表,一旦網路架構改變,就必須手動方式來變更路由表,只適合小型網路。
- 動態路由:路由表採動態更新的方式,一旦網路架構改變,會自動反映在路由表中,而適用於動態路由的協定就稱為「路由協定」。
路由協定
路由協定最重要的是:
- 讓路由器彼此交換路徑資料
- 根據收集到的路徑資料,找出最佳路徑
路由協定大致包含兩種類型,一種是 IGP(Interior Gateway Protocol,內部閘道協定),一種是 EGP(Exterior Gateway Protocol,外部閘道協定)。
- IGP(Interior Gateway Protocol,內部閘道協定):適用於自治系統內的路由,處理路徑資料,主要包含了 **RIP/RIP2(Routing Information Protocol,路由信息協定)**和 OSPF(Open Shortest Path First,最短路徑優先)。前者只會考量路徑上路由器數量最少的一條,後者可以考量網路速度等其他因素。
- EGP(Exterior Gateway Protocol,外部閘道協定):適用於自治系統間的路由,最具代表性的是 BGP(border gateway protocol,邊界閘道協定),它會根據資料選擇到達某個網路的最佳途徑。
**自治系統(AS,Autonomous System)**指的是規模相當於一個 ISP 或大企業內的大規模網路。
預設閘道(Default Gateway):當封包的發送端和目的端不在同一網域內
當封包傳送的發送端和目的端並不在同一個網域,此時無法掌握目的端的確切資訊,這時後需要將封包轉送到預設閘道。電腦通常會指定網路出入口的路由器作為預設閘道,設定預設閘道的方式可以手動設定或透過 DHCP 自動設定。
預設閘道就是當目的端未知時所預設的傳送對象。
DHCP 伺服器:將 IP 位址指派給每一台電腦
**DHCP(dynamic host configuration protocol,動態主機組態協定)**這項機制可針對連線到網路的電腦,自動指派重要的網路設定資料,其中像是電腦的 IP 位址﹑子網路遮罩、預設閘道、DNS 伺服器的 IP 位址等等。要使用 DHCP 功能,電腦需要配備 DHCP 用戶端,網路也必須設置 DHCP 伺服器。
小型辦公室或家庭所使用的路由器大多有內建 DHCP 伺服器的功能,因此不需要另外添購。
DHCP 適合在電腦尚未完成 IP 位址等網路設定前使用,一旦 IP 位址指定完成後,即無法透過 DHCP 來執行一般的通訊作業。
連接埠號(Port Number)
由於每台電腦僅會配置一個 IP 位址,當一台電腦能夠提供多個不同服務時,就須要透過連接埠號來加以區隔。連接埠號僅一個數字,介於 0 ~ 65535
,其中的 0 ~ 1023 被稱為公認連接埠號(well-known port numbers),通常針對重要度較高的應用程式配置。
常用的公認連接埠號包括:
連接埠號(Port Number) | 通訊協定(Protocol) | 主要用途 |
---|---|---|
80 | HTTP | 存取一般的網頁 |
443 | HTTPS | 存取加密過的網頁 |
110 | POP3 | 讀取電子信箱 |
143 | IMAP4 | 存取電子信箱 |
25 | SMTP | 在伺服器間進行郵件中繼轉送 |
587 | SMTP submission | 將郵件傳送到郵件伺服器 |
20 | FTP data | 檔案傳輸(轉送中繼資料) |
21 | FTP control | 檔案傳輸(控制用) |
連接埠號歸屬於 TCP 或 UDP (傳輸層)所提供的功能:
TCP 連接埠號:發送端(client)和接受端(server)的電腦都需要有連接埠號,一般來說網際網路的接收端會是使用連接埠 80 號,而發送端則會透過 TCP 自動配發一個公認連接埠號以外的數字(一般由作業系統指自動指派)。
UDP 連接埠號:UDP 的通訊和 TCP 大致相似,但不需像 TCP 一樣需要先建立連線,並透過發送端的連接埠號來辨認連接類型。
不同的連接埠號除了可用 來辨別不同的服務外,當發送端(client)需要建立多個連線到相同接收端(server)的相同連接埠號時,不同的視窗亦會透過不同的連接埠號來發送請求;而接收端(server)在送回資料時,即可根據發送端的連接埠號,傳送資料到不同的視窗。
了解網路拓樸(Topology)
資料來源:中繼器 (Repeater)、集線器 (Hub)、橋接器 (Bridge)、交換器 (Switch) 原理與介紹 @ !false
匯流排拓樸 (Bus Topology)
將一同軸電纜佈於建築物內,並透過 收發器 (transceiver) 將多台主機連結至此主幹網路, 其簡單、便宜的特性,在當時很快就得到廣泛的使用。