计算机网络实验

目录

验证性实验

1.ipconfig

2.Ping

3.tracert

4.ARP

5.DHCP

6.netstat

7.DNS

Wireshark 实验

 数据链路层

实作一

实验二 了解子网内/外通信时的 MAC 地址

网络层

实作一 熟悉 IP 包结构

实作三 考察 TTL 事件

传输层

实作一 熟悉 TCP 和 UDP 段结构

应用层

实作一 了解 DNS 解析

实作二 了解 HTTP 的请求和应答

Cisco Packet Tracer 实验

 1.直接连接两台 PC 构建 LAN

2.用交换机构建 LAN

5.生成树协议(Spanning Tree Protocol)

6.路由器配置初步

静态路由

动态路由 RIP

动态路由 OSPF

虚拟局域网 VLAN

虚拟局域网管理 VTP

VLAN 间的通信

DHCP、DNS及Web服务器简单配置

WLAN初步配置


验证性实验

1.ipconfig

实作一

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

 实作二
1.使用 ipconfig/all 查看旁边计算机的网络配置,看看有什么异同。

ip地址前24位相同,子网掩码相同

2.你的计算机和旁边的计算机是否处于同一子网,为什么?

处于同一子网,因为网络号相同

2.Ping

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

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

-i TTL:生存时间。

-w timeout 等待每次回复的超时时间(毫秒)。

11.假设在秘籍中进行的网络排查中,ping 百度的 IP 即 ping 14.215.177.39 没问题,但 ping 百度的域名即 ping www.baidu.com 不行,那么可能的原因是什么?如何进行验证和解决?
答:可以ping通ip但是域名ping不通说明域名解析不出来。负责解析域名的,是DNS(域名解析协议),所以,我们首先先清空一下DNS缓存,然后设置电脑的DNS,然后再ping, 如果还是ping不通 则可联系给域名服务的服务商。

3.tracert

实作一

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

2.可通过网站 http://ip.cn 查看这些节点位于何处,是哪个公司的,大致清楚本机到百度服务器之间的路径。

实作二

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

2.tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?本问题可结合第二部分的 Wireshark 实验进行验证。
答:Tracert 先发送 TTL 为 1 的回应数据包,并随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。
3.在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?
答:都是从本机网络出发,经由的都是离本机最近的节点,一般都是相同的。
4.在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?
答:某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。

4.ARP

实作一

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

2.然后 ping 一下你旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d * 先删除全部缓存),再次查看缓存,你会发现一些改变,请作出解释。
答:主机 A 要向某网络设备 X 发送数据时,需要先在其 ARP 高速缓存中查看有无网络设备X 的 IP 地址。如果没有,主机 A 收到主机 B 的 ARP 响应后, 会在其 ARP 高速缓存中记录 主机B 的 IP 地址到其硬件地址的映射。

实作二

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

 实作三
1.一般而言,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 命令设置其为静态类型的。
2.你可能会在实作三的操作中得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?
答:打开管理员PowerShell重新操作。
3.在实作三中,为何缓存中常常有网关的信息?
答:因为我们在通信时,大多数数据都从网关转出,将网关信息存储起来,方便路由时查表,方便下次使用。
4.我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?
答:优点是防止arp欺骗,缺点是不利于维护 arp 列表。

5.DHCP

实作一

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

4.如果你没能成功的释放,请思考有哪些可能的原因并着手进行解决?
答:没有打开DHCP服务,输入“systemctl start dhcpd”命令启动DHCP服务。
5.在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
答:169.254.x.x 可能会令客户机与所处局域网网关位于不同的网段中,而无法与网关通信,而导致无法接入Internet。这是Windows操作系统为了防止主机脱网,为网卡设置169.254.x.x的保留IP,此时就算由于某种原因计算机不能获取 DHCP 服务器的配置数据时,他们还通过保留地址还可以互相通讯。
6.经常的,在一个固定地方的网络配置我都喜欢采用 静态/手动配置,而不是动态 DHCP 来进行。你能想到是什么原因吗?
答:DHCP分配可能会因为DHCP服务器地址耗尽而没有ip进行上网,而静态ip没有这样的问题。

