TCP/IP协议三次握手四次挥手

TCP/IP协议定义了一个在因特网上进行传输的包,称为ip数据报,
ip数据报文包含 ip首部和ip数据部分

ip首部: 源Ip地址和目的IP地址、数据报文长度、IP版本号等
ip数据部分:保存传输层的数据,如保存TCP、UDP、ICMP等数据

一共有URG、ACK、PSH、PST、SYN、FIN 6个标志位,主要关注三个重要标志位:

  • SYN:序列发生器;音序器(sequencer),同步比特SYN=1表示这是一个连接请求或者一个连接接受报文
  • ACK:命令正确应答;确认字符(acknowledgement character),为1时确认号字段才有效,为0时无效
  • FIN:final终止,释放一个连接,当FIN=1,表示此报文段的发送端的数据已经发送完毕,并要求释放运输连接

三次握手

  • 客户端向服务端发送一个连接请求和请求序列号,SYN = 1,Seq=X
  • 服务端回复确认报文和确认序号 ACK=1,ACKnum = x+1,SYN=1, SEQ=Y
  • 客户端收到服务端的确认报文之后,需要回复一个确认报文和一个序列号 ACK = 1,ACKnum=Y+1

为什么需要三次握手呢

通过前两次握手,客户端知道服务器可以发送和接受报文。但是服务器不知道客户端是否能收到,所以需要客户端发送一个确认报文

四次挥手

  • 客户端向服务端发送一个FIN=1的包,FIN=1,Seq=X
  • 服务端回复确认报文和- 客户端向服务端发送一个连接请求和请求序列号,SYN=1,Seq=X,但是此时还没有准备好关闭连接
  • 服务端准备好关闭连接时,向客户端发送结束连接请求 FIN=1,Seq=Y
  • 客户端收到服务端的关闭情趣,发送一个确认报文 ACK=1,ACKnum=Y+1服务器接收到确认包之后,就会关闭连接,进入closed状态,不再回应客户端,客户端在一段时间之后没有收到回应就自动关闭

你可能感兴趣的:(TCP/IP协议三次握手四次挥手)