計算機網絡總結:第三章 運輸層

第三章 運輸層

3.1 概述和運輸層服務

  • 提供在不同主機上運行的app進程之間的邏輯通信
  • 傳輸協議在終端系統中運行
    –發送方:將應用消息分成報文段,傳遞給網絡層
    –rcv 方:將片段重新組合成消息,傳遞到app層
  • 應用程序可使用多種傳輸協議
    –Internet:TCP和UDP

3.1.1 運輸層和網絡層的關係

  • 網絡層:主機之間的邏輯通信
  • 傳輸層:進程之間的邏輯通信(依賴,增強,網絡層服務)

3.1.2 因特網運輸層概述

  • 可靠,有序交付(TCP):擁堵控制、流量控制、連接設置
  • 不可靠,無序交付(UDP):“best-effort”IP的簡潔擴展
  • 服務不詳(available):延遲保證、帶寬保證

3.2 多路複用和多路分解

  • 多路分解的定義:將運輸層報文段中的數據交付到正確的套接字的工作
  • 多路複用的定義:在源主機從不同套接字中收集數據塊,併爲每個數據塊封裝上首部信息從而生成報文段,然後將報文段傳遞到網絡層
  • 多路分解如何工作?
    –主機接收IP數據報
    A)每個數據報都有源IP地址,目的IP地址
    B)每個數據報攜帶1個傳輸層段
    C)每個段都有源,目標端口號
    –主機使用IP地址和端口號將段定向到適當的套接字
    在這裏插入圖片描述
  • 無連接的多路複用和多路分解
  • 面向連接的多路複用和多路分解

3.3 無連接運輸:UDP

  • 優點
    –關於何時、發送什麼數據的應用層控制更爲精細
    –無需連接建立
    –無連接狀態
    –分組首部開銷小
  • 用途:流媒體,SNMP,RIP,DNS

3.3.1 UDP報文結構

在這裏插入圖片描述

3.3.2 UDP檢驗和

3.4 可靠數據傳輸原理

3.4.1 構造可靠數據傳輸協議

  • 經完全可靠信道的可靠數據傳輸:rdt 1.0
  • 經具有比特差錯信道的可靠數據傳輸:rdt 2.0
    –使用肯定確認與否定確認的可靠數據傳輸協議稱爲自動重傳請求(ARQ),需要以下三種協議功能來處理比特差錯的情況:差錯檢測(error detection)、接收方反饋(receiver feedback)、重傳(re-transmission)
    –缺陷:如果一個ACK或NAK分組受損,發送方無法知道接收方是否正確接受了上一塊發送的數據
    –rdt 2.1:使用了從接收方到發送方的肯定確認和否定確認
    –rdt 2.2:接收方必須包括由一個ACK報文所確認的分組序號,發送方必須檢查接收到的ACK報文中被缺的分組序號
  • 經具有比特差錯的丟包信道的可靠數據傳輸:rdt 3.0
    –特點:定時重傳
    –被稱爲比特交換協議(因爲分組號在0和1之間交替)

3.4.2 流水線可靠數據傳輸協議

  • 解決流水線的差錯恢復的方法:回退N步(GBN),選擇重傳(SR)

3.4.3 回退N步

  • 特點:允許發送方發送多個分組而不需等待確認,但它也受限於在流水線中未確認的分組數不能超過某個最大允許數N。當分組丟失時,會丟棄當前分組之後的分組
  • 優點:接受緩存簡單,不需要緩存任何失序分組;避免了停等協議中所提到的信道利用率問題
  • 缺點:單個分組的差錯會引起大量分組重傳
    在這裏插入圖片描述

3.4.4 選擇重傳

  • 特點:通過讓發送方僅重傳那些它懷疑在接收方出錯的分組而避免了不必要的重傳
  • 注:窗口長度必須小於或等於序號空間大小的一半
    在這裏插入圖片描述

3.5 面向連接的傳輸:TCP

