假设我有4个以太网接口通过DHCP获取IP地址。我通过某个以太网接口上的一个IP地址与TCP服务器建立TCP连接。在建立连接和通信工作之后,我将该接口的IP地址与另一个接口的地址交换。由于建立TCP连接的IP地址仍然存在,我的TCP连接是否仍然存在?
发布于 2018-10-17 14:58:13
我的TCP连接是否仍然有效?
只有当源IP地址和目标IP地址和TCP地址在数据包上保持相同时,才行。这四个地址定义了连接,如果您更改了其中的一个,则需要建立一个不同的连接。
RFC 793,传输控制协议 (TCP的定义)解释:
多路复用:为了允许单个主机中的许多进程同时使用TCP通信设施,TCP在每个主机内提供一组地址或端口。从因特网通信层与网络和主机地址连接,形成套接字。一对套接字唯一地标识每个连接。也就是说,可以在多个连接中同时使用套接字。端口到进程的绑定由每个主机独立处理。但是,将经常使用的进程(例如“记录器”或分时服务)附加到向公众公开的固定套接字上是有用的。然后可以通过已知地址访问这些服务。建立和学习其他进程的端口地址可能需要更动态的机制。连接:上面描述的可靠性和流控制机制要求TCPs初始化和维护每个数据流的某些状态信息。此信息(包括套接字、序列号和窗口大小)的组合称为连接。每个连接都由标识其两侧的一对套接字唯一指定。当两个进程希望进行通信时,它们的TCP必须首先建立连接(初始化双方的状态信息)。当它们的通信完成后,连接将被终止或关闭,以释放资源用于其他用途。由于必须在不可靠的主机和不可靠的internet通信系统之间建立连接,因此采用了一种基于时钟序列号的握手机制,以避免连接的错误初始化。
https://networkengineering.stackexchange.com/questions/54024
复制相似问题