【计算机网络实验】

计算机网络之验证性实验


前言

本部分共有 8 个实验,实验 1~7 使用 Cmder 在命令行窗口完成,实验 8 使用浏览器完成。

一、ipconfig

ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息(/all 参数)。

1.1 实作一

使用 ipconfig/all 查看自己计算机的网络配置。尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关 Gateway。
在这里插入图片描述

  1. ip地址:
    IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
  2. 子网掩码 Subnet Mask:
    子网掩码 (subnet mask)又叫 网络掩码 、 地址掩码 、子网络遮罩,它用来指明一个IP地址的哪些位标识的是 “主机” 所在的子网,以及哪些位标识的是主机的位掩码。 子网掩码不能单独存在,它必须结合IP地址一起使用。
  3. 网关 Gateway:
    网关 (Gateway)又称 网间连接器 、 协议转换 器。 网关在“网络层”以上实现网络互连 ,是复杂的网络互连设备,仅用于两个高层协议不同的 网络互连 。 网关既可以用于 “广域网” 互连,也可以用于“ 局域网”互连。

1.2 实作二

使用 ipconfig/all 查看旁边计算机的网络配置,看看有什么异同。
在这里插入图片描述

1.3 问题

你的计算机和旁边的计算机是否处于同一子网,为什么?
都处于同一子网,因为都属于C类IP,网络号(192.168.73)相同只是主机号不同

二、ping

ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序 。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。

2.1 实作一

要测试到某计算机如 “重庆交通大学” Web 服务器的连通性,可以使用 ping www.cqjtu.edu.cn 命令,也可直接使用 IP 地址。请掌握使用该命令后屏幕显示的反馈回来信息的意思,如:TTL、时间等。

ping www.cqjtu.edu.cn
在这里插入图片描述
返回了4个具有32字节的数据,,数据包往返行程时间最短39ms,最长44ms,平均42ms。

2.2 实作二

使用 ping/? 命令了解该命令的各种选项并实际使用。

ping/?

-t :Ping 指定的计算机直到中断。
-a :将地址解析为计算机名。
-n count :发送 count 指定的 ECHO 数据包数。默认值为 4。
-l size :发送包含由 size 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。
-f :在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。
-i ttl :将"生存时间"字段设置为 ttl 指定的值。
-v tos :将"服务类型"字段设置为 tos 指定的值。
-r count :在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。
-s count :指定 count 指定的跃点数的时间戳。
-j host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
-k host-list :利用 host-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w timeout :指定超时间隔,单位为毫秒。
destination-list :指定要 ping 的远程计算机。
 图片
  1. ping -t:不间断地Ping指定计算机,直到管理员中断。ping qq.com -t 图片
    这就说明电脑连接路由器是通的,网络效果很好。下面按按住键盘的Ctrl+c终止它继续ping下去,就会停止了,会总结出运行的数据包有多少,通断的有多少了。

  2. ping-a解析计算机名与NetBios名。就是可以通过ping自己的ip地址,可以解析出自己的主机名“Mitchell”。
    在这里插入图片描述

  3. ping -n,在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送20个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
    ping -n 20 qq.com
    在这里插入图片描述
    我们向qq.com发送20个包,发现都没有丢失说明我们与qq之间的连接比较稳定,其中包传输最短时间为50ms,最长时间为71ms,平均时间为56ms。如果对于一些不好的网络,比如监控系统中非常卡顿,这样测试,返回的结果可能会显示出丢失出一部分,如果丢失的比较多的话,那么就说明网络不好,可以很直观的判断出网络的情况。

  4. ping -l size的使用,-l size:发送size指定大小的到目标主机的数据包。
    在默认的情况下Windows的ping发送的数据包大小为32byt,最大能发送65500byt。当一次发送的数据包大于或等于65500byt时,将可能导致接收方计算机宕机。我们将该命令与-t命令结合,形成DOS攻击qq ping -l 65500 -t qq.com
    在这里插入图片描述

  5. ping -r count的使用,在“记录路由”字段中记录传出和返回数据包的路由,探测经过的

