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四次挥手过程了