1單選(2分)
考慮一個RTT 爲 20 ms的 TCP 連接。假設網絡容量是 10 Mbps ,數據段長是 1000 Bytes。如果要充分利用網絡容量,所需的滑動窗口大小是多少?
A.400 kilobits
B.200 kilobits
C.25000 packets
D.400 packets
【B】B、最佳窗口大小 W = 2BD = B * RTT (其中 D 是單向延遲, RTT = 2D)。對於這個問題,W = 0.02 * 10000000 位(bits) = 200kbits = 25kBytes=25 packets
2單選(2分)
考慮一個在有 20 millisecs 往返時間路徑上的TCP流。假設它處於超過閾值的增大階段,在時間 t = 100ms與 t = 120ms 間傳送10個數據段。流在t = 140ms和 t = 160ms之間傳輸的數據段預期有多少(假設在此階段沒有數據段丟失)?
A.12
B.40
C.11
D.20
【A】A、在超過閾值的階段,每1 個RTT內成功的傳輸,會讓擁塞窗口值大小增加1
3單選(2分)
SYN 數據段佔用多少單位 (或字節) 的序列號空間?(也就是說,以下哪一個序列號的增量是SYN的)?
A.2
B.1
C.0
D.最大段大小
【B】B、使用在 TCP 傳輸開始的SYN 數據段佔用序列空間一個單位 (或字節)。如果 SYN 數據段有序列號爲 1000, TCP 點傳輸的下一個數據段的序列號的 1001。
4單選(2分)
設x 和 y 是接收端發送的兩個連續的數據段攜帶的累積ACKs,x 在 y 之前發送。設與這兩個數據段相關聯的數據有效載荷的大小爲 s。以下陳述中哪個是正確的?
A.x < = y
B.y < = x + s
C.x < y
D.y > = x + s
【A】A、累積的ACK 數量不嚴格單調遞增。如果中間有丟包現象,兩次累計確認的值應該相當,即x=y。比如連續到達的兩個段是x和x+s,當兩個連續的段到達,那麼會送的ack應該是x、x+s=y。
5單選(2分)
TCP和UDP的著名端口號的範圍是多少?
A.0 to 255
B.0 to 1023
C.256 to 1023
D.1024 to 49151
【B】 B、端口號被分成了三段,第一段即是著名端口號,範圍是0 - 1023.
6單選(2分)
假設一個 TCP 流在慢啓動階段,k 個數據段在 t 與 t + RTT 之間被髮送。假設仍然保持在慢啓動階段,預期有多少個數據段在 t + RTT 和t + 2 * RTT 發送?
A.k
B.2k
C.2^k
D.k+1
【B】B、在慢啓動階段,擁塞窗口每 RTT增加一倍。(忽略上TCP 功能上的交互,如延遲 ACKs
7單選(2分)
主機甲與主機乙之間建立了一個TCP連接,主機甲向主機乙發送了3個連續的TCP段,分別包含300B,400B和500B的有效載荷,第3個段的序號爲900,若主機乙僅正確收到第1和第3個段,則主機乙發送給主機甲的確認序號是多少?
A.1200
B.300
C.500
D.1400
【C】 C、從 “第3個段的序號爲900 “,可以推斷出初始序列號是:900-(300+400)=200,所以,第二個數據段的序列號應該是200+300=500。第二個數據段沒有被B正確接收,所以B的ACK=500,告訴A從500序列號開始傳輸。
8單選(2分)
假設 TCP 接收端發送一個10000 的 ACK ,WIN字段設置爲 4000。下列哪個選項最好地描述了接收端狀態?
A.接收端預期的下一個數據是 10000 序列號,並且它具有的緩衝空間可以用來接收到包括 13999 序列號的數據
B.接收端在序列空間(12000~15999)的任何位置都可接收4000字節的 新數據
C.接收端告訴發送端,當它接收到消息時它可能會發送多於 4000 字節的數據 (按序列號順序)
D.接收端的緩衝空間可以用來接收到序列號4000的數據
【A】A、接收端發送的這個信息表示,期待發方從10000開始發送,最多能發40000字節,即10000~13999編號的字節都可發送。B明顯不對,大過接收端的處理能力 B、序號不對 D、意思不正確,4000指的是窗口大小,而非序列號。
9多選(2分)
下列哪個信息不是TCP端點發送的數據段頭部中的一部分?
A.目的地 IP 地址
B.在 TCP 流中接收數據的端點中的可用緩衝空間
C.數據段大小
D.端點接收到的數據段中的目標端口
【AC】A、不對,這是分組頭部內容 B、是WindowSize C、不對,段頭部中只有段頭長度字段 D、目的端口
10判斷(2分)
TCP提供了面向連接的數據傳輸服務,保證了每一個字節的絕對可靠。【錯誤】
【解析】大部分情況是可以可靠傳輸的,但是也有可能出現一些特例,比如校驗和驗不出來的錯誤。