计算机网络实践报告五

华东师范大学软件工程学院实验报告五
一、实验目的

  1. 学会通过Wireshark获取UDP消息
  2. 掌握UDP数据包结构
  3. 掌握UDP数据包各字段的含义
  4. 了解UDP协议适用领域

二、实验内容与实验步骤

  1. 获取 UDP 消息
  2. 获取 DNS-UDP 消息
  3. 分析 DNS-UDP 包
  4. 分析其他类型 UDP 包

三、实验环境

  1. Wireshark v3.0.6
  2. Windows 10

四、实验过程与分析
本次实验包括两个大块,UDP和DNS。

UDP

在计算机网络中,传输层有两大协议:一个是可靠的TCP,传输控制协议,Transmission Control Protocol;还有一个是不可靠的UDP,用户数据报协议,User Datagram Protocol。虽然说是不可靠,但是UDP仍然在IP的数据报服务之上增加了最基本的服务:复用和分用以及差错检测;而且对比TCP有至少以下几项优势:

  1. 无建立连接需要的时延

  2. 首部开销小

  3. 在一次性传输比较少量数据的网络应用时,比较省事,例如DNS
    UDP非常简单,一方面它没有前面的协议包括了非常多的实现流程(这也有可能是因为之前的已经分析差不多了),另一方面UDP的结构也确实很简单。这个可由wireshark进行观察分析。

  4. 启动Wireshark,在菜单栏的捕获->选项中进行设置,选择已连接的以太网,设置捕获过滤器为udp,将混杂模式设为关闭
    在这里插入图片描述
    在这里插入图片描述

  5. 点击开始,打开浏览器,在地址栏中输入网址浏览,例如 www.baidu.com
    或者在命令行中输入 “nslookup www.baidu.com” 查询DNS服务器;如果没有DNS解析,在命令行中输入ipconfig/flushdns清空DNS缓存
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (*为什么会有别名,因为我们更加习惯www.baidu.com这样的形式而不是182.61.200.7这样的IP地址的形式。名称与IP地址,以及Aliases都是指的同一个事物,只是所用的名称不同而已。)

  6. 停止捕获

在这里插入图片描述
这里选择第4个包来分析。
在这里插入图片描述
可以看到一个UDP头部有8个字节,相比于TCP的20字节小了很多,如下图所示,一共以下4个字段构成
在这里插入图片描述
第一个字段,发送端口号,2字节,需要对方回信时用到,不需要时全置0。
第二个字段,接收端口号,2字节,在向接收方交付报文的时候需要用到。
第三个字段,长度,2字节,即是UDP的数据报包括头部和数据的长度,故其最小值,在只有头部时,为8。
第四个字段,校验和,2字节。与IP校验和不一样的地方在于,无论主机是接收方和发送方,校验和都是需要计算的。但是也有网上的文章说该字段是可选的,当主机作为发送端,不想计算校验和时,可直接令该字段全为0。
我一开始会觉得这样的设计比较无聊,因为计算机计算校验和应该是比较快的事,为什么会有“不想计算”这一说法。但是了解到UDP校验和的计算原理后,的确觉得,这是个比较恶心的东西。
UDP前面的头部是IP头部,如上图所示,IP头部结构如下图所示。
在这里插入图片描述
当UDP计算其校验和时,会生成一个IPv4伪头部,包括4字节发送端IP地址、4字节接收端IP地址,1字节空闲,1字节协议字节,2字节UDP报文长度。这样就得到一个临时的UDP数据报,由伪头部、头部、数据组成,校验和就是按照这个临时的UDP数据报计算的。
在这里插入图片描述
校验和计算时,按照16位(2字节)一组来进行循环相加的。当出现临时UDP数据报不是偶数个字节则最后补上一个0字节。循环相加的结果取反放到校验位。

问:UDP数据包头中的Length字段指的是UDP有效载荷?还是UDP有效载荷加上UDP头的总长度?还是UDP有效载荷和UDP头以及低层协议的头部三者总长度?
答:长度字段包括UDP头和UDP有效载荷。

问:UDP头中的校验和的长度是多少位?
答:在这里插入图片描述
如图所示,UDP头中的校验和是0x0b42,由此可知,UDP头部的校验和的长度是16bit

