TCP/IP網路模型可以分為以下四層:
- 應用層(Application Layer):
- 最上層,使用者直接接觸的層,提供應用功能,如HTTP、FTP、Telnet、DNS、SMTP等。
- 專注於為使用者提供應用功能,不關心資料傳輸的具體細節。
- 工作在作業系統中的使用者態。
- 傳輸層(Transport Layer):
- 為應用層提供網路支援,包括TCP(傳輸控制協議)和UDP(使用者資料包協議)兩個傳輸協議。
- TCP提供流量控制、超時重傳、擁塞控制等特性,保證資料可靠傳輸。
- UDP簡單,只負責傳送資料包,不保證資料包抵達,實時性和傳輸效率較高。
- 負責將資料分塊(TCP段),以便在資料包過大時進行分段傳輸。
- 使用埠號區分同一裝置上的不同應用。
- 網路層(Internet Layer):
- 負責將資料從一個裝置傳輸到另一個裝置,使用IP協議(Internet Protocol)。
- IP協議將傳輸層的報文加上IP包頭組裝成IP報文,並處理分片。
- 使用IP地址對裝置進行編號,區分網路號和主機號,配合子網掩碼使用。
- 負責定址和路由,決定資料包的傳輸路徑。
- 網路介面層(Link Layer):
- 在IP頭部前加上MAC頭部,封裝成資料幀傳送到網路上。
- 工作在乙太網、WiFi等底層網路上,使用MAC地址標識網路上的裝置。
- 負責鏈路級別傳輸服務,透過ARP協議獲取對方的MAC地址。
ARP 的工作原理
ARP(Address Resolution Protocol) 是一種網路協議,用於在 IPv4 網路中將 IP 地址 轉換為對應的 MAC 地址。它是 TCP/IP 協議棧中的一個重要協議,工作在鏈路層和網路層之間。
1. ARP 請求(ARP Request)
• 當裝置需要傳送資料包,但不知道目標裝置的 MAC 地址時,它會廣播一個 ARP 請求到本地網路。
• 請求包的內容包括:
• 發出請求的裝置的 IP 和 MAC 地址。
• 目標裝置的 IP 地址(MAC 地址為空)。
• 廣播範圍限制在同一個子網。
2. ARP 響應(ARP Reply)
• 區域網內的裝置接收到 ARP 請求後,檢查自己的 IP 地址。
• 如果目標 IP 地址與自己的 IP 地址匹配,該裝置會傳送一個單播的 ARP 響應包,告知發起請求的裝置自己的 MAC 地址。
3. 快取結果
• 發起請求的裝置將目標 IP 和 MAC 地址的對映關係快取到本地的 ARP 表中,以後再傳送資料時直接使用快取,而不需要重複請求。
• 快取有時效性,通常過一段時間後會清除
假設主機 A(IP: 192.168.1.1,MAC: AA:BB:CC:DD:EE:FF)想要與主機 B(IP: 192.168.1.2,MAC: 11:22:33:44:55:66)通訊,流程如下:
1. 主機 A 查詢 ARP 表,發現沒有 192.168.1.2 的 MAC 地址。
2. 主機 A 廣播一個 ARP 請求,問“192.168.1.2 的 MAC 地址是什麼?”。
3. 主機 B 收到請求後,單播一個 ARP 響應,告知“192.168.1.2 的 MAC 地址是 11:22:33:44:55:66”。
4. 主機 A 將這個對映快取到 ARP 表中,並開始通訊。