当 A 点向 B 点发送数据时,它通过 TCP 可靠地传递。如果底层通道丢失数据,B点侧的TCP堆栈会自动要求重新传输丢失的帧。
假设在 A 点和 B 点之间有 2 个不同的跃点:x1,x2。这些跃点中的每一个是否在内部进行相同的重新传输?例如,如果 A 使用 A -> x1 -> x2 -> B 路由向 B 发送数据,并且 x1 -> x2 是有损链路,x2 是否要求 x1 重新发送丢失的帧,或者它只是最终目的地 (B) 要求要重新发送的数据只有origin (A) 重新发送吗?
当 A 点向 B 点发送数据时,它通过 TCP 可靠地传递。如果底层通道丢失数据,B点侧的TCP堆栈会自动要求重新传输丢失的帧。
假设在 A 点和 B 点之间有 2 个不同的跃点:x1,x2。这些跃点中的每一个是否在内部进行相同的重新传输?例如,如果 A 使用 A -> x1 -> x2 -> B 路由向 B 发送数据,并且 x1 -> x2 是有损链路,x2 是否要求 x1 重新发送丢失的帧,或者它只是最终目的地 (B) 要求要重新发送的数据只有origin (A) 重新发送吗?
只有两个端点,即 TCP 对等点,甚至知道使用了 TCP。路由器在第 3 层路由数据包,但 TCP 在第 4 层发送数据段。TCP 段被封装在 IP 数据包中,路由器只查看 IP 标头来确定将数据包发送到哪里。他们不查看数据包有效负载。
所以,不,路由器不会要求重新发送 TCP。IP 是无连接的,因此一个路由器甚至不期望来自另一个路由器的更多数据包,但它会单独处理它们,无论之前发生了什么,如果它确实从另一个路由器接收到数据包。