admin 管理员组

文章数量: 887021

实验一:验证性试验

ipconfig

ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息(/all 参数)。

实作一

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

(此图是连接的热点wifi,因此具有临时租约时间)目前可以观察到的比如手机临时的热点对电脑的临时租约就是一个小时(这个一步骤)也可以不只是一个小时。比如一个半

在一个小时过后如果没有断开应该会重新在给一次租约时间。

查看本机ip地址首选是ipv4其次是ipv6,(目前ipv4活力依旧强大)
区别:一个是32位一个是128位,前者用得是逗号,后者是冒号
(这里可以记一下大概数据ipv4有40亿个)
(ipv6各方面是比较好的,但是因为ipv4和ipv6相互无法通信,从4过渡到6的时间很长,所以解释上边为什么ipv4活力依旧)

子网掩码(分配的虚拟ip解决ip地址资源紧缺针对ipv4):A、B、C三类地址划分为若干子网,此时本电脑是自动缺省没有自定义的。

网关:例如一个院子里很多小孩,要出大门进行信息沟通就需要给门卫信息说要出去,门卫即是网关(一台主机可以具有多个网关)

物理地址即是mac地址,用来标记网络中设备,(一般只处于当前局域网络有效)

实作二

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

此时我切换到了校园网,可以确定是与其他计算机处于同一子网之下的。可以通关ip地址,子网掩码以及网关对比发现。如果是同一子网之下我与他流出的网关应该是同一个。

ping

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

实作一

要测试到某计算机如 重庆交通大学 Web 服务器的连通性,可以使用 ping www.cqjtu.edu 命令,也可直接使用 IP 地址。

请掌握使用该命令后屏幕显示的反馈回来信息的意思,如:TTL、时间等。

此处尝试了ping了4次。其中TTL(8bit字段-ipv4)代表了ping发出去的那个测试数据具有的生命周期。计算方法为ttl向上最接近的2的n次方。例如此处最接近64.64-58=6.说明从主机到以上www.cqjtu这个地址经过了6次跳转。生命周期还有58。每跳一次就减1。

时间就代表了从主机到那个地址经过的时间就是延迟。

实作二

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

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

  1. 可能设置了防火墙,把网络设置成专用不是公共状态。

  2. 如果是内部网ping外部网,没有权限

保证ping联通方法:由近及远测试连通性。首先可以测试自己网卡ping自己看看数据是否传输成功,首先验证自身电脑问题。之后在ping内部子网,之后再是网关,看是否成功,然后逐一测试连通性。

问题:

  1. 假设在秘籍中进行的网络排查中,ping 百度的 IP 即 ping 14.215.177.39 没问题,但 ping 百度的域名即 ping www.baidu 不行,那么可能的原因是什么?如何进行验证和解决?
  2. 另外,经常有同学问到的:“能上 QQ,但不能上网” 跟这个问题的原因是相似的。

回答:
能ping通ip,说明网络是通的。域名ping不通,说明域名解析可能有问题

检查dns服务器配置问题,比如在网络属性里边的dns没有设置好。

tracert

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

实作一

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

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

222.176.65.185 中国 重庆 重庆市 电信

113.96.4.162 中国 广东省 广州市 电信

通过ip查。

实作二

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

问题一

tracert 能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?本问题可结合第二部分的 Wireshark 实验进行验证。

原理:
向不同ip发送具有TTL值生命周期的数据包(ICMP),在路径上每一次路由器转发数据包都要把TTL减小一个,当TTL减为零的时候,路由器发送一个已超时的信息返回发出地址源头,或者在路途中找到了目的地址也会返回信息。

问题二

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

回答:
因为在子网下,想要进入互联网都需要经过相同的网关,如果是校园网的话经历相同的节点或许会更多。

问题三

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

回答:
节点没有进行信息的反馈则会返回*,也有可能是路由节点出现了问题。

ARP

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

实作一

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

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

将IP地址解析为MAC地址的协议,缓存了静态以及动态的mac地址。有一个为arp攻击,针对动态的地址,自己的电脑可以模拟动态地址拦截需要被发送到目的地的信息。静态地址不起作用。

Ping了一个为10.161.82.124的地址(之前没有出现过)(请求超时了),不过在后续的arp –a 中出现了这个地址。说明arp缓存会记住这个被ping的地址,为了方便下一次更快速的连接到他。

实作二

请使用 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 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?

netsh i i show in找到指定Idx

netsh -c “i i” add neighbors 【Idx】 【IP地址】【mac地址】修改指定IP的mac(这一段是在百度搜索的答案,无效)

自己的方法简单说就是没有更高级的权限,在打开cmder的时候用管理员权限打开就可以了。

问题

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

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

在进行数据传输的时候通常需要经过多个网关,arp会自动记录网关的信息方便下次进行数据传输的时候快速找到网关地址。

优点:如上述提到的防止arp欺骗,提高了安全性

缺点:难以维护arp列表,如果有一个错误的信息很难将它分别出来。毕竟静态的信息是在太多了,不像动态的就那么几个很容易清理和调试。

DHCP

DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:

  • 用于内部网或网络服务供应商自动分配 IP 地址给用户
  • 用于内部网管理员对所有电脑作中央管理

简单的说,DHCP 可以让计算机自动获取/释放网络配置。

实作一

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

已成功释放

例如这一段获得租约和租约过期时间

TroubleShooting

如果你没能成功的释放,请思考有哪些可能的原因并着手进行解决?

可能网卡硬件上损坏了

路由未开启DHCP模块

解决方法:

  1. 检查硬件是否正常运行

  2. 开启DHCP模块

问题

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

回答:
为了让DHCP故障的设备不因为没有ip而被连接不上。169.254.x.x是链路本地地址是本地网络进行连接的,并不是为了连接上Internet的。

秘籍
在我校不少地方如教室,计算机都采用了 DHCP 来获得网络配置。假如某天因 DHCP 服务器问题从而不能获得网络配置,那么我们可以查看隔壁教室计算机的配置信息来手动进行网络配置,从而使该计算机能够接入 Internet。

问题
经常的,在一个固定地方的网络配置我都喜欢采用 静态/手动配置,而不是动态 DHCP 来进行。你能想到是什么原因吗?

原因:因为DHCP故障后进行本地网络连接是需要算法自动的生成的,并且动态地址是可以随时进行变化的,此时如果设置成静态手动配置相当于直接在本地网络里占用了一个永久性的地址不需要再次分配静态地址。

netstat

无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。

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

实作一

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

实作二

使用 netstat -an 命令,查看计算机当前的网络连接状况。更多的 netstat 命令选项,可参考上面链接 45

DNS

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

实作一

Windows 系统将一些固定的/静态的 DNS 信息记录在 C:\WINDOWS\system32\drivers\etc\hosts 文件中,如我们常用的 localhost 就对应 127.0.0.1 。请查看该文件看看有什么记录在该文件中。

实作二

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

实作三

使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。当然你也可以指定使用 CloudFlare1.1.1.1)或 Google8.8.8.8) 的全球 DNS 服务器来解析,如:`nslookup qige.io 8.8.8.8``,当然,由于你懂的原因,这不一定会得到正确的答案。```

在此处dns超时了。在非权威应答里边地址还是一样的

秘籍
当我们使用浏览器上网时,或多或少的会看到一些广告。某些网站的广告是非常没有节操的,所以我们一般可以通过安装浏览器插件如 AdGuard、AdBlocker 等来拦截和过滤。

这种方法简单方便有效,不过有一定安全或隐私问题,因为该插件实时知道你访问的 URL。

假设不使用这种第三方的插件,希望自己完全控制,那么就请考虑在我们前面提到的 hosts 文件中添加 DNS 记录。有自愿者时时在维护全球正确的 DNS 记录文件

TroubleShooting

上面秘籍中我们提到了使用插件或自己修改 hosts 文件来屏蔽广告,思考一下这种方式为何能过滤广告?如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它

回答:这个方式我觉得像是hosts文件在调用dns前截胡了,如果hosts里边有这个需要访问的ip就直接进入,不需要进入dns这个类似数据库一样的地方调用。

使用hosts修改后不生效原因:服务器设置了keep-alive,保持了长连接,只要不断开页面就不会重新解析域名

Cache

cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。

浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。

实作一

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

实作二

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

发现在加载的时候并不是图片显现速度变慢了,甚至刷新的时候有顿挫感图片是一张一张出现的

2. Wireshark 实验

数据链路层

实作一 熟悉 Ethernet 帧结构

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

Ethernet结构:

前导码 帧前定界符 目的地址DA 源地址SA 类型字段 数据字段 帧校验字段
7B(56位的字节) 1B(8位) 6B 6B 2B 46~1500B 4B

目的MAC:26:fb:a7:f1:2c:bb

源MAC: a0:a4:c5:71:b3:f3

类型:IPV4(0x0000)

(地址长度为6B(即48位))都是十六进制表示

注意:这里有三种目的地址:单播地址,多播地址,广播地址

他们区分的方法:单:目的地址第一位为0,多:第一位为1,广播:全为1

这里的话是100110,,为单播。

问题

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

抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据,原因:

在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目 的硬件地址是否符合自己的接收条件,如果符合,就将帧交“设备驱动程序”做进一步处 理。这时我们的抓包软件才能抓到数据

重点:前导同步码和帧开始定界符被去掉

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

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

  1. 10.160.255.254这个是我查询的网关

    原地址是我自己的ip10.161.233.231

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

在这里我用得是自己的手机流量的wifi所以ip地址变了


本来是想ping qige.io但是icmp不显示就ping了百度

目的mac:14.215.177.38应该是广东的百度的地址

原mac:192.168.194.32这里是自己的

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

此处我ping了一下搜狗的地址,与上边一样,都是源mac是自己的ip地址,目的地址是搜狗的ip地址。

主要是了解了在ping(连接)本子网下的主机和不在本子网的主机的目的mac和源mac地址的判断。本子网下就直接主机对主机,外网就是主机对网关

本文标签: 计算机网络