路由个数,但最多只能跟踪到9个路由。我们使用命令"ping -r 9 192.168.43.1”记录九个路由

在这里插入图片描述

问题
假设在秘籍中进行的网络排查中,ping 百度的 IP 即 ping 14.215.177.39 没问题,但 ping 百度的域名即 ping www.baidu.com 不行,那么可能的原因是什么?如何进行验证和解决?

原因:
ping不通的原因可能是DNS出错,因为域名都由DNS进行解析成IP后,再通过IP发送数据。
解决:
设置电脑的DNS为8.8.8.8,如果不行则有可能是当地DNS服务器故障

三、tracert

TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径。

3.1 实作一

要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert www.baidu.com 命令,查看反馈的信息,了解节点的个数。

可通过网站 http://ip.cn 查看这些节点位于何处,是哪个公司的,大致清楚本机到百度服务器之间的路径。
**tracert www. baidu.com **
在这里插入图片描述
大概通过13个节点到达目的IP,在过程中发现有的ip请求超时,原因如下:
1、那一跳禁PING
2、那一跳不对TTL超时做响应处理,直接丢弃

节点IP物理位置
221.5.211.237中国 重庆 重庆市 联通
221.5.251.89中国 重庆 重庆市 联通
219.158.106.253中国 北京 北京市 联通
219.158.104.98中国 联通
153.3.228.174中国 江苏省 南京市 联通
153.37.96.158中国 江苏省 南京市 联通
112.80.248.76中国 江苏省 南京市 联通

3.1 实作二

ping.pe 这个网站可以探测从全球主要的 ISP 到某站点如www.qq.com 的线路状态,当然也包括各线路到该主机的路由情况。请使用浏览器访问 http://ping.pe/qq.com进行了解。
![在这里插入图片描述](https://img-blog.csdnimg.cn/387af45ee1104fcd9d43906cdd171c9a.png
在这里插入图片描述
问题一

tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?

tracert背后的原理就是基于IP包中的TTL,TTL表示该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,即每经过一个路由器,则把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包,并向IP包的发送者发送ICMP time exceeded消息。

问题二

在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?

第一跳是计算机所在的子网的出口路由器的接口地址,所有出口流量都会经过这个接口,所以节点地址相同。前几跳相同表明该子网出口流量必经过前几跳ip代表的路由器。
问题三

在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?
在这里插入图片描述


诊断工具tracert通过向目标发送具有变化的“生存时间 (TTL)”值的“ICMP 回响请求”消息来确定到达目标的路径。要求路径上的每个路由器在转发数据包之前至少将 IP 数据包中的 TTL 递减 1。这样,TTL 就成为最大链路计数器。数据包上的 TTL 到达 0 时,路由器应该将“ICMP 已超时”的消息发送回源计算机。Tracert 发送 TTL 为 1 的第一条“回响请求”消息,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或跃点达到最大值,从而确定路径。默认情况下跃点的最大数量是 30,可使用 -h 参数指定。检查中间路由器返回的“ICMP 超时”消息与目标返回的“回显答复”消息可确定路径。但是,某些路由器不会为其 TTL 值已过期的数据包返回“已超时”消息,而且这些路由器对于 tracert 命令不可见。在这种情况下,将为该跃点显示一行星号 (*)

tracert的时候出现*号的行列说明有路由器(也许是出于安全考虑,也许是网络问题)没有回应。所以出现**号

四、ARP

ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。

4.1、实作一

  1. 运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么。

在这里插入图片描述
可以看到当前的arp已经对部分ip地址有缓存,包括本机的全局广播(192.168.43.255)和网关(192.168.43.1)等。
2. 然后 ping 一下你旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d * 先删除全部缓存),再次查看缓存,你会发现一些改变,请作出解释。
在我们使用ping命令去访问一个IP地址时,首先我们会查看缓存中是否具有该IP的MAC地址,只有知道了MAC地址我们的请求才能通过数据链路层正确发送出去,如果没有,将立即调用arp协议,发送arp包出去,在局域网内进行广播,询问谁是目的IP,然后根据回应自动存储相应地址到本地缓存。

提醒:
要想使用删除缓存操作“arp -d *” 必须提高操作权限,使用管理员模式去操作。

4.2、实作二

请使用 arp /? 命令了解该命令的各种选项。

命令说明
-a用于查看高速缓存中的所有项目
-a IP如果有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。
-gArp -a和arp –g命令的输出结果是一样的,用于查看高速缓存中的所有项目。
-v-v选项只能和arp –a一起使用,在详细模式下显示当前arp项。所有无效项和环回接口上的项都将显示。
-s添加主机并且将 Internet 地址 internet_address 与物理地址 ethernet_address 相关联。物理地址是用连字符分隔的 6 个十六进制字节。该项是永久的。
-d删除 internet_address 指定的主机。inet_addr 可以是通配符 *,以删除所有主机。

在这里插入图片描述

4.3、实作三

一般而言,arp 缓存里常常会有网关的缓存,并且是动态类型的。

当前网关的 IP 地址是 192.168.43.1,MAC 地址是 a2-6c-e2-4a-7b-a1,使用** arp -s 192.168.43.1 a2-6c-e2-4a-7b-a1**命令设置其为静态类型的。

查询资料可知:在win7及以上arp用来查mac,修改指定IP地址的需要使用netsh命令。
arp -a命令发现0x11=17,代表本机网卡接口Idx为17

在这里插入图片描述

使用netsh -c “i i” add neighbors 17 192.168.43.1 a2-6c-e2-4a-7b-a1命令,成功修改网关ip(192.168.43.1)为静态

在这里插入图片描述

使用netsh -c “i i” delete neighbors 17 192.168.43.1 a2-6c-e2-4a-7b-a1命令,成功还原网关ip(192.168.43.1)为动态
在这里插入图片描述

问题一:
你可能会在实作三的操作中得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?
答:使用管理员模式去运行cmder
问题二:
在实作三中,为何缓存中常常有网关的信息?
答:缓存中常有网关信息是因为缓存本身记录了用户访问过的pc网卡mac物理地址。我们将网关或其他计算机的arp信息。
问题三:
缓存中常有网关信息是因为缓存本身记录了用户访问过的pc网卡mac物理地址。我们将网关或其他计算机的arp信息
答:
设置为静态的优点有:便于以固定的IP地址或IP地址分组产生的流量为依据管理,可以避免用户忘记密码而进行的繁琐事务流程;缺点有:合法用户分配的地址可能被非法盗用,不仅对网络的正常使用造成影响,同时由于被盗用的地址往往具有较高的权限,因而也容易给合法用户造成损失和潜在的安全隐患。

五、DHCP

DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:

  1. 用于内部网或网络服务供应商自动分配 IP 地址给用户
  2. 用于内部网管理员对所有电脑作中央管理
    简单的说,DHCP 可以让计算机自动获取/释放网络配置。

5.1 、实作一

一般地,我们自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用 ipconfig/release 命令释放自动获取的网络配置,并用 ipconfig/renew 命令重新获取,了解 DHCP 工作过程和原理。

ipconfig/release在这里插入图片描述
使用过后发现网络已断开连接,接下来使用重置命令
ipconfig/renew在这里插入图片描述

问题一:
如果你没能成功的释放,请思考有哪些可能的原因并着手进行解决?
答:
可能是软件问题:没有开启DHCP客户端服务;解决方法:在 “ 运行 ” 中输入 “ sc config DHCP start= AUTO ” 重启后就OK 了
问题二:
在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
答:
因为自动配置的IP地址和信息只是短暂性的解决计算机不能获取 DHCP 服务器的配置数据的问题,要真正的接入Internet还是得本身计算机的正确IP地址。意义是:假如某天因DHCP服务器问题从而不能获得网络配置,那么我们可以查看隔壁教室计算机的配置信息来手动进行网络配置,从而使该计算机能够接入Internet。
**在我校不少地方如教室,计算机都采用了 DHCP 来获得网络配置。假如某天因 DHCP 服务器问题从而不能获得网络配置,那么我们可以查看隔壁教室计算机的配置信息来手动进行网络配置,从而使该计算机能够接入 Internet。

经常的,在一个固定地方的网络配置我都喜欢采用 静态/手动配置,而不是动态 DHCP 来进行。你能想到是什么原因吗?
可以避免任何IP地址冲突。 这比动态IP地址更准确的地理位置,而且下载和上传速度通常比动态IP快。

六、netstat

6.1 实作一

Windows 系统将一些常用的端口与服务记录在C:\WINDOWS\system32\drivers\etc\services 文件中,请查看该文件了解常用的端口号分配。
在这里插入图片描述

常用端口服务
21/tcpFTP 文件传输协议
22/tcpSSH 安全登录、文件传送(SCP)和端口重定向
23/tcpTelnet 不安全的文本传送
25/tcp mailSMTP Simple Mail Transfer Protocol (E-mail)
80/tcp www www-httpHTTP 超文本传送协议 (WWW)
443/udp MCom或者443/tcp MComHTTPS used for securely transferring web pages

6.2、实作二

使用 netstat -an 命令,查看计算机当前的网络连接状况。更多的 netstat 命令选项,自行查阅。
在这里插入图片描述

“-a"选项意在显示所有连接,当不附加”-n"选项时,它显示的是本地计算机的netbios名字+端口号。而加了"-n"选项后,它显示的是本地IP地址+端口号。

七、DNS

DNS(Domain Name System)即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。

7.1、实作一

Windows 系统将一些固定的/静态的 DNS 信息在C:\WINDOWS\system32\drivers\etc\hosts 文件中,如我们常用的 localhost 就对应 127.0.0.1 。请查看该文件看看有什么记录在该文件中。
在这里插入图片描述
可以看到我们可以使用本地映射,来访问一些被DNS污染的网址。比如github.com、github.io等网址。

7.2、实作二

解析过的 DNS 记录将会被缓存,以利于加快解析速度。请使用 ipconfig /displaydns 命令查看。我们也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存。
ipconfig /displaydns
在这里插入图片描述
ipconfig /flushdns
在这里插入图片描述

ipconfig /displaydns 再次查看DNS缓存,发现原已经写入hosts文件的记录还在

在这里插入图片描述

7.3、实作三

使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。当然你也可以指定使用 CloudFlare(1.1.1.1)或 Google(8.8.8.8) 的全球 DNS 服务器来解析,如:nslookup qige.io 8.8.8.8,当然,由于你懂的原因,这不一定会得到正确的答案。

  1. nslookup qige.io
    在这里插入图片描述

  2. nslookup qige.io 8.8.8.8
    在这里插入图片描述

                                 如何拦截广告
  1. 可以通过安装浏览器插件如 AdGuard、AdBlocker 等来拦截和过滤。
  2. 可以通过自己修改hosts来过滤广告,基础原理其实就是在文件中添加该广告链接,并且指定一个ip地址(通常为本机地址),因为hosts文件优先级是高于DNS服务器,这样浏览器解析该广告链接时,优先hosts文件,这样我们就相当于更改了该链接本来的ip地址,从而使该链接失效。

八、cache

cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。

浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。

8.1 实作一

打开 edge 浏览器,访问 https://qige.io ,接下来右键检查代码打开开发者工具,选择 网络面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有。
请求加载时间:
在这里插入图片描述

缓存区,可以发现图片(png)基本没有被缓存,而初始页面被缓存。
在这里插入图片描述

8.2 、实作二

接下来仍在 网络面板,选择禁用缓存选项框,表明当前不使用 cache,页面数据全部来自于 Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。
在这里插入图片描述

禁用缓存后,从大小可以看出全部内容都从网络请求,较慢。
在这里插入图片描述

综上,我们应该选择性地清理缓存cache,一些常用的网址尽量不要删除cahce避免之后进入重新加载资源,提高访问速度。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值