6.netstat

实作一

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

实作二
使用 netstat -an 命令,查看计算机当前的网络连接状况。

7.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。

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

实作二

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

Wireshark 实验

 数据链路层

实作一

1.使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。

2.你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。
答:,以太网校验和在传递给Wireshark之​​前由NIC处理。由于NIC是在硬件中完成的,因此没有办法(或实际上没有任何理由)将其传递到更高的层。

实验二 了解子网内/外通信时的 MAC 地址

1.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?

 发出帧的目的MAC:e0:cc:f8:93:d3:0f。

返回帧的源MAC:e0:cc:f8:93:d3:0f。

属于同一子网下的计算机MAC地址。
2.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?

回帧的MAC地址是网关的MAC地址

3、再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的?

回帧的MAC地址是网关的MAC地址

实作三 掌握 ARP 解析过程

1、为防止干扰,先使用 arp -d * 命令清空 arp 缓存
2、ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。


3、再次使用 arp -d * 命令清空 arp 缓存
4、然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。

 

5.通过以上的实验,你应该会发现,
ARP 请求都是使用广播方式发送的
如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。
请问为什么?
答:如果访问的是本子网的 IP ,如果 ARP 缓存中没有该 IP(mac 绑定地址),那就发送广播,在子网中寻找,然后将这个 IP 与对应的 mac 进行绑定;如果访问的是非子网的 IP ,那么 APR 将会解析得到网关的 mac,因为发送数据到局域网外都是通过网关这个端口,所以得到的是网关的 mac。

网络层

实作一 熟悉 IP 包结构

使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。

 2.为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?
答: IP 头部字段的作用是为了描述IP包头的长度,因为在IP包头中有变长的可选部分。总长度字段是IP首部中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。尽管以太网的最小帧长为46字节,但是IP数据可能会更短。如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。
实作二 IP 包的分段与重组
1.我们可以使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等。

2.分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6 中,如果路由器遇到了一个大数据包该怎么办?
答:丢弃。

实作三 考察 TTL 事件

1.请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。

TTL随着跳数的增加而累加,每一个结点3次的TTL的数值不会改变,因此我们可以简单的用过TTL的数值来确定该从源点到自己计算机之间有多少个节点数。
2.在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL 的值为 50,那么可以推断这个包从源点到你之间有多少跳?
答:50跳。

传输层

实作一 熟悉 TCP 和 UDP 段结构

1.用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。

2.用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。

3.由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?
答:源端口的作用是标识报文的返回地址,目的端口指明报文接收计算机上的应用程序地址接口。

二、 分析 TCP 建立和释放连接

  • 打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用 tcp 过滤后再使用加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。

  •  3.请在你捕获的包中找到四次挥手释放连接的包,并说明为何它们是用于释放连接的,有什么特征。

 4.去掉 Follow TCP Stream,即不跟踪一个 TCP 流,你可能会看到访问 qige.io 时我们建立的连接有多个。请思考为什么会有多个连接?作用是什么?
答:不止一个端口与qige.io建立连接,为了提高运行速度。
5.我们上面提到了释放连接需要四次挥手,有时你可能会抓到只有三次挥手。原因是什么?
答:第二次、第三次挥手发出的包合并为了一个。

应用层

实作一 了解 DNS 解析

1.先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。

2.你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。 

 

3.可了解一下 DNS 查询和应答的相关字段的含义
16位标识字段用于标记一对DNS查询和应答,以此区分一个DNS应答是哪个DNS查询的回应。
16位标志字段用于协商具体的通信方式和反馈通信状态。
接下来的4个字段则分别指出DNS报文的最后4个字段的资源记录数目。
4.你可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因?
答:请求的DNS服务器可能不知道网站的ip地址,需要向更高的服务器请求。

实作二 了解 HTTP 的请求和应答

1.打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。

2.请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。
GET命令

