TCP連接建立與傳輸
1.主機 A 與主機 B 使用 TCP 傳輸數據,A 是 TCP 客戶,B 是 TCP 服務器。假設有512B 的數據要傳輸給 B,B 僅給 A 發送確認;A 的發送窗口 swnd 的尺寸為 100B,而 TCP 數據報文段每次也攜帶 100B 的數據載荷;發送方的初始序號為 100,接收方的初始序號為 200;在 A 和 B 建立 TCP 連接的過程中,A 給 B 發送的第 2 個 TCP 報文段不攜帶數據載荷。從 TCP 連接建立開始到 TCP 連接釋放為止的整個過程中,試回答以下問題:
(1)A 給 B 發送的第 1 個 TCP 報文段首部中的 SYN 標志位和序號 seq 字段的取值分別是什么?
(2)B 給 A 發送的第 1 個 TCP 報文段首部中 SYN 標志位、ACK 標志位、序號 seq字段、確認號 ack 字段的取值分別是什么?
(3)A 給 B 發送的第 2 個 TCP 報文段中 ACK 標志位、序號 seq 字段、確認號 ack的取值分別是什么?
(4)A 給 B 發送的第 8 個 TCP 報文段首部中 ACK 標志位、序號 seq 字段、確認號ack 字段的取值分別是什么?該報文段的數據載荷長度是什么?
考題提煉:主機A(序號初始100)與B(序號初始200)建立TCP連接并傳輸512B數據,窗口大小100B。
解答:
(1). 第一次握手(A→B):
- SYN=1(建立連接)
- seq=100(初始序號)
- 答案:SYN=1, seq=100
(2) 第二次握手(B→A):
- SYN=1, ACK=1(確認)
- seq=200(B的初始序號)
- ack=101(期望A下次發送的序號)
- 答案:SYN=1, ACK=1, seq=200, ack=101
(3) 第三次握手(A→B):
- ACK=1(確認B的SYN)
- seq=101(A的下一個序號)
- ack=201(期望B下次發送的序號)
- 答案:ACK=1, seq=101, ack=201
(4). 數據傳輸(第8個報文段):
- ACK=1(持續確認)
- seq=601(A已發送500B數據:100B×5段)
- ack=202(B未發送數據,維持初始期望)
- 數據載荷=12B(512B-500B)
- 答案:ACK=1, seq=601, ack=202;數據長度=12B