跳至主要内容

[網際網路] 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 位址來指定目的端。此時需要先

  1. 判斷發送端和接收端的電腦是否處於相同的區域網路內:利用網路遮罩可以算出發送端和接收端的網路位址,當兩者的網路位址相同時,表示兩台電腦是連接到同一個實體網路。
  2. 將 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),再從路由表中找出和該網路位址相關的轉送規則,找到規則後,然後再由路由器負責將封包轉送到正確的子網路。

通常需要由好幾台路由反覆的進行這項轉送處理作業,才能將封包順利送到目的端電腦。

路由表的更新與路由協定

路由表並不是註冊一次就一勞永逸,當有新增網路或電腦時,都需要修正路由表。修正的方式主要有兩種:

  • 靜態路由:採用固定的路由表,一旦網路架構改變,就必須手動方式來變更路由表,只適合小型網路。
  • 動態路由:路由表採動態更新的方式,一旦網路架構改變,會自動反映在路由表中,而適用於動態路由的協定就稱為「路由協定」。

路由協定

路由協定最重要的是:

  1. 讓路由器彼此交換路徑資料
  2. 根據收集到的路徑資料,找出最佳路徑

路由協定大致包含兩種類型,一種是 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 來執行一般的通訊作業。

Imgur

連接埠號(Port Number)

由於每台電腦僅會配置一個 IP 位址,當一台電腦能夠提供多個不同服務時,就須要透過連接埠號來加以區隔。連接埠號僅一個數字,介於 0 ~ 65535,其中的 0 ~ 1023 被稱為公認連接埠號(well-known port numbers),通常針對重要度較高的應用程式配置。

常用的公認連接埠號包括:

連接埠號(Port Number)通訊協定(Protocol)主要用途
80HTTP存取一般的網頁
443HTTPS存取加密過的網頁
110POP3讀取電子信箱
143IMAP4存取電子信箱
25SMTP在伺服器間進行郵件中繼轉送
587SMTP submission將郵件傳送到郵件伺服器
20FTP data檔案傳輸(轉送中繼資料)
21FTP control檔案傳輸(控制用)

連接埠號歸屬於 TCP 或 UDP (傳輸層)所提供的功能:

TCP 連接埠號:發送端(client)和接受端(server)的電腦都需要有連接埠號,一般來說網際網路的接收端會是使用連接埠 80 號,而發送端則會透過 TCP 自動配發一個公認連接埠號以外的數字(一般由作業系統指自動指派)。

UDP 連接埠號:UDP 的通訊和 TCP 大致相似,但不需像 TCP 一樣需要先建立連線,並透過發送端的連接埠號來辨認連接類型。

不同的連接埠號除了可用來辨別不同的服務外,當發送端(client)需要建立多個連線到相同接收端(server)的相同連接埠號時,不同的視窗亦會透過不同的連接埠號來發送請求;而接收端(server)在送回資料時,即可根據發送端的連接埠號,傳送資料到不同的視窗。

了解網路拓樸(Topology)

資料來源:中繼器 (Repeater)、集線器 (Hub)、橋接器 (Bridge)、交換器 (Switch) 原理與介紹 @ !false

匯流排拓樸 (Bus Topology)

將一同軸電纜佈於建築物內,並透過   收發器 (transceiver)  將多台主機連結至此主幹網路, 其簡單、便宜的特性,在當時很快就得到廣泛的使用。

  星狀拓樸 (star topology)

碰撞網域(Collision Domain)

當匯排上有兩個以上的節點同時發送封包時,會因為透過廣播(broadcast)進行傳輸的特性而發生碰撞,造成訊號擾亂的錯誤。

為了解決碰撞網域的問題,需要一種方式來協調彼此的溝通,確保不打斷對方談話、不壟斷發言權:

  • 載波感測多重存取(CSMA):先聽在講,主機在發送訊框前,先感測媒介是否正被使用 (有人在說話), 若無,則立即傳送;否則,持續感測直到閒置 (idle) 後再傳送。
  • 碰撞偵測(CD):持續感測媒介是否發生碰撞, 若偵測到碰撞,就中止傳輸並發送一 48 bit 的壅塞訊號,通知其他節點已發生碰撞, 最後,利用二元指數倒退演算法等待一適當的時間進行重傳。

無線區域網路

無線區域網路依通訊方式不同,可以分成多種不同規格:

虛擬網路(Virtual LAN)

將一個網路透過邏輯方式切割為數個網路的技術,就稱為虛擬網路(Virtual LAN, VLAN),通常會同時搭配 Port based VLAN 和 Tag based VLAN 一起使用:

Port based VLAN

以連接埠為基礎的虛擬網路(Port based VLAN)即是將交換器或路由器的連接埠指定成多群組,以群組為單位獨立區域網路的技術,又稱為**「區域網路切割」**,有些交換器或路由器會內建此功能。

Tag based VLAN

利用同一條區域網路線來傳送多個區域網路資料的技術,所使用的標準規範為 IEEE802.1Q,使用時必須將用來辨別 VLAN 編號的資料(標籤)嵌入到乙太網路訊框中,藉以區別資料是來自同一區域網路內的哪一個 VLAN。

VPN 與 Tunnel 技術

**虛擬私有網路(VPN,Virtual Private Network)**就是在既有的網路中,建立一個全新虛擬網路的技術,通常需要加密處理等機制,因此通訊速度較慢。

VPN 的重點在於穿隧技術(Tunnel),也就是在某個通訊線路中所建立的「虛擬通訊線路」,其中使用了 PPTP(Point-to-Point Tunneling Protocol,點對點穿隧協定)、L2TP(Layer 2 Tunneling Protocol,第二層隧道協定),通時搭配 IPsec(Security Architecture for Internet Protocol,網際網路安全協定)的加密協定來為隧道的通訊作業加密。

在 IPsec 中又包含了幾種不同的協定,包含用來交換加密金鑰的 IKE Protocol(Internet Key Exchange)、處理加密後資料的 ESP Protocol(Encapsulated Security Payload)、認證標頭是否遭到竄改或偽裝的 AH Protocol(Authentication Header,鑑別標頭)。

資料來源