計算機網路第二次課上作業
阿新 • • 發佈:2018-11-10
題目一
簡要說明運輸層為了保證高吞吐量以及可靠傳輸的機制有哪一些?
解答
- 高吞吐量的機制
- 流水線技術
- 可靠資料傳輸機制:rdt
- 檢驗和
- 定時器(超時機制)
- 序號
- 確認ACK
- 否定確認NAK
- 視窗、流水線
- 重傳(GBN與SR)
- 附:
題目二
TCP如何控制流傳輸
解答
- 通過讓傳送方維護一個稱為接收視窗的變數來提供流量控制。通俗的說,接收視窗用於給傳送方一個只是---該接收方還有多少的可用的快取空間,因為TCP是全雙工通訊。
- 同時當主機B的接受視窗為0是,主機A繼續傳送只有一個位元組資料的報文段,這些報文段將會被接收方確認。最終快取將開始清空,並且確認報文裡將包含一個非0的rwnd值。
- 附
其中還有兩個變數為:
- LastByteRead:主機B上的應用從快取中讀取的資料流的最後一個位元組的編號
- LastByteRevd:從網路中到達的並且已經放入煮機B接收快取中的資料流的最後一個位元組的編號
題目三
TCP如何實現阻塞控制
解答
- TCP連線的每一端都是由一個接收快取、一個傳送快取和幾個變數組成。執行在傳送方的TCP擁塞控制機制跟蹤一個額外的變數,即擁塞視窗,表示為cwnd
- 所以由下式:
- LastByteSend - LastByteAcked <= min{cwnd, rwnd}
- 擁塞控制:加性增、乘性減(忽略慢啟動的階段)
- 控制模式:
- 慢啟動:
- 在慢啟動狀態時,cwnd的值以一個MSS開始並且每當傳輸的報文段首次被確認時就進行翻倍
- 慢啟動的結束事件有三個:
- 存在潮實指示的丟包事件,TCP傳送方將cwnd設定為1並重新開始慢啟動的過程
- 狀態變數 ssthresh 慢啟動閾值,當檢測到擁塞是,ssthresh設定為cwnd的一半,進入擁塞避免
- 當檢測到3個冗餘的ACK的時候進行快速重傳並進入快速恢復狀態
- 擁塞避免:
- 一旦進入擁塞避免,cwnd的值大約是上次遇到擁塞時的值的一半,然後呈小於等於線性增長
- 結束時間跟慢啟動是一樣的
- 快速恢復:
- 在快速恢復中,對因其TCP進入快速恢復的缺失報文段,對收到的每一個冗餘的ACK,cwnd的值增加一個MSS。
- 最終當對丟失報文段的一個ACK到達時,TCP在降低cwnd後進入擁塞避免狀態。
- 兩個不同的TCP版本:
- TCP Tahoe: 不管發生超時指示的丟包事件,還是3個冗餘ACK指示的丟包事件,都無條件的將其擁塞視窗減至1個MSS,並進入慢啟動階段
- TCP Reno:綜合了快速恢復
- 慢啟動:
- 附: