加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

终于把握了 TCP 的 11 种状态 ,太不轻易了…

发布时间:2021-05-27 20:51:03 所属栏目:创业 来源:互联网
导读:上面这个图就是完备的三次握手进程 起首由 client 发出哀求毗连,即SYN=1 ACK=0,TCP 划定 SYN=1 时不能携带数据,但要耗损一个 seq,以是声明本身的seq=x 然后

上面这个图就是完备的三次握手进程

起首由 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 状态的时辰,最好通过匹配端口来区分是客户端的照旧处事端的,来更准确的定位题目。

接着看四次挥手的状态

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读