TCP協議如何來保證傳輸的可靠性和資料的順序性

2021-08-21 23:53:57 字數 1094 閱讀 9208

tcp提供一種面向連線、可靠的位元組流服務。

使用tcp的應用(服務端和客戶端)在彼此交換資料之前必須先建立乙個tcp三次握手連線。在乙個tcp連線中,僅有兩方進行彼此通訊。注意廣播和多播不能用於tcp。

tcp通過以下方式來提供可靠性:

1》應用資料被分割成tcp認為最適合傳送的資料塊。這和udp完全不同,應用程式產生的資料報長度將保持不變(將資料截斷為合理的長度)

2》當tcp發出乙個段後,它啟動乙個定時器。等待目的端確認收到這個報文段。如果不能及時收到乙個確認,將重發這個報文段。(超時重發)

3》當tcp收到發自tcp連線另一端資料,它將傳送乙個確認。這個確認不是立即傳送,通常推遲幾分之一秒用來對包的完整性進行校驗。

4》tcp將保持它首部和資料的檢驗和。這是乙個端到端的檢驗和,目的是檢測資料在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,tcp將丟棄這個報文段和不確認收到此報文段。 (校驗出包有錯,丟棄報文段,不給出響應,tcp傳送資料端,超時時會重發資料)。

5》既然tcp報文段作為ip資料報來傳輸,而ip資料報的到達可能會失序,因此tcp報文段的到達也可能會失序。如果必要,tcp將對收到的資料進行重新排序,將收到的資料以正確的順序交給應用層。 (對失序資料進行重新排序,然後才交給應用層)。

6》既然ip資料報會發生重複,tcp的接收端必須丟棄重複的資料。(對於重複資料,能夠丟棄重複資料)。

7》tcp還能提供流量控制。tcp連線的每一方都有固定大小的緩衝空間。tcp的接收端只允許另一端傳送接收端緩衝區所能接納的資料。這將防止較快主機致使較慢主機的緩衝區溢位。(tcp可以進行流量控制,防止較快主機致使較慢主機的緩衝區溢位)tcp使用的流量控制協議是可變大小的滑動視窗協議。

滑動視窗協議機制建議參見:

8》位元組流服務

兩個應用程式通過tcp連線交換8bit位元組構成的位元組流。tcp不在位元組流中插入記錄識別符號。我們將這稱為位元組流服務(bytestreamservice)。

tcp對位元組流的內容不作任何解釋:: tcp對位元組流的內容不作任何解釋。tcp不知道傳輸的資料字節流是二進位制資料,還是ascii字元、ebcdic字元或者其他型別資料。對位元組流的解釋由tcp連線雙方的應用層解釋。

參考文章:

1、2、

TCP協議如何來保證傳輸的可靠性

tcp提供一種面向連線的,可靠的位元組流服務 什麼是位元組流服務 tcp不在位元組流中插入記錄標誌符就被稱為是位元組流服務 tcp對位元組流的處理方式 tcp對位元組流的內容不做任何解釋,因為tcp分不清傳輸的是哪種型別的資料 對位元組流的解釋是由tcp連線雙方的應用層來解釋的 tcp的這種對位元組...

TCP 協議如何保證可靠傳輸

一 綜述 1 確認和重傳 接收方收到報文就會確認,傳送方傳送一段時間後沒有收到確認就重傳。2 資料校驗 3 資料合理分片和排序 udp ip資料報大於1500位元組,大於mtu.這個時候傳送方ip層就需要分片 fragmentation 把資料報分成若干片,使每一片都小於mtu.而接收方ip層則需要...

TCP協議如何保證可靠傳輸

一 可靠傳輸的要求 可靠的傳輸應該滿足下面兩個要求 1 傳輸的通道不產生差錯 2 保證傳輸資料的正確性,無差錯 不丟失 不重複 並且按序到達。這裡有兩層意思,一是能夠正確地傳輸資料,二是接收方能夠及時處理傳送方傳送的資料。二 可靠傳輸的工作原理 tcp為了提供可靠傳輸 1 首先,採用三次握手來建立t...