计算机网络实验

1. 简介

本计算机网络实验由验证性、Wireshark 和 Cisco Packet Tracer 实验等三个部分组成,对计算机网络课程中所学的知识进行实际操作,进一步加深对计算机网络的理解。

2. 验证性实验

1. ipconfig

1.1 视作一

  • 要求: 使用 ipconfig /all 查看自己计算机的网络配置,尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关 Gateway。
  • 结果:
    -1、 在windows中使用ipconfig命令。

-2、 在Linux中使用ifconfig命令:

1.2 实作二
要求: 使用 ipconfig/all 查看旁边计算机的网络配置,看看有什么异同。
结果: 由于无其他计算机,故使用搭载Linux系统的虚拟机对此实验进行操作,结果如实作一中图二。
思考: 这两台计算机是否处于同一子网,为什么?
这两台计算机处于同一子网,将两台计算机的IP地址与子网掩码进行与运算,可得到其网络地址均为172.168.43.0,所有其处于同一子网中。

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

2.2 实作一
要求: 要测试到某计算机服务器的连通性,可以使用 ping + 网址 命令,也可直接使用 ping + IP 地址。掌握使用该命令后屏幕显示的反馈回来信息的意思,如:TTL、时间等。
结果:

2.3 实作二

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

  • 结果:

    思考1: 假设你不能 ping 通某计算机或 IP,但你确定该计算机和你之间的网络是连通的,那么可能的原因是什么?该如何处理能保证 ping 通?

    当你的网络出现故障不能访问某计算机时,我们一般采用由近及远的连通性测试来确定问题所在。现假设你的 IP 是 192.168.1.89,你旁边计算机的 IP 是 192.168.1.64,网关的 IP 是 192.168.1.1 ,你所想访问的 14.215.177.39 (百度的 IP 地址之一 ) 那么过程如下:

    ping 127.0.0.1 ,测试自己计算机的状态,如果成功,则说明本机网络软件硬件工作正常;否则,问题在本机,检查本机 TCP/IP 配置即网卡状态等。
    ping 192.168.1.64 ,测试到旁边计算机的连通性,如果成功,则说明本子网内部工作正常;否则,问题在本机网络出口到交换机之间,检查本机网卡到交换机的连线等。
    ping 192.168.1.1,测试到网关的连通性,如果成功,则说明本子网出口工作正常;否则,问题在网关。
    ping 14.215.177.39,测试到百度的连通性,如果 成功,那网络一切正常;否则,问题在网关以外。
    思考2: 假设在网络排查中,ping 百度的 IP 即 ping 14.215.177.39 能够成功,但 ping 百度的域名即 ping www.baidu.com 则失败,那么可能的原因是什么?如何进行验证和解决?
    ping IP 能够成功表明链路是畅通的,但是ping 不通域名是由于域名解析出现了问题。在计算机的使用过程中,我们很多时候都是自动获取DNS服务器,但是有时使用默认的DNS服务器是 ping 不通域名的。

    解决办法:清理计算机之前的DNS缓存,再手动设置一个新的DNS服务器;如果还是不行,则需要联系运营商。

    2.4 课外浏览
    Ping攻击
    Ping攻击就是不断向指定的IP地址发送不接收回复的数据包,这种攻击通过发送大于65536字节的ICMP包使操作系统崩溃。在ping程序发展初期,并未对ICMP包的大小进行限制,导致接收方缓冲区溢出,现在此bug已被修复,所以通常不可能发送大于65536个字节的ICMP包,但如果把报文分割成片段,然后在目标主机上重组,最终会导致被攻击目标缓冲区溢出,直至目标主机有限系统资源被消耗殆尽。

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

    3.2 实作一
    要求: 要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert www.baidu.com 命令,查看反馈的信息,了解节点的个数。通过网站 http://ip.cn 查看这些节点位于何处,是哪个公司的,大致清楚本机到百度服务器之间的路径。
    结果:

  • 结果分析: 通过 teacert www.baidu.com 命令可知,我的计算机和百度之间有13个节点,其中 1 号节点为内网ip,5~7 号节点为位于重庆市,11、13 号节点位于广东省,所有已知节点均属于移动公司。

    3.3 实作二
    要求: ping.pe 这个网站可以探测从全球主要的 ISP 到某站点如 https://qige.io 的线路状态,当然也包括各线路到该主机的路由情况。请使用浏览器访问 http://ping.pe/qige.io 进行了解。
    结果:

  • 思考1: tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?(本问题可结合第二部分的 Wireshark 实验进行验证)
    Tracert命令通过向目标发送不同 IP 生存时间 (TTL) 值的 “Internet 控制消息协议 (ICMP)” 回应数据包,Tracert 诊断程序先确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
    Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。

    思考2: 在以上两个实作中,留意路径中的节点,会发现路径中的第一跳都是相同的,甚至似乎前几个节点都是相同的,为什么?
    数据传输只要需要出内网,都将经过网关,所以前几个节点相同。

    思考3: 在追踪过程中,会看到路径中某些节点显示为 * 号,这是发生了什么?
    某些路由器会直接丢弃 TTL 过期的数据包,而不会进行信息反馈。

    3.4 拓展
    在 Linux 系统中,其下的 My Trace Route 即 mtr 命令。该命令的速度比 Windows 平台下的 tracert 快很多,并且显示的数据也更多。如图所示:

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

    4.2 实作一
    要求: 运行 arp -a 命令查看当前的 arp 缓存, 注意留意缓存内容。使用Ping命令Ping 一下旁边计算机 IP (注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d 先删除全部缓存) ,再次查看缓存,请对缓存的变化做出解释。
    结果:

    解释: 在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应的信息,则通过发送ARP request报文来获得它。由于删除了ARP缓存,所以设备发送了ARP报文获取了目的IP的MAC地址。学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。
    4.3 实作二
    要求: 请使用 arp /? 命令了解该命令的各种选项。
    结果:

  • 4.4 实作三
    要求: 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 命令设置其为静态类型。
    结果:

    4.5 拓展
    问题1: 在实作三的操作中可能会得到 “ARP 项添加失败: 请求的操作需要提升” 该如何解决?
    使用命令 netsh i i show in 找到所连接的网络Idx。
    使用命令netsh -c “i i” add neighbors (Idx) (ip地址) (Mac地址)。
    问题2: 在实作三中,为何缓存中常常有网关的信息?我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?
    ARP缓存记录着访问过的pc网卡MAC物理地址。
    静态分配IP地址是指给每一台计算机都分配一个固定的IP地址。
    - 优点:便于管理,以固定的IP地址或IP地址分组产生的流量为依据管理,可以免除在按用户方式计费时用户每次上网都必须进行的身份认证的繁琐过程,同时也避免了用户经常忘记密码的尴尬。
    - 缺点:合法用户分配的地址可能被非法盗用,不仅对网络的正常使用造成影响,同时由于被盗用的地址往往具有较高的权限,因而也容易给合法用户造成损失和潜在的安全隐患。
    5.DHCP
    5.1 简介
    DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:

    用于内部网或网络服务供应商自动分配 IP 地址给用户
    用于内部网管理员对所有电脑作中央管理
    5.2 实作一
    要求: 一般地,自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用 ipconfig /release 命令释放自动获取的网络配置,并用 ipconfig /renew 命令重新获取,了解 DHCP 工作过程和原理。
    结果:

  • 问题1: 如果未能成功释放,请思考有哪些可能的原因并着手进行解决?
    将 DHCP Service 重启,重新下载 TCP/IP或者重新安装驱动网卡。

    问题2: 在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
    此 IP 地址为链路本地地址,是用于DHCP服务器故障,电脑无法获取IP时,由Windows系统自动分配的IP,不能作为接入Internet的IP地址。分配一个临时的IP可以连接处在同一广播域中的其他设备。

    思考: 在一个固定地方的网络配置采用静态 /手动配置,还是动态 DHCP 来进行更好?
    静态ip是一个固定的IP地址,可以用作自己的网站和服务器,因此静态IP更稳定,更便于用户管理静态ip。

    6. netstat
    6.1 简介
    netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。

    6.2 实作一
    要求: Windows系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services 文件中,请查看该文件了解常用的端口号分配。
    结果:

    6.3 实作二

  • 要求: 使用 netstat -an 命令,查看计算机当前的网络连接状况。
  • 结果:

