TCP网络通信三次握手与四次挥手

为什么三次握手是三次?

     三次握手指的是客户端在与服务端建立连接时发送三次信号,首先客户端给服务端发送SYN请求,

并且客户端进入SYN_SENT状态,这时候服务端监听到有新来的客户端要进行连接,于是服务端就给

客户端回复SYN和ACK请求,并且服务端进入SYN_RCVD状态;接下来客户端收到消息后就进入

 ESTABLISHED状态,并且客户端给服务端发送ACK请求,当服务端接收到ACK的时候,服务端就进入

ESTABLISHED状态,然后双方就可以进行通信。

      如果这个握手只进行两次,就不安全,无法确认双方的数据收发能力;同时四次没有必要,因为SYN

和ACK只是一个标志位,用一个数据包发送就可以了。

 

为什么挥手是四次?

       四次挥手就是客户端与服务端断开连接的时候发送四次信号,客户端先给服务端发送 FIN 请求(客户

端进入 FIN_WAIT1状态 ),服务端收到FIN后(服务端进入CLOSE_WAIT状态),服务端就会给客户端发

送ACK确认请求(  客户端收到ACK后,就进入 FIN_WAIT2状态  ),当服务端任务完成之后,就会进入

LAST_ACK状态,就会给客户端发送FIN请求(客户端收到FIN后,就进入 TIME_WAIT状态),客户端接收

到FIN请求后就会发送ACK确认,这时候服务端接收到ACK后才会断开与客户端的连接(此时客户端与服务

端都进入CLOSED状态)。(如果服务端超过一个msl还没有接收到ACK确认请求,就会再次向客户端发送

FIN请求,在收到ACK回复就会断开与客户端的连接)

       四次挥手是为了确认双方数据处理完毕,调用close才会发送FIN包,从而断开连接。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值