结合Wireshark抓包实战,图文详解TCP三次握手及四次挥手原理(附下载)零基础入门到精通,收藏这篇就够了

877 篇文章 36 订阅
355 篇文章 14 订阅

网络安全的基础是网络,若连最基础的网络协议都搞不明白,何谈网络安全。针对核心的TCP协议,本文通过Wireshark工具抓取并分析TCP三次握手和四次挥手的详细过程,包括数据包捕获步骤,以及TCP报文中的关键字段(如源地址、目的地址、SYN、ACK等)的用途,大家读完此文能彻底搞懂TCP的连接释放原理,有任何疑问欢迎评论区留言,知无不答!

1. TCP协议基础知识

1.1. 概念介绍

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP是互联网核心协议之一,位于OSI模型的传输层,负责在互联网上的计算机之间提供可靠的数据传输服务

在这里插入图片描述

TCP协议在OSI七层网络模型中的位置(第四层)

1.2. TCP协议的工作原理

TCP连接的建立与断开,正常过程至少需要客户端与服务端来回发送7个包(请求)才能完成。其中客户端发送4个(1、3、4、7),服务端发送3个(2,5,6),具体原理参照下图。

1.2.1. 三次握手建立连接

TCP建立连接的过程,包括客户端和服务器总共发送3个包,此过程称为三次握手

  • 第一次握手:客户端发送一个带有SYN标志的TCP段,请求与服务器建立连接。

  • 第二次握手:服务器接收到SYN请求后,发送一个带有SYN和ACK标志的TCP段作为响应。

  • 第三次握手:客户端接收到服务器的SYN+ACK响应后,发送一个带有ACK标志的TCP段,完成连接建立。

三次握手完成后便建立了TCP连接,便可进行数据传输,TCP负责将数据分割为多个段(Segment),并按顺序发送。

1.2.2. 四次挥手断开连接

TCP断开连接的过程,包括客户端和服务器总共发送4个包,此过程称为四次挥手

  • 第一次挥手:客户端发送一个带有FIN标志的TCP段,请求断开连接;

  • 第二次挥手:服务器接收到FIN请求后,发送一个带有ACK标志的TCP段作为响应;

  • 第三次挥手:服务器发送一个带有FIN标志的TCP段,请求断开连接;

  • 第四次挥手:客户端接收到服务器的FIN请求后,发送一个带有ACK标志的TCP段,完成连接断开。

2. 通过Wireshark抓包来详解TCP三握四挥

Wireshark是一款最流行和强大的开源数据包抓包与分析工具,可以截取各种网络数据包,并可以查看网络数据包详细信息。接下来我们就用这款工具来抓取百度网站的数据包。

1)打开Wireshark,开启抓包,然后打开cmd窗口,执行命令curl www.baidu.com访问百度来触发TCP三次握手。

2)在cmd中执行命令ping www.baidu.com 获取百度的IP地址。

3)为避免其他无用的数据包影响分析,可在显示过滤器(display filter)输入过滤条件tcp and ip.addr== 36.155.132.76,过滤TCP协议的数据包。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

说明tcp and ip.addr== 36.155.132.76 表示只显示TCP协议且源主机IP或者目的主机IP为36.155.132.76的数据包。

2.1. Wireshark数据包分析

三次握手与四次挥手

1)前三个包完成了三次握手,建立了连接。

  • 第一个包是「第一次握手」:我(192.168.3.25)向百度(36.155.132.76)发送一个 SYN ,表示这是一个「建立连接的请求」;

  • 第二个包是「第二次握手」:百度(36.155.132.76)响应我(192.168.3.25)一个 SYN+ACK ,表示这是一个「接受连接的应答」;

  • 第三个包是「第三次握手」:我(192.168.3.25)向百度(36.155.132.76)发送一个 ACK ,表示这一个「确认请求」。

发送完确认请求后,我开启到百度的单向连接通道,百度收到我的确认请求后,就开启到我这边的单向连接通道,两边通道都开启以后,就可以通信了。

2)最后四个包通过四次挥手断开了连接。

  • 第一个包是「第一次挥手」:我(192.168.3.25)向百度(36.155.132.76)发送一个「FIN+ACK」,表示这是一个「释放连接」的请求;

  • 第二个包是「第二次挥手」:百度(36.155.132.76)向我(192.168.3.25)响应一个「ACK」,表示这是一个「确认请求」,我收到后,就会释放我到百度的单向连接;

  • 第三个包是「第三次挥手」:百度(36.155.132.76)向我(192.168.3.25)发送一个「FIN+ACK」,表示这是一个「释放连接」的请求;

  • 第四个包是「第四次挥手」:我(192.168.3.25)向百度(36.155.132.76)响应一个「ACK」,表示这是一个「确认请求」,百度收到后,就会释放到我这边的单向连接。

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]


在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
在这里插入图片描述

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值