Network protocols traceroute如何获得每个路由器';什么信息?
关于traceroute如何使用TTL工作,有很多很好的解释 我不明白的是跟踪路由是如何在每一步上获取路由器信息的 例如,假设有一个如下所示的简单网络,从Network protocols traceroute如何获得每个路由器';什么信息?,network-protocols,traceroute,Network Protocols,Traceroute,关于traceroute如何使用TTL工作,有很多很好的解释 我不明白的是跟踪路由是如何在每一步上获取路由器信息的 例如,假设有一个如下所示的简单网络,从计算机a(CA)到计算机B(CB): 当TTL在RB过期时,CA如何知道RB的IP地址 在每个跃点上,路由器是否更改数据报的源/目标地址 RB将向CA发回一条ICMP过期消息,其中包含RB的IP地址。虽然这不是你问题的一部分,但CA通常可以使用反向DNS查找RB的名称 “超时”实际上意味着超出了出站ICMP消息中设置的IP“跳数” 编辑以添加:
计算机a(CA)
到计算机B(CB)
:
当TTL在RB
过期时,CA
如何知道RB
的IP地址
在每个跃点上,路由器是否更改数据报的源/目标地址 RB将向CA发回一条ICMP过期消息,其中包含RB的IP地址。虽然这不是你问题的一部分,但CA通常可以使用反向DNS查找RB的名称
“超时”实际上意味着超出了出站ICMP消息中设置的IP“跳数”
编辑以添加:
CA消息的源地址始终为CA,目标地址始终为CB。CA不知道沿途路由器的地址,除非通过使用跟踪路由之类的方法发现它们
CA首先发送一个ICMP回显(ping)数据报,目标地址为CB,TTL为1。RA接收该数据报,递减TTL,TTL变为零。RA向CA发送ICMP超时消息;该消息的一部分是RA的IP地址,因此CA现在知道第一个跃点的地址
CA然后发送另一个ping,仍然发往CB,但TTL为2。RA将减小TTL并将其发送至RB。RB递减,找到零,并将ICMP时间过期发送回CA,以便CA找到第二个跃点的地址
然后CA将发送第三、第四等数据报,所有数据报都发往CB,每个数据报的TTL增加一个,直到CB应答。当RB向CA发回ICMP时,RB的IP地址在哪里?我猜RB会将ICMP发送给RA,哪个RA会将其转发给CA?通常是正确的。RB的ICMP响应发送给CA。它可能会通过RA,但如果有较短的返回路线,则不一定。Traceroute根据需要测量出站路线。。我明白了,谢谢!关于我在每个跃点上的第二个问题,路由器是否会更改数据报的源/目标地址?否,来自CA的出站消息总是发往CB,因为CA无法知道(不检查,如TracerRoute)到CB的路径上有哪些路由器。我编辑了我的答案,以提供更全面的解释。我的答案的第4段有一个错误,现在已修复。第二个传出ping的TTL为2,第三个传出ping的TTL为3,以此类推。
COMPUTER A(CA) ---- ROUTER A(RA) ---- ROUTER B(RB) ---- COMPUTER B(CB)