当您的网络连接在传输过程中丢失信息时,会发生数据包丢失。它可能使您的网络连接看起来比应有的慢,并降低了与本地和远程设备进行网络通信的可靠性。对于那些希望改善麻烦网络的人来说,阻止数据包丢失应位于列表的顶部。
什么是丢包?
虽然自来水通常用作网络流量的类比,但信息不是作为连续流在网络上传输的。相反,它是作为一系列离散单元发送的,称为数据包。这些单位就像书中的单个页面。它们共同具有一定的意义,但只有当它们以正确的顺序与其他页面连接时,它们才能创建一个连贯的整体。当您的网络连接丢失数据包时,无法构建完整的书籍。数据包也可能到达不完整,损坏或有其他缺陷,导致它们无用。对此的修复通常是重新发送丢失的数据包。
大多数网络不时有一些非常低的丢包率。网络连接的变化使得每隔一段时间丢弃一个数据包是不可避免的。也就是说,在功能正常的网络上,丢包的情况很少发生,不会影响网络连接的有效性。
如果您在网络中看到更高级别的数据包丢失,则需要采取措施解决此问题。回到我们的水类比,重大的数据包丢失就像一个严重泄漏的管道。在进行任何其他改进之前,需要先修复它。
导致网络丢包的原因
只有一个原因不会发生数据包丢失。诊断网络上丢包的原因将告诉您需要修复的内容。
- 网络带宽和拥塞:数据包丢失的主要原因是所需连接的网络带宽不足。当太多设备尝试在同一网络上通信时会发生这种情况。
- 硬件不足:网络上路由数据包的任何硬件都可能导致数据包丢失。路由器,交换机,防火墙和其他硬件设备最容易受到攻击。如果他们无法“跟上”您在其中路由的流量,他们将丢弃数据包。把它想象成一个满满的服务员:如果你让他们拿起另一个盘子,他们可能会丢掉一个或多个其他盘子。
- 电缆损坏:数据包丢失可能发生在物理网络层的第1层。如果您的以太网电缆损坏,接线不正确或太慢而无法处理网络流量,它们将“泄漏”数据包。
- 软件错误:没有软件完美无缺。网络硬件或计算机软件中的固件可能存在导致数据包丢失的错误。在这种情况下,消费者没有什么可做的。您可能会尝试自行解决问题,但解决问题的唯一方法是通过供应硬件的供应商提供的固件补丁。当您发现可疑错误时,请务必报告可疑错误,以鼓励供应商解决问题。
检测数据包丢失
有许多软件应用程序可以检测网络中的数据包丢失。他们通过以某种方式“嗅探”数据包,通过分析他们的旅行时间或查看数据包。发现数据包丢失的最简单方法是ping网络中的设备。
-
在Windows上,打开命令提示符窗口并使用ping命令定位路由器。例如,如果路由器的本地IP地址是127.0.0.1,则以下命令将ping路由器:
ping 127.0.0.1 -t
在macOS或Linux上,打开终端窗口并使用以下命令:
ping 127.0.0.1
唯一的区别是命令末尾缺少-t。
-
ping命令处理足够数量的数据包(至少10个)后,按 按Ctrl + C 停止命令。
-
看看是否有丢包。如果ping设备和目标之间的这种特定连接正常运行,您应该看到0%的数据包丢失。
--- 127.0.0.1 ping统计---传输27个数据包,接收27个数据包,0.0%丢包往返min / avg / max / stddev = 1.820 / 8.351 / 72.343 / 14.186 ms
-
而已。
还有更多高级工具可用于检测数据包丢失。
-
macOS和Linux上的tcpdump命令比ping强大得多。要习惯它有点压倒性,但是以下命令将捕获数据包然后计算丢包量:
tcpdump -i any
-
这将通过任何网络连接运行tcpdump。它也可以使用-i eth0运行以仅捕获主网络接口,或使用-c 10仅捕获10个数据包。
-
命令运行后,查看底线以查看是否有丢失的数据包。
捕获了17个包过滤器收到85个数据包内核丢弃0个数据包
-
理想情况下,您应该看到丢失了0个数据包。
在Windows上,您可以在Windows 10上通过Bash shell使用tcpdump或运行Wireshark。
检测数据包的过程相当低。一旦建立了检查网络通信的方法,就需要遵循隔离和消除的做法来确定数据包丢失的来源和原因。这将需要在大多数情况下ping网络上的大多数设备,或运行完成相同操作的脚本。了解网络拓扑结构将非常有用。
确定丢包原因
要确定数据包丢失的根本原因,您应该从最简单的问题开始检测并向后工作。
首先,检查设备之间的以太网连接。检查是否有明显的物理损坏和错误接线迹象。这些电缆是否正常工作?切换电缆是否解决了这个问题?以类似的方式检查路由器和交换机。
其次,确定是否有足够的带宽来处理网络上所需的设备。任何一个硬件处理连接的连接数是否超出应有的范围?在问题解决之前,这通常是查找和替换的过程。您还可以使用“已知良好”的交换机和路由器,将其与网络上可能存在问题的设备进行交换,以查看在删除特定设备时数据包丢失是否消失。
如何修复网络上的数据包丢失
一旦确定了数据包丢失的原因,就可以应用两种修复方法。
第一个涉及更换有问题的硬件。如果您的调查导致硬件设备工作不正常,请将其更换。
如果数据包丢失是由软件错误引起的,您需要自己尝试修复错误,尝试解决错误,或者向供应商报告错误并希望他们修复错误。对于内部软件,可以更容易地找到修复程序。对于第三方软件,它取决于。如果您是主要客户,您可能能够解决问题。如果没有,您可能会在尝试使用变通方法时遇到困难。
最后的想法
数据包丢失通常表现为网络上运行缓慢。当然,一些如此模糊的东西可能是由各种根本原因造成的。如果您正在诊断表现不佳的网络,则数据包丢失应位于列表的顶部。一旦丢失数据包丢失,您就可以继续处理更复杂的问题。