为什么TCP协议握手包序号不从0开始

学tcp的三次握手和四次挥手时想到的一个问题.

为什么要随机产生序号,而不直接从0开始?

答:

  1. 预防TCP序列预测攻击.
    详细请参考:WIKI TCP sequence prediction attack
  2. 尽可能的避免数据混淆(2msl可以解决).
    如果cs断开后,会有可能某些数据仍然滞留在网络中.当cs再次连接,这些延迟数据在建立新连接之后才到达Server,如果都是从0开始会使得新连接与旧连接数据包重叠几率大大增加,造成数据混淆.

猜你喜欢

转载自blog.csdn.net/qq_41490274/article/details/95607377