【发布时间】:2016-12-31 15:08:30
【问题描述】:
在 IP 网络中使用 IPv4 协议。当通过网络传输数据报时(TTL=2),在包含带有网页地址的 TCP 段的字段内会发生错误。路由器读取这样的数据报会有什么反应?
我与这个问题斗争了两天。 我所知道的:
路由器只读取数据报的头部,如果校验和失败,数据报将被路由器丢弃,
如果报头校验和正确,路由器总是将 TTL 减一,在 -1 之后,数据报正被转发到网络中的下一个路由器
基于这两点,我得出结论,数据报会走得更远,TTL将为1,路由器将计算新的校验和。
但是,对于这些问题还有其他三个可能的答案:
- 路由器将 ICMP 发送到错误源
- 路由器根据头校验和修复错误,然后转发数据报
- 路由器将数据报发送出网络(丢弃数据报)
有解决这个问题的帮助吗?
【问题讨论】:
-
为什么我会被否决?
-
路由器不读取包内数据报的头部。路由器是一个三层设备,它会读取三层包头。它根本不关心数据包的有效负载。
-
@RonMaupin,所以基本上如果标头校验和正常,那么路由器将计算新的校验和,将 TTL 减一并将数据报转发到下一个路由器?
-
你说得对,它会走得更远。而且(2)是不可能的,IPv4 不执行纠错(TCP 也不执行)。另一方面,这个想法是路由器不执行完整的数据包校验和计算。但是,第 2 层可能会计算校验和,在这种情况下,数据包将被丢弃。但如果我们出于教学目的而忽略第 2 层,数据包就会通过。
-
@o9000,我现在有答案了。 tnx,如果您愿意,您可以将其发布为获得 +25 的答案...
标签: networking tcp ip ipv4