为什么只有三次挥手_三次握手和四次挥手图解,为什么挥手比握手多一次?(原创)...

三次握手和四次挥手发生在什么时候?

发生在 TCP/IP协议传输层

一、什么是三次握手

第一次握手:

建立连接时,客户端发送SYN包(SYN=x)到服务器,并进入SYN_SENT状态,等待服务器确认;

第二次握手:

服务器收到SYN包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态

第三次握手:

客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态

02822ff2132432eae6a7d82f1482bbbc.png
  • SYN报文是用来同步的
  • ACK报文是用来应答的

299d25161e2e11393bd6cc16e702e77f.png

二、什么是四次挥手

TCP四次挥手是TCP连接释放的过程

858735e5e205cd7faafd35a507cfe828.png

三、为什么挥手要比握手多一次?

关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,

所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。

只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。

故需要四步握手。

用我自己的话理解就是:

A给B发消息:“我打算关闭了!”

B给A回消息:“你的消息我收到了!但是我活还没干完,等我一会!”

B给A回消息:“好了,我活干完了!”

A给B发消息:“好的,我挂断了!”——同时等待一段时间后关闭

B收到消息后立即关闭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值