Linux TCP傳輸可靠性

2021-10-14 04:41:07 字數 1219 閱讀 3096

在物理網路上傳輸的資料:

幀頭+網路層協議(ip)+傳輸層協議報頭(tcp/udp)+應用層協議報頭(http)+使用者需要傳遞的資料+幀尾

tcp報頭是由:20個位元組的固定部分+40位元組的選項部分(可選)

確認號:確認機制+超時重傳機制(保證資料能夠完整地到達對方)

序號:進行排序和去重,保證到達的資料不亂序,不重複

16位冗餘校驗和:對tcp報頭和資料進行冗餘校驗,保證資料不被破壞

滑動視窗用來做流量控制,使得傳送方傳送的速率接收方接受資料的速率做匹配。防止傳送方傳送資料過快,而接收方來不及接受資料,而造成資料的丟失。

tcp報頭中的16位視窗大小是接收端填充的,來通告傳送方本端的接受緩衝區還可以接受多少位元組的資料。

傳送方可以根據接受的視窗大小還有接收端對資料的確認,將可傳送的資料的視窗向右移動。

如果收到36確認,並且傳送了46-51的資料,則視窗就會向右滑動

以上的這些機制僅僅是在通訊的兩端控制資料的可靠性,但是沒有讓傳送方去適配網路環境

用來控制傳送資料的速率與當前網路環境適配
四種演算法:

慢啟動擁塞避免

快速重傳

快速恢復

快速重傳:

傳送方不需要等待乙個報文段的超時時間段到達只要有下面的情況,就立即重傳需要的報文段:

收到三個連線的對同乙個報文段的連續確認,則立即重傳需要的報文段。

TCP 保證傳輸可靠性

tcp協議保證資料傳輸可靠性的方式主要有 計算方式 在資料傳輸的過程中,將傳送的資料段都當做乙個16位的整數。將這些整數加起來。並且前面的進製不能丟棄,補在後面,最後取反,得到校驗和。傳送方 在傳送資料之前計算檢驗和,並進行校驗和的填充。接收方 收到資料後,對資料以同樣的方式進行計算,求出校驗和,與...

udp如何實現可靠性傳輸?

包序號應用資料 型別保留 ack序號 控制資訊字段 說明控制資訊 000協議連線握手1 32位udt版本2 32位內部順序號3 32位mss 位元組 4 32位最大流量視窗大小 位元組 001保活 沒有010 應答,位 16 31 是應答序號1 32位包序號,先前接收到的包序號2 32位,rtt 微...

TCP如何保證可靠性傳輸

校驗和 在資料傳輸的過程中,將傳送的資料段都當做乙個16位的整數。將這些整數加起來。並且前面的進製不能丟棄,補在後面繼續相加,最後取反,得到校驗和。傳送方 在傳送資料之前計算檢驗和,並進行校驗和的填充。接收方 收到資料後,對資料以同樣的方式進行計算,求出校驗和,與傳送方的進行比對。注意 如果接收方比...