1. 程式人生 > >計算機網路-運輸層

計算機網路-運輸層

運輸層協議作用於端系統,為執行在不同主機上的程序提供了邏輯通訊,將主機間的交付擴充套件到程序間交付。該層的分組稱為segment(報文段)。
多路複用:主機把不同套接字( 每生成一個套接字同時分配一個埠號)收集的資料封裝後生成報文段,傳送給網路層
多路分解:將運輸層報文段的不同資料(通過套接字的埠號)交付給相應的套接字

假設主機A的程序有埠號19157,主機B的程序有埠號46468。
1.A的程序建立的運輸層報文包括資料,源埠號,目的埠號,目的IP地址和目的埠號。
2.接收主機運輸層識別目的埠號後,將該報文段交付給被標識為46468的套接字。
3.UDP套接字通過目的IP地址和目的埠號進行區分;TCP套接字由源IP地址,源埠號,目的埠號,目的IP地址和目的埠號進行區分。

UDP協議
不提供提供可靠的資料服務和擁塞控制機制。
1.在傳送之前不用握手
2.根據端到端原則(在較低級別沒有必要)提供差錯檢測功能
3.可靠資料傳輸協議:

  • ARQ協議(自動重傳請求)通過肯定確認(ACK)和否定確認(NAK)讓傳送方知道資訊是否被正確接收
    為了避免確認訊息分組受損,在資料分組新增分組序號
    根據收發雙方的往返時延,設定倒計時定時器。每傳送一個分組便啟動一個定時器,響應定時器中斷,終止定時器。
    流水線:允許傳送方傳送多個分組而無需等待確認,通過回退N步或選擇重傳
  • (GBN)回退N步協議:
    1.未確認的分組數不超過視窗長度N(必須小於等於序號空間的一半)
    2.積累確認:接收方已確認序號為n之前所有分組都成功接收
    3.上一個交付給應用層的資料為n-1,本次為n。否則丟棄該分組。之後視窗向前滑動

  • SR(選擇重傳)協議:
    只重傳那些丟失或者受損的分組。而失序的分組將被快取直到序號更小的分組都已經收到。再將該批分組交付給應用層。

TCP協議
提供可靠的資料服務。每個TCP連線只能用於一對客戶-伺服器。
在連線之前互相交換運輸層的控制資訊(3次握手:客戶向伺服器傳送SYN報文段,伺服器傳送SYNACK報文作為響應,最後客戶向伺服器傳送確認)。之後在2個程序的套接字之間建立全雙工的TCP連線。放入報文段的數量取決於MSS(最大報文段長度指位於應用層的最大長度),
接受方向傳送方傳送FIN報文,傳送方返回ACK後再發送FIN報文,接收方傳送ACK結束連線。
流量控制服務:通過接受視窗(rwnd瞭解接收方的剩餘空間)防止接收方快取溢位

擁塞控制機制:根據所感知的網路擁塞程度來限制速率
發生擁塞時,傳送方在大時延進行的不必要重傳,分組被丟棄時浪費了之前的傳輸容量。 出現超時或者3個冗餘ACK(當接收到一個序號大於期望值的報文段,接收方向傳送方傳送一個冗餘ACK指示下一個期待的序號。)認為出現擁塞
TCP擁塞控制演算法:在每個往返時延內cwnd(擁塞視窗)線性增加1MSS,出現3個冗餘ACK時減半

  • 慢啟動:開始時cwnd的值小於MSS;
  • 擁塞避免:cwnd的值減半;
  • 快速恢復(推薦)

當傳送給傳送端的確認報文丟失時,傳送端將會重發,但是接收端會丟棄;
超時時TCP重傳具有未確認具有最小未確認訊號的報文段,每次重傳後超時時間加倍;
傳送方收到3個冗餘ACK後執行快速重傳(在定時器過期之前重傳丟失的報文段)。