计算机网络实验(验证性实验)
前言
计算机网络是计算机课程中核心的一门,有了他我们的计算机不再只是自己狂欢的平台,让我们可以与世界上其他的计算机进行交流、获取资源。而计算机网络同样作为人造学科,我们首先要学的便是其人造的特点,也就是网络协议的学习。
网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。
本次学习的计算机网络实验主要由验证性、Wireshark 和 Cisco Packet Tracer 实验等三个部分组成,可以让我们掌握基础的计算机网络基础,依次基础对网络协议进行抓包分析,最后可以通过模拟实验进行进一步模拟重现。
本篇主要为验证性实验,其他见同期文章
验证性实验
ipconfig
ipconfig
是微软操作系统的计算机上用来控制网络连接的一个命令行工具。它用来显示当前网络连接的配置信息。
tips: 直接使用
ipconfig
会显示简略的网络连接配置信息,加上参数(/all
)可以显示详细信息。同时还有其他的参数可以通过ipconfig /?
来查看使用方法。
ipconfig
以太网适配器 以太网 3:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::709a:cc39:904e:32ec%14
IPv4 地址 . . . . . . . . . . . . : 192.168.0.178
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.0.1
实作一:查看自己的网络配置
ipconfig /all
Windows IP 配置
主机名 . . . . . . . . . . . . . : TgM-Desktop
主 DNS 后缀 . . . . . . . . . . . :
节点类型 . . . . . . . . . . . . : 混合
IP 路由已启用 . . . . . . . . . . : 否
WINS 代理已启用 . . . . . . . . . : 否
以太网适配器 以太网 3:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Remote NDIS based Internet Sharing Device
物理地址. . . . . . . . . . . . . : 34-4B-50-00-00-00
DHCP 已启用 . . . . . . . . . . . : 是
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::709a:cc39:904e:32ec%14(首选)
IPv4 地址 . . . . . . . . . . . . : 192.168.0.178(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.0
获得租约的时间 . . . . . . . . . : 2021年12月22日 8:49:55
租约过期的时间 . . . . . . . . . : 2021年12月23日 8:49:55
默认网关. . . . . . . . . . . . . : 192.168.0.1
DHCP 服务器 . . . . . . . . . . . : 192.168.0.1
DHCPv6 IAID . . . . . . . . . . . : 855679174
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-27-E8-CE-7A-50-7B-9D-E3-5F-3B
DNS 服务器 . . . . . . . . . . . : 192.168.0.1
TCPIP 上的 NetBIOS . . . . . . . : 已启用
-
主机名:本机的hostname,主机名指得是网络上设备的名称,主机名即计算机名。
-
主DNS后缀:默认是没有的,也就是本地解析,也就是说DNS后缀是用来解析主机名用的。
-
连接特定的DNS后缀:网卡对应的DNS服务器帮助解析IP。本地的连接没有DNS服务器则空。
-
描述:网卡的品牌型号。
-
物理地址:以太网适配器(网卡)的物理地址。
-
DHCP已启用:DHCP是动态分配IP的协议,IP自动获取时会启用。
-
自动配置已启用:同上。
-
本地链接 IPv6 地址:IPv6表示法的IP地址%后面的14是网络号的个数。
-
IPv4 地址:本地在局域网内的IP地址。
-
子网掩码:化成二进制,前面是1的表示为网络号,后面为0的表示为主机号。
-
获得租约的时间:此IP地址的开始使用时间。
-
租约过期的时间:此IP地址的到期时间。
-
默认网关:默认网关IP地址,意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。也就是路由器的地址。
-
DHCP服务器:DHCP服务器地址,提供DHCP服务的电脑的IP地址。
-
DHCPv6 IAID:身份关联标识符。
-
DHCPv6 客户端 DUID:DHCP 唯一标识符 。
-
TCPIP 上的 NetBIOS:当安装TCP/IP协议时,NetBIOS 也被Windows作为默认设置载入,我们的计算机也具有了NetBIOS本身的开放性。
对于本机来说,本机在
2021年12月22日 8:49:55
被分配使用网络号为192.168.0.0
中的IPv4地址为192.168.0.178
通过默认网关192.168.0.1
进行网络活动。
实作二:比较自己与其他计算机网络配置异同
todo: 使用学校的电脑进行ipconfig /all查看
ipconfig /all
Windows IP 配置
主机名 . . . . . . . . . . . . . : 3b32
主 DNS 后缀 . . . . . . . . . . . :
节点类型 . . . . . . . . . . . . : 混合
IP 路由已启用 . . . . . . . . . . : 否
WINS 代理已启用 . . . . . . . . . : 否
以太网适配器 本地连接 3:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Reealtek PCIe GBE Family Controller #3
物理地址. . . . . . . . . . . . . : C0-3F-D5-5E-2E-B6
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::24b9:cc8:3d77:8203%14(首选)
IPv4 地址 . . . . . . . . . . . . : 10.1.201.79(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.128
默认网关. . . . . . . . . . . . . : 10.1.201.1
DHCPv6 IAID . . . . . . . . . . . : 297811925
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-27-24-00-1B-C9-3F-D5-5E-0A-0B
DNS 服务器 . . . . . . . . . . . : 202.202.240.33
TCPIP 上的 NetBIOS . . . . . . . : 已启用
即对于学校的电脑来说,
主机3b21
处于网络号为10.1.201.0
中IPv4地址10.1.201.79
通过网关10.1.201.1
进行网络活动,他是使用202.202.240.33
学校的DNS服务器进行解析URL的。
是同一子网吗?
我和学校的电脑目前并不处于同一子网中,通过我们两台主机网络号的不同,可以明确看出我们并不处于同一子网下。
本机网络号:192.168.0.0
学校电脑网络号:10.1.201.0
补充:后来发现本机使用的是移动的移动网卡,如果其他人也是用的移动网卡,大概率也会分配为192.168.0.0这一网路号,因为这是移动配置的默认内部私网IP。但是如果使用百度搜索IP,才会得到当前通信的外网总线IP。
ping
PING
(Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。
tips : 同样可以使用
ping /?
进行使用帮助,后文不再进行阐述。
实作一:简单ping使用
ping www.cqjtu.edu.cn
正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据:
来自 218.70.34.236 的回复: 字节=32 时间=33ms TTL=49
来自 218.70.34.236 的回复: 字节=32 时间=91ms TTL=49
来自 218.70.34.236 的回复: 字节=32 时间=308ms TTL=49
来自 218.70.34.236 的回复: 字节=32 时间=213ms TTL=49
218.70.34.236 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 33ms,最长 = 308ms,平均 = 161ms
-
ping
命令会自动根据DNS解析到对应的IP地址,也就是说使用URL和IP地址同等作用。 -
默认会发送四个
ICMP
的数据包进行探测网络情况。 -
其中的
时间
表明数据包发送往返行程的时间,综合四个包将对其进行计算。 -
TTL
原本是协议原本希望使用过期时间,但是实际使用中是反馈的去到该IP已经历跳数。
实作二: 通过IP帮助指令学习使用ip
ip /?
[-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
[-4] [-6] target_name
选项:
-t Ping 指定的主机,直到停止。
若要查看统计信息并继续操作,请键入 Ctrl+Break;
若要停止,请键入 Ctrl+C。
-a 将地址解析为主机名。
-n count 要发送的回显请求数。
-l size 发送缓冲区大小。
-f 在数据包中设置“不分段”标记(仅适用于 IPv4)。
-i TTL 生存时间。
-v TOS 服务类型(仅适用于 IPv4。该设置已被弃用,
对 IP 标头中的服务类型字段没有任何
影响)。
-r count 记录计数跃点的路由(仅适用于 IPv4)。
-s count 计数跃点的时间戳(仅适用于 IPv4)。
-j host-list 与主机列表一起使用的松散源路由(仅适用于 IPv4)。
-k host-list 与主机列表一起使用的严格源路由(仅适用于 IPv4)。
-w timeout 等待每次回复的超时时间(毫秒)。
-R 同样使用路由标头测试反向路由(仅适用于 IPv6)。
根据 RFC 5095,已弃用此路由标头。
如果使用此标头,某些系统可能丢弃
回显请求。
-S srcaddr 要使用的源地址。
-c compartment 路由隔离舱标识符。
-p Ping Hyper-V 网络虚拟化提供程序地址。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
-t
持续不断ping主机,直到使用中止或统计。
-
-a
该参数需要对应的DNS支持该服务,其会将ping的ip主机名进行返回。ping -a 218.70.34.236 * 模拟支持返回 * 正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据: 来自 218.70.34.236 的回复: 字节=32 时间=31ms TTL=49 来自 218.70.34.236 的回复: 字节=32 时间=30ms TTL=49 来自 218.70.34.236 的回复: 字节=32 时间=34ms TTL=49 来自 218.70.34.236 的回复: 字节=32 时间=46ms TTL=49 218.70.34.236 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 30ms,最长 = 46ms,平均 = 35ms
其中的 正在 Ping www.cqjtu.edu.cn 即为解析结果。
-
-n
可以设定要发送的回显请求数 -
-l
可以设定要发送的缓冲区大小ping www.cqjtu.edu.cn -n 5 -l 64 正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 64 字节的数据: 来自 218.70.34.236 的回复: 字节=64 时间=37ms TTL=49 来自 218.70.34.236 的回复: 字节=64 时间=34ms TTL=49 来自 218.70.34.236 的回复: 字节=64 时间=38ms TTL=49 来自 218.70.34.236 的回复: 字节=64 时间=36ms TTL=49 来自 218.70.34.236 的回复: 字节=64 时间=29ms TTL=49 218.70.34.236 的 Ping 统计信息: 数据包: 已发送 = 5,已接收 = 5,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 29ms,最长 = 38ms,平均 = 34ms
可以看到,其中传输的字节变为了64,而包数也发了5个。
-
-i
设定TTL超期时间,其实也就是允许最大跳数。本机默认的ICMP会将包中的TTL设置为一定值,当传出去一个节点就减1,如果到零时就反馈此包过期。如果设定此参数将采用参数后跟的数据来作为初始最大值。
ping www.cqjtu.edu.cn -i 14 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据: 222.177.128.234 的回复: TTL 传输中过期。 222.177.128.234 的回复: TTL 传输中过期。 222.177.128.234 的回复: TTL 传输中过期。 222.177.128.234 的回复: TTL 传输中过期。
本机访问重庆交通大学的网站,需要跳转15次,
故设置为14次时会告知TTL传输中过期
。
-
-
-w
设定等待回复
的超时时间**(注意不是往返总时长)**ping www.cqjtu.edu.cn -w 1 正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据: 请求超时。 来自 218.70.34.236 的回复: 字节=32 时间=30ms TTL=49 来自 218.70.34.236 的回复: 字节=32 时间=46ms TTL=49 来自 218.70.34.236 的回复: 字节=32 时间=29ms TTL=49 218.70.34.236 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 29ms,最长 = 46ms,平均 = 35ms
可以看到其中有一个包,因为等待回复时间超过1ms而请求超时了。
-
-4
强制使用IPv4协议 -
-6
强制使用IPv6协议
IPv4 回显请求-ICMPv4-In
如果你确定你们在同一子网且网络互通,但是仍然不能ping通,其中的一种情况是对方主机的回显请求-ICMPv4-In
尚未开启,也就是说需要到防火墙中将其打开(步骤如下),或者你直接关闭防火墙同样可以解决。
控制面板 -> 系统和安全 -> windows 防火墙 -> 高级设置 -> 入站规则 -> “文件和打印机共享(回显请求-ICMPv4-In)”规则 -> 启用规则
利用Ping命令进行网路排查
- 测试本机网络软件硬件工作状态,
ping 127.0.0.1
,若不正常返回,则问题在本机,检查本机 TCP/IP 配置即网卡状态等。 - 测试本子网内部工作状态,
ping 本子网另一主机ip
,若不正常返回,问题在本机网络出口到交换机之间,检查本机网卡到交换机的连线等。 - 测试本子网出口工作状态,
ping 本子网网关ip
,若不正常返回,找网管麻烦。 - 测试目的IP连通状态,
ping 目的ip
,若不正常返回,找目的IP负责人麻烦。
补充DNS
在ping命令中,已经使用DNS服务器将我们的ping的url转化为ip地址,如果ip可以ping通,但是域名不能ping通,看看是不是dns解析步骤出现问题,比如错误设置dns服务器,本机设置污染,或者被主动污染了。
tracert
TRACERT
,即路由追踪,该命令行程序可用于跟踪 Internet 协议(IP)数据包传送到目标地址时经过的路径。
tracert /?
用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]
[-R] [-S srcaddr] [-4] [-6] target_name
-d 不将地址解析成主机名。
-h maximum_hops 搜索目标的最大跃点数。
-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-w timeout 等待每个回复的超时时间(以毫秒为单位)。
-R 跟踪往返行程路径(仅适用于 IPv6)。
-S srcaddr 要使用的源地址(仅适用于 IPv6)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
参数学习
-d
追踪到的节点仅显示IP,不解析为主机名-h
最大跃点数,即最多追踪几步
-w
-4
-6
参数与ping命令中的同等使用方法。
实作一: 追踪分析
此处对本机访问百度过程进行追踪,稳妥起见设定最大64跃点。
tracert -h 64 www.baidu.com
通过最多 64 个跃点跟踪
到 www.a.shifen.com [183.232.231.172] 的路由:
1 <1 毫秒 <1 毫秒 <1 毫秒 192.168.0.1
2 * * * 请求超时。
3 30 ms 25 ms 25 ms 10.10.23.33
4 36 ms 29 ms 39 ms 10.10.24.21
5 * * * 请求超时。
6 32 ms 36 ms 38 ms ptr.cq.chinamobile.com [211.139.50.204]
7 * 37 ms 17 ms ptr.cq.chinamobile.com [218.207.38.161]
8 48 ms 28 ms 38 ms ptr.cq.chinamobile.com [218.207.38.157]
9 * 34 ms * 221.183.49.41
10 * * * 请求超时。
11 * * * 请求超时。
12 59 ms 57 ms 57 ms 120.241.49.218
13 * * * 请求超时。
14 * * * 请求超时。
15 80 ms 63 ms 56 ms ptr.cq.chinamobile.com [183.232.231.172]
跟踪完成。
追踪流程:本机网关(192.168.0.1) -> 通过部分内网(10.10.23.33) -> 中国 重庆 重庆市 移动(211.139.50.204) -> 中国 移动(221.183.49.41) -> 中国 广东省 深圳市 移动(120.241.49.218) -> 中国 广东省 广州市 移动(183.232.231.172)
每步返回结果中,第一个数字表示第几个跃点,后面三个时间表示发送了三个ICMP包分别的往返时间,最后是本步主机名[IP],但是其中部分数据会含有*号
,有*
号的都代表访问超时,但是其中又有两种情况。
一种是所有时间全部为*
号,对应的主机名[IP]显示请求超时,此时一般是对应主机并不允许ICMP回显,就跟之前无法Ping通一个道理。
另一种情况是因为确实数据返回比较缓慢,可以看到三个时间是存在不为*
号的,后面的主机名[IP]也是正常现实的。
实作二:分析全球ISP到qige.io线路状态
据此可以分析出qige.io
的ip地址,各个ISP地区、名称、丢包率、发送测试包数量、最后返回的包往返行程的估计时间、平均时间、最好时间等等。
问题一:
该命令的追踪方法其实很简单,通过发送不同TTL
根据返回信息进行追踪,比如首先发送TTL为1的包,这样他就会返回第一步到达的网关信息。以此类推,逐步到达需要访问的点。
问题二:
前几条基本时从本机连接到互联网上必须有的操作,出网关,上ISP等等。
问题三:
其中部分数据会含有*号
,有*
号的都代表访问超时,两种不同的情况可以见上文分析。
ARP
ARP
(Address Resolution Protocol)即地址解析协议,是用于根据给定 IP 地址,查找并得到其对应的 MAC地址的协议。主要用于局域网内不知道目的IP地址的MAC地址时。
实作一:arp缓存
arp -a 该命令可以查看当前的arp缓存
可以看到当前的arp已经对部分ip地址有缓存,包括本机的全局广播和网关等。
arp -d * //该命令可以删除所有的arp缓存
在我们使用ping
命令去访问一个IP地址时,首先我们会查看缓存中是否具有该IP的MAC地址,只有知道了MAC地址我们的请求才能通过数据链路层正确发送出去,如果没有,将立即调用arp协议,发送arp包出去,在局域网内进行广播,询问谁是目的IP,然后根据回应自动存储相应地址到本地缓存。
实作二:帮助命令
可以看到,其中有我们刚刚使用了的arp -a
查看所有ARP缓存命令,同时我们也可以对其中的静态项手动添加,而动态项则基本是自动添加上去的,经典的就是我们的网关。
实作三:ARP静态绑定
通过前面的实验可知,本机网关为192.168.0.1
,在本地arp缓存中的mac地址为c8-ea-f8-32-83-10
,现在尝试通过arp -s
将此mac地址设为静态。
ok果不其然,请求的操作需要提升,其实前文中的删除所有缓存表也出现这个了这个问题,在此处给出解决办法。
请求的操作需要提升解决办法:
- 打开
Cmder
的Settings
- 选择作为管理员打开cmd
- 重启就会看到这么一条提示,现在你就是以管理员身份打开的cmd了。
但是使用命令
arp -s 192.168.0.1 c8-ea-f8-32-83-11 192.168.0.178
出现拒绝访问错误,
查询资料可知:在win7及以上arp用来查mac,修改指定IP地址的需要使用netsh命令。
则根据资料更换命令为
-
netsh i i show in
查看网卡接口Idx,本机为14 -
netsh -c "i i" add neighbors 14 192.168.0.1 c8-ea-f8-32-83-11
查看arp列表,接口更改成功,ok发现自己没网络了!!!!!!!!!!!!!!
发现自己改错物理地址了,坑,根据刚刚命令分析,重新添加。
斯,看来得把它先删除。根据刚刚的命令分析,将add
改为delete
,ok成了
再次添加netsh -c "i i" add neighbors 14 192.168.0.1 c8-ea-f8-32-83-10
结果现在又发现,第一步的命令有点多余,因为查看所有接口时,他会自己显示Idx,只不过使用的十六进制,这里0xe
其实就是十进制的14
,人麻了。ok终于搞定了。
问题:
将网关改为静态的,可以增加通信的安全性。静态ARP表项可以限制和指定IP地址的设备通信时只使用指定的MAC地址,此时攻击报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备间的正常通信。这样,防止了常见的arp欺骗。
被ARP欺骗以后,很可能将其他计算机当作自己网关,所有信息全部发给他,隐私全无。
DHCP
DHCP
(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:
- 用于内部网或网络服务供应商自动分配 IP 地址给用户
- 用于内部网管理员对所有电脑作中央管理
简单的说,DHCP 可以让计算机自动获取/释放网络配置。
实作一:尝试DHCP过程
- 释放:
ipconfig/release
什么都没咯,包括IP地址,子网掩码,默认网关,都没咯。
- 获取:
ipconfig/renew
**问题:**如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址,这样可以让我们在子网内部不至于重复,这样就可以在子网内部进行通信。
netstat
netstat
(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。
实作一:端口服务
C:\Windows\System32\drivers\etc中service文件
其中可以看到我们熟知的一些服务对应端口,比如:
* ftp 对应tcp 21端口
* ssh 对应tcp 22端口
* http 对应tcp 80端口
* https对应tcp/udp 443端口
* ...
实作二:查看计算机当前的网络连接状况
“-a"选项意在显示所有连接,当不附加”-n"选项时,它显示的是本地计算机的netbios名字+端口号。
而加了"-n"选项后,它显示的是本地IP地址+端口号。
DNS
DNS
(Domain Name System)即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。
实作一:查看本机hosts
C:\WINDOWS\system32\drivers\etc\hosts 文件查看
可以看到我们可以使用本地映射,来访问一些被DNS污染的网址。比如github.com
实作二:查看所有缓存并清除
ipconfig /displaydns 查看所有dns缓存
ipconfig /flushdns 清除所有dns缓存
发现其中,我已经写进hosts的记录还在
实作三:nslookup
nslookup qige.io
nslookup qige.io 8.8.8.8
我们可以通过自己修改hosts来过滤广告,基础原理其实就是在文件中添加该广告链接,并且指定一个ip地址(通常为本机地址),因为hosts文件优先级是高于DNS服务器,这样浏览器解析该广告链接时,优先hosts文件,这样我们就相当于更改了该链接本来的ip地址,从而使该链接失效。
cache
cache
即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。
浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。
实作一:网页cache
内存缓存和磁盘缓存,基本上这个网页的所有资源我都已经在cache缓存了。
实作二:禁用cache
禁用缓存后,从大小可以看出全部从网络请求,较慢。
我不用安全管家,也不用360安全卫士,不用百度。不清理浏览器缓存。
小结
计算机网络中的基础配置及信息查看,包括mac地址获取、ip地址获取、基本网络配置等,解决了大部分无法连接互联网的原因,逐一排查,基本能够理清网络异常原因。