这是一个基本的疑问,但我想知道如果在同一台两台机器之间建立两个TCP连接,那么两个连接中的数据包将遵循相同的路径(相同的链路和节点)。我之所以这样问是因为我想测量两台机器之间的IPv4和Ipv6 TCP连接的带宽,我想确保这两个连接遵循相同的路径。
答案 0 :(得分:6)
除非你能控制两个主机之间的网络和路由,否则你永远不应该做出这样的假设。 IPv4和IPv6尤其如此,因为当前的IPv6网络并不多,隧道可能遵循与“直接”IPv4完全不同的路由。
更糟糕的是,IIRC没有什么可以阻止某个中间网络通过一个链路路由一半的数据包而通过其他链路路由一半,所以你不能真正假设一个连接中的每个TCP数据包都遵循相同的路径任
答案 1 :(得分:2)
理论上,不一定,但在实践中,它取决于两台机器的位置。 如果两台机器之间只有一组路由器,则问题的答案是肯定的。
答案 2 :(得分:1)
2个TCPv4连接可以遵循不同的路径,但这并不常见。 TCPv4和TCPv6可能使用不同的路径来实现不完整的TCPv6。 [通常使用IPv6岛将IPv4节点与隧道连接起来。 ]
对于Internet,BGPv6路由肯定与BGPv4完全不同。