简述TCP三次握手过程,并说明为什么要3次握手

简述TCP三次握手过程,并说明为什么要3次握手
TCP 三次握手
TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:
1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。
2. 服务器收到客户端发送过来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,其中包含它选择的初始序列号y、对客户端的序列号的确认x+1和一个窗口大小(表示服务器上用来存储从客户端发送来的传入段的缓冲区的大小)。
3. .客户端接收到服务器端返回的SYN+ACK报文后,向服务器端返回一个确认号y+1和序号x+1的ACK报文,一个标准的TCP连接完成。
TCP 使用类似的握手过程来结束连接。这可确保两个主机均能完成传输并确保所有的数据均得以接收
TCP Client

Flags

TCP Server
1 Send SYN (seq=x)

----SYN--->

SYN Received
2 SYN/ACK Received

<---SYN/ACK----

Send SYN (seq=y), ACK (x+1)
3 Send ACK (y+1)

----ACK--->

ACK Received, Connection Established
w: ISN (Initial Sequence Number) of the Client
x: ISN of the Server




三次握手的目的是建立双向的连接,第一次握手是客户端向服务器端发出请求
第二次握手是服务器端告诉客户端,第一次握手是成功的,即可以从客户端发送到客户端,
第三次握手是客户端告诉服务器端,第二次握手是成功的,即可以从客户端到服务器端
这样就保证了客户端和服务器端的双向通信

你可能感兴趣的:(tcp)