1. 程式人生 > >計算機網路自頂向下第三章習題

計算機網路自頂向下第三章習題

計算機網路第三章作業

R9:

接收方通過檢查序號可以判斷接收到的分組是新的資料還是一次重傳,這樣可以解決冗餘分組問題。

R10:

當在通道上發生丟包時,傳送方不知道是一個數據分組丟失還是一個ACK丟失,或者只是該分組或ACK過度延時。引入定時器是為了實現基於時間的重傳機制。如果在規定的時間內沒有收到分組或者該分組的ACK,則可能發生了丟包,則傳送方重傳該分組。

R14:

a. 錯誤。TCP要求主機B要傳送確認訊息,因為主機B不能隨資料捎帶確認,所以需要單獨傳送確認訊息。

b. 錯誤。rwnd表示接受快取中的空閒空間,是動態變化的。

c. 正確。

d. 錯誤。序號的設定不是以報文段為單位,而是以傳送的位元組流為單位。一個報文段的序號是該報文段中資料段的第一個位元組在位元組流中的編號 。

e. 正確。

f. 錯誤。對於該連線的TimeoutInterval由SampleRTT和EstimatedRTT共同決定。

g. 錯誤。接收方可能會發送重複的ACK,確認號可能還是38。

R15:

a. 第一個報文段中有20位元組的資料。因為TCP把資料看成一個無結構的但是有序的位元組流。因此TCP的序號是建立在傳送的位元組流上的。由第一個報文段序號為90,第二個報文段序號為110可推出第一個報文段中的資料大小為110 - 90 = 20 Bytes。

b. 若第一個報文段丟失,則傳送方會在一定時間後沒有收到接收方的反饋確認包,接受方此時會發送一個重複的ACK,在主機B發往主機A的確認報文中,確認號應該是90。

P22:

a. 傳送方的視窗大小N=4,假設在時刻t接收方期待的下一個有序分組的序號為k,則說明接收方已收到k-1號分組,並對之前收到的所有分組進行過確認。如果分組全部正確到達傳送方,則此時傳送方視窗內的報文序號是[k , k+N-1]。如果傳送方沒有收到所有應收到的ACK,此時傳送方視窗內報文序號為[k-N , k-1]。因此傳送方視窗內的報文序號可能是: [ k-4 , k-1 ],[ k-3 , k ],[ k-2 , k+1 ],[ k-1 , k+2 ],[ k , k+3 ]。

b. 由上題得到,傳送方傳送報文序號最小為[k-N , k-1],說明發送方已經收到了k-N-1的ACK確認,所以不會對k-N-1之前的分組再進行確認。所以ACK欄位的所有可能值為[ k-5 , k-1 ]。

P27:

a. 序號是207,源埠號是302,目的埠號是80。(207 = 127 + 80)

b. 如果第一個報文段在第二個報文段之前到達,在第一個到達報文段的確認中,確認號是207,源埠是80,目的埠號是302。

c. 如果第二個報文段在第一個報文段之前到達,在第一個到達報文段的確認中確認號是127。

d. 

 

P40:

a. TCP慢啟動執行時的時間間隔為[1 , 6]和[23 , 26]。

b. TCP擁塞避免執行時的時間間隔為[6 , 16]和[17 , 22]。

c. 在第16個傳輸輪迴之後報文段的丟失是根據3個冗餘ACK檢測出來的。因為擁塞視窗長度沒有降到1個MSS而是減半。

d. 在第22個傳輸輪迴之後報文段的丟失是根據超時檢測出來的。因為擁塞視窗長度降到了1個MSS。

e. 在第1個傳輸輪迴裡,ssthresh的初始值設定成32個MSS,因為在第6輪傳輸時到達了閾值32。然後擁塞視窗開始以線性速度爬升,直到在第16輪傳輸後出現3個冗餘ACK。

f. 在第18個傳輸輪迴裡,ssthresh的值被設定成21個MSS,因為當第16個週期丟包事件發生時,擁塞視窗值為42個MSS,所以ssthresh的值被設定成0.5 × cwnd = 21 × MSS。

g. 在第24個傳輸輪迴裡,ssthresh的值被設定成14.5個MSS,因為當第22個週期丟包事件第二次發生時,擁塞視窗值為29個MSS,所以ssthresh的值被設定成0.5 × cwnd = 14.5 × MSS。

h. 在前6個傳輸週期中已經發送了1 + 2 + 4 + 8 + 16 + 32 = 63 個報文段,第7個傳輸輪迴要傳送32 + 1 = 33個報文段,即第64 - 96個報文段,所以第70個報文段在第7個傳輸輪迴中傳送。

i. 在第26個傳輸輪迴時,擁塞視窗值為8個MSS,因此通過收到3個冗餘ACK檢測出有分組丟失時ssthresh的值被設定成0.5 × cwnd = 4 × MSS。擁塞視窗長度應當為4 + 3 = 7個MSS。

j. 假定使用TCP Tahoe(不管是發生超時指示的丟包事件,還是發生3個冗餘ACK指示的丟包事件,都無條件地將擁塞視窗減至1個MSS,並進入慢啟動階段),並假定在第16個傳輸輪迴收到3個冗餘ACK。在第19個傳輸輪迴,ssthresh的值被設定成21個MSS,因為當第16個週期丟包事件發生時,擁塞視窗值為42個MSS,所以ssthresh的值被設定成0.5 × cwnd = 21 × MSS。但是此時擁塞視窗值為1個MSS。

k. 第17個傳輸輪迴到第21個輪迴分別傳送了1 + 2 + 4 + 8 + 16 = 31個分組,第22個輪迴傳送分組為閾值21個,所以一共傳送了52個分組。