背景:
-
当设备是移动网络设备连接云平台的时候,如果服务器没有收到网络数据,移动物联设备发送不知道有没有有丢失数据的时候,需要一个抓取设备出来的数据和服务器下发的数据的方法。
1.服务器系统是很成熟的,一般是linux的内核的服务器,linux有个tcpdump的工具,可以抓取服务器网卡的网络包,这个需要服务器端通过ssh等方式连上服务器才能进行操作,对于物联网设备开发来说,这个是不现实的。如果服务器开发者可以使用此方法,抓取到到网络包文件发送给物联网设备开发者,可以直接使用抓包工具解析出来,分析TCP数据是否正常。
2.本机模拟TCP服务器,比如使用开源的一些TCP服务器模拟工具来模拟,然后把本机TCP服务器绑定的端口通过花生壳免费的TCP端口映射给外网,物联设备通过链接映射出来的端口链接到内网服务器的来观察物联设备上报的数据,但交互就比较麻烦了,目前我用的比较好的是开源的军刀工具现在改名了https://github.com/x-tools-author/x-tools,可以模拟TCP服务器,可以预设自动应答和定时发送,这对于数据快速变化的情况比较难模拟,只能模拟固定数据。
3.是在本机安装一个TCP转发器,本机开了转发器之后,使用花生壳把转发器的绑定端口映射到公网给物联设备连接,转发器的客户端就用来连接真正的服务器。等设备连上后,使用网络抓包工具进行抓包,过滤筛选后进行TCP数据流追踪,这个就不需要模拟应答数据,全部都是真实数据。
先打开转发器,设置好本地监听的端口,以及目标服务器地址和端口,再通过内网穿透工具把本机的ip和端口映射出去,方便物联网设备连接。
打开抓包工具,抓包工具可以使用过滤命令,我这里是TCP协议,我用过端口的方式过滤更合适,可以看到服务器和客户端的数据。
抓到的数据可以可以用追踪的方式查看。
结合协议,就可以分析通讯数据了。这种对于明文传输的有用,带加密的就不好看了。