TCP傳輸可靠性-排序、丟棄、重發

一、排序、順序發送、順序組裝

當進行一條數據發送的時候,首先,TCP會將這條數據拆分成不同的片段,然後把片段進行一個排序。然後把排序號的片段順序進行發送。

這樣,保證了傳輸的有序性。

 

二、丟棄、超時

在整個發送過程中,如果時間片沒有到達,或者時間片超時,客戶端是可以收到數據被丟棄或者超時的信息的。當客戶端知道丟棄或者超時信息,那麼,需要重新進行發送。

 

三、重發機制-定時器

如果在服務器端收到信息的時候,會定時發送已經收到的數據片。客戶端也一樣,在一定時間內沒有收到服務端回送的消息後,就認爲數據沒有被送達,會重新把數據發送一邊。

 

四、數據發送流程

右邊的發送方有5個數據片,首先會向接收方發送第一個數據片,序列號爲1,數據大小爲1460byte。

左邊接收方收到後會回送序列號1,確認號1261,確認數據無丟失地收到。

發送方此時指針會移動到2,發送數據包1461,數據大小爲1460的數據。此時數據被中斷了,沒有接收到發送方的反饋數據(雖然接收方成功接收到了數據,但是發給發送方的回送卻丟掉了)。

發送方繼續右移指針,陸續發送第3、4、5條數據,接收方也會陸續進行反饋。

發送方在超時時間內還沒有收到第2條數據的回送,就會重新發送第二條數據。

接收方在接收到重發的消息後,會向發送方反饋該數據已經收到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章