当您的网络连接在传输过程中丢失信息时,就会发生数据包丢失。这会使您的网络连接看起来比应有的速度慢,并降低与本地和远程设备的网络通信的可靠性。对于任何希望改善有问题的网络的人来说,阻止数据包丢失应该是首要任务。
什么是丢包?
虽然自来水经常被用作网络流量的类比,但信息并不是连续不断地流过网络。相反,它作为一系列称为数据包的单独块发送。这些块就像一本书中的单独页面。它们放在一起有些意义,但只有当它们以正确的顺序链接到其他页面时,它们才能形成一个有凝聚力的整体。当您的网络连接丢失数据包时,就无法构建完整的书。交付的包裹也可能不完整、损坏或有其他缺陷,导致它们无法使用。解决这个问题的方法通常是重新发送丢失的数据包。
大多数网络都会不时经历非常低的数据包丢失。网络连接的排列使得数据包不时丢失,这是不可避免的。但是,在正常运行的网络中,丢包的情况很少见,不会影响网络连接的效率。
如果您发现网络上出现更高级别的数据包丢失,则需要采取措施进行修复。回到我们的水类比,严重的数据包丢失就像一个严重泄漏的管道。在进行任何其他改进之前,需要先解决此问题。
网络丢包的原因
发生数据包丢失的原因不止一种。诊断网络数据包丢失的原因将告诉您需要修复的内容。

• 网络带宽和拥塞。数据包丢失的主要原因是所需连接的网络带宽不足。当太多设备尝试在同一网络上通信时,就会发生这种情况。
• 硬件不足。网络上路由数据包的任何设备都可能导致数据包丢失。路由器、交换机、防火墙和其他硬件设备最容易受到攻击。如果它们跟不上您通过它们的流量,它们就会丢弃数据包。把它想象成一个满手的服务员:如果你让他们拿另一个盘子,他们可能会掉一个或多个其他盘子。
• 电缆损坏。数据包丢失可能发生在第 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 停止命令。
• 看看有没有丢包。如果 pinger 和目标之间的这个特定连接正常工作,您应该看到 0% 的数据包丢失。
• --- 127.0.0.1 ping statistics ---
• 27 packets transmitted, 27 packets received, 0.0% packet loss
round-trip 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 一起运行以仅捕获十个数据包。
• 执行命令后,查看底行是否有任何数据包丢失。
相关文章
网友评论(共有 0 条评论)