计算机网络实验

@ 计算机网络实验

一、验证性实验

1. ipconfig

实作一

要求

  • 使用自己计算机得到的计算机的网络配置
    在这里插入图片描述
  • IP 地址:
  • 子网掩码 Subnet Mask
  • 网关 Gateway

实作二

  • 获取旁边计算机的网络配置
    在这里插入图片描述

  • 问题:你的计算机和旁边的计算机是否处于同一子网,为什么?

    答:处于同一子网 方法是用IP地址相与子网掩码相与

    1. 子网掩码都是:255.254.0.0=11111111.11111110.00000000.00000000

    2. 本机IP:10.60.59.60=00001010.00111100.00111011.00111100

      与子网掩码相与的结果为:00001010.00111100.00000000.00000000 = 10.60.0.0

    3. 旁边IP:10.60.117.55 = 00001010.00111100.01110101.00110111

      与子网掩码相与的结果为: 00001010.00111100.00000000.00000000 =10.60.0.0

    4. 结果:相与的结果相同,所以在同一子网中

2. ping

实作一

  • 测试到本机 到重庆交通大学Web 服务器的连通性
    在这里插入图片描述

信息

  1. 时间:ping包往返的时间。延迟

  2. TTL:TTL是生存时间。图中意思还可以经过 58跳 到达本机

    ​ 表示该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL由IP数据包的发送者设置,在转发路径上,每经过一个路由器,TTL会减1,如果TTL减到0还未到达目的地址,相应的IP包就会被路由抛弃。并向IP包的发送者发送ICMP time exceeded消息,以防止数据包不断在IP互联网络上永不终止地循环。

实作二

(1) 全部命令

在这里插入图片描述

(1) 部分命令的使用
  • **ping -t **:Ping 指定的主机,直到停止(Crtl + C)
    在这里插入图片描述

  • ping -a :将地址解析为主机名。
    在这里插入图片描述

  • ping -n conut : 要发送的回显请求数。
    在这里插入图片描述

  • ping -l size : 发送缓冲区大小。
    在这里插入图片描述

  • ping -i TTL: 生存时间。 设置很小的时候就无法到达目的地
    在这里插入图片描述

  • ping -r count 记录计数跃点的路由。
    在这里插入图片描述
    在这里插入图片描述

(2) 测试网路连通

3. tracert

实作一

  • 节点状态
    在这里插入图片描述

实作二

问题一:tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?

  • 回答:通过 TTL = n时得到第n个节点的数据 通过TTL过期回应节点值

问题二:在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?

  • 回答:因为第一跳为本地交换机。

问题三:在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?

  • 回答: 进行tracert命令时那些节点出于某些原因没有进行回应,所以显示为 * 号。

4. ARP

实作一

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

然后 ping 一下你旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d * 先删除全部缓存),再次查看缓存,你会发现一些改变,请作出解释。
在这里插入图片描述

实作二

请使用 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 命令设置其为静态类型的。
在这里插入图片描述

✎ 问题
在实作三中,为何缓存中常常有网关的信息?

  • 因为缓存本身记录着你有访问过的pc 网卡MAC物理地址。 我们将网关或其它计算机的 arp

我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?

  • 答:优点:静态ip的更加稳定,服务会更好 缺点:资源是有限的,长时间占用是会浪费资源

5. DHCP

实作一

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

在这里插入图片描述

问题
在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?

在IP网络里,每台主机都需要一个IP地址,通常情况下是通过DHCP服务器自动分配,但某些特殊情况下,DHCP分配失败或者没有DHCP服务器时,机器可以自己分配一个IP来完成这个工作。

6. netstat

实作一

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

实作二

使用 netstat -an 命令,查看计算机当前的网络连接状况。更多的 netstat 命令选项,可参考上面链接 4 和 5 。
在这里插入图片描述

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 实验

数据链路层

实作一 熟悉 Ethernet 帧结构

在这里插入图片描述

Destination: 目的MAC地址
Source:源MAC地址
type:类型

✎ 问题
你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

  • 答: Wireshark展现给我们的帧中没有校验字段,是因为Wireshark的帧格式中含有校验字段,在抓包时校验字段被过滤了

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

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

通过以上的实验,你会发现:

  1. 访问本子网的计算机时,目的 MAC 就是该主机的
  2. 访问非本子网的计算机时,目的 MAC 是网关的
    请问原因是什么?
  • 答: 如果访问不出子网就是访问的主机,如果访问要出子网,就是网关

