計算機網路(5 10)運輸層 選擇確認SACK

2021-09-22 07:46:13 字數 780 閱讀 3811

問題:若收到的報文段無差錯,只是未按序號,中間還缺少一些序號的資料,那麼能否設法只傳送缺少的資料而不重傳已經正確到達接收方的資料? 答案是可以的。選擇確認sack (selective ack) 就是一種可行的處理方法。

tcp的接收方在接收對方傳送過來的資料字節流的序號不連續,結果就形成了一些不連續的位元組塊。

和前後位元組不連續的每乙個位元組塊都有兩個邊界:左邊界和右邊界。

第乙個位元組塊的左邊界 l1 = 1501,但右邊界 r1 = 3001。左邊界指出位元組塊的第乙個位元組的序號,但右邊界減 1 才是位元組塊中的最後 乙個序號。

第二個位元組塊的左邊界 l2 = 3501,而右邊界 r2 = 4501。

接收方收到了和前面的位元組流不連續的兩個位元組塊。如果這些位元組的序號都在接收視窗之內,那麼接收方就先收下這些資料,但要把這些資訊準確地告訴傳送方,使傳送方不要再重**送這些已收到的資料。

rfc 2018 的規定:如果要使用選擇確認,那麼在建立tcp連線時,就要在tcp首部的選項中加上「允許sack」的選項, 而雙方必須都事先商定好。

如果使用選擇確認,那麼原來首部中的「確認號字 段」的用法仍然不變。只是以後在tcp報文段的首部中都增加了sack 選項,以便報告收到的不連續的位元組塊的邊界。

由於首部選項的長度最多只有 40 位元組,而指明乙個邊界就要用掉4位元組,因此在選項中最多只能指明4個位元組塊的邊界資訊。另還需兩個位元組,乙個位元組指明是sack選項,乙個位元組指明此選項占用的位元組數。

計算機網路 運輸層

問題 一 運輸層為相互通訊的的應用程序提供邏輯通訊 問題二 埠和套接字的意義 問題三 理解udp和tcp協議 問題四 在不可靠的網路上實現可靠傳輸的工作原理 問題五 tcp的滑動視窗 流量控制 擁塞控制和連線管理 1 埠 應用層所有的應用程序都可以通過運輸層傳送到ip層,這就是復用 運輸層從ip層收...

計算機網路 運輸層

運輸層協議作用於端系統,為執行在不同主機上的程序提供了邏輯通訊,將主機間的交付擴充套件到程序間交付。該層的分組稱為segment 報文段 多路復用 主機把不同套接字 每生成乙個套接字同時分配乙個埠號 收集的資料封裝後生成報文段,傳送給網路層 多路分解 將運輸層報文段的不同資料 通過套接字的埠號 交付...

計算機網路 運輸層

運輸層協議為執行在不同主機上的應用程序之間提供了邏輯通訊 logic communication 功能。運輸層協議是在端系統中而不是在路由器中實現的 在傳送端,運輸層將從傳送應用程式程序接收到的報文轉換成運輸層分組 運輸層報文段,segment 實現的方法 可能 是將應用報文劃分為較小的塊,並為每塊...