假设,你去 Ping ⼀个网站,如果能 Ping 通,且网站返回信息全⾯,则说明与网站服务器的通信是畅通的;
如果 Ping 不通,或者⽹站返回的信息不全等,则很可能是数据被丢包了。
网络丢包最常见的就是水晶头氧化,网卡适配器损坏,网线环路,光衰过大等原因。
当网络有问题,首先我们会进行 ping 命令测试是否丢包,用过的人都知道,可以使用命令:ping -t 192.168.16.1 或者 ping 192.168.16.1。
但是丢包的原因其实很多,定位问题又难倒了不少萌新。今天分享一些常见的丢包故障定位⽅法,希望能让你遇到丢包莫慌。
什么是网络丢包
说明网络丢包之前,你需要了解的是收发包的原理。
数据在 Internet 上是以数据包为单位传输的,单位为字节,数据在网络上传输,受网络设备,网络质量等原因的影响,使得接收到的数据小于发送出去的数据,造成丢包。
了解了收发包的原理,可以了解到,丢包原因主要会涉及⽹卡设备、⽹卡驱动、内核协议栈三⼤类。
在文章开头说到一点,网络丢包是在使用Ping对目的站进行询问时,数据包由于各种原因在信道中丢失的现象。
ping 命令使用了 ICMP 回送请求与回送回答报文。
ICMP 回送请求报文是主机或路由器向一个特定的目的主机发出的询问,收到此报文的机器必须给源主机发送 ICMP 回送回答报文。
这种询问报文,是用来测试目的站是否可到达以及了解其状态。
需要指出的是,Ping命令是直接使用网络层 ICMP 协议的一个例子,它没有通过运输层的 UDP 或 TCP 协议。
网络丢包是网络中常见的故障之一,它会引起网速降低甚至造成网络中断。
发生网络故障在所难免,但是如何快速隔离和排除故障是网络工程师应该具备的基本素质。
常见的丢包故障现象+处理方法
01 网络数据包发送时通时断,丢包严重
【故障现象】
通常故障发生时,该方向网络出现震荡性中断。使用ping命令测试,发现在一段时间内数据包发送延时比正常值略高,间隔一小段时间数据包又全部丢失,丢包率超过 60%,丢包曲线成规则状,网络服务基本不可用。
【故障分析】
在局域网中引起网络发生振荡性时断时通,一般可能是由于互连的交换机中的某两个交换机间出现了环路,或者某个交换机的两个端口直接相连。
这样就会造成局域网的生成树协议构建失败,不断重复检查并试图构建新的生成树网络,从而导致网络振荡性通断。
同时,伴随着交换机间不断重复地发送广播包,就会形成“广播风暴”,使交换机负担过重,网络传输通道严重被堵塞,无法正常的处理通信数据。
环路虽然可能出现在某个接入交换机上,但会影响整个以三层交换机为核心的局域网的稳定运行。
【故障处理】
当发现网络数据包发送时通时断,丢包严重,特别是整个单位或整个楼层出现振荡性中断现象时,则可以判定应该是该单位的某个交换机上出现了环路所致。
应首先查看各接入交换机的指示灯闪烁状态,通常出现环路状况指示灯会急速闪烁,每秒4次以上,所环交换机更为突出。
逐个拨出交换机级联接入网线,同时实时监控交换机状态,在拨下某端口网线后,交换机指示灯恢复正常状态,再进一步查找,会发现该连接线的末端有线路形成环路,清理该网线后,网络恢复畅通。
02 网络数据包发送超时现象严重,时有不规则丢包
【故障现象】
网络突然出现严重堵塞,日常办公程序不能正常运行,打开网页速度缓慢,有时会因超时而中断。未发现网络设备有任何问题,该网络中有几台计算机在入网后速度明显变慢,在禁用网卡或者中断网络后恢复正常。
【故障分析】
首先,在一台用户终端上ping网关测试,结果可以ping通网关,但是数据包发送超时现象严重,丢包率30%左右,丢包不规律。
其次,登陆用户交换机,运行arp -a命令,发现网关IP和网关MAC地址指向正确。
通过上面的测试基本排除网络设置错误以及ARP欺骗,丢包表现了一定的随机性而没有连续性和振荡性的通断,基本排除网络环路问题,初步判断这种现象可能是病毒攻击等引起的。
为此,需要进一步获取ARP信息、网络中传输的原始数据包等信息。
再次,部署抓包分析。在该交换机上配置镜像端口,并将维护终端接到此端口上,启动网络协议分析工具(sniffer)捕获分析网络的数据通信,约10分钟后停止。
在网络分析系统主界面左边的节点浏览器中发现,网络中可能存在伪造IP地址攻击或自动扫描攻击。
选择连接视图,发现在10分钟内,网络中共发起了12000多个连接,且状态大多都是客户端请求同步。
据此,断定网络中存在自动扫描攻击。
最后,详细查看连接信息,发现这些连接大多都是由同一主机发起,选中任意一个连接,选择数据包视图,查看传输数据的原始解码信息,发现这台计算机正在主动对网络中其它主机的TCP 445端口进行扫描攻击,可能是主机感染病毒程序,或者有人正使用扫描软件。通过分析图表视图,进一步确定主机肯定存在自动扫描攻击。
【故障处理】
找到问题根源后,对主机进行隔离,经过一段时间的测试,网络丢包现象有所缓解,但没有从根本上解决问题。
于是再次启动网络协议分析系统捕获并分析,又发现了1台相似情况的主机。据此基本可以断定两台主机都是感染了病毒,且该病毒会主动扫描网络中其他主机是否打开TCP 445端口,如果某主机打开该端口,就攻击并感染这台主机。
如此循环,即引发了上述的网络故障。立即对新发现感染病毒的两台主机进行物理隔离,网络通信立刻恢复正常,再对该终端进行杀毒处理。
03 网络数据包发生严重延时现象,下载、浏览等服务不能正常使用
【故障现象】
局域网内部日常数据共享正常,但是出局浏览外网和下载数据时速度明显降低,使用Ping命令发现到某个方向网络时延特别大,甚至有少量丢包现象。
【故障分析】
一般通过telnet远程登陆到该方向的交换机,以华为系列交换机为例,输入下列命令:
#Display cpu 查看交换机CPU利用率
#Display memory 查看内存利用率
发现两者都非常高,再通过输入命令 #Display interface端口号,检查各端口下的数据流。
对其数据流进行抓包分析,发现多线程指向某网站电影栏目,为避免影响整个网络的畅通,对所接入交换机进行处理。
发现其中的两个端口数据流量特别大,远高于正常使用的网络流量。对其数据流进行抓包分析,发现多线程指向某网站电影栏目,为避免影响整个网络的畅通,对所接入交换机进行处理。
【故障处理】
进入该端口配置界面下,输入Shutdown命令,强制关闭该端口使其断网,联系该终端使用人员,令其终止下载进程后,再恢复其网络。
写在最后:
最后想补充一点,很多网工用Ping命令来检测丢包情况,但其实除了Ping,常用的tracert,nslookup 都可以用来判断主机的网络连通性。
而且 Linux 下有一个更好用的网络联通性判断工具,它可以结合ping nslookup traceroute 来判断网络的相关特性,这个命令就是 mtr。
mtr 全称 my traceroute,是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具。
traceroute 默认使用 UDP 数据包探测,而 mtr 默认使用 ICMP 报文探测,ICMP 在某些路由节点的优先级要比其他数据包低,所以测试得到的数据可能低于实际情况。
文章来源于网络,版权归原作者所有,如有侵权,请联系删除。
关注我【一起学嵌入式】,一起学习,一起成长。
觉得文章不错,点击“分享”、“赞”、“在看” 呗!