TCP 的 IPv4 路由是如何完成的?因为 TCP 是面向连接的,而 IP 不是

网络工程 路由 通讯协议 ip
2021-07-26 15:30:00

在面向连接的网络中,源在发送数据包之前首先与目的地建立连接。当建立连接时,在该连接上发送数据包序列,该连接是一些虚拟管道。还写道,在面向连接的协议中,当建立连接时,只能做出一次关于数据包序列路由的决定。(参考:数据通信和网络,作者 Behrouz Forouzan)

我的疑问是:TCP 是面向连接的协议,IP 使用无连接的分组交换路由。所以在用IP作为网络层协议实现TCP时,路由是如何完成的。如果IP在建立连接时决定了一条路由并将其用于整个通信,如何完成。或者IP在通信过程中可以自由选择任何可能的路由?我的意思是,网络层是否可以为同一连接的不同数据包选择不同的路径?

3个回答

面向连接的网络是一种网络层(大致相当于 IP 层),其中完成的路由是基于连接的(如 X.25 或电话呼叫)。

所以这是绝对正确的:

在面向连接的网络中,源在发送数据包之前首先与目的地建立连接。

但这错过了重要的词网络

在面向连接的[网络]协议中,当连接建立时,只能做出一次数据包序列的路由决定

因此,像 TCP 这样的协议必须添加序列号、确认和重试,以确保它以提供数据的相同顺序传送数据。它与低层提供的无连接服务一起工作。

在面向连接的网络中,源在发送数据包之前首先与目的地建立连接。

建立该连接的过程发送数据包。我认为您指的是 TCP 在发送数据之前如何建立连接。因此,在这种情况下,您需要成功进行 3 次握手才能传输数据。

或者IP在通信过程中可以自由选择任何可能的路由?我的意思是,网络层是否可以为同一连接的不同数据包选择不同的路径?

不仅可能,而且会发生。数据包交换的基础是它如何到达那里并不重要,它确实如此。由于异步路由,有时会出现乱序传送数据包的问题。

IP 在不了解或不关心上层协议的情况下做出路径选择决策。TCP 是面向连接的,因为它通过强制执行有序交付和交付成功知识来模拟连接。

IP 流量可以(有时确实)在会话中间更改路径。当这种情况发生时,要么上层协议(如 TCP)简单地备份到最后一个按顺序确认的消息并从那里继续,要么上层协议(如 UDP 和 RTSP)只是假设连接丢失并重新建立,并继续前进。