面试详解TCP三次握手和四次挥手

三次握手:

目的:特指对接的三次报文(为什么要三次握手?就是让双方都能明确自己和对方的收、发能力是正常的,互相确认),并且能够交换初始序号的一类过程。

如下图:(三次握手是客户端和服务端建立连接时)

面试详解TCP三次握手和四次挥手

首先需要明确几个符号:

ACK:即确认字符,是一种响应。

SYN/FIN:同步序列编号,是TCP/IP建立连接的握手信号。FIN顾名思义是结束、完成的意思,是结束连接的信号标识。

SEQ:序号

三次握手1.客户端发起连接(给服务端说:我要连接了,同时给他一个ack=1,seq=a)2.服务端响应(收到你的连接信息,给你一个seq=b)3.客户端--》服务端(收到你的回话,给你seq=b+1吗,同时确认ACK)

四次挥手:(四次挥手是TCP断开连接(关闭连接)时)

面试详解TCP三次握手和四次挥手

四次挥手:1.客户端给服务端(我要关闭了,给你一个FIN=1(关闭信号))

2.服务端给客户端(收到你的关闭信息,ACK=Z+1,确认,但是在此时还有数据交互,所以服务端进入close_wait阶段)

3.服务端给客户端(给客户端说:我也要关闭了,给客户端一个FIN=1,seq=Y)

4.客户端给服务端(收到你要关闭的信号,给你一个确认信息ACK=Y,seq=y+1),然后自己关闭,发送到服务端让服务端收到也关闭接受。

这样的一个过程,自己的理解,希望能帮到大家!