计算机网络学习过程中,你会发现有各种各样的协议,每种协议又有各种各样的格式和要求,你会发现今天记住了,明天忘。那么问题来了,我们该怎么办?很简单,之所以你今天记住了,明天忘,那是因为你没有真的记住,没有见过实际协议的运转流程,计算机网络中的协议,你只靠脑子记忆是不行的,你必须动手去看一下,数据是怎么加头部尾部信息的,又是怎么解包的等等。这里牵扯到两个问题,怎么查看软件层的信息,怎么查看硬件层的信息

软件层面的信息查看推荐使用 wireShark 抓包一个一个的看,协议是怎么执行的

硬件层面的信息查看推荐使用Cisco packet tracer 构建物理结构,查看协议怎么执行

今天我们介绍使用wireShark,本文只是介绍其中的常用功能,没有面面俱到,看完本文之后,可以立马上手使用。




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark 捕获http协议

wireShark



wireShark可以使用两种方式研究数据包,一种是建立规则抓取固定规则的数据包,一种是抓取全部数据包后,建立规则过滤数据包。接下来我们分别介绍。


建立规则抓取数据包




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark抓来的包怎么看数据_02

捕获前规则建立



打开软件后,单击捕获选项就可以出现上图画面。在所选择接口的捕获过滤器中定义规则。规则如下


1.类型 host port net

host 指主机地址 规则是 host ip 实例 host 192.0.2.1

port 指端口 规则是 port 端口号 实例 port 80




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark抓来的包怎么看数据_03

过滤主机地址




2.方向 src dst

src 指源地址 也就是发出信息的地址 规则是 src 主机/端口 ip/端口号 实例 src host 192.0.2.1 src port 80

dst 指目的地址 也就是信息的目的地 规则是 dst 主机/端口 ip/端口号 实例 dst host 192.0.2.1 dst port 80




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark抓取dns_04

指定方向




3 协议类型 http dns tcp udp ftp telnet

直接输入协议名称 http




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark抓取dns_05

指定协议




4 逻辑运算 与&& 或|| 非!

比如过滤多个条件 src host 192.0.2.1 && dst port 80




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark抓取dns_06

逻辑运算




抓取数据包后过滤

抓取数据包后,过滤方法与抓取前定义规则比较类似,但是还是有一些不一样的地方

1 过滤地址 规则 ip.addr = ip地址 实例 ip.addr == 192.168.1.7




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark抓包http_07

过滤地址



2 过滤端口 规则 协议名.port == 端口号 实例 tcp.port == 80 udp.port == 80

3 过滤协议 直接输入需要过滤的协议即可 tcp udp http ftp

4 逻辑运算 and or 例如 tcp.port == 80 or udp.port == 80




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark抓取dns_08

逻辑运算



开始抓包

基本的过滤规则学会了,然后开始过滤吧。




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark抓来的包怎么看数据_09

抓包数据展示



百度输入网址,打开wireshark开始兴致勃勃的抓包,一看抓出来的包怎么这么多,我怎么看,有DNS的,有TCP,有HTTP。这里插个体外话,介绍一下为什么会有那么多的协议出现。

当你在百度输入一个网址,首先需要使用DNS协议,将网址转化为ip地址,然后由于你需要访问网页,需要使用HTTP协议,而HTTP协议的数据是使用TCP协议传输的,所以你抓包的时候会看到DNS,TCP,HTTP等等的协议,有时候你还会看到ARP协议。

怎么办?使用wireshark中的高级功能,流追踪功能。

流追踪功能

既然有那么的协议,而且是一会这里有一个,一会那里有一个,心里想如果wireshark能帮我归一下类不就美滋滋了吗?好吧,它确实有这个功能,右击你需要查看的协议→选择追踪流→然后选择协议流




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark抓取dns_10

追踪流




wireshark抓取运行python时的网络情况 wireshark抓取http数据包_wireshark抓包http_11

tcp流



看一下,是不是清爽了许多,仔细一看,前三行不就是我们一直学习的TCP三次握手吗?seq怎么累加的不就一目了然了吗?


总结

wireshark具有许许多多强大的功能,特别是数据统计功能,图表功能等等,上文只是介绍了其中常用的一些功能,相信大家看完本文后,就可以直接上手使用了。