为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号?


为什么TCP在建立连接时不能每次都选择相同的、固定的初始序号?

正确答案:如果TCP在建立连接时每次都选择相同的、固定的初始序号,那么设想以下的情况:

假定主机A和B频繁地建立连接,传送一些TCP报文段后,再释放连接,然后又不断地建立新的连接、传送报文段和释放连接。

假定每一次建立连接时,主机A都选择相同的、固定的初始序号,例如,选择1。

假定主机A发送出的某些TCP报文段在网络中会滞留较长的时间,以致造成主机A超时重传这些TCP报文段。

假定有一些在网络中滞留时间较长的TCP报文段最后终于到达了主机B,但这时传送该报文段的那个连接早已释放了,而在到达主机B时的TCP连接是一条新的TCP连接。

这样,工作在新的TCP连接下的主机B就有可能会接受在旧的连接传送的、已经没有意义的、过时的TCP报文段(因为这个TCP报文段的序号有可能正好处在现在新的连接所使用的序号范围之中)。结果产生错误。因此,必须使得迟到的TCP报文段的序号不处在新的连接中所使用的序号范围之中。这样,TCP在建立新的连接时所选择的初始序号一定要和前面的一些连接所使用过的序号不一样。因此,不同的TCP连接不能使用相同的初始序号。


Tag:报文 序号 主机 时间:2024-06-27 11:16:49