🏷️ 知识点:TCP首部
若大小为 12B 的应用层数据分别通过 1 个 UDP 数据报和 1 个 TCP 段传输,则该 UDP 数据报 和 TCP 段实现的有效载荷(应用层数据)最大传输效率分别是( )。
A. 37.5%, 16.7% B. 37.5%, 37.5% C. 60.0%, 16.7% D. 60.0%, 37.5%
[tag_link]
正确答案:D
应用层数据交给传输层时,放在报文段的数据部分。UDP 首部有 8B,TCP 首部最短有 20B。为了达到最大传输效率,通过 UDP 传输时,总长度为 20B,最大传输效率是 12B/20B=60% 通过 TCP 传输时,总长度为 32B,最大传输效率是 12B/32B=37.5%。
主机 H 通过快速以太网连接 Internet,IP 地址为 192.168.0.8,服务器 S 的 IP 地址为 211.68.71.80。H 与 S 使用 TCP 通信时,在 H 上捕获的其中 5 个 IP 分组如题 47-a 表所示。
请回答下列问题。
(1) 题 47-a 表中的 IP 分组中,哪几个是由 H 发送的?哪几个完成了 TCP 连接建立过程?哪几个在通过快速以太网传输时进行了填充?
(2) 根据题 47-a 表中的 IP 分组,分析 S 已经收到的应用层数据字节数是多少?
(3) 若题 47-a 表中的某个 IP 分组在 S 发出时的前 40 字节如题 47-b 表所示,则该 IP 分组到达 H 时经过了多少个路由器?
[tag_link]
1)由题 47-a 表看出,源 IP 地址为 IP 分组头的第 13~16 字节。表中 1、3、4 号分组的源 P 地址均为 192.168.0.8(c0a80 008H),所以 1、3、4 号分组是由 H 发送的。题 47-a 表中,1 号分组封装的 TCP 段的 SYN=1,ACK=0,seq=846b 41c5H;2 号分组封装的 TCP 段的 SYN=1,ACK=1,seq=e059 9fefH,ack=846b 41c6H;3 号分组装的 TCP 段的 ACK=1,seq=846b 41c6H,ack=e059 9ff0H,所以 1、2、3 号分组完成了 TCP 连接的建立过程。由于快速以太网数据帧有效载荷的最小长度为 46 字节,表中 3、5 号分组的总长度为 40(28H)字节,小于 46 字节,其余分组总长度均大于 46 字节。所以 3、5 号分组通过 以太网快速填充。
2)由 3 号分组封装的 TCP 段可知,发送应用层数据初始序号为 seq=846b 41c6H,由 5 号分组封装的 TCP 段可知,ack 为 seq=846b 41d6H,所以 S 己经收到的应用层数据的字节数为 846b 41d6H - 846b 41c6H = 10H = 16,所以 S 已经接收到了 16 个字节的应用层数据。
3)首先需要确定表 47-a 中的哪一个 IP 分组与表 47-b 中的 IP 分组相对应,这就要根据 IP 分组中的标识字段(第 5-6 个字节),观察可以判断表 47-a 编号为 5 的分组是与表 47-b 的分组相对应的,因为它们的标识字段都是 68H。若要判断 IP 分组经过多少个路由器就要观察 TTL 字段(第 9 个字节),发送前来自 S 的分组的 TTL 为 40H,H 接收到的分组的 TTL 为 31H,所以经过路由器的个数为 40H - 31H = 15。