
网络编程
柳清风09
这个作者很懒,什么都没留下…
展开
-
TCP漫谈之为啥需要timewait状态
tcp的状态状态转化图如下所示,其中Time_awit状态是CLOSED之前的一个状态,等待2个MSL时间。为啥需要time_awit状态呢?为啥不直接进入closed状态呢?这样不就能更快的释放资源给新的连接使用了吗?而是还需要等待2MSL(linux默认)时间。有两个原因,第一个原因是为了防止“迷路的数据包”,如下图所示,如果在第一个连接里面第三个数据包由于底层网络故障延迟送达。等待新的...原创 2020-03-30 16:47:20 · 867 阅读 · 0 评论 -
TCP漫谈之keepalive
tcp是一个有状态通讯协议,所谓的有状态是指通信过程中通信的双方各自维护连接的状态。先简单回顾一下TCP的连接建立和断开的整个过程。这里主要考虑主流程(关于丢包、拥塞、窗口、失败重试等情况后面详细讨论),首先是客户端发送syn(Synchronize Sequence Numbers:同步序列编号)包给服务端,告诉服务端我要连接你,syn包里面主要携带了客户端的seq序列号。服务端回发一个syn...原创 2020-03-30 16:20:33 · 1951 阅读 · 0 评论