如何完成三次握手?

56 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

  学习了三次握手的过程,巩固画了一遍

image.png

  • 第一次握手:客户与服务器建立连接,客户向服务器发送syn包(syn = x),并进入SYN-SENT状态,等待服务器响应。
  • 第二次握手:服务器收到客户发送的syn包,必须确认客户的syn(ack = x+1),同时自己也发送一个syn包(syn = y)(区别于前面发送的syn = x的包,这里取y),我们称之为SYN+ACK包,此时服务器进入SYN-RECV状态。
  • 第三次握手:客户端收到服务器端发送的SYN+ACK包,向服务器发送确认包ACK(ack = y+1)(有别于前面服务器收到的包ack = x+1,这里用y+1),此包发送完毕,客户端和服务器同时进入ESTAB-LISHED状态(TCP连接成功),完成三次握手

参考:
TCP的三次握手与四次挥手理解及面试题(很全面)