TCP/IP 傳輸層詳解
傳輸層(Transport Layer)是 TCP/IP 模型的第四層(對應 OSI 模型的傳輸層),核心功能是實現 端到端(進程到進程)的可靠通信。主要協議包括:
- TCP(傳輸控制協議):面向連接、可靠傳輸
- UDP(用戶數據報協議):無連接、高效傳輸
核心功能
功能 | TCP | UDP |
---|---|---|
連接管理 | 三次握手建立連接,四次揮手斷開 | 無連接 |
可靠性 | 確認應答、重傳、排序 | 無可靠性保證 |
流量控制 | 滑動窗口機制 | 無 |
擁塞控制 | 慢啟動、擁塞避免等算法 | 無 |
數據單元 | 段(Segment) | 數據報(Datagram) |
頭部開銷 | 20~60 字節 | 8 字節 |
TCP 協議深度解析
1. TCP 段結構
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options (if any) | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- 關鍵字段:
- 序列號(Seq):數據字節流的編號
- 確認號(Ack):期望接收的下一個字節編號
- 標志位:SYN(建立連接)、ACK(確認)、FIN(斷開連接)、RST(重置連接)
- 窗口大小(Window):流量控制參數
2. TCP 連接管理(三次握手與四次揮手)
為什么需要三次握手?
防止失效的連接請求突然傳到服務器(網絡延遲導致的歷史連接問題)
3. TCP 可靠性機制
- 關鍵機制:
- 序列號/確認號:確保數據有序到達
- 超時重傳:RTT動態計算超時時間
- 滑動窗口:動態調整發送速率(流量控制)
- 選擇性確認(SACK):高效重傳丟失片段
4. TCP 擁塞控制
- 階段說明:
- 慢啟動:窗口從1 MSS開始指數增長
- 擁塞避免:窗口線性增長(加法增大)
- 快速重傳:收到3個重復ACK立即重傳
- 快速恢復:窗口減半后直接進入擁塞避免
UDP 協議解析
1. UDP 數據報結構
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- 特點:
- 無連接:直接發送數據
- 無可靠性機制:不保證順序和到達
- 低延遲:頭部僅8字節
- 支持廣播/多播
2. UDP 通信流程
端口(Port)機制
核心作用:區分同一主機上的不同應用程序
- 常見端口:
- HTTP: 80, HTTPS: 443
- FTP: 21, SSH: 22
- DNS: 53, DHCP: 67/68
TCP/UDP 應用場景對比
場景 | 推薦協議 | 原因 |
---|---|---|
網頁瀏覽 | TCP | 需要可靠傳輸HTML/CSS/JS |
視頻直播 | UDP | 容忍丟包,追求低延遲 |
文件傳輸 | TCP | 數據完整性要求高 |
DNS查詢 | UDP | 短報文,快速響應 |
在線游戲 | UDP | 實時性優先于可靠性 |
電子郵件 | TCP | 保證郵件內容完整到達 |
Mermaid 綜合原理圖
TCP 端到端通信全流程
💡 傳輸層核心價值:
- 為應用層屏蔽網絡復雜性(丟包、亂序、擁塞)
- 通過端口機制實現多路復用
- TCP/UDP 互補滿足不同場景需求
“TCP提供可靠傳輸的管道,UDP提供高效的傳輸通道”