TCP连接问题

网络工程 ip 通讯协议 dhcp 第3层 第4层
2021-07-22 14:27:31

假设我有 4 个以太网接口通过 DHCP 获取 IP 地址。我通过某个以太网接口上的 IP 地址之一与 TCP 服务器建立 TCP 连接。建立连接并且通信正常后,我将这个接口的 IP 地址与另一个接口的地址交换。由于建立 TCP 连接的 IP 地址仍然存在,我的 TCP 连接是否仍然有效?

1个回答

我的 TCP 连接还活着吗?

仅当数据包上的源和目标 IP 和 TCP 地址都保持相同时。这四个地址定义了连接,如果您更改其中一个,则需要建立不同的连接。

RFC 793,传输控制协议(TCP 的定义)解释说:

多路复用:

为了允许单个主机内的多个进程同时使用 TCP 通信设施,TCP 在每个主机内提供了一组地址或端口。与来自互联网通信层的网络和主机地址连接,形成一个套接字。一对套接字唯一标识每个连接。也就是说,一个套接字可以同时用于多个连接。

端口与进程的绑定由每个主机独立处理。然而,将经常使用的进程(例如,“记录器”或分时服务)附加到公知的固定套接字被证明是有用的。然后可以通过已知地址访问这些服务。建立和学习其他进程的端口地址可能涉及更多的动态机制。

连接:

上面描述的可靠性和流量控制机制要求 TCP 为每个数据流初始化和维护某些状态信息。这些信息(包括套接字、序列号和窗口大小)的组合称为连接。每个连接由一对标识其两侧的套接字唯一指定。

当两个进程希望通信时,它们的 TCP 必须首先建立连接(初始化每一方的状态信息)。当他们的通信完成时,连接被终止或关闭以释放资源以供其他用途。

由于必须在不可靠的主机和不可靠的互联网通信系统之间建立连接,因此使用具有基于时钟的序列号的握手机制来避免连接的错误初始化。