TCP协议三次握手和四次挥手

TCP协议三次握手

TCP协议是面向连接的,所谓面向连接,就是当计算机双方通信时必须经过先建立连接,然后传送数据,最后拆除连接的三个过程:

第一次握手: 客户端向服务器端发出连接请求,等待服务器确认.(SYN报文)

客户端发送一个含SYN同步标志的 TCP报文,SYN同步报文会指明客户端使用的端口以 及TCP连接的初始序号;客户端随机初始化序号(client_isn),SYN标志位置为1;

第二次握手: 服务器端向客户端回送一个响应,通知客户端收到连接请求.(SYN+ACK报文)

服务器在收到客户端的SYN报文后, 将返回一个SYN+ACK报文,表示客户端的请求被接收。 同时TCP序号被加1;服务端随机初始化序号(server_isn),把收到客户端的ISN+1,SYN和ACK标志位置为1;

第三次握手: l客户端再次向服务器端发送确认信息,确认连接(ACK报文)

客户端返回一个确认报文ACK给服务 器端,同样TCP序号被加1,至此一个TCP连接完成;然 后才开始通信的第二步,数据处理。把收到服务端的ISN+1,ACK标志位置为1。

为什么是三次握手?不是两次、四次?

①三次握手才可以阻止重复历史连接的初始化(主要原因)②三次握手才可以同步双方的初始序列号 ③三次握手才可以避免资源浪费

TCP协议四次挥手

第1次挥手:客户端打算关闭连接,此时会发送 一个 TCP 首部 FIN 标志位被置为 1 的报文, 也即 FIN 报文,之后客户端进入 FIN_WAIT_1 状态。第2次挥手:服务端收到该报文后,就向客户端 发送 ACK 应答报文,接着服务端进入      CLOSED_WAIT 状态。 客户端收到服务端的 ACK 应答报文后,之后进 入 FIN_WAIT_2 状态。第3次挥手:等待服务端处理完数据后,也向客 户端发送 FIN 报文,之后服务端进入 LAST_ACK 状态。第4次挥手:客户端收到服务端的 FIN 报文后, 回一个 ACK 应答报文,之后进入 TIME_WAIT 状态 服务器收到了 ACK 应答报文后,就进入了 CLOSE 状态,至此服务端已经完成连接的关 闭。  客户端在经过 2MSL 一段时间后,自动进入 CLOSE 状态,至此客户端也完成连接的关闭

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。