拓展: 打开的计算机端口,就是向 Internet 打开的一个通道。通过 netstat 命令,我们可以了解当前计算机哪些端口是打开的,从而找出一些恶意后台程序,分析其所作所为,并且可以进一步将相关端口关闭,降低安全风险。

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

7.2 实作一
要求: Windows 系统将一些固定的/静态的 DNS 信息记录在 C:\WINDOWS\system32\drivers\etc\hosts 文件中,如我们常用的 localhost 就对应 127.0.0.1 。请查看该文件,了解记录详情。
结果:

7.3 实作二

  • 要求: 解析过的 DNS 记录将会被缓存,以利于加快解析速度。请使用 ipconfig /displaydns 命令查看。我们也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存。
  • 结果:

7.4 实作三
要求: 使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。当然你也可以指定使用 CloudFlare(1.1.1.1)或 Google(8.8.8.8) 的全球 DNS 服务器来解析,如:nslookup qige.io 8.8.8.8。
结果:

7.5 拓展
小知识: 我们使用浏览器上网时,或多或少的会看到一些广告。某些网站的广告是非常没有节操的,所以我们一般可以通过安装浏览器插件如 AdGuard、AdBlocker 等来拦截和过滤。这种方法简单方便有效,不过有一定安全或隐私问题,因为该插件实时知道你访问的 URL。如果不使用这种第三方的插件,希望自己完全控制,那么就请考虑在我们前面提到的 hosts 文件中添加 DNS 记录。有自愿者时时在维护全球正确的 DNS 记录文件。hosts文件

8. cache
8.1 简介
cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。
浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。

8.2 实作一
要求: 打开 Chrome 或 Firefox 浏览器,访问 https://qige.io ,接下来敲 F12 键 或 Ctrl + Shift + I 组合键打开开发者工具,选择 Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。查看哪些文件被 cache了。
结果:

8.3 实作二

  • **要求:**接下来仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于 Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。
  • 结果:

8.4 小贴士
你的计算机可能还在使用 XX 管家,XX 卫士之类的垃圾软件,那么它可能就会在某些时候提示你计算机的垃圾文件有多少多少,请清理(其实是它本身应该被清理),如果你查看一下它判断的所谓垃圾文件,你会发现大多都是浏览器的缓存,此时你已经明白了这些缓存文件的作用。所以,清理吗?
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值