天天看點

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

文章目錄

    • 一. TCP傳輸
      • 1 TCP封包段結構
      • 2 TCP可靠資料傳輸
      • 3 TCP流量控制
      • 4 TCP連接配接管理:3次握手和四次揮手
    • 二. 擁塞控制原理
      • 1. 擁塞的成因和代價
      • 2. 擁塞控制方法
    • 三. TCP擁塞控制
      • 1. 擁塞控制的基本原理
      • 2. TCP擁塞控制算法

一. TCP傳輸

TCP連接配接提供的服務是全雙工服務,同一連接配接能夠雙向傳輸資料,同時,也是點對點的連接配接(僅有一個發送方和一個接收方)。

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

1 TCP封包段結構

TCP封包段由首部字段和資料字段組成。

  1. 首部字段

    源端口号和目的端口号:用于多路分用和多路複用

    網際網路檢驗和:差錯檢驗

    序号和确認号(32比特):用于實作可靠資料傳輸服務

    接收視窗字段(16bite):用于流量控制,該字段訓示接收方願意接收的位元組數量。

    首部長度字段(4bit):典型長度20bit

    可選與變長的選項字段:用于雙方協商最大封包長度、或在高速網絡環境下用于視窗調節因子。

    标志字段(6bit):ACK用于确認字段是否有效、RST、SYN、FIN用于連接配接的建立和拆除

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

2. 序号和确認号

序列号指的是segment中

第一個位元組的編号

,而不是segment的編号

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

ACKs:希望接收到的下一個位元組的序列号

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

telnet示例:

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

2 TCP可靠資料傳輸

TCP在IP層提供的不可靠服務基礎上實作可靠資料傳輸服務。使用了流水線機制、累積确認機制、使用單一的重傳定時器。采用重傳來處理丢包,觸發重傳的時間包括定時器逾時和收到重複ACK。

  1. 定時器逾時時間設定與往返時間(RTT)的估計

    定時器的逾時時間是肯定要大于RTT的.

    RTT的估計方式

    為:測量從段發出去到收到ACK的時間(稱為SampleRTT,

    忽略重傳),測量多個SampleRTT,求平均值,形成RTT的估計值EstimatedRTT

    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
    定時器時間設定:TimeoutInterval = EstimatedRTT + 4*DevRTT
  2. 發送方處理事件

    為了實作可靠性資料傳輸,發送方需要進行一些事件處理。

  1. 從應用層收到資料: 建立Segment、序列号是Segment第一個位元組的編号、 開啟計時器、設定逾時時間TimeOutInterval
  2. 逾時:重傳引起逾時的Segment、重新開機定時器
  3. 收到ACK:如果确認此前未确認的Segment, 則更新SendBase,如果更新後,視窗中還有未被确認的分組,重新啟動定時器(這裡采用的是單一重傳)。
計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
  1. 接收方處理
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
  2. 快速重傳機制

    收到3個備援的ACK,則進行快速重傳。

    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

3 TCP流量控制

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

TCP為應用程式提供了流量控制服務,以消除發送方使接收方緩存溢出的可能性。流量控制實際上是一個速度比對服務

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

4 TCP連接配接管理:3次握手和四次揮手

強烈推薦:TCP的三次握手與四次揮手(詳解+動圖)

  1. 建立連接配接:三次握手
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
  2. 關閉連接配接
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

二. 擁塞控制原理

擁塞(Congestion)非正式定義:“太多發送主機發送了太多資料或者發送速度太快,以至于網絡無法處理”

表現: 分組丢失(路由器緩存溢出)、 分組延遲過大(在路由器緩存中排隊)

1. 擁塞的成因和代價

  • 情況1:兩個發送方和一台具有無窮大緩存的路由器
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
  • 情況2:兩個發送方和一台具有有限緩存的路由器
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

2. 擁塞控制方法

  1. 網絡輔助的擁塞控制

    路由器向發送方顯式地回報網絡擁塞資訊 ,簡單的擁塞訓示(1bit):SNA, DECbit, TCP/IP ECN, ATM) ,訓示發送方應該采取何種速率。

  2. 端到端的擁塞控制 (TCP)

    網絡層不需要顯式的提供支援,端系統通過觀察loss,delay等網絡行為判斷是否發生擁塞。 TCP采取這種方法。

三. TCP擁塞控制

TCP必須通過端到端的控制方法解決擁塞控制,因為IP層不會向端系統提供有關網絡擁塞的回報資訊。

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

1. 擁塞控制的基本原理

首先是如何

限制TCP發送方向連接配接發送的流量速率,主要采取的方式是控制擁塞視窗cwnd的大小

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

其次是如何使發送方感覺網絡擁塞:丢包時間則意味着擁塞

計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

最後是如何合理的調整發送速率,主要采用的是TCP擁塞控制算法

2. TCP擁塞控制算法

  1. 加性增-乘性減算法:AIMD
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
  2. 慢啟動:SS
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
  3. 擁塞避免
    計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制
計算機網絡(5)-傳輸層--TCP傳輸:可靠資料傳輸、流量控制、連接配接管理、擁塞控制

繼續閱讀