一、任务要求
-
继续练习wireshark抓取网络数据包。在两台及两台以上的电脑(已知IPv4地址)上运行 “疯狂聊天室”程序,通过wireshark抓包:
-
分析此程序网络连接采用的是哪种协议(TCP、UDP)和什么端口号?
-
试着在抓取包中找到窃取到的聊天信息 (英文字符和汉字可能经过了某种编码转换,数据包中不是明文)
-
如果是网络连接采取的是TCP,分析其建立连接时的3次握手,断开连接时的4次握手;如果是UDP,解释该程序为何能够在多台电脑之间(只有是同一个聊天室编号)同时传输聊天数据?
二、开始实验
1. 开启聊天程序
2. 打开wireshark
- 在wireshark中输入筛选ip.dst==255.255.255.255进行过滤
- 开始抓包
之前发送的数据被捕获,同时可以发现此程序网络连接采用的是UDP协议
3. 分析数据
-
西文
可知其端口号为5006,我们选择的房间号为6 ,可知其端口号5000+房间号。
输入的数据hello,可以直接被看到,同时一个西文字符是占一个字节 -
输入中文进行验证
可知中文是不会直接被显示出来,同时一个字占三个字节
4. UDP思路
- 可以把UDP的思路想象成发快递和收快递的过程,我准备了一份数据想要发给小明,就要先把它打包成一个包裹,然后填上小明的收货地址和门牌号,这样之后包裹就可以通过网络寄给小明,同理,小明想要给我发数据也需要经过同样的流程,而此时的收货地址跟门牌号就应该填我的信息。
- UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责。
- 为了在给定的主机上能识别多个目的地址,同时允许多个应用程序在同一台主机上工作并能独立地进行数据包的发送和接收,设计用户数据报协议UDP。
- 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。