傳輸層主要功能
- 傳輸層提供應用進程之間的邏輯通信(端到端的通信)。與網絡層的區別是:網絡層提供的是主機之間的邏輯通信。
- 復用和分用;
- 復用;指發送方不同的應用進程都可以使用同一個傳輸層協議傳送數據;
- 分用;指接收方的傳輸層在剝去報文的首部后能夠把這些數據正確交付到目的應用進程;
- 傳輸層對收到的報文進行差錯檢測(首部和數據部分)。而網絡層只檢查IP數據包的首部;
- 提供兩種不同的傳輸協議,面向連接的TCP和無連接的UDP。
常見端口號
TCP協議端口
FTP | SSH | TELNET | SMTP | HTTP | BGP |
---|---|---|---|---|---|
21 | 22 | 23 | 25 | 80 | 179 |
FTP文件傳輸協議; SSH安全登陸; telnet不安全的文本傳送
UDP協議端口
DNS | SNMP | TFTP |
---|---|---|
53 | 161 | 69 |
UDP和TCP對比與差異
TCP與UDP對比
- TCP;面向連接的傳輸控制協議,提供的是一條全雙工的可靠邏輯信道。
- UDP;無連接的用戶數據報協議,提供的是一條不可靠的邏輯信道。
TCP提供面向連接的服務,在傳送數據之前必須先建立連接,數據傳送結束后釋放連接。由於TCP要提供可靠傳輸,增加了許多開銷,這不僅使得協議數據單元的首部增大,還要占用很多處理機資源。
UDP是一個無連接的非可靠傳輸協議。它在IP層之上僅提供兩個附加服務:1.復用和分用;2.差錯檢測。由於UDP比較簡單,因此它執行速度快,實時性好。
TCP
TCP首部格式
TCP概述
UDP
UDP優點
- 無須建立連接
- 無連接狀態
- 分組首部開銷小
- 實時性高
- 支持一對一、一對多、多對一和多對多的交互通信
連續ARQ可靠傳輸
連續的ARQ通過滑動窗口保證可靠傳輸;
目前廣泛使用的是:返回N組連續ARQ協議
對報文編號,識別重復報文,將其丟棄。
超時重傳,解決報文在傳輸時,丟失的問題。
ACK的值可以理解為,期待收到的下一個數據包的序號。若一個數據包的seq = n,這個數據包的ACK = n+1。
滑動窗口
滑動窗口用於:
- 流量控制
- 差錯控制
TCP流量控制
控制發送報文的速率
差錯控制
控制“連續ARQ”的參數
擁塞控制
擁塞控制:檢測、避免和緩解擁塞的方法
擁塞控制與流量控制區別
- 流量控制是給定的發送端和接收端之間通信量控制
- 控制發送方的發送速率,使接收方來得及接收
- 擁塞控制是一個全局性的過程,涉及
- 所有主機、路由器
- 多種資源(信道帶寬、緩存、處理能力)
擁塞控制四個算法:慢開始、擁塞避免(線性增長)、快重傳、快恢復
在TCP連接建立和超時的時候,才采用慢開始算法
發送方最終的發送窗口 ≤ min(擁塞窗口,通知窗口)
慢開始、擁塞避免
快重傳
當發送飯連續收到三個重復的ACK報文時,直接重傳對方尚未收到的報文,不必等待那個報文段設置的重傳計時器超時。
快恢復
TCP三次握手、四次揮手
三次握手:
四次揮手:
四次揮手過程,簡單記法:
以下的四個描述步驟,只是形象生動的解釋,在答題時,不要使用;
- 客戶機:我希望與你斷開連接;
- 服務器:你等一下,我還有數據沒有發完;
- 服務器:我的數據發完了,你可以斷開連接了;
- 客戶機:我知道了,這就斷開連接;
[擴展,考試不會作考察]:四次揮手的第四步,客戶機在收到連接釋放報文后,還需要再等2MSL(最長報文段壽命)的討論?
- 如果客戶機不等待2MSL的時間,直接關閉。
- 一旦客戶機第四步發出的數據包,在路上丟失了;
- 服務器在發送完第三步的數據包后,遲遲等不來確認。按照超時重傳的理論,服務器會重新發送第三步的數據包。
- 此時,由於客戶機已經關機了。所以服務器永遠等不到客戶機對它的第三步報文的確定。
- 如果客戶機等待2MSL再關機,會有什么好處?
- 如果客戶機發送的四次揮手第四步的報文在路上丟失了;
- 服務器在發送完第三步的數據包后,遲遲等不來確認。按照超時重傳的理論,服務器會重新發送第三步的數據包。
- 客戶機收到服務器重發的第三步報文。客戶機重新發送第四步的報文,重新開始計時2MSL,這就又回到了開頭。
- 但是如果服務器重發的第三步報文,在路上丟失了,此時客戶機在經過2MSL的等待后,沒有收到服務器的數據,客戶機就關機了。這樣也會導致服務器收不到客戶機的第四次報文。(這是否意味着,四次揮手是不完美的)
參考資料:
[1]. 2022王道論壇計算機網絡.229-230(紙質:217-218)
[2]. 2022王道論壇計算機網絡.230-231(紙質:218-219)