TCP建立连接与断开连接说明

220 阅读1分钟

TCP建立连接,三次握手

主要目的是确定双方都能通信,并且有通信的意愿。核心的东西有两点:

  1. 确定双方能够通信
  2. 通信的意愿

三次通信见下图:

enter image description here
步骤:

  1. 第一次由机器A发起连接请求,并且发送一个SYN a,表明A有通信的意愿
  2. 第二次由机器B向A确认连接,并且发送一个SYN k和ack a+1。SYN k表明机器B有和机器A通信的意愿 ;ack a+1表明机器B有能力和A建立连接
  3. 第三次由机器A向机器B发送ack k+1,表明A有能力向B建立连接

确认机制,在某种程度上是在证明是否有能力建立连接

TCP断开连接,四次挥手

enter image description here

断开连接与建立连接类似。但是在被动关闭的一方,不能通过一次信息,将FIN和ACK都发送过去原因如下。

  • 是断开连接需要“先关读,再关写”。步骤如下:
  1. 机器A向机器B发送关闭连接的请求用,FIN标识;
  2. 机器B接收到机器A的请求,并向机器A发送ack表示确认收到了请求(有关闭连接的能力);但是此时还不能发送FIN给机器A,因为需要把关闭连接的善后工作搞定;
  3. 机器B完成了善后工作,就向机器A发送FIN,表示自己可以关闭了;
  4. 机器A收到FIN之后,向机器B发送ACK表示确认。

后续会有更新。。。