TCP如何保證訊息順序以及可靠性到達

2021-09-06 03:30:34 字數 1776 閱讀 2370

tcp 如何保證訊息的順序以及可靠性到達,以及 tcp 的流量控制,擁塞控制

tcp 的可靠性傳輸工作原理:

(1)、停止等待協議

(2)、連續 arq 協議

tcp 可靠性傳輸的實現:

(1)、以位元組為單位的晃動視窗

(2)、超時重傳的時間選擇

(3)、選擇確認 sack

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 連線交換 8 bit 位元組構成的位元組流。tcp 不再位元組流中插入記錄識別符號。我們將這成為位元組流服務。

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

tcp保證訊息順序:

大家都知道tcp提供了最可靠的資料傳輸,它給傳送的每個資料報做順序化(這看起來非常繁瑣)。然而,如果tcp沒有這樣繁瑣的操作,那麼,可能會造成更多的麻煩。如造成資料報的重傳,順序的顛倒甚至資料報的丟失等。那麼 tcp 是通過怎樣的方式來保證 順序化的資料傳輸呢 ?

(1)、為了保證資料的可靠傳遞,傳送方必須把自己已傳送的資料保留在緩衝區;

(2)、並未每個已傳送的資料報保留乙個超時定時器;

(3)、如果在定時器超時之前接收到了來自對方的應答資訊(可能是對本包的應答,也可能是對本包後續包的應答),則釋放該資料報占用的緩衝區。

(4)、否則,重傳該資料報,直到收到應答或重傳次數超過規定的最大次數為止。

(5)、接收方收到資料報後,先進行 crc 校驗,如果正確,則把資料交給上層協議,然後給傳送方傳送乙個累計應答包,表面該資料已經收到,如果接收方也有資料要傳送給傳送發,應答包也可放在資料報中捎帶過去。

參考部落格:

TCP如何保證訊息順序以及可靠性到達

1 停止等待協議 2 連續arq協議 1 以位元組為單位的滑動視窗 2 超時重傳時間的選擇 3 選擇確定sack 面向連線 意味著兩個使用tcp的應用 通常是乙個客戶和乙個伺服器 在彼此交換資料之前必須先建立乙個tcp連線。在乙個tcp連線中,僅有兩方進行彼此通訊。廣播和多播不能用於tcp。1 應用...

TCP如何保證可靠性

重傳機制 針對資料報丟失或者出現定時器超時 確認應答 停止等待協議,傳送之後等待收到應答。序列號 針對資料報到達接收端主機順序亂掉 流量控制 針對避免網路擁堵時候 針對高效傳輸資料報的流動視窗的控制 擁塞控制 針對剛開始啟動的時候避免一下子傳送大量資料報而導致網路癱瘓的慢啟動演算法和擁塞控制。校驗和...

TCP 協議如何保證可靠傳輸

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