文章目录
实验目的
网络协议深入了解。练习wireshark抓取网络数据包。在两台的电脑(笔记本电脑win10 主机与ubuntu虚拟机。网卡选择桥接模式,可得到两个子网IPv4地址)上运行 “疯狂聊天室”程序,通过wireshark抓包:
1)分析此程序网络连接采用的是哪种协议(TCP、UDP)和什么端口号?
2)试着在抓取包中找到窃取到的聊天信息 (英文字符和汉字可能经过了某种编码转换,数据包中不是明文)
3)如果是网络连接采取的是TCP,分析其建立连接时的3次握手,断开连接时的4次握手;如果是UDP,解释该程序为何能够在多台电脑之间(只有是同一个聊天室编号)同时传输聊天数据?
实验环境
- Windows 10
- Ubuntu
- Wireshark
- 疯狂聊天
软件获取
疯狂聊天:
链接:https://pan.baidu.com/s/1FfOG-8KgNlqdMAahMGLxDw?pwd=4869
提取码:4869
因为我使用Ubuntu虚拟机与主机之间通过疯狂聊天通信,因此在虚拟机中还要下载Wine
sudo apt-get install wine-stable
在ubuntu中,疯狂聊天可执行文件所在路径中不可包含中文,否则运行时会没有反应。
实验过程
禁用其他网卡
启动疯狂聊天
在Windows下直接双击“crazychat.exe”,弹出如下窗口:
随便设置下昵称与房间号,点击确定进入聊天室。
在Ubuntu中,网卡设置为桥接模式。
在crazychat路径下打开终端,输入指令运行程序:
wine crazychat.exe
房间号填写与主机同样的号码。
进入聊天室。
windows下与ubuntu下发送信息,查看对方是否能够接收到。
启动WireShark
在启动WireShark后,再次在疯狂聊天中发送数据,WireShark会进行抓包。
根据上图的抓包结果得知,疯狂聊天使用UDP协议,目的IP是255.255.255.255,即广播地址。运行端口是5000。
数据查看
双击抓到的UDP报文,查看弹出窗口的下方
当发送的数据是英文字符时,数据可以直接看到。根据左边的十六进制数据来看,英文字符直接发送的对应字符的ASCII码。
当发送的数据是中文的时候,无法直接查看数据。根据左边最下面的一行数据来看,两个汉字使用了6个字节,说明使用了utf-8编码。
分析
分析此程序网络连接采用的是哪种协议(TCP、UDP)和什么端口号
使用的UDP协议,端口号为房间号+5000。
解释该程序为何能够在多台电脑之间(只有是同一个聊天室编号)同时传输聊天数据?
是哪种协议(TCP、UDP)和什么端口号
使用的UDP协议,端口号为房间号+5000。