终于把握了 TCP 的 11 种状态 ,太不轻易了…
上面这个图就是完备的三次握手进程 起首由 client 发出哀求毗连,即SYN=1 ACK=0,TCP 划定 SYN=1 时不能携带数据,但要耗损一个 seq,以是声明本身的seq=x 然后 Server 举办回覆确认,即 SYN=1 ACK=1 seq=y ack=x+1 最后 Client 再举办一次确认,但不消SYN了,即ACK=1 seq=x+1 ack=y+1 整个进程中对应的TCP状态如下: CLOSED:初始状态,暗示TCP毗连是”封锁着的”或”未打开的” LISTEN:暗示处事器端的某个SOCKET处于监听状态,可以接管客户端的毗连 SYN_RCVD:暗示处事器吸取到了来自客户端哀求毗连的SYN报文。这个状态是在处事端的,可是它是一此中间状态,很短暂,泛泛我们用netstat或ss的时辰,不太轻易看到这种状态,可是碰着SYN flood之类的SYN进攻时,会呈现大量的这种状态,即收不到三次握手最后一个客户端发来的ACK,以是一向是这个状态,不会转换到ESTABLISHED SYN_SENT:这个状态与SYN_RCVD状态相呼应,,它是TCP毗连客户端的状态,当客户端SOCKET执行connect()举办毗连时,它起首发送SYN报文,然后随机进入到SYN_SENT状态,并守候处事端的SYN和ACK,该状态暗示客户端的SYN已发送 ESTABLISHED:暗示TCP毗连已经乐成成立,开始传输数据 以上就是三次握手的五种TCP状态,单从客户端处事端角度来区分的话,CLOSED和ESTABLISHED会在客户端和处事端都呈现,而LISTEN和SYN_RCVD凡是是呈此刻处事端,SYN_SENT呈此刻客户端 但凡是在处事器和客户端并不是绝对的,好比 Nginx 的处事器中,Nginx 凡是作为 web 署理处事器,它既是处事端,也是客户端,以是在查询统计 TCP 状态的时辰,最好通过匹配端口来区分是客户端的照旧处事端的,来更准确的定位题目。 接着看四次挥手的状态 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |