數據封裝:網絡通信的核心過程
數據從應用層向下傳遞,每層添加首部(或尾部):
應用數據 (TFTP)
↓ 封裝 TFTP 首部
傳輸層數據 (UDP)
↓ 封裝 UDP 首部
網絡層數據 (IP)
↓ 封裝 IP 首部
數據鏈路層幀 (Ethernet)
↓ 物理層傳輸
比特流
接收端逆向剝離各層首部,最終得到應用數據。
OSI 七層模型(自上而下)
- 應用層:用戶交互接口(HTTP、FTP、Telnet)
- 表示層:數據格式轉換、加密壓縮
- 會話層:會話建立、管理、終止
- 傳輸層:端到端可靠/不可靠傳輸(TCP/UDP)
- 網絡層:路由、邏輯寻址(IP)
- 數據鏈路層:幀同步、錯誤檢測、MAC 寻址
- 物理層:比特流傳輸、物理介質(光纖、雙絞線)
TCP/IP 四層模型(實際工程對應)
- 應用層:telnet、ftp 等
- 傳輸層:TCP、UDP
- 網際層:IP、路由
- 網絡接口層:Ethernet、Wi-Fi 等
封裝過程的現代簡化
- 流式套接字 (SOCK_STREAM):直接
send() 數據,內核處理 TCP/IP 封裝
- 數據報套接字 (SOCK_DGRAM):應用自行封裝應用層協議數據,
sendto() 發送,內核處理 UDP/IP
- 硬件層由驅動程序自動完成
路由選擇
IP 層負責路由決策,詳細機制參考 IP RFC 文檔。程序員通常無需關心底層路由細節。
關鍵洞見
分層模型使網絡硬件和拓撲對程序員透明。你只需關注應用層邏輯,底層傳輸細節由協議棧自動處理。