(9 分)主机 A 向主机 B 连续发送了 3 个 TCP 报文段。第 1 个报文段的序号为 90,第 2 个报文段的序号为 120,第 3 个报文段的序号为 150。请回答:
(1) 第 1、2 个报文段携带了多少字节的数据? (2) 主机 B 收到第 2 个报文段后,发回的确认中的确认号应该是多少? (3) 如果主机 B 收到第 3 个报文段后,发回的确认中的确认号是 200,试问 A 发送的第 3 个报文段中的数据有多少字节? (4) 如果第 2 个报文段丢失,而其他两个报文段正确到达了主机 B,那么主机 B 在第 3 个报文段到达后,发往主机 A 的确认报文中的确认号应该是多少?
[tag_link]
**【答案】** (1) 第 1 个报文段携带 30 字节数据,第 2 个报文段携带 30 字节数据。 (2) 确认号为 150。 (3) 第 3 个报文段中的数据有 50 字节。 (4) 确认号为 120。
**【解析】** (1) TCP 序号表示数据字节的编号。第 1 个报文段序号为 90,第 2 个报文段序号为 120,因此第 1 个报文段的数据字节序号范围为 90 至 119(共 120-90=30 字节)。同理,第 2 个报文段序号为 120,第 3 个报文段序号为 150,因此第 2 个报文段的数据字节序号范围为 120 至 149(共 150-120=30 字节)。 (2) 主机 B 收到第 2 个报文段后,已正确接收序号 90 至 149 的数据,期望收到的下一个字节序号为 150,因此确认号为 150。 (3) 第 3 个报文段序号为 150,确认号为 200 表示主机 B 期望收到的下一个字节序号为 200,因此第 3 个报文段的数据字节序号范围为 150 至 199(共 200-150=50 字节)。 (4) 第 2 个报文段丢失,主机 B 只正确收到第 1 个报文段(序号 90 至 119),期望的下一个字节序号为 120。即使收到第 3 个报文段(序号 150 起),由于数据不连续,TCP 采用累积确认,主机 B 仍发送确认号 120,表示等待序号 120 的数据重传。