文章目录

  • 1 WireShark 简介
  • 2 抓取聊天网络数据包
  • 2.1 设备连接
  • 2.2 利用wireshark抓包分析此程序连接采用的协议和端口
  • 总结


1 WireShark 简介

Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。WireShark可以比喻做硬件工程的万用表、示波器,同样我们网络工程师或者软件工程师可以利用wireshark来进行分析网络。
wireshark下载地址:https://www.wireshark.org/download/ 直接安装即可。

2 抓取聊天网络数据包

2.1 设备连接

注意,当两台电脑连接到同一个WLAN时,运行疯狂聊天程序可能会无法发送聊天内容,当我们知晓ip时,在终端ping ip地址能够成功,但就是不能传输,此时需要将除WLAN外的网卡全部禁用,再次运行程序,就能够发送数据了。

两台电脑连接同一个热点,打开疯狂聊天软件,并在聊天程序中输入同一个房间号:

微信数据包抓包wireshark wireshark抓包微信号_udp

测试两台电脑是否连通

微信数据包抓包wireshark wireshark抓包微信号_封包_02

2.2 利用wireshark抓包分析此程序连接采用的协议和端口

通过分析代码可知,该疯狂聊天程序通过udp向255.255.255.255发送信息。

微信数据包抓包wireshark wireshark抓包微信号_wireshark_03

在wireshark中输入筛选ip.dst==255.255.255.255进行过滤

微信数据包抓包wireshark wireshark抓包微信号_微信数据包抓包wireshark_04

可以发现存在这样的包,同时也验证了是基于UDP协议进行发送,而且是发送到广播地址255.255.255.255。这样处于同一个房间即处在同一个端口号的所有人都可以接受到消息。

微信数据包抓包wireshark wireshark抓包微信号_wireshark_05

可以发现端口号为5005,通过分析源码可以得知端口号为房间号+5000,而我们的房间号为5。

继续查看发送的内容

微信数据包抓包wireshark wireshark抓包微信号_封包_06

此时,只发送西文字符,可以直接看到信息内容与抓包抓到的数据一致

微信数据包抓包wireshark wireshark抓包微信号_wireshark_07

当发送内容为中文时

微信数据包抓包wireshark wireshark抓包微信号_封包_08

抓取到的信息为:

微信数据包抓包wireshark wireshark抓包微信号_微信数据包抓包wireshark_09

可以发现当发送中文的时候,只能看到…,分析代码可知分析代码可以发现中文经过了utf-8转换,一个中文占三个字节。

总结

软件使用的协议是UDP,连接端口是5005,能在多台电脑上同时传输聊天数据的原因是发送信息时使用的广播地址。关于UDP:将数据及源和目的封装成数据包中,不需要建立连接;每个数据报的大小在限制在64k内;因无连接,是不可靠协议;不需要建立连接,速度快。使用udp协议主要涉及到两个类:DatagramSocket,DatagramPacket。学会抓包可以帮助我们在网络编程过程中很好的测试。