TCP傳輸的可靠性及滑動窗口協議

TCP不可靠的表現:

    出錯——通過校驗和解決;

    丟包——超時重傳+確認機制解決;

    失序、重複——通過TCP頭部的序號解決;

TCP如何保證傳輸的可靠性?

1.應用數據被分割成TCP認爲最合適發送的數據塊,稱爲段,傳遞給IP層。

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

3.當TCP收到發自TCP連接另一端的數據,它將發送一個確認。這個確認不是立即發送,通常將推遲幾分之一秒。

4.TCP將保持它首部和數據的校驗和。這是一個端到端的校驗和,目的是檢測數據在傳輸過程中的任何變化,如果收到段的檢驗和有差錯,TCP將丟棄這個報文段並且不確認(導致對方超時重傳)

5.TCP承載於IP數據報來傳輸,而IP數據報的到達可能會失序,因此TCP報文段的到達也可能會失序。TCP將對收到的數據進行重新排序。

6.IP數據報會發生重複,TCP的接收端必須丟掉重複的數據。

7.TCP還能提供流量控制。TCP連接的每一方都有一定的緩衝空間。


關於滑動窗口協議:

1.用於流量控制,既可用於鏈路層,也可用於傳輸層;

2.鏈路層與TCP的滑窗不同在於:前者以幀爲單位,後者以字節爲單位

3.如何確定接收窗口的大小:TCP的首部有一個16位的窗口大小數據,它可以確定接收窗口的大小,那麼發送窗口又可以根據接收窗口的大小來確定。二者的大小要配合着來,並不是越大越好。


更多關於TCP的可靠性傳輸,流量控制和擁塞控制,下面這篇文章給出了更詳細的說明。

轉自:點擊打開鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章