简单易懂的TCP三次握手及四次挥手

关于为什么需要三次握手,四次挥手的原因?
第一次握手:
  Client什么都不能确认
  Server确认了对方发送正常
第二次握手:
  Client确认:自己发送/接收正常,对方发送/接收正常
  Server确认:自己接收正常 ,对方发送正常
第三次握手:
  Client确认:自己发送/接收正常, 对方发送/接收正常
  Server确认:自己发送/接收正常,对方发送/接收正常

第二:因为TCP是全双工通信,所以双方都需要关闭;首先 客户端 向 服务器端发送关闭连接信息(这里客户端和服务器端都可以关闭吗,我这儿以客户端关闭举例)
客户端:标志位[FIN、ACK]  客户端先发送关闭信息(客户端告诉服务器端,我要关闭连接了)
服务器端:标志位[ACK]  服务器回应客户端的关闭信息(服务器端告诉客户端,我已经收到你的关闭连接信息了,你可以关闭了)
服务器端:标志位[FIN、ACK] 服务器端发送关闭信息(服务器端告诉客户端,我也要关闭连接了)
客户端:标志位[ACK]  客户端确认服务器的关闭信息(客户端告诉服务器端,我收到了你的关闭消息,你可以关闭了)

总结四次挥手原因:就是TCP的全双工通信

****************************************************************************************

三次握手详细解释:

  第一次握手:发送SYN数据包,序列号seq=x(默认为0)======seq=0

  第二次握手:发送SYN+ACK数据包,ACK=X+1=1,序列号seq=x(默认为0)======seq=0,ack=1

  第三次握手:发送ACK数据包,ACK=X+1=1========seq=1,ack=1

posted @ 2021-05-31 15:54  图图W  阅读(62)  评论(0编辑  收藏  举报