五、運輸層
運輸層是計算機網絡體系結構中的關鍵一層,位于網絡層之上、應用層之下。它負責為運行在不同主機上的應用進程提供邏輯通信服務,是端到端通信的核心。
1. 運輸層概述
運輸層的主要目標是彌補網絡層服務的不足,為應用層提供可靠、有效的數據傳輸服務。網絡層(如IP協議)只負責將數據包從源主機送到目的主機,是一種“盡力而為”的服務,不保證可靠性、順序性和完整性。而運輸層則在此基礎上,通過其協議(主要是TCP和UDP)向上層應用提供兩種截然不同的服務模型:
- 面向連接的可靠傳輸服務:確保數據無差錯、不丟失、不重復且按序到達。這是傳輸控制協議(TCP)提供的核心服務。
- 無連接的不可靠傳輸服務:不建立連接,只提供盡力而為的數據交付,不保證可靠性。這是用戶數據報協議(UDP)提供的服務。
運輸層通過復用和分用功能,使多個應用進程能夠同時使用下層的網絡服務。
2. 運輸層端口、復用與分用的概念
端口是運輸層的一個核心概念。它是一個16位的數字標識符(范圍0-65535),用于唯一標識主機上的一個應用進程。端口使得運輸層能夠將數據正確交付給指定的應用程序。
- 知名端口(0-1023):分配給如HTTP(80)、FTP(21)等核心網絡服務。
- 注冊端口(1024-49151):供用戶應用程序注冊使用。
- 動態/私有端口(49152-65535):供客戶端臨時使用。
復用是指發送方運輸層將來自多個不同應用進程的數據塊(報文段)收集起來,加上共同的運輸層首部(如端口號),交給網絡層封裝成一個IP數據包發送出去的過程。
分用是復用的逆過程。當接收方運輸層收到網絡層交付的IP數據包后,會根據運輸層首部中的目的端口號,將數據正確交付給指定的、正在等待的接收應用進程。
正是通過套接字(Socket)——即IP地址 + 端口號的組合——運輸層實現了全球范圍內主機上特定進程之間的精確通信。
3. UDP和TCP的對比
用戶數據報協議(UDP)和傳輸控制協議(TCP)是運輸層兩大核心協議,它們的設計目標和特性形成了鮮明對比:
| 特性 | UDP(用戶數據報協議) | TCP(傳輸控制協議) |
| :--- | :--- | :--- |
| 連接性 | 無連接。發送數據前無需建立連接,開銷小。 | 面向連接。數據傳輸前必須經過“三次握手”建立可靠連接。 |
| 可靠性 | 不可靠交付。不保證數據到達,不保證順序,無確認、重傳機制。 | 可靠交付。通過確認、重傳、流量控制、擁塞控制等機制確保數據正確、有序到達。 |
| 報文結構 | 簡單。首部僅8字節,包含源端口、目的端口、長度和校驗和。 | 復雜。首部至少20字節,包含序列號、確認號、窗口大小等眾多控制字段。 |
| 傳輸單位 | 用戶數據報。應用層交下來的數據加上UDP首部即構成一個報文。 | TCP報文段。數據會被分段,每個段加上TCP首部進行傳輸。 |
| 流量控制 | 無。發送速率由應用層控制。 | 有。通過滑動窗口機制進行端到端的流量控制。 |
| 擁塞控制 | 無。可能加劇網絡擁塞。 | 有。通過慢啟動、擁塞避免等算法動態調整發送速率。 |
| 傳輸效率 | 高。延遲低,開銷小,適用于實時應用。 | 相對較低。由于建立連接、確認重傳等機制,延遲和開銷較大。 |
| 應用場景 | DNS查詢、音視頻流媒體(如視頻會議)、實時游戲、TFTP等對實時性要求高、可容忍少量丟包的應用。 | Web瀏覽(HTTP/HTTPS)、電子郵件(SMTP/POP3)、文件傳輸(FTP)、遠程登錄(SSH)等要求數據完整可靠的應用。 |
****:運輸層作為承上啟下的關鍵層級,通過端口機制實現了進程間的精確通信,并通過UDP和TCP兩種協議為上層應用提供了靈活的選擇——UDP追求高效與低延遲,TCP追求可靠與有序。理解它們之間的根本區別,是設計和選擇網絡應用程序的基礎。