两个维度:
1)攻击维度
如果TCP每次连接都使用固定ISN,黑客可以很方便模拟任何IP与server建立连接。
问题:通过抓包就可以计算出来TCP连接的ISN,那固定于不固定ISN有什么区别呢?
答:抓包只能发生在同一网络中,随机ISN能避免非同一网络的攻击
2)TCP连接稳定维度
广域网的随机性,复杂性都很高,假设clent与server连接状况不好,不停的断开。那么之前交互的报文很可能在连接已断但是还没到到server。
如果ISN是固定的,那很可能在新连接建立后,上次连接通信的报文才到达,这种情况有概率发生老报文的seq号正好是server希望收到的新连接的报文seq。这就全乱了。
so:
RFC1948中提出了一个较好的初始化序列号ISN随机生成算法。ISN = M + F(localhost, localport, remotehost, remoteport).
M是一个计时器,这个计时器每隔4毫秒加1。
F是一个Hash算法,根据源IP、目的IP、源端口、目的端口生成一个随机数值。要保证hash算法不能被外部轻易推算得出,用MD5算法是一个比较好的选择。