计算机网络实验
1. 验证性实验
ipconfig
实作一
使用 ipconfig/all 查看自己计算机的网络配置,尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关 Gateway。
实作二
使用 ipconfig/all 查看旁边计算机的网络配置,看看有什么异同。
异:
IPv4 地址不同;
物理地址不同,
默认网关不同。
同:
子网掩码是相同的。
问题
问题:你的计算机和旁边的计算机是否处于同一子网,为什么?
答: 是。子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据,它跟IP地址做“与运算”得到的结果就是网络号。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,说明这两台主机的网络号相同,即这两台主机在同一子网中。
ping
实作一
要测试到某计算机如 重庆交通大学 Web 服务器的连通性,可以使用 ping www.cqjtu.edu.cn 命令,也可直接使用 IP 地址。请掌握使用该命令后屏幕显示的反馈回来信息的意思,如:TTL、时间等。
ping www.cqjtu.edu.cn
TTL:指数据包被路由器丢弃之前所允许通过的网段数量
时间:指得到对方回应的时间
实作二
使用 ping/? 命令了解该命令的各种选项并实际使用。
具体使用
- ping -t [目标主机IP地址(也可以是网址)]
Ping指定IP或网址,查看通讯连接情况,也可以获取到服务器IP地址和连接响应时间。
参数-t,一般称之为长ping,它的作用就是能让ping命令检测时一直ping下去,直到手动终止为止(ctrl+c),利用ping命令加参数-t,可以使大家在检测ping值信息时,时时观测到线路的通畅情况。以下是ping百度网的连接情况:
- ping -a [目标主机IP地址]
可以通过这个命令查看到主机名,从而快速找到机主,如下图所示:
- ping -n [回显请求的次数] [目标主机IP地址]
此选项可以指定回显请求的次数,默认次数为4次。在-n 后面加数字,数字范围是从1-4294967295,后面加的数字即为回显请求的次数。此选项就可以任意选定回显的次数,不像默认那样死板,也不像-t选项不停止,如下图所示:
- ping -l [数据包大小] [目标主机的IP地址]
ping -l选项 发送size指定大小的到目标主机的数据包。在默认的情况下Windows的ping发送的数据包大小为32byte(字节),最大能发送65500byte(字节)。当一次发送的数据包大于或等于65500byte(字节)时,将可能导致接收方计算机瘫痪。所以微软限制了这一数值,这个参数配合其它参数同时使用危害非常强大,比如攻击者结合-t参数实施无限死亡之ping攻击(所以它具有危险性,不要轻易向别人计算机使用)。具体测试如下图所示:
- ping [目标主机的IP地址] -i TTL
通过使用该参数可以设置源地址(发送端)发送的ping包的TTL值。
问题
问题:假设你不能 ping 通某计算机或 IP,但你确定该计算机和你之间的网络是连通的,那么可能的原因是什么?该如何处理能保证 ping 通?
答: 错误原因有: 1.目的计算机没有开机
2.子网掩码错误
3.目的计算机IP填写有误,不存在该主机
4.防火墙禁止了目的计算机对ping的回应
处理:依次检查ip是否存在,子网掩码是否填写错误,检查防火墙是不是禁止了对方的ping
问题:假设在秘籍中进行的网络排查中,ping 百度的 IP 即 ping 14.215.177.39 没问题,但 ping 百度的域名即 ping www.baidu.com 不行,那么可能的原因是什么?如何进行验证和解决?
另外,经常有同学问到的:“能上 QQ,但不能上网” 跟这个问题的原因是相似的。
答: (1) 可以使用ping通ip,但是域名ping不通说明域名解析不出来。负责解析域名的是DNS(域名解析协议),所以我们首先先清空一下DNS缓存,然后设置电脑的DNS,然后再ping, 如果还是ping不通 则可联系给域名服务的服务商;
(2) 因为QQ是不需要DNS解析域名的,所以DNS出问题也不会影响QQ登录。
tracert
实作一
要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert www.baidu.com 命令,查看反馈的信息,了解节点的个数。可通过网站 http://ip.cn 查看这些节点位于何处,是哪个公司的,大致清楚本机到百度服务器之间的路径。
实作二
ping.pe 这个网站可以探测从全球主要的 ISP 到某站点如 https://qige.io 的线路状态,当然也包括各线路到该主机的路由情况。请使用浏览器访问 http://ping.pe/qige.io 进行了解。
问题
问题一:
tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?本问题可结合第二部分的 Wireshark 实验进行验证。答:
Tracert是Windows路由跟踪程序,在cmd中使用,用于确定 IP数据包访问目标所采取的路径。Tracert 命令使用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上 其他主机的路由。
要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。
问题二:
在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?
答:
本机不管要访问什么网站,首先都要到达自己局域网的网关,再经过网关转发出去,通过通信子网到达其他服务器。
问题三:
在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?
答:
因为某些路由器对于 TTL 为零的数据包没有发出“ICMP已超时”的消息,不经询问直接丢弃 TTL 过期的数据包,导致某些路径显示*号。
ARP
实作一
运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么。
然后 ping 一下你旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d * 先删除全部缓存),再次查看缓存,你会发现一些改变,请作出解释。
使用 arp -d *命令,再使用arp -a命令,如下图:
实作二
请使用 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 命令设置其为静态类型的。
问题
问题: 你可能会在实作三的操作中得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?
答: 进入管理员模式,提高权限后再运行
问题: 在实作三中