重庆交通大学
实验报告
班 级: 计算机1班
学 号: 632007060221
姓 名: 安庆洋
实验项目名称: 验证性, Wireshark ,CPT
实验所属课程: 计算机网络A
指 导 教 师 : 王勇
实验完成时间: 2023 年 1 月 8
计算机网络实验
- 验证性
1.ipconfig
显示所有当前 TCP/IP 网络配置值并刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。 ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息(/all 参数)。
实作:使用 ipconfig/all 查看自己计算机的网络配置,尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关 Gateway。
2.ping
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。
实作:
- 使用 ping/? 命令了解该命令的各种选项并实际使用。
要测试到某计算机如 重庆交通大学 Web 服务器的连通性,可以使用 ping www.cqjtu.edu.cn 命令,也可直接使用 IP 地址。
回显的结果包括:字节数,反应时间,TTL(生存时间)
TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4报头的一个8 bit字段。
- Tracert
TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 数据包传送到目标地址时经过的路径。
实作:
要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert www.baidu.com 命令,查看反馈的信息,了解节点的个数。
可通过网站 http://ip.cn 查看这些节点位于何处,是哪个公司,大致清楚本机到百度服务器之间的路径。使用 ping.pe 探测全球主要的ISP到http://qige.io的线路状态,包括各线路到该主机的路由情况。
tracert 背后原理:通过向目标发送不同IP生存时间 (TTL) 值的“Internet控制消息协议(ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。 Tracert 先发送 TTL 为 1的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。
由于数据出去需要经过网关,所以路径中第一条都是相同的。
路径中某些节点显示为 * 号,表示没有出现具体的信息反馈,请求超时。
- ARP
ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。
实作:
(1)运行 arp -a 命令查看当前的 arp 缓存。
ping 一下旁边的计算机 IP
再次使用命令 arp -a ,可以发现多了一个地址,且是动态的,这是由于同一局域网下,如果出现新的主机,本机的接口会将新主机的 IP 和物理地址记录在列表中,从而方便下次的访问。
- 使用 arp /? 命令了解该命令的各种选项
- DHCP
DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:
1、用于内部网或网络服务供应商自动分配 IP 地址给用户
2、用于内部网管理员对所有电脑作中央管理
实作:
我们自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用 ipconfig/release 命令释放自动获取的网络配置,并用 ipconfig/renew 命令重新获取,了解 DHCP 工作过程和原理。
DHCP也是一个没有考虑安全性的并且使用广泛的一个协议。比如,因为 DHCP 维护的地址池是有限的,那么我可以不停的发出 DHCP 请求,从而导致 DHCP 地址耗尽。
- Netstat
使用 netstat -an 命令,查看计算机当前的网络连接状况。
- DNS
DNS(Domain Name System)即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。
实作:
(1)解析过的 DNS 记录将会被缓存,以利于加快解析速度。使用 ipconfig /displaydns 命令查看。也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存。
- 使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。
- Wireshark
- 数据链路层
实作:
- 熟悉 Ethernet 帧结构,使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。
Wireshark 展现给我们的帧中没有校验字段,因为它会把校验字段给过滤掉。
- ping baidu.com(或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录发出帧的目的 MAC 地址以及返回帧的源 MAC 地址。
目的MAC地址是是网关的,源MAC地址是本机的物理地址。
操作完成后相关数据包就抓取到了。
数据包列表区中不同的协议使用了不同的颜色区分。协议颜色标识定位在菜单栏View --> Coloring Rules(着色规则)。
通过以上实验,发现访问本子网的计算机时,目的 MAC 就是主机的,访问非本子网的计算机时,目的 MAC 是网关的。因为本机发送消息到本子网以外必须经过网关,所以目的mac是网关的mac地址,但是同一子网以内的可以之间发送到达。
- 掌握ARP解析过程
ping baidu.com (或者本子网外的主机都可以),同时用 Wireshark 抓这些包。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。
通过以上的实验,你应该会发现,ARP 请求都是使用广播方式发送的,如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。是因为对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的ARP请求会使用自己的MAC地址与目标计算机的IP地址对源计算机进行应答,访问非子网IP时是通过路由器访问的,路由器再把发出去,目标IP收到请求后,再通过路由器端口IP返回去,那么ARP解析将会得到网关的MAC。
- 网络层
实作:
- 熟悉 IP 包结构。使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。
为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。是因为头部长度是为了让接受方知道从哪里开始读取数据。总长度字段可以让接收方知道有哪些数据,可以把填充的数据去除掉。
- IP 包的分段与重组
根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。缺省的,ping 命令只会向对方发送 32 个字节的数据。使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段。
段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。IPv6 中,如果路由器遇到了一个大数据包,它会转发到支持该数据传输的路由上,或者丢弃。
- 考察 TTL 事件
在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。在验证性实验部分使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。
在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。
- 传输层
实作:
熟悉 TCP 和 UDP 段结构:
(1)用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。
- 用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。
由上可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。源端口用来识别发送方进程,目的端口用来识别接收方进程。
分析 TCP 建立和释放连接:
打开浏览器访问 baidu.com 网站,用 Wireshark 抓包,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。
TCP三次握手连接建立过程
Step1:客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,这是第一次握手;
Step2:服务端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手;
Step3:服务端发送一个SYN=0,ACK=1的数据包给客户端端,告诉它连接已被确认,这就是第三次握手。TCP连接建立,开始通讯。
- 应用层
实作:
(1)了解 DNS 解析:
使用 nslookup baidu.com 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)
- 了解 HTTP 的请求和应答
打开浏览器访问 baidu.com 网站,用 Wireshark 抓包,用http 过滤。
由图可知这个请求其命令使用的是POST; 查阅资料可知: Accept:浏览器可接受的MIME类型。
Accept-Charset:浏览器可接受的字符集。 Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。
Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
Authorization:授权信息,通常出现在对服务器发送的WWW-Authenticate头的应答中。
Connection:表示是否需要持久连接。如果Servlet看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP
刷新一次 baidu.com 网站的页面同时进行抓包,发现不少的 304 代码的应答,是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。304是对客户端有缓存情况下服务端的一种响应,客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。因为刷新baidu.com网站并没有作出修改,所以回答的是304.
- CPT(Cisco Packet Tracer)
- CPT软件的使用
- 加入主机和集线器;
- 配置网络;
- 拖动机可发送消息。
- 用交换机构建LAN
构建四个主机的局域网:
PC0 192.168.1.1 255.255.255.0
PC1 192.168.1.2 255.255.255.0
PC2 192.168.2.1 255.255.255.0
PC3 192.168.2.2 255.255.255.0
主机0 ping 主机1
主机1 ping 主机3
交换机Switch,数据链路层设备,作用是转发数据包。和网桥一样它也是通过识别帧中的MAC地址,然后对特定的端口进行转发的。
集线器(HUB),它是工作在物理层的设备, 由于它只是工作在物理层的设备,所以它并不关心也不可能关心OSI上面几层所涉及的,它的工作机制流程是:从一个端口接收到数据包时,会在其他端口把这个 包转发一次,因为它不知道也不可能知道这个包是发给谁的(物理层设备只关心电压这些物理概念),它也只能对所有人广播。
- 交换机接口地址列表
二层交换机是一种即插即用的多接口设备,它对于收到的帧有 3 种处理方式:广播、转发和丢弃。要转发成功,则交换机中必须要有接口地址列表即 MAC 表,该表需要交换机通过学习自动得到。
仍然构建上面的拓扑结构图,并配置各计算机的 IP 在同一个一个子网,使用工具栏中的放大镜点击左边的 Switch3,选择 MAC Table,可以看到最初交换机的 MAC 表是空的,即它不知道该怎样转发帧,用 PC0 pingPC1 后,再查看该交换机的 MAC 表,有相应的记录。随着网络通信的增加,各交换机都将生成自己完整的 MAC 表,此时交换机的交换速度就是最快。
可以使用 CPT 的 Simulation 模式即模拟方式进一步看清楚这个过程。
- 生成树协议
交换机在目的地址未知或接收到广播帧时是要进行广播的。如果交换机之间存在回路/环路,那么就会产生广播循环风暴,从而严重影响网络性能。而交换机中运行的 STP 协议能避免交换机之间发生广播循环风暴。
使用交换机,构建如下拓扑图:
交换机之间有回路,这会造成广播帧循环传送即形成广播风暴,严重影响网络性能。后面,交换机将自动通过生成树协议(STP)对多余的线路进行自动阻塞,以形成一棵以 Switch4 为根(具体哪个是根交换机有相关的策略)的具有唯一路径树即生成树。
交换机的 生成树协议始终自动保证交换机之间不会出现回路,避免形成广播风暴。