TCP三次握手与四次挥手

TCP头部格式

TCP三次握手与四次挥手_第1张图片

序列号:用来解决网络包乱序问题

确认应答号:用来解决丢包问题

控制位:ACK,确认应答; SYN,希望建立连接;FIN:希望断开连接。

什么是TCP?
什么是TCP连接?

如何唯一确定一个TCP连接?

TCP三次握手

TCP三次握手与四次挥手_第2张图片

  •  客户端随机初始化序列号,填写在TCP首部的序号中,同时把SYN标志位置设置为1,表示SYN报文。接着把第一个SYN报文发送给客户端,表示向客户端发送连接,该报文不包含应用层数据,之后处于SYN_SENT状态
  • 服务端收到SYN报文之后,服务端也随机初始化自己的序号,将此序号填入TCP首部的 序号中,其次TCP首部的确认应答号,设置为client_isn+1,接着把SYN和ACK标志位1。 最后把该报文发送给客户端,该报文也不包含应用层数据,之后服务端处于SYN-RCVD状态


TCP四次挥手

 

 

TCP三次握手与四次挥手_第3张图片

  •  客户端打算关闭连接,发送一个tcp首部FIN标志位位置为1 的报文,也就是FIN报文,之后客户端进入FIN_WAIT_1状态
  • 服务端收到报文之后,回复一个ACK报文,之后处于CLOSED_WAIT状态
  • 客户端收到ACK之后,得知服务端收到了自己的关闭消息,进入FIN_WAIT_2状态
  • 服务端发送FIN报文,服务端处于LAST_ACK
  • 客户端收到FIN之后,回复ACK,然后自己处于TIME_WAIT状态,2MSL之后,变为关闭状态
  • 服务端收到ACK之后,处于关闭状态

你可能感兴趣的:(计算机网络,tcp/ip,网络,java)