阶段一(ipconfig):
ipconfig是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息(/all参数)。
ip地址:
ip地址(公网地址),每台机器的ip地址是唯一的,ip地址=网络地址+主机地址
例:
网络地址(街道地址):192.168.100.0
主机地址(门牌号):0.0.0.1
ip地址(住户地址):192.168.100.1
广播地址(最后一个住户地址+1):192.168.100.255
子网掩码:
用来判断两台计算机的ip地址是否属于同一子网络,用ip地址和子网掩码转换为二进制进行与运算求得网络地址
默认网关:
一台主机把数据包发给默认指定的网关,由它来处理数据包。
DNS服务器:
域名系统(Domain Name System),完成域名解析的工作,将域名和ip地址进行转换,方便机器识别ip地址。
ipconfig /?
实作一(查看自己计算机的网络配置):
学校WIFI ipconfig /all
寝室宽带 ipconfig /all
寝室WIFI ipconfig /all
实作二(查看旁边计算机的网络配置):
旁边计算机 学校WIFI
自己计算机 学校WIFI
问题:
你的计算机和旁边的计算机是否处于同一子网,为什么?
- 处于同一子网,因为根据ip地址与子网掩码得到了相同的网络地址
阶段二(ping):
- PING(Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。ping是工作在TCP/IP 网络体系结构中应用层的一个服务命令,主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。
- 向指定的网络地址发送一定长度的数据包,按照约定,若指定网络地址存在的话,会返回同样大小的数据包,当然,若在特定时间内没有返回,就是“超时”,会被认为指定的网络地址不存在。
实作一(ping www.cqjtu.edu.cn):
“字节=32”:ICMP报文中有32个字节的测试数据
“时间=10ms”:往返时间
“TTL=58”:在传输过程中最多经过58个路由器
“已发送=4”:发送4个包, “已接收=4”:收到4个回应包, “丢失=0”:没有丢失包
表示网络状态相当良好
实作二(ping /?):
TroubleShooting:
假设你不能ping通某计算机或IP,但你确定该计算机和你之间的网络是连通的,那么可能的原因是什么?该如何处理能保证ping通?
- 当你的网络出现故障不能访问某计算机如14.215.177.39(百度的 IP 地址之一 )时,我们一般可采用由近及远的连通性测试来确定问题所在。现假设你的IP是192.168.1.89,你旁边计算机的IP是192.168.1.64,网关的IP是192.168.1.1,那么过程如下:
1.ping 127.0.0.1,测试自己计算机的状态,如果OK,那么说明本机网络软件硬件工作正常,否则,问题在本机,检查本机TCP/IP配置即网卡状态等
2.ping 192.168.1.64 ,测试到旁边计算机的连通性,如果OK,那么说明本子网内部工作正常,否则,问题在本机网络出口到交换机之间,检查本机网卡到交换机的连线等
3.ping 192.168.1.1,测试到网关的连通性,如果OK,那么说明本子网出口工作正常,否则,问题在网关,这是你无能为力的事情,报告给网管
4.ping 14.215.177.39,测试到百度的连通性,如果 OK,那就 OK,否则,问题在网关以外,这也是你无能为力的事情,报告给网管或者李彦宏?
TroubleShooting:
假设在秘籍中进行的网络排查中,ping百度的IP即ping 14.215.177.39没问题,但ping百度的域名即ping www.baidu.com不行,那么可能的原因是什么?如何进行验证和解决?另外,经常有同学问到的:“能上QQ,但不能上网” 跟这个问题的原因是相似的。
- 域名ping不通说明域名解析不出来。负责解析域名的,就是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)数据包传送到目标地址时经过的路径
实作一(tracert www.baidu.com):
10.160.255.254:本地网关 内网IP
172.19.2.2:上层网关 内网IP
222.176.9.97:重庆市 电信
219.135.96.106:广州市 电信
14.215.32.130:广州市 电信
14.215.177.38:广州市 电信 (百度有限公司广州分公司)
实作二(ping.pe):
问题一:
tracert能告诉我们路径上的节点以及大致的延迟等信息,那么它背后的原理是什么?
- 通过向目标发送不同IP存活时间(TTL)值的“Internet控制消息协议(ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减1。数据包上的 TTL 减为 0 时,路由器将“ICMP 已超时”的消息发回源系统。 Tracert先发送 TTL 为 1的回应数据包,并在随后的每次发送过程将TTL递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包。
问题二:
在以上两个实作中,如果你留意路径中的节点,你会发现无论是访问百度还是棋歌教学网,路径中的第一跳都是相同的,甚至你应该发现似乎前几个节点都是相同的,你的解释是什么?
- 因为无论是访问百度还是棋歌教学网,首先都要从本地出发,由于都是在重庆交通大学校内,因此都属于同一子网,首先都要经过同一交换机,因此会相同。
问题三:
在追踪过程中,你可能会看到路径中某些节点显示为 * 号,这是发生了什么?
- 在某一次寻找下一节点时没有得到对方的响应,只能寻找另一出路。
阶段四(ARP):
ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。
实作一(arp -a):
缓存了默认网关和其他IP地址及其对应的物理地址
实作二(arp /?):
实作三(将默认网关设置为静态):
TroubleShooting:
你可能会在实作三的操作中得到 “ARP 项添加失败: 请求的操作需要提升” 这样的信息,表示命令没能执行成功,你该如何解决?
以管理员身份运行,并再次arp -a查看,发现已设置为静态
问题:
在实作三中,为何缓存中常常有网关的信息?
我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?
- 缓存中记录着你访问过的地址信息,当然也包括网关。
设置为静态可以防止ARP病毒的传播,但这种手工维护MAC表的方式不适用于移动或者经常变化的网络环境中。
阶段五(DHCP):
DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:
用于内部网或网络服务供应商自动分配 IP 地址给用户
用于内部网管理员对所有电脑作中央管理
简单的说,DHCP 可以让计算机自动获取/释放网络配置。
实作一(ipconfig/release ipconfig/renew):
问题:
在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Winodws系统采用这样的方案有什么意义?
- Windows根据算法自动配置的IP地址及相关配置信息只能短暂解决计算机不能获取 DHCP 服务器的配置数据的问题,要真正的接入Internet还是得查看本身计算机的正确IP地址。
阶段六(netstat):
无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。
netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。
实作一(查看端口文件):
C:\WINDOWS\system32\drivers\etc\services
实作二(netstat -an):
阶段七(DNS):
DNS(Domain Name System)即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。
实作一(查看DNS信息):
C:\WINDOWS\system32\drivers\etc\hosts
实作二(ipconfig /displaydns):
实作三(nslookup qige.io):
TroubleShooting:
上面秘籍中我们提到了使用插件或自己修改 hosts 文件来屏蔽广告,思考一下这种方式为何能过滤广告?如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它?
- 修改hosts文件是指将某个网站重定向到一个地址,使之无法访问从而达到屏蔽广告的效果。如果某些广告拦截失效,首要原因是服务器设置了 keep-alive,次要原因是存在浏览器 DNS 缓存和系统 DNS 缓存。
阶段八(cache):
cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。
浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。
实作一:
实作二:
因此,我们得到结论,不使用cache缓存之后,网页加载速度会变慢