確認應答機制能夠保證tcp協議的可靠性。
主機a傳送的第乙個tcp資料報中的序列號是1,傳送的長度是1000個位元組,說明1~1000個位元組都傳送過去了。1001表示小於1001序號的資料都已經到達接收端,接下來主機b就應該從1001這個序號開始傳送。
確認序號表示的含義:確認序號之前的資料都已經正確被接收到,傳送方應該從確認序號的位置繼續進行傳送。
為了防止資料報丟失,當tcp傳送乙個報文時,就會啟動重傳計時器。當傳送端沒有收到接收端的確認時,此時就會重新傳輸資料。
傳送方丟包:
主機a傳送資料給主機b之後, 可能因為網路擁堵等原因, 資料無法到達主機b; 如果主機a在乙個特定時間間隔內沒有收到b發來的確認應答, 就會重新傳送資料。
接收方丟包:
主機a未收到主機b傳送的確認應答,也可能是因為ack丟失。1~1000的資料在主機b這邊,出現了兩次,主機b收到很多重複資料,會自動按照訊息的序號進行去重。
超時的時間如何確定?最理想的情況下, 找到乙個最小的時間, 保證 「確認應答一定能在這個時間內返回」。但是這個時間的長短, 會隨網路環境的不同而不同。如果超時時間設定太長, 會影響整體的重傳效率;如果超時時間設定太短, 有可能會頻繁傳送重複的包。
tcp為了保證無論在任何環境下都能比較高效能的通訊,會動態計算這個最大超時時間。
linux中(bsd unix和windows也是如此),超時以500ms為乙個單位進行控制,,每次判定超時重發的超時時間都是500ms的整數倍。如果重發一次之後, 仍然得不到應答, 等待 2* 500ms 後再進行重傳。如果仍然得不到應答,等待 4* 500ms 進行重傳。依次類推, 以指數形式遞增。累計到一定的重傳次數, tcp認為網路或者對端主機出現異常, 強制關閉連線。
TCP協議 TCP報頭,確認應答機制,超時重傳
tcp協議段格式 tcp報頭各部分意義 urg 緊急指標是否有效,當該標誌位為1時,表示有緊急訊號需要處理 ack 確認號是否有效 psh 提示接收端將接受緩衝區中的資料讓應用層讀走 涉及生產者消費者模型 rst 對方要求重新建立連線,把攜帶rst標識的稱為復位報文段,當連線建立異常時,重新建立連線...
TCP超時重傳機制
2008 06 23 11 00 tcp協議在能夠傳送資料之前就建立起了 連線 要實現這個連線,啟動tcp連線的那一方首先將傳送乙個syn資料報。這只是乙個不包含資料的資料報,然後,開啟syn標記。如果另一方同時在它收到syn標記的埠通話,它將發回乙個syn ack syn和ack標誌位都被開啟,並...
CAN匯流排 ACK應答機制分析
應答場長度為 2 個位,包含應答間隙 ack slot 和應答界定符 ack delimiter 在應答場裡,傳送站傳送兩個 隱性 位。當接收器正確地接收到有效的報文,接收器就會在應答間隙 ack slot 期間 傳送 ack 訊號 向傳送器傳送一 顯性 的位以示應答。can的傳送是個雙向互動過程,...