Tcp三次握手、四次挥手

目录

[TOC]

1. 三次握手

1.1 三次握手的过程

  1. 客户端发起第一次握手,传递SYN请求,等待服务器确认。

  2. 服务器收到客户端发起的请求,传递对客户端发起请求的确认信息ACK向客户端发起的连接请求SYN,等待客户端确认。

  3. 客户端收到服务器端发送的ACK和SYN,处于连接完成状态,并发送对服务器端的确认ACK到服务器端。服务器端收到客户端返回的ACK,进入连接完成状态

之后,客户端可与服务器端进行数据通讯。

1.2 tcp三次握手为什么是必须的呢?

​ 首先tcp协议是有状态的连接,而且是客户端、服务端均保持连接状态的连接。

​ 前两次握手是必须的,需要服务端知道客户端可正常传输报文,同时需要客户端知道服务端可正常传输报文。

1.3 为什么要有第三次握手?

 `三次握手为了保证过期的握手请求不被再次接受`

​ 因为网络原因,客户端在想服务端发起的第一次握手A,有可能因为网络等原因发生了延迟。之后,客户端发起新的握手请求B,新的握手请求被服务端接收,正常通信,之后请求关闭。

​ 此时,网络通顺后,第一次握手请求,发送到服务器,如没有三次握手,服务器将认为客户端发送的请求是有效的,并准备好资源等待客户端传送报文。而客户端因为上一次请求已过期,则不再向服务器端发送请求。服务器端将耗费大量的资源进行等待,造成服务器端资源的浪费

1.4 为什么三次握手,可以避免上述情况?

​ 如过期确认请求A发送到了服务器端,服务器端不知道客户端发送的连接请求是过期的,服务器端向客户端发送ACK+SYN,进入等待客户端返回确认的状态。客户端收到服务端信息后,认为请求已过期,则不再理会,不向服务器端返回任何信息,服务器端收不到客户端的ACK确认,重发几次之后,将不再发送确认通知,认为客户端无法反馈信息,终止连接请求。避免了服务器端接收到过期请求,而导致的资源浪费。

2. 四次挥手

待补充...

你可能感兴趣的:(Tcp三次握手、四次挥手)