3.请在你捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。
应答代码200

Cisco Packet Tracer 实验

 1.直接连接两台 PC 构建 LAN

将两台 PC 直接连接构成一个网络。注意:直接连接需使用交叉线。

2.用交换机构建 LAN

构建如下拓扑结构的局域网:

PC0 能否 ping 通 PC1、PC2、PC3 ?
ping PC1通

ping PC2不通

 ping PC3不通

 

PC3 能否 ping 通 PC0、PC1、PC2 ?为什么?
ping PC0不通

ping PC1不通

ping PC2通

答:PC0和PC1与PC3处于不同子网,不能相互通信,而PC2与PC3在同一子网,可以通信。
3.将 4 台 PC 的掩码都改为 255.255.0.0 ,它们相互能 ping 通吗?为什么?
PC0 ping PC1 PC2 PC3均可ping通。

答:它们的ip地址与子网掩码运算得出的网络号相同,说明处于同一子网,则可以通信。
4.使用二层交换机连接的网络需要配置网关吗?为什么?
答:不需要,pc和交换机处于同一网络。
5.集线器 Hub 是工作在物理层的多接口设备,它与交换机的区别是什么?请在 CPT 软件中用 Hub 构建网络进行实际验证。
答:区别在于交换机工作在数据链路层,通过MAC地址转发数据;集线器工作在物理层,通过广播的形式转发数据。
交换机在PC0 ping PC1后交换机自主更新MAC表。

4.交换机接口地址列表
1.二层交换机是一种即插即用的多接口设备,它对于收到的帧有 3 种处理方式:广播、转发和丢弃(请弄清楚何时进行何种操作)。
答:如果在MAC地址表里有帧的目的MAC,就从对应的接口转发过去,否则进行广播,如果广播后仍未找到,则丢弃。

2.仍然构建上图的拓扑结构,并配置各计算机的 IP 在同一个一个子网,使用工具栏中的放大镜点击某交换机如左边的 Switch3,选择 MAC Table,可以看到最初交换机的 MAC 表是空的,也即它不知道该怎样转发帧(那么它将如何处理?),用 PC0 访问(ping)PC1 后,再查看该交换机的 MAC 表,现在有相应的记录,请思考如何得来。
交换机3的 MAC Table

PC0 访问(ping)PC1 的MAC表,则说明表由交换机学习得来。

5.生成树协议(Spanning Tree Protocol)

只使用交换机,构建如下拓扑:

这是初始时的状态。我们可以看到交换机之间有回路,这会造成广播帧循环传送即形成广播风暴,严重影响网络性能。

随后,交换机将自动通过生成树协议(STP)对多余的线路进行自动阻塞(Blocking),以形成一棵以 Switch4 为根(具体哪个是根交换机有相关的策略)的具有唯一路径树即生成树!

经过一段时间,随着 STP 协议成功构建了生成树后,Switch5 的两个接口当前物理上是连接的,但逻辑上是不通的,处于Blocking状态(桔色)如下图所示:

在网络运行期间,假设某个时候 Switch4 与 Switch5 之间的物理连接出现问题(将 Switch4 与 Switch5 的连线剪掉),则该生成树将自动发生变化。Switch5 上方先前 Blocking 的那个接口现在活动了(绿色),但下方那个接口仍处于 Blocking 状态(桔色)。如下图所示:

6.路由器配置初步

1.我们模拟重庆交通大学和重庆大学两个学校的连接,构建如下拓扑:

 

2.现实中,交通大学和重庆大学的连接是远程的。该连接要么通过路由器的光纤接口,要么通过广域网接口即所谓的 serial 口(如拓扑图所示)进行,一般不会通过双绞线连接(为什么?)。
答:双绞线传输距离比较短,一般不超过100米。双绞线的传输速率低。双绞线传输电信号,容易被周围环境影响,抗干扰能力弱。双绞线损耗高。
3.交通大学路由器基本配置如下:
以太网口:

广域网口:

静态路由

1.交通大学路由器静态路由配置:

