开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第九天,点击查看活动详情
实践教你学习wireshark(三)
数据呈现
我们在学习抓包时,第一时间必然看到的是这个界面
但是单单这个界面可能很多参数啊,表格啊,值,列名可能都不了解,所以这篇文章主要讲解wireshark捕捉界面
开始
Wireshark捕获数据包后会以多种形式呈现给用户。在Wireshark中,捕获的每个数据包称为一个分组。每个分组都以3种模式展现,分别是分组列表、分组详情和分组字节流.
分组列表
我们在上图可以看到分组列表中默认列分别是编号列No.、时间列Time、源地址列Source、目标地址列Destination、协议列Protocal、长度列Length和信息列Info
编号列No
编号列是Wireshark自动添加的序号,标识分组在当前捕获文件中的顺序。其中,默认从编号1开始,即第一个分组,后面以此类推。
时间列Time
时间列用来显示获取分组的时间。时间列提供多种形式,用户可以根据需要选择显示的模式。
源地址列Source
源地址列是指分组发送方地址,常见形式为Mac地址或者IP地址。
目标地址列Destination
目标地址列是指分组接收方地址,常见形式为Mac地址或IP地址。另外,还有一种特殊的地址,即广播地址,如Broadcast和239.255.255.250等。
协议列Protocol
协议列是指分组传输的协议,如TCP、UDP、HTTP和DNS等
长度列Length
长度列是指整个分组的数据长度。
信息列Info
信息列是Wireshark解析分组后提取的重要信息。通过分析该列的信息,可以快速了解到该分组传输的信息。
编辑列
所有列都可以进行编辑,如修改列的名称、类型和值等。通过修改列,可以显示自己需要的信息。
有时我们想着能不能不用默认列,此时需要按照以下步骤
分组详情(重要)
分组详情表示显示分组的详细信息.这里将以http的一次请求来讲解分组详情,毕竟http目前对我开发人员来说还是比较常见的
看到这个可能很多人会有点懵逼,但是如果结合下面一张图,或许很多人就会豁然开朗,也能很快明白为什么wireshark能更加直观的看到网络传输的步骤
看到这个OSI层对应的TCP/IP协议或许就明白上面的图中所表示了
我们可以根据上面这个图发现,wireshark能捕捉到应用层->传输层->网络层->数据链路层->物理层中所使用的各个协议,双击其中一个就能直接看到在每一层传输的数据是什么样的
Transmission Control Protocol, Src Port: 28466, Dst Port: 80, Seq: 1, Ack: 1, Len: 244
代表传输层中运用了tcp协议,由ip:192.168.3.116:28466传给目标IP:110.43.81.63:80
Internet Protocol Version 4, Src: 192.168.3.116, Dst: 110.43.81.63
这个也就是我们常说的ipv4
Ethernet II, Src: Clevo_75:8d:d6 (80:fa:5b:75:8d:d6), Dst: BeijingX_25:79:69 (8c:de:f9:25:79:69)
这个就是以太网协议
Frame 962: 298 bytes on wire (2384 bits), 298 bytes captured (2384 bits) on interface \Device\NPF_{4D421A04-DCBE-485F-A14D-BBFE9F92C88C}, id 0
这个就是物理层以二进制数据形式在物理媒体上传输数据
专家信息
专家信息是Wireshark基于捕获数据包添加的建议信息。下面将介绍通过专家信息查看分组详情的方法。
在该信息中共包括5列,分别为严重(安全级别)、概要(描述信息)、组、协议和计数(包数)。
接下来即可分析Wireshark对数据包添加的建议信息,并查看对应的分组详情。其中,Wireshark支持的安全级别有以下几种:
- Error(错误):该级别的数据包表示存在非常严重的错误,或者解析器解析时的错误。
- Warning(警告):该级别的数据包不是正常通信中的数据包。简单地说就是非正常通信产生的数据包。
- Note(注意):该级别的数据包是正常通信时的异常数据包。
- Chat(会话):该级别的数据包是正常通信的基本信息。
- Comment(注释):添加注释的数据包。其中,包的注释信息是需要用户手动添加的,所以默认没有显示注释类级别的包。
分组字节流
分组字节流是显示数据包的原始信息。通过查看分组字节流信息,即可看到数据包的原始信息。
分组字节流以数值形式和文本形式同时显示,并且支持多种形式展现数据
数值形式
Wireshark允许以十六进制和二进制两种方式显示数值。Wireshark默认是以十六进制显示字节流信息的,而二进制形式适合查看协议的比特位信息,如TCP的SYN位,
我们可以将其转至为二进制查看
文本形式
wireshark默认以ascii的文本形式来展示数据
分析分组字节
Wireshark提供了一个分析分组字节流功能,可以在独立窗口中以更多的形式显示数据。
从分组字节流对话框中可以看到,默认解码格式为无,显示格式为ASCII。通过“解码为”和“显示为”下拉列表框即可切换解码和显示格式。这里支持的解码格式包括Base64、压缩、可打印引用和ROT13。支持的显示格式包括ASCII、ASCII与控制符、C语言数组、EBCDIC、Hex转储、HTML、图像、ISO 8859-1、原始数据、UTF-8、UTF-16和YAML