为何TCP采用随机序列号
TCP采用随机序列号,主要是基于如下两个原因:
-
防止接受网络上粘滞的TCP包,如果都从0开始的话,极其容易接受之前断开连接发送的粘滞包。虽然可以采用每次TCP会话都使用一个UUID作为标记,但是考虑到每次都要携带UUID,比较浪费流量,所以就采用随机序列号的方法。
-
防止Hack猜测序列号,然后伪装TCP报文,当然这种防御其实很弱。
TCP总的来说,提供了一种可靠的流数据传输方式,但是还是有各种坑。比如说,超时检测,粘包,安全性等问题。
在一定程度上,可以把TCP连接,看成能保证从FIRST_ACK到LAST_ACK的流协议
来源:oschina
链接:https://my.oschina.net/u/1999248/blog/620885