2.重庆大学路由器静态路由配置:

动态路由 RIP

1.清除静态路由配置:
交通大学路由器:

 

重庆大学路由器 

2.交通大学路由器 RIP 路由配置:

3.重庆大学路由器 RIP 路由配置:

动态路由 OSPF

1.清除 RIP 路由配置:
交通大学路由器:

重庆大学路由器:

2.交通大学路由器 OSPF 路由配置:

3.重庆大学路由器 OSPF 路由配置:

基于端口的网络地址翻译 PAT
我们仍然使用重庆交通大学和重庆大学两个学校的拓扑进行 PAT 实验。我们需要保证两个学校的路由已经配置成功,无论使用静态路由还是动态路由,以下我们给出完整的配置过程:设定这两个学校的路由器使用 OSPF 协议,模拟交通大学使用内部 IP 地址(192.168.1.0/24),模拟重庆大学使用外部 IP 地址(8.8.8.0/24),两个路由器之间使用外部 IP 地址(202.202.240.0/24),在交通大学的出口位置即广域网口实施 PAT。
1.交通大学路由器接口配置如下:
以太网口:

广域网口 

广域网口 

2.重庆大学路由器接口配置如下:
以太网口: 

 广域网口

交通大学路由器 OSPF 路由配置 

重庆大学路由器 OSPF 路由配置 

虚拟局域网 VLAN

1.在 CPT 中构建如下图所示拓扑:

交换机 VLAN 配置: 

 

此时可以使用 ping 命令进行测试,你会发现只有在同一 VLAN 中的 PC 才能通信,且广播也局限于该 VLAN

VLAN10的PC0 ping VLAN10 的PC1 

 

VLAN10的PC0 ping VLAN30 的PC2

4.分析一下当前为何不同 VLAN 中的 PC 不能通信?网关在此起什么作用?我们的网关又在何处?如何发起广播测试?
答:不同的VLAN处于不同的子网,所以不能通信;网关在此起到划分vlan的作用;网关在子网与交换机连接的端口。ping不同子网的PC进行测试。

虚拟局域网管理 VTP

1.为演示 VTP,重新构建如下拓扑结构:

3560 VTP Server 配置 

2960A(左边) VTP Client 配置 

2960B(右边) VTP Client 配置: 

使用 PC0(192.168.1.2) ping PC1(192.168.2.2) 的结果如何?使用 PC0 ping PC2 的结果如何?想想为什么?
答:PC0 ping不同PC1;可以ping通PC2;因为PC0和PC1不在同一个VLAN下,相当于不同子网中通信,不可通信,而PC0和PC2在同一个VLAN下,相当于在同一子网中通信,可以通信。

VLAN 间的通信

1.3560 交换机配置

现在再使用 PC0(192.168.1.2) ping PC1(192.168.2.2) 的结果如何?使用 PC0 ping PC2 的结果如何?

PC0 ping PC1,可以ping通

PC0 ping PC2,可以ping通

DHCP、DNS及Web服务器简单配置

1.点击 CPT 拓扑图中的 Server 图标,设置其静态 IP 地址为 19.89.6.4/24。

 

2.Server HTTP配置 

 

 Server DNS配置

Server DHCP配置 

先查看各 PC,看看是否获得网络配置 

因为我们在 DNS 服务器中把谷歌和百度的 IP 都设为了 19.89.6.4,即 Server-PT,所以,如果打开 PC0 的浏览器,输入 www.google.com 或者 www.baidu.com,我们都应该看到默认的 Server-PT 这个 Web 服务器的主页(你也可进行编辑)。
www.google.com

WLAN初步配置

1.我们通过构建如下拓扑的一个家庭 WLAN 来练习一下其相关的配置:

笔记本及台式机默认只有有线网卡,请先关机,在关机状态下删除有线网卡,添加无线网卡,然后再开机。
2.台式机配置无线网卡PT-HOST-NM-1W 

笔记本电脑配置无线网卡PT-LAPTOP-NM-1W 

路由器配置 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值