验证性实验

一、ipconfig

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

实作一

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

 

         IPv4地址:本地在局域网内的ip地址,IPv4协议使用32位(4字节)地址,每8位划分为一个段,转换为二进制数字;
        本地链接IPv6地址:Ipv6协议是IPv4协议的下一个版本,其优势就在于它比IPv4有更多的可用地址。IPv6的地址长度有128位(16字节),每16位划分为一个段,转换为十六进制数字。
        子网掩码:用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。化成二进制,前面是1的表示为网络号,后面为0的部分为主机号;
        默认网关:默认网关ip地址,意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。也就是你的路由器的地址

 实作二

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

        

        相同点:子网掩码、默认网关、DHCP服务器以及DNS服务器是相同的。

        不同点:物理地址不同,IP地址不同。

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

        是处于同一子网的,因为我们各自的IP地址与子网掩码进行相与操作后是一样的,都是192.168.0.0,因此说明我们是处于同一子网的。

二、ping

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

        实作一:

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

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

         TTL:TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP time exceeded消息。

        时间:表示对方主机往返一次所需的时间。

        字节:表示测试时发送的数据包大小为32个字节,即对方(202.202.240.102)回复了本机32个字节的数据包,在默认时为32字节的负载。

        实作二:

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

        

* ping -t:

        当使用-t选项的时候,ping这个动作将会一直持续下去,不停的发送数据包;在ping这个动作在一直持续的时候,可以使用组合键Ctrl+Break查看ping到当前的统计信息,使用组合键Ctrl+C终止ping的过程。

         

* ping -a:

        使用此选项可以将地址解析为主机名。如果不适用此选项,则会直接显示IP地址;使用此选项则会将IP地址解析为主机名。

        

* ping -n count:

        在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送10个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:

        

 从以上我就可以知道在给www.baidu.com发送10个数据包的过程当中,返回了10个,没有丢失,这10个数据包当中返回速度最快为44ms,最慢为609ms,平均速度为134ms。

* ping -l size:

        size:发送size指定大小的到目标主机的数据包。

        在默认的情况下Windows的ping发送的数据包大小为32字节,最大能发送65500字节。当一次发送的数据包大于或等于65500字节时,将可能导致接收方计算机宕机。所以微软限制了这一数值;这个参数配合其它参数以后危害非常强大,比如攻击者可以结合-t参数实施DOS攻击。

 

        TroubleShooting:

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

        原因:对方计算机开启了防火墙。

        如何处理:对方计算机关闭防火墙即可ping通。

        TroubleShooting:

     假设ping 百度的 IP 即 ping 14.215.177.39 没问题,但 ping 百度的域名即 ping www.baidu.com 不行,那么可能的原因是什么?如何进行验证和解决?

              另外,经常有同学问到的:"能上 QQ,但不能上网" 跟这个问题的原因是相似的。

        能ping通ip 则代表链路是通的,但是ping不通域名只能说明是域名解析出现了问题。

        检查DNS的配置,或者更换其他可用的DNS服务器地址进行尝试。

        负责解析域名的,就是DNS, 首先清空一下DNS缓存,命令窗口ipconfig/flushdns然后设置电脑的DNS为google的DNS 8.8.8.8 或者电信的 101.226.4.6或者114.114.114.114大部分是可以的 如果还是Ping不通 则可联系给域名服务的服务商,他们会给出dns服务器。 能上 QQ,但不能上网是因为QQ不需要DNS解析域名,DNS出问题不会影响QQ。

三、tracert

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

实作一:

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

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

 

  

实作二:

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

问题一:

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

        答:背后的原理是利用TTl,就是帧的生命周期,要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。 Tracert 先发送 TTL 为 1的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。

 问题二:

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

        答:因为网络请求都是从我台电脑发送出去的,都需要经过相同的网关才能出子网,也就是说网关始终是一样的,每次都得经过,所以路径中的第一跳甚至前几跳都是相同的。

问题三:

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

        答:某些路由器没有为其 TTL值已过期的数据包设置返回消息。

四、ARP

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

实作一 

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

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

ping 我旁边的计算机IP前(旁边计算机IP为:192.168.0.119)

ping 我旁边的计算机(IP地址为:192.168.0.119)

ping 我旁边的计算机IP后(旁边计算机IP为:192.168.0.119)

 对比发现ping我旁边的计算机后,arp缓存中多了一条红色方框圈着的记录,内容是旁边电脑地IP并且类型为动态。这是因为arp缓存用来存放最近获得的 IP 地址到 MAC 地址的绑定,以减少 ARP 广播的数量。 为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。

实作二

        请使用 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 命令设置其为静态类型的。

        TroubleShooting:

        你可能会在实作三的操作中得到 "ARP 项添加失败: 请求的操作需要提升" 这样的信息,表示命令没能执行成功,你该如何解决?

        答:进入管理员模式,提高权限后再运行。

        问题:

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

        答:因为缓存本身记录着你有访问过的pc 网卡MAC物理地址。

        我们将网关或其它计算机的 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 工作过程和原理。

使用ipconfig/release命令释放自动获取的网络配置。

使用ipconfig/renew命令释放自动获取的网络配置。

        TroubleShooting:

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

                答:可能没有加适配器,网卡或驱动,加一个适配器,网卡或驱动。

        问题:

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

        答:自动配置的IP地址和信息只是短暂性的解决计算机不能获取 DHCP 服务器的配置数据的问题,要真正的接入Internet还是得本身计算机的正确IP地址。这样自动配置的地址是为了告诉主机,IP 地址池里面没有多余的 IP ,或者 DHCP 中继代理失效。采用这种方案的意义是为了让不能够正常获取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 缓存。

ipconfig /displaydns

ipconfig /flushdns

实作三:

        使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名。

        TroubleShooting:

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

        答:这种方式是指将某个网站重定向到一个地址,使之无法访问达到屏蔽广告的效果。
广告拦截失效是因为有可能存在跨服务器访问;可以使用 adsafe解决。

八、cache 

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

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

实作一

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

        可以看到.png和.js等文件被cache了,而纯文本文件没有被cache。

实作二:

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

         可以看到使用cache时,加载该页面耗时483ms,而当不使用cache时,加载该页面耗时3.33s,比使用cache慢了很多。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值