
tcp/ip
文章平均质量分 81
幽雨雨幽
C/C++软件工程师
展开
-
TCP的三次握手与四次挥手理解及面试题(很全面)
本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号...转载 2021-04-15 18:59:08 · 272 阅读 · 0 评论 -
TCP/IP TIME_WAIT状态原理
TIME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态。下图是以客户端主动关闭连接为例,说明这一过程的。转载 2018-01-20 16:16:29 · 478 阅读 · 0 评论 -
TCP/IP详解--TIME_WAIT状态存在的原因
1. 实际问题 初步查看发现,无法对外新建TCP连接时,线上服务器存在大量处于TIME_WAIT状态的TCP连接(最多的一次为单机10w+,其中引起报警的那个模块产生的TIME_WAIT约2w),导致其无法跟下游模块建立新TCP连接。 TIME_WAIT涉及到TCP释放连接过程中的状态迁移,也涉及到具体的socket api对TCP状态的影响,下面开始逐步介绍这转载 2018-01-20 16:18:12 · 2308 阅读 · 0 评论 -
理解tcp关闭连接中的time_wait状态
首先看一下tcp关闭连接时的四次握手过程:1.Client向Server发送FIN包,表示Client主动要关闭连接,然后进入FIN_WAIT_1状态,等待Server返回ACK包。此后Client不能再向Server发送数据,但能读取数据。2.Server收到FIN包后向Client发送ACK包,然后进入CLOSE_WAIT状态,此后Server不能再读取数据,但可以继续向Cl...转载 2019-07-01 11:24:36 · 1744 阅读 · 0 评论