TCP協議是如何確保可靠傳輸的?

2021-10-10 06:05:41 字數 1240 閱讀 9170

關於「tcp協議如何確保可靠傳輸」這個問題,網上的資料參差不齊。近期開始在圖書館讀一些教材,帶著問題讀了以下書目的關於tcp的章節,總結記錄了下來。

因而以上3點,可靠傳輸的重擔交予到了tcp之上。

為了實現可靠傳輸的目的,tcp使用4個解決方案:面向連線的傳輸機制、超時重傳控制、可變滑動視窗流量控制、 擁塞控制。

使用了三次握手、四次揮手,這個比較常見,大家一般都熟悉了,就不冗餘贅述了。

校驗和,確認應答(ack),序列號。

並對重複無效的ack進行處理,收下後並丟棄,實現自動重傳請求。

當報文發出後在一定的時間內未收到接收方的確認,傳送方就會進行重傳。每傳送乙個分組,就設定乙個超時重傳計時器,當收到對方返回的ack,就撤銷已設定的超時計時器。為實現這一步,有三個注意點:

視窗分為傳送視窗和接收視窗。簡單而言,接收方把能接受的資料大小(接受視窗大小),通過ack反饋予傳送方,從而設定協調傳送內容大小。細節有以下幾點:

擁賽控制的演算法有四種:慢開始、擁塞避免、快重傳和快恢復。

擁塞視窗初始值 = 1至兩個傳送方最大報文段的數值;

擁塞視窗每次增加量 = min(新收到確認報文的位元組數,傳送方最大報文段的數值)。

每經過乙個rtt就滑動視窗大小就只加1;

例如,當傳送過程中m3資料報丟失,接收方只收到了m2與m4資料報時,接收方連續返回3個m2的ack予傳送方(提示傳送方漏了m3小兄弟);

傳送方收到3個連續的m2的ack後,立即重傳m3資料報。

設定乙個ssthresh作為使用擁塞避免演算法的起始點,通過這個ssthresh值為滑動視窗最大門限值的一半。

理解以上四個演算法思路,看下面這個圖就輕而易舉了:

總結:tcp因為位於傳輸層,承上啟下,解決下層網路層的不可靠問題,為會話層提供提供可靠連線;並實現對udp使用的互為補充。

tcp可靠性主要通過面向連線的傳輸機制、超時重傳控制、可變滑動視窗流量控制、 擁塞控制實現。

TCP協議如何實現可靠傳輸

1.可靠傳輸的工作原理 停止等待協議 1.使用確認和重傳機制,我們就可以在不可靠的傳輸網路上實現可靠的通訊 2.這種可靠傳輸協議常稱為自動重傳請求arq automatic repeat request 3.arq表明重傳的請求是自動進行的,接收方不需要請求傳送重傳某個出錯的分組。2.停止等待協議的...

TCP 協議如何保證可靠傳輸

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

TCP協議如何保證可靠傳輸

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