計算機網絡基礎--傳輸層

在這裏插入圖片描述

網絡層:提供主機之間的邏輯通信機制
傳輸層:提供應用進程之間的邏輯通信機制

Internet 傳輸層協議
可靠、按序的交付服務(TCP)
 擁塞控制
 流量控制
 連接建立

不可靠的交付服務(UDP)
 基於“盡力而爲(Best-effort)”的網絡層,沒有做(可靠性方面的)擴展

兩種服務均不保證
 延遲
 帶寬

多路複用/分用

在這裏插入圖片描述

多路分用原理

主機接收到IP數據報(datagram)
 每個數據報攜帶源IP地址、目的IP地址
 每個數據報攜帶一個傳輸層的段(Segment)
 每個段攜帶源端口號和目的端口號
 主機收到Segment之後,傳輸層協議提取IP地址和端口號信息,將Segment導
向相應的Socket(TCP做更多處理)

在這裏插入圖片描述
在這裏插入圖片描述

UDP

UDP提供的功能
 複用/分用
 簡單的錯誤校驗
在這裏插入圖片描述

“Best effort”服務,UDP段可能
 丟失
 非按序到達

無連接
 UDP發送方和接收方之間不需要握手
 每個UDP段的處理獨立於其他段

UDP爲什麼存在?
 無需建立連接 ( 減少延遲)
 實現簡單 : 無需維護連接狀態
 頭部開銷少
 沒有擁塞控制: 應用可更好地控制發送時間和速率

常用於流媒體應用(容忍丟失、速率敏感),還用於DNS、SNMP。

在UDP上實現可靠數據傳輸?
 在應用層增加可靠性機制
 應用特定的錯誤恢復機制

UDP 校驗和(checksum)

發送方
 將段的內容視爲16-bit 整數
 校驗和計算:計算所有整數的和,再與進位相加,再按位求反,得到校驗和

接收方
 計算所收到段的校驗和
 將其與校驗和字段進行對比
• 不相等 : 檢測出錯誤
• 相等 : 沒有檢測出錯誤 ( 但可能有錯誤 )
在這裏插入圖片描述

可靠數據傳輸原理

什麼是可靠?不錯、不丟、不亂。可靠數據傳輸(RDT)
在這裏插入圖片描述
下面將漸進地設計可靠數據傳輸層協議,從簡到繁不斷提出更完善的版本!

Rdt 1.0(可靠信道上的可靠數據傳輸)

在這裏插入圖片描述

Rdt 2.0(產生位錯誤的信道)

在這裏插入圖片描述

Rdt 2.1(應對ACK/NAK被破壞)

如果ACK/NAK壞掉,發送方就識別不了了,但也不能簡單地重傳,否則可能產生重複分組。如何解決重複分組問題 ?序列號(Sequence number),發送方給每個分組分配序列號0或1,交替發送0號和1號分組。
在這裏插入圖片描述
在這裏插入圖片描述

Rdt 2.2(相比Rdt 2.1去掉NAK)

給發送方發ACK的時候帶上分組序號0或1。
在這裏插入圖片描述

Rdt 3.0(信道既可能發生錯誤 ,也可能丟失分組)

“校驗和 + 序列號 + ACK + 重傳”夠用嗎?
發送方等待“合理”時間(需要定時器),如果沒收到ACK,重傳。如果分組或ACK只是延遲而不是丟了,重傳會產生重複,序列號機制能夠處理,接收方需在ACK中顯式告知所確認的分組。
在這裏插入圖片描述
Rdt 3.0能夠正確工作,但性能很差。以上各個版本的設計都是發一個等一個,可以使用流水線滑動窗口機制改進(滑動窗口協議Go-Back-N 、Selective Repeat )。

TCP

點對點(一對一, 一個發送方,一個接收方)
可靠的、按序的字節流
流水線機制(TCP擁塞控制和流量控制機制,設置窗口尺寸)
發送方/接收方緩存
在這裏插入圖片描述
全雙工(full-duplex)(同一連接中能夠傳輸雙向數據流)
面向連接
通信雙方在發送數據之前必須建立連接。
連接狀態只在連接的兩端中維護,在沿途節點中並不維護狀態。
TCP連接包括:兩臺主機上的緩存、連接狀態變量、socket等
流量控制機制(緩衝區大小限制)
TCP使用單一重傳定時器,觸發重傳的事件(超時、收到重複ACK)
擁塞控制(使網絡不那麼擁塞,具有公平性)
在這裏插入圖片描述
在這裏插入圖片描述

TCP連接的建立和關閉

在這裏插入圖片描述
在這裏插入圖片描述

參考資料

[1] 中國大學MOOC《計算機網絡》 李全龍 聶蘭順

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章