TCP三次握手和四次挥手(一看就懂版)

此生再无相见时 提交于 2019-12-01 19:58:04

TCP三次握手:

TCP四次挥手:

先解释关键字:

连接时:SYN是请求建立连接,所以在连接时SYN=1;(三次握手前两次SYN=1双向连接,第三次后面解释)

断开时:FIN是请求断开连接,所以在断开连接时FIN=1;(四次挥手中出现两次,因为是双向连接需要双向断开)

seq是序列号,因此第二次请求发下一个包时序列号seq+1;(数据被拆分成数据包发送,因此需要序列号在接受时连城完整的数据)

ack的值是下一个包的序列号,表示希望收到的包的序列号是seq+1;

ACK表示收到了,=1;

然后是具体过程:

三次握手:

  • 客户端发送SYN=1请求建立连接,并发送一小段数据包seq=x;
  • 服务器收到seq=x,发送ACK=1表示确认,并发送自己的数据包seq=y、希望下次收到的数据包ack=x+1和建立连接的请求SYN=1;
  • 客户端收到服务器发来的seq=y、ack=x+1和请求连接的SYN=1,然后发出确认信号ACK=1、服务器请求的数据包seq=x+1和它请求服务器接下来要发的数据包ack=y+1。
  • 连接成功。

四次挥手:

  • 客户端请求断开连接,发送FIN=1和数据包seq;
  • 服务器收到断开请求发出确认信号ACK=1和希望收到的序列号为ack=seq+1和自己的seq;
  • 服务器请求断开连接FIN=1,ack和seq;
  • 客户端收到并回复ACK=1的确认信号和ack、seq;
  • 连接断开

 

 

转载于:https://www.cnblogs.com/littlepudding/p/10595998.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!