TCP 概述

TCP 段結構

序列號和ACK

TCP可靠資料傳輸
TCP在IP層提供的不可靠服務基礎上實作可靠資料傳輸服務,流水線機制,累積確認,TCP使用單一重傳定時器
觸發重傳的事件:超時,收到重復ACK
漸進式:暫不考慮重復ACK,暫不考慮流量控制,暫不考慮擁塞控制
TCP RTT 和超時


TCP發送方事件
- 從應用層收到資料
- 創建Segment
- 序列號是Segment第一個位元組的編號
- 開啟計時器
- 設定超時時間:TimeOutInterval
- 超時
- 重傳引起超時的Segment
- 重啟定時器
- 收到ACK
- 如果確認此前未確認的Segment
- 更新SendBase
- 如果視窗中還有未被確認的分組,重新啟動定時器
- 如果確認此前未確認的Segment
看一段偽代碼:

TCP 重傳示例



接收方

快速重傳機制
TCP的實作中,如果發生超時,超時時間間隔將重新設定,即將超時時間間隔加倍,導致其很大,重發丟失的分組之前要等待很長時間
- 通過重復ACK檢測分組丟失
- Sender會背靠背地發送多個分組
- 如果某個分組丟失,可能會引發多個重復的ACK
- 如果sender收到對同一資料的3個ACK,則假定該資料之后的段已經丟失
- 快速重傳:在定時器超時之前即
進行重傳
- 快速重傳:在定時器超時之前即
快速重傳演算法

TCP 流量控制


TCP 連接管理
三次握手



TCP 生命周期

擁塞控制原理
擁塞(Congestion)
非正式定義:“太多發送主機發送了太多資料或者發送速度太快,以至于網路無法處理”
- 表現:
- 分組丟失(路由器快取溢位)
- 分組延遲過大(在路由器快取中排隊)
擁塞的成因和代價 : 場景1

擁塞的成因和代價 : 場景2


擁塞的成因和代價 : 場景3


擁塞控制的方法
-
端到端擁塞控制:
- 網路層不需要顯式的提供支持
- 端系統通過觀察loss,delay等
- 絡行為判斷是否發生擁塞
- TCP采取這種方法
-
網路輔助的擁塞控制:
- 路由器向發送方顯式地反饋網路擁塞資訊
- 簡單的擁塞指示(1bit):SNA,DECbit, TCP/IP ECN, ATM)
- 指示發送方應該采取何種速率
ATM ABR 擁塞控制


TCP 擁塞控制
TCP擁塞控制的基本原理

加性增— 乘性減: AIMD

TCP 慢啟動: SS


Threshold變數

Loss 事件的處理

TCP 擁塞控制: 總結

TCP擁塞控制

TCP擁塞控制演算法


TCP 性能分析
TCP throughput: 吞吐率
- 給定擁塞視窗大小和RTT ,TCP 的平均吞吐率是多少 ?
- 忽略掉Slow start
- 假定發生超時時CongWin的大小為W,吞吐率是W/RTT
- 超時后,CongWin=W/2,吞吐率是W/2RTT
- 平均吞吐率為:0.75W/RTT
未來的TCP


TCP的公平性


具有公平性

不具公平性
小結
-
傳輸層服務的基本原理
- 復用/解復用
- 可靠資料傳輸
- 流量控制
- 擁塞控制
-
Internet的傳輸層
- UDP
- TCP
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/182470.html
標籤:其他
