TCP三次握手,四次挥手、为什么是三次握手、TCP挥手比握手多一次的原因

TCP三次握手,四次挥手

TCP的报文段结构:

对于TCP的三次握手,需要用到的信号量以及序列号有:

  • SYN:1位,其中SYN=1表示建立连接
  • seq:32位序号,随机生成
  • ACK:1位,其中ACK=1表示确认消息有效
  • ack:32位确认序号,seq+1
  • FIN:1位,其中FIN=1表示中断连接

TCP三次握手

TCP四次挥手

TCP三次握手的原因(为什么不是2次或者4次)

TCP协议

  • 需要建立连接才可以起作用

  • 需要Client端和Server端都具有正常的发送和接收能力

握手 Client端可以验证的能力 Server端可以验证的能力
第一次 Client发送、Server接收
第二次 Server发送、Client发送、Server接收、Client接收
第三次 Client接收、Server发送

所以只有三次挥手,Client端和Server端才可以验证双方都具有正常的发送和接收能力

TCP挥手比握手多一次的原因

当Client端发出FIN报文段时,只可以说明Client端没有数据发送了,但是Client端还可以从Server端接收数据。

当Server端发送ACK报文段时,只可以说明它知道了Client端没有数据发送了,但是Server端还可以发送数据。

当Server端发送FIN报文段时,表示Server端也没有数据发送了。

当Client端接收到后会返回ACK,之后彼此就会愉快的中断这次TCP连接。

猜你喜欢

转载自blog.csdn.net/qq_40177015/article/details/114948751