TCP可靠傳輸

TCP是通過什么方式來提供可靠傳輸的

合理截斷數據包,超時重發,校驗,失序重新排序,能夠丟棄重復數據,TCP可以進行流量控制

TCP提供一種面向連接的、可靠的字節流服務。

面向連接:意味著兩個使用TCP的應用(通常是一個客戶和一個服務器)在彼此交換數據之前必須先建立一個TCP連接。在一個TCP連接中,僅有兩方進行彼此通信。廣播和多播不能用于TCP。

TCP通過下列方式來提供可靠性:

  1. 應用數據被分割成TCP認為最適合發送的數據塊。這和UDP完全不同,應用程序產生的數據報長度將保持不變。 (將數據截斷為合理的長度)
  1. 當TCP發出一個段后,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段。 (超時重發)
  1. 當TCP收到發自TCP連接另一端的數據,它將發送一個確認。這個確認不是立即發送,通常將推遲幾分之一秒。 (對于收到的請求,給出確認響應,之所以推遲,可能是要對包做完整校驗)
  1. TCP將保持它首部和數據的檢驗和。這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到此報文段(希望發端超時并重發)。 (校驗出包有錯,丟棄報文段,不給出響應,TCP發送數據端,超時時會重發數據)
  1. 既然TCP報文段作為IP數據報來傳輸,而IP數據報的到達可能會失序,因此TCP報文段的到達也可能會失序。如果必要,TCP將對收到的數據進行重新排序,將收到的數據以正確的順序交給應用層。
    (對失序數據進行重新排序,然后才交給應用層)
  1. 既然IP數據報會發生重復,TCP的接收端必須丟棄重復的數據。
    (對于重復數據,能夠丟棄重復數據)

  2. TCP還能提供流量控制。TCP連接的每一方都有固定大小的緩沖空間。TCP的接收端只允許另一端發送接收端緩沖區所能接納的數據。這將防止較快主機致使較慢主機的緩沖區溢出。
    (TCP可以進行流量控制,防止較快主機致使較慢主機的緩沖區溢出)
    TCP使用的流量控制協議是可變大小的滑動窗口協議。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 傳輸層-TCP, TCP頭部結構 ,TCP序列號和確認號詳解 TCP主要解決下面的三個問題 1.數據的可靠傳輸...
    抓兔子的貓閱讀 4,555評論 1 46
  • 一、綜述 1、確認和重傳:接收方收到報文就會確認,發送方發送一段時間后沒有收到確認就重傳。 2、數據校驗 3、數據...
    kexinJiao閱讀 4,518評論 0 0
  • 18.1 引言 TCP是一個面向連接的協議。無論哪一方向另一方發送數據之前,都必須先在雙方之間建立一條連接。本章將...
    張芳濤閱讀 3,432評論 0 13
  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,096評論 0 8
  • 1.這篇文章不是本人原創的,只是個人為了對這部分知識做一個整理和系統的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,137評論 6 174