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
- Python 網路資料傳輸協議 TCP 程式設計Python協議TCP程式設計
- TCP傳輸協議如何進行流量控制?TCP協議
- 傳輸層協議 TCP 和 UDP協議TCPUDP
- TCP/IP五層模型-傳輸層-TCP協議TCP模型協議
- 如何確保TCP包的有序傳輸?TCP
- 用python實現TCP協議傳輸功能PythonTCP協議
- 如何保證訊息佇列的順序性?佇列
- 如何看待鐳速傳輸的Raysync高速傳輸協議?協議
- 4種傳輸協議設定,檔案傳輸協議如何選擇?協議
- HTTPS是怎麼保證資料安全傳輸的?HTTP
- 網路協議之:基於UDP的高速資料傳輸協議UDT協議UDP
- 一文看懂https如何保證資料傳輸的安全性的HTTP
- 傳輸控制協議/網際網路協議(TCP / IP)是什麼意思?-VeCloud協議TCPCloud
- WebRTC:資料傳輸相關協議簡介Web協議
- DDTP 分散式資料傳輸協議白皮書分散式協議
- 計算機網路之八:TCP協議(2) TCP可靠傳輸的實現計算機網路TCP協議
- 無線模組透過TCP/IP協議實現與PC端的資料傳輸解析TCP協議
- Java入門:TCP協議傳送/接收資料實現JavaTCP協議
- TCP傳輸資料長度TCP
- Java中如何保證執行緒順序執行Java執行緒
- [RDMA] RDMA的不同操作是否保證順序?
- 資料通訊與網路 第五版第24章 傳輸層協議-TCP協議部分要點協議TCP
- Python 基於 TCP 傳輸協議的網路通訊實現PythonTCP協議
- 傳輸層協議協議
- Kafka 如何保證訊息消費的全域性順序性Kafka
- 無線通訊模組透過TCP/IP協議實現與PC端的資料傳輸TCP協議
- 串列埠通訊上位機資料傳輸協議串列埠協議
- 華為路由協議優先順序路由協議
- 一文讓你看懂,https如何保證資料傳輸的安全性HTTP
- 【傳輸協議】http協議GET與POST傳遞資料的最大長度能夠達到多少協議HTTP
- 分散式訊息佇列:如何保證訊息的順序性分散式佇列
- 超文字傳輸協議協議
- 不同順序InBoundHandler之間的資料傳遞
- 如何理解TCP/IP協議?TCP協議
- TCP中的資料是怎麼傳輸的?TCP
- 系列TCP/IP協議-TCP協議概述(011)TCP協議