TCP三次握手和四次挥手过程

下图为TCP头部里面部分信息,入下标志位,每个标志位占一位。

标志位这里会涉及3个,ACK SYN FIN


 
 
  1. ACK:确认序号有效。
  2. SYN:发起一个新连接。
  3. FIN:释放一个连接。

2  三次握手过程

 

第一次握手

Client将标志位SYN置1,随机产生一个值seq=J,并将数据包发给Server

第二次握手

Server将标志位SYN和ACK都置1,随机产生一个值,并将数据包发给Client确认连接请求

第三次握手

Client收到确认后若ACK为1,则将该数据包发送给Server,Server检查ACK为1则连接建立成功,可以传输数据

3  为什么不是两次和四次握手

四次握手也可以,显得很多余,没必要。

两次握手可能会出现已失效的请求报文段突然又传送到了服务端而产生连接的误判。

4   四次挥手过程

第一次挥手:

Clien发送一个FIN,用来关闭Client到Server的数据传送,

第二次挥手:

Server收到FIN后,发送一个ACK给Client,Server进入CLOSE_WAIT状态。

第三次挥手:

Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

第四次挥手:

Client收到FIN后,Client进入TIME_WAIT状态,发送ACK给Server,Server进入CLOSED状态,完成四次握手。

5 为什么挥手需要四次

tcp连接握手时ACK是和SYN一起发送,4次挥手的时候ACK却没有和FIN一起发送呢。原因是因为tcp是全双工模式,接收到FIN时意味将没有数据再发来,但是还是可以继续发送数据。

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

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值