非官方答案,本人已盡最大努力(包括參考官方答案),使結果正確,如有錯誤,請大佬指出
正文:
3.1~3.3節
R1
a.如果只是簡單想把信件送到,那么所有的頭部信息只需要一個目的地址就夠了,題目給出端口號四個字節,所有分組的頭部那就只需四個字節
此協議規定,運輸層的全部任務就是,將應用層的數據,切成最大1196字節的塊,把每一塊加上目的主機對應程序的端口號,並將得到的分組交付給網絡層
在接收方,運輸層將網絡層報文取回,去掉頭部信息,將數據拼接成應用層需要的信息,根據端口號交付給應用層即可
不過話說回來,沒有序號的話,運輸層應該不能將數據拼回來。。。所以剪切數據的活可以讓應用層完成,運輸層不接收超過1196字節的分組,這樣就更簡單了
反正要保證本層最簡單,把活給其他人干,或者干脆不干就行了
b.頭部加四個字節,源端口號,交付給應用層的時候把這個源端口號一起交付給應用層
c.眾所周知,運輸層生活在網絡邊緣,所以網絡核心的工作它不用干
R2
a.這些信一定要提供信的接收者信息,而不是題目說的不用,倒是信封上確實不用說明
在這個模型中,郵局是網絡層及其以下層次,負責收集分發的家庭成員是運輸層,其他家庭成員是應用層
就如同我們常做的,信封上只寫上了收件人的地址,而在新的開頭寫上收件人的名字,信的結尾寫上自己的名字
如果嚴格按照計算機網絡的工作范圍而言,這兩個名字並不是寫信的人寫上去的,而是負責收集分發的家庭成員為其填上的。
同樣,信封也是負責收集分發的家庭成員制作的,並且將信放入正確的信封,交給郵局
在接收方,負責收集分發的家庭成員拆開信封,讀取了信件開頭的收件人姓名,並將報文交付給收件人
b.不需要,郵局提供家到家的服務就行了
R3
y,x
R4
較高的時延對這些應用來說難以接受,而且他們可以接受一部分數據丟失
R5
答案說很多防火牆會阻止UDP,而放行TCP
但是不得不說,TCP由於其可靠的服務,是當前語音和圖像選擇它的主要理由,顯而易見,如果UDP足夠優秀,防火牆也不會設置成這個樣子。
R6
可能,在應用層完成UDP沒有提供而TCP提供了的服務
R7
報文段恐怕很難被描述成套接字,是或不是我就不回答了,建議如果英語不是差到跟我一樣,不要讀翻譯本
UDP報文首部包含了源端口號,而網絡層報文中包含了源IP,根據源端口號和源IP接收方可以分辨數據從哪里來
R8
既然是鏈接,那我姑且認為你是在問TCP吧
TCP的socket有四個標志字段:源端口號,源IP,目的端口號,目的IP
顯然這兩個請求含有不同的IP,所以發送的請求不會通過相同的套接字
這兩個套接字端口號的目的端口號都是80,源端口號不一定
3.4節
R9
序號是在討論rdt(reliable data transfer)2.0的時候引入的,背景是,下層信道可能造成數據損壞,除此之外完全可靠
當接收方收到一個完好的報文,它將發送一個ACK報文作為響應,然而,這個ACK報文可能在傳輸過程中損壞。
當發送方收到一個損壞的ACK報文,它無法分辨這是損壞的ACK還是NAK,所以,要么詢問接收方,這個到底是個啥,要么,重發報文
重新詢問的話,詢問報文有可能也會出問題,而且影響效率,所以發送方選擇了,接收到損壞的響應報文,就把數據重發一遍
然而對於接受方來說,它之前已經接收到了一份數據,下次應該接收下一份數據。
然而接收方下一次還是接收到了這一份數據,也就是說,在這種情況下,接收方根本不知道自己收到的是發送方第一次發送的,還是重發的數據
於是在報文中引入序號,使得接收方能夠分辨報文的是發送方第一次發送的,還是重發的
R10
在rdt2.0的基礎上,下層信道可能會丟包
這個時候需要設置計時器,來判斷下層信道有沒有丟包
R11
仍然需要
時延是否固定,已知與是否需要計時器沒有關系,但是會影響定時器設定的值及其運算過程
R12
a.五個分組全部重傳了
b.在第二個ACK到達時,第一個分組也就被確認到達了,毀掉第一個ACK沒有任何影響
c.發送窗口只有五,不能一次發送六個
R13
注意在這里沒有用到累計確認
a.只重傳了第一個分組
b.重傳了第二個分組
c.發送窗口只有五,不能一次發送六個
3.4節
R14
a.false
會發送一個沒有數據的報文來進行確認
b.false
\(rwnd = RcvBuffer - [LastByteRcvd - LastByteRead]\)
c.true
d.false
這條報文可能是重發
e.false
我認為應該是通過握手時確認的RcvBuffer 和數據傳輸時的最后發送的數據編號和最后確認的數據編號來確定的
但是答案給了true。。。
f.false
不是必定哦,之前的SampleRTT也有一定的權值
g.false
確認號用於確認自己接收的數據,而不是發出的
R15
a.20
b.90
R16
3個
第一段: seq = 43, ack =80;
第二段: seq = 80, ack = 44;
第三段:seq = 44, ack = 81
3.7節
R17
一開始這兩個TCP都將占有一個MSS的cwnd,隨后二者都將進入慢啟動,擁塞避免,快速恢復階段,具體的變化過程與RTT等其他因素有關,但是最后的傳輸速率都會相等,即R/2
R18
false
被設置成cwnd的一半