泡芙噶的计算机网络(1)-平平无奇的验证性实验
Ipconfig
概念
ipconfig 是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息(/all 参数)
实作一
ipconfig/all 查看自己计算机的网络配置,尽可能明白每行的意思,特别注意 IP 地址、子网掩码 Subnet Mask、网关 Gateway。
1、IP地址:全称是互联网协议地址。使用IP地址作为主机的标志。
2、子网掩码:又称网络掩码、地址掩码。子网掩码的作用就是将某个IP地址划分为网络地址和主机地址两部分。
3、网关:又称协议转换器。网关的功能是实现网络之间的相互连接。网关在计算机和设备之间起转换的作用,相当于一个翻译器,可以使不同的协议、语言、数据在不同的系统之间进行转换。
实作二
暂时搁浅,旁边没有计算机。
Ping
概念
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。
实作一:
1、在连接校园网的情况下ping了一下学校的官网,结果是这样的:
- 来自202.202.240.102 的回复: 字节=32 时间=2ms TTL=61
- 来自 202.202.240.102 的回复: 字节=32 时间=4ms TTL=61
- 来自 202.202.240.102 的回复: 字节=32 时间=4ms TTL=61
- 来自 202.202.240.102 的回复: 字节=32 时间=4ms TTL=61,
- 想了想,是不是电脑连接的网络不同,返回值会不同,接下来就连接手机的热点试试。
2、 在连接手机热点的情况下ping学校官网,结果是这样的:
- 具有 32 字节的数据:
- 来自 2001:da8:c801:99::102 的回复: 时间=175ms
- 来自 2001:da8:c801:99::102 的回复: 时间=87ms
- 来自 2001:da8:c801:99::102 的回复: 时间=91ms
- 来自 2001:da8:c801:99::102 的回复: 时间=178ms
对比后发现在相同字节下,时间延长了,且没有给出TTL。
3、 TTL:是指定数据报被路由器丢弃之前允许通过的网段数量,如果同一服务器不同的ip,你ping这些 ip得到的ttl越高(经过转发的路由器少),延时越小,说明直连该ip会更快。
4、时间:意思是ping包需要返回的时间
实作二:
ping的各种选项并实际使用,ping的对象默认为本机
1、用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
[-4] [-6] target_name
2、 选项:
3、 -t Ping 指定的主机,直到停止。
若要查看统计信息并继续操作,请键入 Ctrl+Break;
若要停止,请键入 Ctrl+C。
实例:
4、 -a 将地址解析为主机名。
实例:
5、 -n count 要发送的回显请求数。
实例:
6、 -l size 发送缓冲区大小。
实例:
7、 -f 在数据包中设置“不分段”标记(仅适用于 IPv4)。
实例
8、 -i TTL 生存时间。
实例:设置了其他的生存时间后,仍然是那个输出结果,是什么情况呢??
服务类型(仅适用于 IPv4。该设置已被弃用,
对 IP 标头中的服务类型字段没有任何
影响)。
9、 -r count 记录计数跃点的路由(仅适用于 IPv4)
我发现Ping本机很多都看不出差异,所以Ping百度的IP
实例:
。
nt 计数跃点的时间戳(仅适用于 IPv4)。
Ping百度的IP一直超时,可能他不让我看,所以这里ping主机,结果依旧没有变化
10、-j host-list 与主机列表一起使用的松散源路由(仅适用于 IPv4)。
也是一直访问超时
12、 -k host-list 与主机列表一起使用的严格源路由(仅适用于 IPv4)。
一直说一般故障
13、 -w timeout 等待每次回复的超时时间(毫秒)。
传输失败,常见故障
14、 -R 同样使用路由标头测试反向路由(仅适用于 IPv6)。
根据 RFC 5095,已弃用此路由标头。
如果使用此标头,某些系统可能丢弃
回显请求。
15、 -S srcaddr 要使用的源地址。
实例:
16、 -c compartment 路由隔离舱标识符。
需要管理权限,现在用管理员打开cmder
实例:没有看出什么变化
17、 -p Ping Hyper-V 网络虚拟化提供程序地址。
18、 -4 强制使用 IPv4。
19、 -6 强制使用 IPv6。
20、 TroubleShooting假设你不能 ping 通某计算机或 IP,但你确定该计算机和你之间的网络是连通的,那么可能的原因是什么?该如何处理能保证 ping 通?
21、ping 127.0.0.1 ,测试自己计算机的状态,如果 OK,那么说明本机网络软件硬件工作正常,否则,问题在本机,检查本机 TCP/IP 配置即网卡状态等
22、 ping 192.168.1.64 ,测试到旁边计算机的连通性,如果OK,那么说明本子网内部工作正常,否则,问题在本机网络出口到交换机之间,检查本机网卡到交换机的连线等
连接超时,可能因为我旁边不是这台计算机???
23、ping 192.168.1.1,测试到网关的连通性,如果 OK,那么说明本子网出口工作正常,否则,问题在网关,这是你无能为力的事情,报告给网管
24、ping 14.215.177.39,测试到百度的连通性,如果 OK,那就 OK,否则,问题在网关以外,这也是你无能为力的事情,报告给网管或者李彦宏?
Tracert
概念:
TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径
实作一:
1、要求:要了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态,可使用 tracert www.baidu.com 命令,查看反馈的信息,了解节点的个数。可通过网站 http://ip.cn 查看这些节点位于何处,是哪个公司的,大致清楚本机到百度服务器之间的路径。
2、 操作结果
“
剩下的就不一一截图了。
实作二
1、问题一:tracert 能告诉我们路径上的节点以及大致的延迟等信息,其背后的原理在于什么?
回答:Tracert 命令确定两台主机的路由主要是通过 IP 生存时间 (TTL) 字段和 ICMP 错误消息。 在工作环境中有多条链路出口时,可以通过该命令查询数据是经过的哪一条链路出口.
由于路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1,因此 Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。
2、 问题二在以上两个实作中,无论是访问www.cqjtu.edu.cn还是qige.io,路径中的第一跳都是相同的,甚至似乎前几个节点都是相同的,解释是什么?
回答:这与本机的位置有关,无论目的地址是哪里,数据传输从本机发送出去后,到达的都是同一个交换机,也就是说路径中的第一跳都是相同的。之后,通过交换机传输到本机所在的通信子网,因此节点相同。
3、 问题三在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?
回答:通信不可达,没有收到反馈的信息。
APR
概念:
ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。
实作一:
1、 内容:运行 arp -a 命令查看当前的 arp 缓存, 请留意缓存了些什么。
然后 ping 一下你旁边的计算机 IP(注意,需保证该计算机的 IP 没有出现在 arp 缓存中,或者使用 arp -d * 先删除全部缓存),再次查看缓存,你会发现一些改变,请作出解释。(注意可能失败,此时需要用管理员的身份来运行)
2、 删除前:
3、删除后:
4、Ping了其他主机后:
5、结论:ping旁边的计算机后可以发现该计算机的ip地址和MAC地址都保存在了缓存中。
实作二:
1、内容:利用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 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?
解决方法:第一想法应该是去添加cmder的管理员权限。
3、 在实作三中,为何缓存中常常有网关的信息?
因为使用arp时会发送广播,因此网关能够收到进而获得网关的信息
4、 我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?静态分配的ip地址是固定的,优点是便于管理,特别是在根据IP地址限制网络流量的局域网中,以固定的IP地址或IP地址分组产生的流量为依据管理,可以免除在按用户方式计费时用户每次上网都必须进行的身份认证的繁琐过程
缺点是用户分配的地址可能被非法盗用,影响网络的正常使用
DHCP
DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:
用于内部网或网络服务供应商自动分配 IP 地址给用户
用于内部网管理员对所有电脑作中央管理
简单的说,DHCP 可以让计算机自动获取/释放网络配置。
实作一:
一般地,我们自动获取的网络配置信息包括:IP 地址、子网掩码、网关 IP 以及 DNS 服务器 IP 等。使用 ipconfig/release 命令释放自动获取的网络配置,并用 ipconfig/renew 命令重新获取,了解 DHCP 工作过程和原理。
TroubleShooting:
如果你没能成功的释放,请思考有哪些可能的原因并着手进行解决?
可能是没有网卡,或者没有驱动。解决方法是装网卡或驱动
问题:
在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
因为会导致ip发生冲突,自动配置的IP地址和信息只是短暂性的解决计算机不能获取 DHCP 服务器的配置数据的问题,要真正的接入Internet还是得本身计算机的正确IP地址
Netstat
无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。
netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。
实作一:
Windows 系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services 文件中,请查看该文件了解常用的端口号分配。
实作二:
使用 netstat -an 命令,查看计算机当前的网络连接状况。
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 服务器查询该域名。当然你也可以指定使用 CloudFlare(1.1.1.1)或 Google(8.8.8.8) 的全球 DNS 服务器来解析,如:nslookup qige.io 8.8.8.8,当然,由于你懂的原因,这不一定会得到正确的答案。
TroubleShooting:
上面秘籍中我们提到了使用插件或自己修改 hosts 文件来屏蔽广告,思考一下这种方式为何能过滤广告?如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它?
在文件中添加该广告链接,并且指定一个ip地址(通常为本机地址),因为hosts文件优先级是高于DNS服务器,这样浏览器解析该广告链接时,优先hosts文件,这样我们就相当于更改了该链接本来的ip地址,从而使该链接失效
广告拦截失败可能是广告域名改了,需要在hosts中进行修改它的新域名。
Cache
cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。
浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。
实作一:
打开 Chrome 或 Firefox 浏览器,访问 https://qige.io ,接下来敲 F12 键 或 Ctrl + Shift + I 组合键打开开发者工具,选择 Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有。
实作二:
接下来仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于 Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。
点击停用缓存按钮,然后再次刷新
由两张图比较,慢了很多。