《计算机网络》
实验报告
郑州大学信息工程学院
实验三:UDP协议探索和分析 【实验目的】1、掌握UDP协议数据格式;
2、掌握UDP首部各字段含义;
3、了解网卡offload技术;
4、熟悉Linux下nc命令的使用方法。
【实验步骤与结果记录】要求:根据实验指导书中的实验内容和步骤,认真完成实验。采取截图、拍照等形式记录自己的实验步骤和结果。(可根据需要加页)
步骤1:创建虚拟网络拓扑
-
利用linux命令或编辑bash脚本,创建虛拟网络拓扑
(脚本截取部分)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-15s0W5Hc-1637048931892)(media/image2.png)]{width=“5.764583333333333in” height=“6.534027777777778in”}
执行脚本(部分截图)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OT7sDxPm-1637048931893)(media/image3.png)]{width=“5.761805555555555in” height=“3.6069444444444443in”}
- 执行linux命令 ip netns list查询已经建立的NS列表,在所有NS内执行ifconfig-a命令查看NS内的网络接口配置,执行 Linux 命令 brct show查看交换机桥接状态,验证网络拓扑。
查询NS列表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FOYWa5t4-1637048931894)(media/image4.png)]{width=“4.604166666666667in” height=“1.8854166666666667in”}
查看每个NS内的网络接口配置:
RE:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pPwyrjlK-1637048931896)(media/image5.png)]{width=“4.344444444444444in” height=“4.093055555555556in”}
RD:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mhPMhymQ-1637048931897)(media/image6.png)]{width=“3.970833333333333in” height=“2.8472222222222223in”}
RC:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oaxrbLXc-1637048931898)(media/image7.png)]{width=“4.4in” height=“3.1979166666666665in”}
RB:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KzLTFqDo-1637048931898)(media/image8.png)]{width=“4.245833333333334in” height=“3.136111111111111in”}
RA:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oYYaSILc-1637048931899)(media/image9.png)]{width=“4.283333333333333in” height=“4.424305555555556in”}
ns57A
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UA28xnkN-1637048931900)(media/image10.png)]{width=“4.618055555555555in” height=“2.3125in”}
ns57B
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LSIZZ7Ym-1637048931900)(media/image11.png)]{width=“4.6097222222222225in” height=“2.2909722222222224in”}
Ns57c:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z1eXR8PN-1637048931901)(media/image12.png)]{width=“4.81875in” height=“2.4347222222222222in”}
Ns56a:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xrbYPFhK-1637048931901)(media/image13.png)]{width=“5.064583333333333in” height=“2.532638888888889in”}
查看桥接状态:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vfMBugOI-1637048931902)(media/image14.png)]{width=“5.201388888888889in” height=“2.0819444444444444in”}
步骤2:为虚拟网络拓扑中的各路由器配置静态路由。
-
Linux中静态路由的配置方法可以参考《计算机网络实验参考资料汇编》第9章。
静态路由详解在《计算机网络实验参考资料》P58
(2) 本实验配置静态路由,可以使用 script3.2。
使用实验提供的资料中的脚本配置静态路由
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yFHYJvMX-1637048931902)(media/image15.png)]{width=“5.7652777777777775in” height=“1.7868055555555555in”}
步骤3:关闭网卡 offload功能,将运输层封装时需要的计算还给CPU.
-
关于网卡 offload功能的作用以及关闭网卡 offload功能的 Linux命令,可以参考《计算机网络实验参考资料汇编》第12章。
-
本实验关闭网卡 offload功能,可以使用 script3.3。
使用script3.3关闭网卡offload
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jUjV09uD-1637048931903)(media/image16.png)]{width=“4.71875in” height=“6.918055555555555in”}
步骤4:打开两个终端窗口,分别模拟主机ns56A和主机ns57C
- 打开一个终端窗口,利用 Linux命令bash将本窗口模拟成主机nsA的终端。执行如下 Linux命令:
ip netns exec ns56A bash
执行上述命令后, Linux将在网络命名空间ns56A中开启bash交互,之后输入的 Linux命令均在ns56A中执行,相当于模拟了主机ns56A的终端。如果需要退出模拟,输入命令
exit
打开与bash交互
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Your8GB-1637048931903)(media/image17.png)]{width=“5.09375in” height=“0.40625in”}
退出模拟
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tbNZQr2m-1637048931904)(media/image18.png)]{width=“3.5520833333333335in” height=“0.3958333333333333in”}
- 再打开一个终端窗口,利用linux命令bash将本窗口模拟成主机ns57C的终端。
执行如下 Linux命令:
ip nets exec ns57c bash
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8MkKhl2C-1637048931904)(media/image19.png)]{width=“4.90625in” height=“0.4270833333333333in”}
步骤5:在主机ns57上启动 Wireshark,在接口tap57C上启动抓包。
(1)新开一个终端窗口,执行如下命令,在主机ns57C上后台启动 Wireshark.
ip nets exec ns57c wireshark &
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hic0DXD2-1637048931904)(media/image20.png)]{width=“5.7625in” height=“0.32569444444444445in”}
(2)在 Wireshark窗口中选择接口tap57C,启动抓包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qb6SS9Cf-1637048931905)(media/image21.png)]{width=“4.508333333333334in” height=“3.1840277777777777in”}
步骤6:在主机ns57上打开UDP服务程序,在主机ns56A上打开UDP客户程序,与ns57C上的UDP服务程序通信。
-
在主机ns57C的模拟终端中,输入如下命令,在4499端口打开UDP服务程序。
nc -lvu 4499
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VXgVgsyQ-1637048931905)(media/image22.png)]{width=“5.291666666666667in” height=“1.1041666666666667in”}
-
在主机ns56A的模拟终端中输入如下命令,打开UDP客户程序,并指定UDP服务程序的IP地址和端口。
nc -u 192.168.57.254 4499
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FFCxdAzo-1637048931906)(media/image23.png)]{width=“4.572916666666667in” height=“0.75in”}
-
在主机ns56A的模拟终端中输入任意一行字符,然后回车确认,将输入的字符发送给主机ns57C.
发送消息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ikcg6WeJ-1637048931906)(media/image24.png)]{width=“4.4375in” height=“0.6354166666666666in”}
收到:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7PlESnx2-1637048931907)(media/image25.png)]{width=“4.28125in” height=“1.1875in”}
-
在主机ns57C的模拟终端中输入任意一行字符,然后回车确认,将输入的字符发送给主机ns56A。
发送
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3yvLvoGe-1637048931907)(media/image26.png)]{width=“4.291666666666667in” height=“1.5520833333333333in”}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pl3dDTas-1637048931908)(media/image27.png)]{width=“4.791666666666667in” height=“0.78125in”}
步骤7:在 Wireshark中停止抓包,保存抓包结果文件并分析本次UDP通信,理解UDP用户数据报格式。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HMXRv65P-1637048931908)(media/image28.png)]{width=“5.763194444444444in” height=“4.309722222222222in”}
【问题与分析】1、在步骤6中,你从主机ns56A发给主机ns57C的一行字符是什么?主机ns57C收到了么?在Wireshark截获的UDP用户数据报中能看到么?截图说明你的分析过程。
发送的字符是"Hello ns57C"
收到了
如下图所示,在第一个UDP报文中,数据部分对应的data
在译码后即为"Hello ns57C"
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMVgYwop-1637048931909)(media/image29.png)]{width=“5.768055555555556in” height=“4.60625in”}
2、在步骤6中,操作系统为主机ns56A上的UDP客户程序分配的端口号是多少?这个端口属于哪种类型的端口?主机ns57C上的服务程序什么时候能获知这个端口号?截图说明你的分析过程。
4499
属于注册端口号
在发出链接请求的时候就获知了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FmzBrHJ2-1637048931909)(media/image30.png)]{width=“4.6090277777777775in” height=“2.6618055555555555in”}
-
在步骤6中,你一共截获了几个UDP用户数据报?分析一个UDP客户发给UDP服务器的,一个UDP服务器发给UDP客户的用户数据报首部,截图并填写表3.1和表3.2。
两个
表3.1 UDP客户发给UDP服务器的用户数据报首部
字段名 值
源端口 45496
目的端口 4499
长度 20
校验和 0x3e06
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yugjQNJf-1637048931910)(media/image31.png)]{width=“5.763888888888889in” height=“1.0090277777777779in”}
表3.2 UDP服务器发给UDP客户的用户数据报首部
字段名 值
源端口 4499
目的端口 45496
长度 20
校验和 0x4007
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dRaUVmhh-1637048931910)(media/image32.png)]{width=“5.763888888888889in” height=“0.8972222222222223in”}
4、在上一个问题中,UDP客户发给UDP服务器的用户数据报校验通过了么?请给出接收方校验这个用户数据报的方法,并手动计算校验和。说明你的分析和计算过程。
验证通过了
将伪首部和UDP首部按照6为对齐,相加后进位回卷,结果求反
其中源IP地址,目的地址,协议号需要从IP地址中获取
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nvotPP91-1637048931911)(media/image33.png)]{width=“5.260416666666667in” height=“1.4791666666666667in”}
源端口和目的端口,UDP长度,校验和(发送方填0,接收方填收到的校验和),数据部分从UDP报文中获取
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LQqFncXs-1637048931911)(media/image34.png)]{width=“5.7625in” height=“0.9340277777777778in”}
按照16位对齐:
借助程序计算校验和:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2wtPsFZe-1637048931912)(media/image35.png)]{width=“5.168055555555555in” height=“5.603472222222222in”} [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iXiCVNxX-1637048931912)(media/image36.png)]{width=“4.572916666666667in” height=“1.8472222222222223in”} [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-InGffNG8-1637048931912)(media/image37.png)]{width=“4.229166666666667in” height=“0.4791666666666667in”}



