> 文章列表 > tcp三次握手与四次分手

tcp三次握手与四次分手

tcp三次握手与四次分手

一、tcp三次握手

1、TCP建立连接的流程

tcp三次握手与四次分手

1)client首先给server发送一个SYN报文,表示想要与server建立TCP连接,此时seq序列号为0
2)server收到了报文后,向client发送一个SYN和ACK确认报文,将ACK和SYN放到同一个报文中发送,此时,seq=0,ack=1,表示同意与client建立TCP连接
3)client收到server发送的报文后,再向server发送一个ACK报文,通知server自己已经收到了,此时的seq=1,ack=1, client与server的TCP连接建立成功

2、TCP三次握手报文解析

从报文的角度解析下三次握手的流程,下图是获取到的三次握手报文

tcp三次握手与四次分手

步骤一:client给server发送一个SYN报文

tcp三次握手与四次分手

步骤二:server对client的SYN报文进行响应并给client发送一个SYN报文

tcp三次握手与四次分手

步骤三:client对server发送过来的SYN报文进行响应,三次握手完成

tcp三次握手与四次分手

二、四次挥手报文解析

从报文的角度来解析四次挥手的过程,下面是获取到的四次挥手报文

tcp三次握手与四次分手

步骤一:客户端向服务器端发送断开 TCP 连接请求的 [FIN,ACK] 报文,在报文中随机生成一个序列号 SEQ=x,表示要断开 TCP 连接

tcp三次握手与四次分手

步骤二:当服务器端收到客户端发来的断开 TCP 连接的请求后,回复发送 ACK 报文,表示已经收到断开请求。服务器端在回复完客户端的 TCP 断开请求后,不会马上进行 TCP 连接的断开。服务器端会先确认断开前,所有传输到客户端的数据是否已经传输完毕。确认数据传输完毕后才进行断开,向客户端发送 [FIN,ACK] 报文,设置字段值为 1

tcp三次握手与四次分手

步骤三:客户端收到服务器发来的 TCP 断开连接数据包后将进行回复,表示收到断开 TCP 连接数据包

tcp三次握手与四次分手