##简介
TCP即传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
从下图可知TCP在OSI等网络互连模型中所处的层次。
这里写图片描述
##握手流程
TCP用三路握手(three-way handshake)过程建立一个连接。在连接建立过程中,很多参数要被初始化,例如序号被初始化以保证按序传输和连接的强壮性。
一对终端同时初始化一个它们之间的连接是可能的。但通常是由一端打开一个套接字(socket)然后监听来自另一方的连接,这就是通常所指的被动打开(passive open)。服务器端被被动打开以后,用户端就能开始建立主动打开(active open)。

  1. 客户端通过向服务器端发送一个SYN(Synchronize Sequence Numbers)来建立一个主动打开,作为三路握手的一部分。客户端把这段连接的序号(Seq)设定为随机数x
  2. 服务器端应当为一个合法的SYN回送一个SYN/ACK。ACK的确认码应为x+1,SYN/ACK包本身又有一个序号(Seq)设为随机数y
  3. 最后,客户端再发送一个ACK。当服务端受到这个ACK的时候,就完成了三路握手,并进入了连接建立状态。此时包序号被设定为收到的确认号(ACK)为y+1,而响应(Seq)则为x+1。

贴一张陈皓文章的图说明下三次握手过程。
这里写图片描述
##微信实例
Step 1:
在这里插入图片描述
Step2:
这里写图片描述
Step3:
这里写图片描述

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