1、分為首部和資料兩部分,二十個位元組固定首部;
2、分析:
1)兩個位元組源埠、兩個位元組目的埠;
2)四個位元組序號(報文段序號)、四個位元組確認號(期望收到對方下乙個報文段的第乙個資料位元組的序號);
3)四位資料偏移、六位保留、六位控制位:緊急urg、確認ack、推送psh、復位rst、同步syn、終止fin;
4)兩位元組視窗(視窗值作為接收方讓傳送方設定其傳送視窗的依據);
5)兩位元組檢驗和(檢驗方法類似udp,加偽首部)、兩位元組緊急指標(結合緊急控制位urg);
6)最大四十個位元組選項,包括mss(最大報文段長度,預設536)、十字節時間戳(時間戳值、時間戳回送回答,計算rtt,防止序號繞回)等
傳輸通道不產生差錯;與速度無關,接收方總能及時處理收到的資料。
1、無差錯情況;
2、出現差錯:設定超時計時器。
注意三點:1)傳送方保留分組副本;2)分組和確認分組進行編號;3)超時計時器比平均往返時間長一些。
3、確認丟失和確認遲到:
超時。重新傳送分組,接收方兩個個操作:1)丟棄重複分組;2)向a傳送確認;
這種可靠傳輸機制也稱arq(自動重傳請求)
特點:接收方不用請求傳送方重傳某個出錯分組;通道利用率低。
改進:連續arq協議(流水線傳輸)與滑動視窗協議
1、滑動視窗協議:
1)傳送視窗與接收視窗不總是一樣大;傳送方和接收方各自維護乙個傳送視窗和接收視窗,單位是位元組
2)對於不按序到達的資料不丟棄,臨時存放在接收視窗中;
3)接收方必須有累計確認功能;
2、超時重傳時間的選擇:tcp中記錄傳送時間和接收到的時間rtt
平均往返時間rtt,加權平均往返時間rtts
新rtts =(1 - a)*(舊的rtts)+ a *(新的rtt樣本)(0 <= a < 1,推薦0.125)
超時重傳時間rto,rtt偏差的加權平均值rttd
rto = rtts + 4 x rttd
新的rttd =(1 - y)*(舊的rttd)+ y * |rtts –新的rtt樣本| (y推薦0.25)
在計算平均加權rtts時,只要報文段重傳了,就不採用其往返時間樣本。這樣rtts和rto比較精確;
3、選擇確認sack
如果收到的報文段無差錯,只是未按序號,中間缺少一些序號資料。可以在首部新增選項「選擇確認」記錄缺少序號段的邊界,在建立連線時協商。
以上為一些要點記錄,詳細請參考《計算機網路(第七版)》謝希仁 tcp 可靠傳輸的原理
在網路 tcp報文段首部結構這篇部落格中,介紹了tcp的報文頭結構,本文介紹tcp的可靠傳輸如何實現及與報文頭結構的關係。報文頭如下 tcp可靠傳輸的原理是什麼?重傳。包丟失,導致傳送方一直沒收到接收方的回包 包損壞,接收方返回nak,或者接收方的回包本身被損壞 需要用到tcp報頭第五行的16位校驗...
TCP 可靠傳輸的工作原理
感謝原作者 tcp 可靠傳輸的工作原理 arq automatic repeat request 自動重傳請求 全雙工通訊的雙發既是傳送方也是接收方。下面為了討論問題的方便,我們僅考慮a傳送資料而b接受資料並傳送確認。因此a就做傳送方,b叫做接收方。因為這裡是討論可靠傳輸的原理,因此把傳送的資料單元...
TCP可靠傳輸的工作原理
1.1.簡介 1.2.確認資料報丟失和遲到 記住一點 只要沒有告訴我你收到了,就表明你沒收到,我就要重發。1.3.可靠通訊的實現 1.4.通道利用率 停止等待協議的優點是簡單,但缺點是通道利用率太低。可以到這樣通道的利用率u是很低的。1.5.流水線傳輸 由以上公式可知,只要提高傳送資料報時間td就可...