1. 准备
TCP是属于网络分层中的运输层(有的书也翻译为传输层),因为OSI分为7层,感觉太麻烦了,所以分为四层就好了,简单。
分层以及每层的协议,TCP是属于运输层(有的书也翻译为传输层),如下两张图:
TCP三次握手会涉及到状态转换所以这里贴出TCP的状态转换图如下:
2.TCP三次握手简述
要想简单了解TCP三次握手,我们首先要了解TCP头部结构,如下:
TCP传递给IP层的信息单位称为报文段或段,下面都用段做单位。
TCP三次握手如图:
2.1 第一次握手
客户端给服务器发送一个SYN段(在 TCP 标头中 SYN 位字段为 1 的 TCP/IP 数据包), 该段中也包含客户端的初始序列号(Sequence number = J)。
SYN是同步的缩写,SYN 段是发送到另一台计算机的 TCP 数据包,请求在它们之间建立连接
2.2 第二次握手
服务器返回客户端 SYN +ACK 段(在 TCP 标头中SYN和ACK位字段都为 1 的 TCP/IP 数据包), 该段中包含服务器的初始序列号(Sequence number = K);同时使 Acknowledgment number = J + 1来表示确认已收到客户端的 SYN段(Sequence number = J)。
ACK 是“确认”的缩写。 ACK 数据包是任何确认收到一条消息或一系列数据包的 TCP 数据包
2.3 第三次握手
客户端给服务器响应一个ACK段(在 TCP 标头中 ACK 位字段为 1<