跳至主要內容

TCP 三次握手和四次挥手

逸尘.Lycodx大约 3 分钟后端TCP

TCP三次握手和四次挥手

解释

TCP(Transmission Control Protocol)传输控制协议,顾名思义,就是要对数据的传输进行一定的控制

TCP是工作在四层,也就是传输层

一、TCP三次握手

TCP三次握手是客户端与服务端建立连接的过程

为什么要进行三次握手?

三次握手是TCP为了保证数据的正确性以及数据的顺序

为什么需要保证数据的顺序?

当TCP的数据包过大时,需要进行分段传输,然后重组

1、图解

seq 序号sequence number的简称,TCP数据过大时用来分段和重组的序号

TCP的握手是由客户端主动发起的

2、状态控制码(code control flag)

1.ACK

确认号acknowledge number的简称,存在于确认消息中。 确认位,若它等于1则说明这是一个请求连接消息或确认消息。

ack和seq的关系?

seq=1时,ack=seq+1也就是ack等于2;这个2还表示服务器期望客户端下一个包的序号为2

2.RET

reset的简写,重置,若它等于1,则表示这是个消息释放连接的消息;一般出现这种情况是TCP连接发生错误

3.SYN

同步synchronous的简写,当它等于1时则表示这是一个发起连接的消息或者确认连接消息

4.FIN

终止Final的缩写,表示发送报文结束了,释放这个连接(出现在TCP挥手中

3、使用抓包工具查看握手过程

我们使用wireshark进行抓包,查看TCP的三次握手过程,wireshark的使用这里就不讲了,自己百度一下

1、我们随便访问一个网站,比如我们的博客,经过过滤之后看到三个包,分别是[SYN],[SYN,ACK],[ACK]这就对应TCP三次握手的过程

2、打开第一个包,查看第一次握手

3、打开第二个包,查看第二次握手

4、打开第三个包,查看第三次握手

通过抓包我们更清楚的看到TCP的握手过程了

二、TCP四次挥手

1、图解

TCP的挥手既可以是客户端发起的也可以是服务端发起的

2、使用抓包工具查看挥手过程

依然使用wireshare进行抓包分析

1、经过过滤查看4个挥手的包

2、打开第一个包,查看第一次挥手

3、打开第二个包,查看第二次挥手

4、打开第三个包,查看第三次挥手

5、打开第四个包,查看第四次挥手

通过抓包我们更清晰的了解了图示的TCP四次挥手过程了

上次编辑于: