计算机网络实验(验证性实验)
ipconfig
实作一
使用 ipconfig/all 查看自己计算机的网络配置,尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关 Gateway
实作二
使用 ipconfig/all 查看旁边计算机的网络配置,看看有什么异同。
异:
IPv4 地址的最后一位、物理地址、IPv6地址不同
同:
子网掩码、默认网关相同
问题
你的计算机和旁边的计算机是否处于同一子网,为什么?
是,可以将ip地址与子网掩码化为二进制后进行与运算,得到的结果为网络号,两个网络号相同,就处于同一子网。
ping
实作一
要测试到某计算机如 重庆交通大学 Web 服务器的连通性,可以使用 ping www.cqjtu.edu.cn 命令,也可直接使用 IP 地址。
请掌握使用该命令后屏幕显示的反馈回来信息的意思,如:TTL、时间等。
TTL:
TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4报头的一个8 bit字段。注意:TTL与DNS TTL有区别。二者都是生存时间,前者指ICMP包的转发次数(跳数),后者指域名解析信息在DNS中的存在时间。
时间:
该时间是自己发送至对方地址后对面做出反馈的时间。
实作二
使用 ping/? 命令了解该命令的各种选项并实际使用
TroubleShooting
假设你不能 ping 通某计算机或 IP,但你确定该计算机和你之间的网络是连通的,那么可能的原因是什么?该如何处理能保证 ping 通?
当你的网络出现故障不能访问某计算机如 14.215.177.39 (百度的 IP 地址之一 ) 时,我们一般可采用由近及远的连通性测试来确定问题所在。
现假设你的 IP 是 192.168.1.89,你旁边计算机的 IP 是 192.168.1.64,网关的 IP 是 192.168.1.1 ,那么过程如下:
ping 127.0.0.1 ,测试自己计算机的状态,如果 OK,那么说明本机网络软件硬件工作正常,否则,问题在本机,检查本机 TCP/IP 配置即网卡状态等
ping 192.168.1.64 ,测试到旁边计算机的连通性,如果OK,那么说明本子网内部工作正常,
否则,问题在本机网络出口到交换机之间,检查本机网卡到交换机的连线等
ping 192.168.1.1,测试到网关的连通性,如果 OK,那么说明本子网出口工作正常,否则,问题在网关,这是你无能为力的事情,报告给网管
ping 14.215.177.39,测试到百度的连通性,如果 OK,那就 OK,否则,问题在网关以外。
TroubleShooting
假设在秘籍中进行的网络排查中,ping 百度的 IP 即 ping 14.215.177.39 没问题,
但 ping 百度的域名即 ping www.baidu.com 不行,那么可能的原因是什么?如何进行验证和解决?
另外,经常有同学问到的:"能上 QQ,但不能上网" 跟这个问题的原因是相似的。
原因:
1、能ping通ip,说明目标是存在的,并且是可以访问的;
2、不能ping通域名,说明dns解析失败;因为你输入的域名首先要由你当地的dns服务器转换为对应的ip地址,然后根据ip地址发送icmp数据包测试;由于dns服务器故障或者设置错误,就会出现你现在的问题。
解决办法:
1.首先清空一下DNS缓存
2.然后临时设置电脑的DNS为Google的DNS 8.8.8.8 或者电信的 101.226.4.6或者114.114.114.114,如果还是Ping不通,可联系给域名服务的服务商,他们会给出dns服务器。
3.为什么能上QQ却不能上网是因为QQ是不需要DNS解析域名的
tracert
实作一
要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert www.baidu.com 命令,查看反馈的信息,了解节点的个数。
实作二
ping.pe 这个网站可以探测从全球主要的 ISP 到某站点如 https://qige.io 的线路状态,当然也包括各线路到该主机的路由情况。请使用浏览器访问 http://ping.pe/qige.io 进行了解
问题一
tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?本问题可结合第二部分的 Wireshark 实验进行验证。
通过向目标发送不同IP存活时间 (TTL) 值的“Internet控制消息协议(ICMP)”回应数据包,
Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减1。
数据包上的 TTL 减为 0 时,路由器将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。
通过检查中间路由器发回的“ICMP已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包。
问题二
在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?
因为我们电脑网络都是从本机出发通过学校的交换机然后进入通信子网上的,第一跳都是到本地交换机,这些交换机都是相同的路径,所以第一跳一定相同,一般前几个节点也是相同的。
问题三
在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?
出于安全考虑或网络问题没有出现具体的信息反馈,请求超时
tracert
实作一
运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么。
然后 ping 一下你旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d * 先删除全部缓存),再次查看缓存,你会发现一些改变,请作出解释。
(图片19)(图片22)
请求超时,可能是因为电脑的防火墙出于开启状态,导致ping不同对方主机。
实作二
请使用 arp /? 命令了解该命令的各种选项
实作三
一般而言,arp 缓存里常常会有网关的缓存,并且是动态类型的。
假设当前网关的 IP 地址是 192.168.0.1,MAC 地址是 5c-d9-98-f1-89-64,请使用 arp -s 192.168.0.1 5c-d9-98-f1-89-64 命令设置其为静态类型的。
TroubleShooting
你可能会在实作三的操作中得到 "ARP 项添加失败: 请求的操作需要提升" 这样的信息,表示命令没能执行成功,你该如何解决?
1.进入管理员模式,输入netsh i i show in 先找出当前的网卡idx号。(本人连接的热点对应的idx为7)
2.运行:netsh -c i i add neighbors “idx” “ip地址” “物理地址”
问题
在实作三中,为何缓存中常常有网关的信息?我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?
1、缓存中是主机曾经访问过的记录,访问其他地址需要网关信息,因此缓存中会存在网关的信息。
2、优点是方便管理,不需要进行多次认证。缺点是可能有安全隐患。
tracert
实作一
一般地,我们自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用 ipconfig/release 命令释放自动获取的网络配置,并用 ipconfig/renew 命令重新获取,了解 DHCP 工作过程和原理。
TroubleShooting:
如果你没能成功的释放,请思考有哪些可能的原因并着手进行解决?
可能是没有网卡,或者没有驱动。解决方法是装网卡或驱动
问题
在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。
显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
因为会导致ip发生冲突,自动配置的IP地址和信息只是短暂性的解决计算机不能获取 DHCP 服务器的配置数据的问题,要真正的接入Internet还是得本身计算机的正确IP地址
netstat
实作一
Windows 系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services 文件中,请查看该文件了解常用的端口号分配。
实作二
使用 netstat -an 命令,查看计算机当前的网络连接状况。更多的 netstat 命令选项,可参考上面链接 4 和 5 。
DNS
实作一
Windows 系统将一些固定的/静态的 DNS 信息记录在 C:\WINDOWS\system32\drivers\etc\hosts 文件中,如我们常用的 localhost 就对应 127.0.0.1 。请查看该文件看看有什么记录在该文件中。
实作二
解析过的 DNS 记录将会被缓存,以利于加快解析速度。请使用 ipconfig /displaydns 命令查看。我们也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存。
实作三
使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。当然你也可以指定使用 CloudFlare(1.1.1.1)或 Google(8.8.8.8) 的全球 DNS 服务器来解析,如:nslookup qige.io 8.8.8.8,当然,由于你懂的原因,这不一定会得到正确的答案。
TroubleShooting:
上面秘籍中我们提到了使用插件或自己修改 hosts 文件来屏蔽广告,思考一下这种方式为何能过滤广告?
如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它?
在文件中添加该广告链接,并且指定一个ip地址(通常为本机地址),因为hosts文件优先级是高于DNS服务器,这样浏览器解析该广告链接时,优先hosts文件,这样我们就相当于更改了该链接本来的ip地址,从而使该链接失效
广告拦截失败可能是广告域名改了,需要在hosts中进行修改它的新域名。
cache
实作一
打开 Chrome 或 Firefox 浏览器,访问 https://qige.io ,接下来敲 F12 键 或 Ctrl + Shift + I 组合键打开开发者工具,选择 Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有。
实作二
接下来仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于 Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。