我正在研究书中的traceroute
"计算机网络一种自上而下的方法"最近,我被几个问题所震惊。这本书说,我引用
跟踪路线实际上重复了刚刚描述的三个实验 因此,源实际上会向目的地发送3•N个数据包。
我的问题是:如果源发送3个具有相同TTL值的数据包,为什么应该所有具有相同TTL的数据包相同路由器始终< / strong>(通过始终我的意思是对于在一次执行一次traceroute期间具有相同TTL值的所有3个数据包)。我的意思是为什么没有发生TTL = n的数据包进入路由器 n 从源跳跃,另一个具有相同TTL的数据包进入另一个路由器 n 从源头跳转等等?由于在不同时间的拥塞不同,到同一目的地的两个分组很可能采用不同的路由。为什么在traceroute的3个包含相同TTL的情况下不会发生这种情况?如果确实发生了,为什么每个TTL值只显示一个路由器?
又一个问题
RFC1393说:
这背后的目的是记录每个ICMP TTL的来源 超出消息以提供数据包所采用的路径的跟踪 到达目的地。
假设TTL = 3,数据包占用了路由器A-B-C的路径,并且由于TTL = 4的数据包所面临的拥塞不同,它采用了路径A-X-Y-D。现在,我们可以在这里得出关于 跟踪 的结论吗?
或者我错过了一些更明显的东西?
答案 0 :(得分:1)
你的前提是错的。例如,如果路径中存在负载平衡,则不会始终以相同的跳数获得相同的路由器。 recent question中有一个Network Engineering。
如果您有一个稳定,设计良好的网络,并且没有负载平衡,那么应该以相同的跳数获得相同的路由器。这是因为路由表应该是稳定且确定的。每个路由器将在其路由表中具有到达目的地的最佳路由,并且在没有网络不稳定性(或其他类似负载平衡)的情况下,路由表将不会改变。数据包由每个路由器独立路由,应遵循相同的路径。
事实上,路径上的随机或变化的跳跃可能是一个真正的问题,因为它可能指向严重的网络问题。如果一个或多个路由表中存在流失,则需要识别并纠正问题的根源。
你一直假设路由器会绕过拥塞。这几乎不是真的。路由器通常通过整形,排队和/或监管来管理拥塞,而不是围绕拥塞进行路由。 QoS的全部原因是处理网络拥塞并试图管理流量下降和必须等待的公平性和秩序。
答案 1 :(得分:0)
TTL是指丢弃数据包之前可以传输的最大跳数。因此,TTL等于5的数据包并不意味着数据包每次发送都需要传输5跳。