1. 程式人生 > >TCP通過哪些措施,保證傳輸可靠

TCP通過哪些措施,保證傳輸可靠

一秒 主機 長度 過程 控制 csdn 程序 滑動窗口協議 clas

TCP是通過什麽方式來提供可靠傳輸的 (合理截斷數據包,超時重發,校驗,失序重新排序,能夠丟棄重復數據,TCP可以進行流量控制)

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使用的流量控制協議是可變大小的滑動窗口協議。
字節流服務:兩個應用程序通過TCP連接交換8bit字節構成的字節流。TCP不在字節流中插入記錄標識符。我們將這稱為字節流服務(bytestreamservice)。
TCP對字節流的內容不作任何解釋:TCP對字節流的內容不作任何解釋。TCP不知道傳輸的數據字節流是二進制數據,還是ASCII字符、EBCDIC字符或者其他類型數據。對字節流的解釋由TCP連接雙方的應用層解釋。
轉自:http://blog.csdn.net/hbhhww/article/details/8216541

TCP通過哪些措施,保證傳輸可靠