实作三 掌握 ARP 解析过程

  1. ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。
  2. 再次使用 arp -d * 命令清空 arp 缓存
    然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。
    在这里插入图片描述
  • 如果访问的是计算机所处的本子网的ip,那么ARP解析协议将会直接得到该ip对应的Mac地址,但是如果访问的是非本子网的ip,那么ARP解析将直接得到网关的mac地址。所以要想访问对方,在处于同一子网的条件下,应该知道对方的MAC地址,但是不处于同一子网,需要知道对方所处子网网关的Mac地址。
    因为ARP代理,访问非子网IP时是通过路由器访问的,路由器再把发出去,目标IP收到请求后,再通过路由器端口IP返回回去,那么ARP解析将会得到网关的MAC。

网络层

实作一 熟悉 IP 包结构

在这里插入图片描述

版本(Version):IPV4
头部长度(Header Length):20bytes
总长度:312
目的地址:109.244.184.43
源地址:192.168.43.153

✎ 问题
为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?

  • 答:在数据量超过1500时,会分段处理,为了准确高效的接受数据

实作二 IP 包的分段与重组

在这里插入图片描述

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

  • 答:丢弃并通知发送方

实作三 考察 TTL 事件

在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。

在验证性实验部分我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。

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

  • 主机发送的数据生存周期呈递增变化

传输层

实作一 熟悉 TCP 和 UDP 段结构

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

源端口(Source port):59823 16位字段,发送该报文段的主机中应用程序的端口号
目的端口(Destination port):443 16位字段,接收报文段的主机中应用程序的端口号
序列号(Sequence Number):32位字段。指派给本报文段第一个数据字节的编号,TCP传输保证连接性,发送的每个字节都要编上号。序号就是告诉终点,报文段中的第一个字节是序列中的哪个。建立连接时,发收双发使用各自的随机数产生器产生一个初始序号(ISN),通常,两个方向的ISN是不同的。
确认号(Acknowledgement Number):32位字段定义了接收方期望从对方接受的字节编号。如果报文段的接收方成功的接受了对方发过来的编号x的字节,那么返回x+1作为确认号,确认号可以和数据捎带一起发送。
HLEN:4位,指出TCP首部一共有多少个4字节,所以范围是5~15

  1. 用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。
    在这里插入图片描述

源端口(Source port):59823 16位字段,发送该报文段的主机中应用程序的端口号
目的端口(Destination port):443 16位字段,接收报文段的主机中应用程序的端口号
长度(Length):16位字段,定义了用户数据报的总长度为0~65535字节。但实际长度肯定比65535小,因为用户数据报要放在总长度为65535的IP数据报中,封装在IP数据报中。因此UDP长度=IP长度-IP首部长度。

实作二 分析 TCP 建立和释放连接

  1. 打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用 tcp 过滤后再使用加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。
  2. 请在你捕获的包中找到三次握手建立连接的包,并说明为何它们是用于建立连接的,有什么特征。
  3. 请在你捕获的包中找到四次挥手释放连接的包,并说明为何它们是用于释放连接的,有什么特征。

✎ 问题一
去掉 Follow TCP Stream,即不跟踪一个 TCP 流,你可能会看到访问 qige.io 时我们建立的连接有多个。请思考为什么会有多个连接?作用是什么?

  • 答:同时进行加载数据,可以提高运行速度

✎ 问题二
我们上面提到了释放连接需要四次挥手,有时你可能会抓到只有三次挥手。原因是什么?

  • 答:抓包的时间不够长,这建立的是长连接,如果时间不够,连接还没释放,所以有可能抓不到

应用层

实作一 了解 DNS 解析

  1. 先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。
  2. 你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。
  3. 可了解一下 DNS 查询和应答的相关字段的含义
    在这里插入图片描述
    在这里插入图片描述
    DNS应答字段含义

1.QR:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文
2.opcode,定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态
3.AA,授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器
4.TC,截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断
5.RD,递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道的其他DNS服务器的IP地址返回给客户端,以供客户端参考
6.RA,允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询
7.zero,这3位未用,必须设置为0
8.rcode,4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)清除缓存

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

1.打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。
2. 请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。
在这里插入图片描述3. 请在你捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。
状态码:
1xx:接收到请求且正在处理
2xx:请求正常处理完毕:eg:200 OK
3xx:重定向状态,表示浏览器需要进行附加操作
4xx:服务器无法处理这个请求 eg :404 Page Not Found
5xx:服务器处理出错 eg:502 Bad Gateway

✎ 问题
刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的 304 代码的应答,这是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。那么服务器为什么会回答 304 应答而不是常见的 200 应答?

  • 304(未修改)
    自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值