TCP協議如何保證資料的順序傳輸
TCP是一種面向連線的、可靠的基於位元組流服務。“面向連線”意味著使用TCP協議的應用在建立聯絡之前,彼此需要先建立TCP聯絡;而TCP協議確保傳輸過程中資料的順序性則體現其“可靠”的特性,具體如下:
TCP協議將資料切分為多個小片段(資料被劃分為合理長度),小片段由頭部(header)和資料(payload)組成,為了確保抵達資料的順序,TCP協議給每個片段的頭部(header)都分配了 序列號 ,方便後期按照序列號排序。
-
當某個片段按照順序傳送後,傳送方會將已傳送的資料片段暫時儲存在 緩衝區 內,併為每個已傳送的資料設定一個 時間區間 。
-
當接收方收到正確的符合順序的資料片段後,會優先對資料片段做完整檢驗,如確認無誤,再把資料片段交給上層協議,並給傳送方一個 TCP片段反饋資訊用來告知(ACK acknowledge)傳送方:我已經接收到這個片段了。這個TCP片段被稱為 ACK回覆 。舉個例子:傳送的第一個片段序列號為 T,其對應的ACK回覆則為T+1,也就是接收方要接收的下一個傳送片段的序列號。
假設在規定的時間區間之內傳送方收到接收方的 TCP片段反饋資訊,則傳送方可以釋放緩衝區的資料,如若超時未收到應答,傳送方則重新傳送資料,直到收到應答,或者重發資料次數達到上限為止。
TCP協議的種種機制保證了資料傳輸的順序,然而TCP報文段作為IP資料來傳輸,在IP資料包的到達可能會失序,因此TCP報文段的到達也存在失序的可能。特殊情況下,TCP將對收到的資料進行重新排列,確保順序正確後再交給應用層。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69925049/viewspace-2652755/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TCP傳輸協議詳解TCP協議
- HTTPS 如何保證資料傳輸安全HTTP
- TCP傳輸協議如何進行流量控制?TCP協議
- 傳輸層協議 TCP 和 UDP協議TCPUDP
- MongoDB 如何保證 oplog 順序?MongoDB
- Python 網路資料傳輸協議 TCP 程式設計Python協議TCP程式設計
- TCP/IP五層模型-傳輸層-TCP協議TCP模型協議
- Android使用Socket(Tcp/Udp)協議進行資料傳輸(傳輸大檔案)AndroidTCPUDP協議
- 如何保證訊息佇列的順序性?佇列
- 《Apache資料傳輸加密、證書的製作》——涉及HTTPS協議Apache加密HTTP協議
- 用python實現TCP協議傳輸功能PythonTCP協議
- TCP協議資料格式TCP協議
- 4種傳輸協議設定,檔案傳輸協議如何選擇?協議
- 如何看待鐳速傳輸的Raysync高速傳輸協議?協議
- 網路協議之:基於UDP的高速資料傳輸協議UDT協議UDP
- DDD sent event後 如何保證event的順序執行
- 無線模組透過TCP/IP協議實現與PC端的資料傳輸解析TCP協議
- Java中如何保證執行緒順序執行Java執行緒
- WebRTC:資料傳輸相關協議簡介Web協議
- DDTP 分散式資料傳輸協議白皮書分散式協議
- Socket開發框架之資料傳輸協議框架協議
- HTTPS是怎麼保證資料安全傳輸的?HTTP
- 傳輸控制協議/網際網路協議(TCP / IP)是什麼意思?-VeCloud協議TCPCloud
- 華為路由協議優先順序路由協議
- [RDMA] RDMA的不同操作是否保證順序?
- 傳輸層協議協議
- Java入門:TCP協議傳送/接收資料實現JavaTCP協議
- Kafka 如何保證訊息消費的全域性順序性Kafka
- 計算機網路之八:TCP協議(2) TCP可靠傳輸的實現計算機網路TCP協議
- 無線通訊模組透過TCP/IP協議實現與PC端的資料傳輸TCP協議
- 《TCP/IP詳解卷1:協議》第17、18章 TCP:傳輸控制協議(2)-讀書筆記TCP協議筆記
- 《TCP/IP詳解卷1:協議》第17、18章 TCP:傳輸控制協議(1)-讀書筆記TCP協議筆記
- 一文看懂https如何保證資料傳輸的安全性的HTTP
- TCP傳輸資料長度TCP
- 資料通訊與網路 第五版第24章 傳輸層協議-TCP協議部分要點協議TCP
- 串列埠通訊上位機資料傳輸協議串列埠協議
- 分散式訊息佇列:如何保證訊息的順序性分散式佇列
- 【傳輸協議】http協議GET與POST傳遞資料的最大長度能夠達到多少協議HTTP