0
点赞
收藏
分享

微信扫一扫

三次握手自问自答

程序员知识圈 2022-03-31 阅读 54
c++

TCP三次握手传输的内容?13种状态

  • TCP三次握手状态转换图

    • img
  • 第一次握手目的:
    • 建立连接。
      • img
  • 第一次握手客户端做了什么?
    • 发送连接请求报文段,将SYN位置为1,Sequence Number为x;
    • 然后,客户端进入SYN_SEND状态,等待服务器的确认;
      • img
  • 第一次握手客户端变成了什么状态
    • 客户端进入SYN_SEND状态,等待服务器的确认
  • 第二次握手目的:
    • 服务器收到SYN报文段。
      • img
  • 第二次握手服务器收到客户端的SYN报文段,需要做些什么?
    • 需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);
    • 同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;
  • 第二次握手服务器进入什么状态?
    • 此时服务器进入SYN_RECV状态;
      • img
  • 第三次握手:客户端收到服务器的什么字段?
    • SYN+ACK报文段。
  • 第三次握手客户端的操作?
    • 然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。
      • img
  • 三次握手后客户端、服务器处于什么状态?
    • 客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手
      • img
  • 三次握手后进行的操作?
    • 当客户端和服务器通过三次握手建立了TCP连接以后,当数据传送完毕,肯定是要断开TCP连接的啊。那对于TCP的断开连接,这里就有了神秘的“四次分手”。
      • img
举报

相关推荐

0 条评论