主要原因有两个方面:
- 很大程度上避免历史报文被下一个相同四元组的 TCP 连接接收问题(主要方面)
- 防止黑客伪造相同序列号的 TCP 报文被接收
接下来,详细说说第一点
假设每次建立 TCP 连接时,客户端和服务端的初始序列号都是从 0 开始,这种话情况下,很容易出现历史报文被下一个相同四元组的 TCP 连接接收问题
假设每次建立 TCP 连接时,客户端和服务端的初始序列号都不一样,这种情况下,大概率因为历史报文的序列号不在对方接收窗口范围内,进而很大程度上避免了历史报文被下一个相同四元组的 TCP 连接接收问题