TCP如何保證可靠性傳輸

2021-08-27 08:57:06 字數 1977 閱讀 1821

校驗和

在資料傳輸的過程中,將傳送的資料段都當做乙個16位的整數。將這些整數加起來。並且前面的進製不能丟棄,補在後面繼續相加,最後取反,得到校驗和。

傳送方:在傳送資料之前計算檢驗和,並進行校驗和的填充。

接收方:收到資料後,對資料以同樣的方式進行計算,求出校驗和,與傳送方的進行比對。

注意:如果接收方比對校驗和與傳送方不一致,那麼資料一定傳輸有誤。但是如果接收方比對校驗和與傳送方一致,資料不一定傳輸成功

序列號

序列號:tcp傳輸時將每個位元組的資料都進行了編號,這就是序列號。

確認應答

tcp傳輸的過程中,每次接收方收到資料後,都會對傳輸方進行ack確認應答。也就是傳送ack報文。

這個ack報文當中帶有對應的確認序列號,告訴傳送方,接收到了多少資料,下一次的資料從哪個序列號開始發。

超時重傳

傳送方在傳送完資料後等待乙個時間,時間到達沒有接收到ack報文,那麼對剛才傳送的資料進行重新傳送.

這個等待時間是動態計算的,一般500ms為乙個單位進行控制。

重發一次後,仍未響應,那麼等待2*500ms的時間後,再次重傳。等待4*500ms的時間繼續重傳。以乙個指數的形式增長。累計到一定的重傳次數,tcp就認為網路或者對端出現異常,強制關閉連線。

連線管理

連線管理就是三次握手與四次揮手的過程

流量控制

如果傳送端的傳送速度太快,導致接收端的結束緩衝區很快的填充滿了。此時如果傳送端仍舊傳送資料,那麼接下來傳送的資料都會丟包,繼而導致丟包的一系列連鎖反應.

tcp根據接收端對資料的處理能力,決定傳送端的傳送速度,這個機制就是流量控制。

滑動視窗

實際上是接收端接收資料的緩衝區的還剩餘多少

接收端會在確認應答傳送ack報文時,將自己的即時視窗大小填入,並跟隨ack報文一起傳送過去。而傳送方根據ack報文裡的視窗大小的值的改變進而改變自己的傳送速度。如果接收到視窗大小為0,那       麼傳送方將停止傳送資料。並定期的向接收端傳送視窗探測資料段,讓接收端把視窗大小反饋傳送端

擁塞控制

為了解決資料擁堵的問題,

tcp引入了慢啟動的機制,在開始傳送資料時,

先傳送少量的資料探路

。探清當前的網路狀態如何,再決定多大的速度進行傳輸。這時候就引入乙個叫做

擁塞視窗

的概念

1.tcp連線初始化,將擁塞視窗cwind設定為1個報文段,即cwind=1;

2. 執行慢開始演算法,cwind按

指數規律增長

(最大報文段mss值的倍數),直到cwind == ssthresh時,開始執行擁塞避免演算法,cwind按

線性規律增長;

3. 當網路發生擁塞,把

ssthresh值更新為擁塞前ssthresh值的一半

,cwind重新

設定為1

,再按照 [2] 執行。

延遲應答

如果接收資料的主機⽴刻返回ack應答, 這時候返回的窗⼝可能⽐較⼩

可以在稍微等一會兒再進行應答(規定等待時間之內),因為處理埠對快取區的處理速度可能很快, 10ms之內就把剛收到的資料從緩衝區消費掉了;

這樣的延遲應答返回的視窗可能會更大

TCP如何保證傳輸可靠性

網路層 ip 出現很多問題,比如丟包 亂序 重複等。tcp怎麼確保可靠性呢?1 應用資料被分割成tcp認為最合適傳送的資料塊 2 當tcp發出乙個段後,它啟動乙個定時器,等待目的端確認收到這個報文段。如果不能及時收到乙個確認,將重發這個報文段。3 當tcp收到發自tcp連線另一端的資料,它將傳送乙個...

TCP如何保證傳輸可靠性

資料傳輸的可靠性主要可以分為以下幾個方面 校驗和將資料段分為多個16位的整數,進行相加 前面的進製補在後面,最後取反,得到校驗和 傳送方在傳送資料前計算校驗和,接收方收到資料後以同樣的方式計算 若校驗和不一致,則資料傳輸一定有誤 累積確認 ack 和序列號 seq 在進行tcp傳輸時,根據位元組對報...

TCP 保證傳輸可靠性

tcp協議保證資料傳輸可靠性的方式主要有 計算方式 在資料傳輸的過程中,將傳送的資料段都當做乙個16位的整數。將這些整數加起來。並且前面的進製不能丟棄,補在後面,最後取反,得到校驗和。傳送方 在傳送資料之前計算檢驗和,並進行校驗和的填充。接收方 收到資料後,對資料以同樣的方式進行計算,求出校驗和,與...