太阳集团tcy8722

当前位置: 首页 >应用方案 >技术应用 >

以太网开发中的网络抓包分析工具应用详解

在以太网类设备开发中经常存在一些奇怪网络问题或者使用问题,拿NA111串口服务器设备举例,在某些使用环境中,设备能获取到IP地址(使用DHCP),但是无法连接目标服务器,检查参数配置没问题,使用电脑可以连接服务器,此时很难判定是哪里的问题,一般情况下用户可节能直接判定设备有问题,但是实际上可能并非如此,此时如果能抓到网口的mac层报文,便可以分析问题原因。

目前笔者最常用的抓包工具wireshark,Wireshark抓包工具携带了强大的数据分析及过滤功能,支持大多数的网络协议解析,下面介绍软件的基本使用过程:

1、软件应用

打开软件,通过选择网卡(下左),即可进入日志界面(下右),抓取选择的网卡的数据

1抓包工具wireshark

2、过滤命令

Wireshark的输入栏可以输入过滤命令,其命令与常用的c++/c#/js等语言的逻辑一致:

支持判定符号:等于“==”,或“||”,非“!”,与”&&”,支持括号优先级“()

支持代码补全,但需要知道基本的类名。常用的过滤条件如下

类型

实例

含义

tcp

tcp.port == 1883

仅显示端口为1883tcp报文(不区分源端口还是目标端口)

udp

udp.length == 60

仅显示长度为60udp报文

ip

ip.addr==192.0.2.1

仅显示制定IP地址的报文

eth

eth.addr == 84-c2-e4-36-03-6b

仅显示制定mac地址的报文

使用组合条件可以更加准确的滤出想要的报文。

3、报文解析

下图所示为过滤端口为80tcp报文,软件可以自动识别数据帧为http,并将header,url,payload部分自动拆解开来,从拆解的信息中可以获取源和目标的ip、端口、mac地址,窗口信息等,右击选中的条目还可以看到完整的payload部分,下图中显示了抓取的http报文,由于追踪的事http流,他甚至关联了上下文

2报文解析
3抓包工具解析以太网报文

4、实际应用

(1)、笔者在开发NA111串口服务器设备时发现,串口服务器设备MQTT模式连接华为云的时候会出现能连接服务器但是无法发布订阅消息的情况,但是使用测试软件mqt.fx可以实现,解决此问题便是通过抓包对比分析报文发现的,当时使用目标IP地址以及目标端口进行过滤,发现如下:

设备连接后的首次订阅报文中,message identifier:0

但是mqtfx连接后的首次订阅报文中,message identifier:1

后通过查阅mqtt相关协议以及mqtt库的实例代码发现,id必须从1起始,最终解决此问题

4实际应用

(2)、在部分NA111串口服务器的售后问题中,用户使用http连接服务器出现问题,发现数据post到服务器,服务器无法正常返回200回复,而是返回400,但是使用Apipost等工具并无问题,一般情况下,这种问题一般是header参数填写错误产生的,也和实际的服务器解析规则相关,但是客户并不知道服务器需要哪些header,此时在客户的电脑上安装wireshark,通过过滤制定的端口以及目标服务器,使用Apipost工具发送数据,通过追踪数据流的办法,可以查到header部分

5抓包工具http

再通过网络调试工具连接到目标服务器,拷贝上述报文,通过逐步删除header中的参数行,观察服务器的返回报文,可以去除无效行,最后将header中剩余行填入设备参数中,完成http参数配置,最后实现连接

6http参数配置

5、Wireshark与端口镜像类的交换机共同使用抓取设备连接过程

使用具备镜像功能的交换机,如tplink的TL-SG2005、水星的SG105PRO,均可以实现镜像端口功能,按照下图,连接设备与电脑,设置好镜像端口,同样使用wireshark抓取电脑网口的数据,通过过滤mac地址,ip等,即可实现对设备与服务器之前的通信报文抓取。

7抓包工具连接过程

今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多产品更多资料,感兴趣的小伙伴可以登录我们的太阳集团tcy8722官网和企业公众号(微信号:cdebyte进行了解,也可以直接拨打400电话咨询技术专员!



太阳集团tcy8722