3.5.1 TCP連接

  • 基本概念
    在這裏插入圖片描述
    –點到點(point-to-point):在單個發送方與單個接收方之間的連接
    –全雙工服務(full-duplex service):不同主機上的AB進程之間存在TCP連接,則應用層的數據可從A流向B,反之亦然
    –三次握手:客戶發送一段特殊的TCP報文段,服務器以另一個特殊的TCP報文段來響應,最後客戶再用第三個特殊報文段作爲響應(前兩個報文段不包含應用層數據,第三個可包含)
    –最大報文段長度(Maximum Segment Size):TCP可從緩存中取出並放入報文段中的數據量受限於MSS
    –TCP連接的組成包括:一臺主機上的緩存、變量和與進程連接的套接字,以及另一臺主機的這三樣東西

3.5.2 TCP報文段結構

在這裏插入圖片描述
–序號(sequence number):報文段首字節的字節流編號
–確認號(acknowledgement number):期望從對方主機收到的下一字節的序號

3.5.3 往返時間的估計與超時

  • 基本概念
    –TCP採用超時/重傳機制來處理報文段的丟失
  • 估計往返時間
    –SampleRTT:大多數的TCP實現僅僅在某一時刻爲一個已發送但尚未確認的報文段做一次RTT採樣,得到一個SampleRTT
    –EstimatedRTT:TCP維持一個EstimatedRTT,一旦獲得一個新SampleRTT時,則根據下式來更新EstimatedRTT:
    EstimatedRTT = (1-a)* EstimatedRTT + a * SampleRTT(其中a通常取值爲0.125)
    –RTT偏差DevRTT,用於估算SampleRTT一般會偏離EstimatedRTT的程度:
    DevRTT = (1-B)DevRTT + B|SampleRTT - EstimatedRTT|(其中B通常取值爲0.25)
  • 設置和管理重傳超時間隔
    –RTO = EstimatedRTT + 4 * DevRTT(推薦的初始TimeoutInterval)

3.5.4 可靠數據傳輸

  • 超時間隔加倍:TCP重傳具有最小序號的還未被確認的報文段,每次重傳是都會將下一次的超時間隔設爲先前值的兩倍
  • 快速重傳:一旦收到3個冗餘ACK,TCP就執行快速重傳,即在該報文段的定時器過期之前重傳丟失的報文段

3.5.5 流量控制

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

3.5.6 TCP連接管理

3.6 擁塞(Congestion)控制原理

  • 什麼是擁塞控制
    –防止發送方發的太快,使得網絡來不及處理,從而導致網絡擁塞
  • 擁塞原因與代價
    –情況1:兩個發送方和一臺具有無窮大緩存的路由器
    –情況2:兩個發送方和一臺具有有限緩存的路由器
    –情況3:四個發送方和具有有限緩存的多臺路由器及多跳路徑
  • 擁塞控制的方法
    –端到端擁塞控制:沒有來自網絡的明確反饋;從終端系統觀察到的損失,延遲推斷出擁塞;TCP採取的方法
    –網絡輔助的擁塞控制:路由器向終端系統提供反饋(一位表示擁塞【SNA,DECnet,TCP / IP ECN,ATM】;明確的擁塞通知)

3.7 TCP擁塞控制

  • 採取的方法:端到端的擁塞控制,讓每個發送方根據所感知到的網絡擁塞程度來限制其能向連接發送流量的速率
    在這裏插入圖片描述
  • TCP擁塞控制算法
    –慢啓動
    在這裏插入圖片描述
  • 何時停止指數增長?
    A)存在一個由超時指示的丟包時間,TCP發送方將cwnd設置爲1並重新開始慢啓動過程,同時將ssthresh(慢啓動閾值)設置爲cwnd/2
    B)當cwdn的值等於ssthresh時,結束慢啓動並且TCP轉移到擁塞避免模式
    C)如果檢測到三個冗餘ACK,這時TCP執行一種快速重傳並進入快速回復狀態
    –擁塞避免:每個RTT只將cwnd的值增加一個MSS
  • 何時停止線性增長?
    A)存在一個由超時指示的丟包時間,TCP發送方將cwnd設置爲1並重新開始慢啓動過程,同時將ssthresh(慢啓動閾值)設置爲cwnd/2
    B)如果檢測到三個冗餘ACK,網絡繼續從發送方向接收方交付文段
    –快速恢復:對於引起TCP進入快速恢復狀態的缺失報文段,對收到的每個冗餘的ACK,cwnd的值增加一個MSS。最終,當對丟失報文段的一個ACK到達時,TCP在降低cwnd後進入擁塞避免狀態;如果出現丟包,反應和慢啓動一樣
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章