问:整个UDP头的长度是多少字节?
答:如图所示,整个UDP头的长度是8个字节。
在这里插入图片描述

win+R,输入cmd启动命令行,输入ipconfig获得计算机的ip地址,与数据包中的Source比较
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问:IP协议中哪个字段指明交给上一层的UDP传输进程?该字段值是多少?
在这里插入图片描述
答:图所示,IP在Protocol字段中指明交给上层的UDP传输进程。该值得字段是17.

问:有的数据包的source和destination ip地址都不是你计算机的ip地址,给出该数据包的destination IP地址。(如果有的话)
答:
在这里插入图片描述
如上图 DHCP 数据包,其源地址和目标地址均不是主机 IP 地址,其中目标地址
255.255.255.255 为广播地址,而源地址为0.0.0.0,为“本网络”。DHCP(Dynamic Host Configuration Protocol),是动态主机配置协议,是一个应用层协议。当我们将客户主机 ip 地址设置为动态获取方式时,DHCP 服务器就会根据 DHCP 协议给客户端分配 IP,使得客户机能够利用这个 IP 上网。

问:一般UDP消息的长度是多少?
答:
标识 UDP 长度的字段为 16 位数字,也就是说,最长不超过 216-1 字节,其中包括 UDP 首部8 字节。
在这里插入图片描述
在这里插入图片描述

对于这个问题,需要自底向上看。
以太网规定,帧的负载必须小于MTU(最大传输单元),即1500字节。
因为IP数据报的首部为20字节,所以IP数据报的负载小于1480字节.
又因为UDP数据报的首部8字节,所以UDP数据报的负载小于1472字节.
所以UDP消息最长1472字节。这个也小于长度字段所能容纳的最大值。

DNS

之前提到了一个命令叫nslookup,还有个名词叫端口。这两个都是新出现的名词,都指向了一个新的概念叫DNS,域名系统,Domain Name System。什么是域名。一个简单的例子,www.a.shifen.com是域名,180.101.49.12是IP地址。

人们不习惯记数字,于是就有了域名,也就是习惯上说的网址。域名分级,但是是倒着分的。.com是顶级,.shifen是二级以此类推。
域名解析的过程,如下图。
在这里插入图片描述
那什么是nslookup。nslookup是一个程序的名字,代表name server lookup,域名查询。对这个程序,输入一个主机名,例如www.baidu.com,就会给出相应的IP地址。这就相当于是解析了一个域名。
在这里插入图片描述
而什么是端口号。端口号是具有网络功能的应用软件的标识号。0-1023是公认端口号,即已经公认定义或为将要公认定义的软件保留的,而1024-65535是并没有公共定义的端口号,用户可以自己定义这些端口的作用。之前实验中出现了一个端口号为53,这就是DNS的端口号。

问:为什么建议把DNS设置为114.114.114.114 备用设成8.8.8.8
答:首先要知道这两个IP地址是什么的IP地址。网上查阅到,8.8.8.8为GOOGLE公司DNS地址是全球通用的,而114.114.114.114是全国通用DNS地址。由此可知,这两个IP地址对应的域名是万能的,全国的电脑都可以用,所以把这两个IP地址作为默认的DNS设置。

问:什么是DNS劫持和DNS污染
答:这个我就直接粘贴百度的结果了。
DNS劫持一般指域名劫持。域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。
DNS污染,网域服务器缓存污染(DNS cache pollution),又称域名服务器缓存投毒(DNS cache poisoning),是指一些刻意制造或无意中制造出来的域名服务器数据包,把域名指往不正确的IP地址。

五、实验结果总结

  1. 首先,通过本次实验认识了解了UDP协议、UDP包的结构
    在这里插入图片描述
    以及UDP头部校验码的计算方法。
    在这里插入图片描述
  2. 然后,通过UDP了解到了DNS,知道了域名、端口号等概念。

六、附录
本次实验报告内容参考Exp5.ppt以及:

  1. https://blog.csdn.net/aa1928992772/article/details/85240358
  2. https://blog.csdn.net/zzg19950824/article/details/79518678
  3. https://blog.csdn.net/seafit/article/details/50723610
  4. https://www.cnblogs.com/Renyi-Fan/p/9045879.html
  5. https://blog.csdn.net/liufuliang163/article/details/92785383
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值