Потеря пакета происходит, когда ваше сетевое соединение теряет информацию во время передачи. Это может заставить ваше сетевое соединение казаться медленнее, чем должно быть, и снижает надежность сетевого взаимодействия как с локальными, так и с удаленными устройствами. Остановка потери пакетов должна быть на вершине списка для всех, кто хочет улучшить проблемную сеть.
Что такое потеря пакетов?
Хотя проточная вода часто используется в качестве аналогии для сетевого трафика, информация не передается по сети в виде непрерывного потока. Скорее, он отправляется в виде серии отдельных блоков, называемых пакетами . Эти блоки похожи на отдельные страницы в книге. Вместе они имеют некоторый смысл, но только когда они связаны с другими страницами в правильном порядке, они создают единое целое. Когда ваше сетевое соединение теряет пакеты, полная книга не может быть построена. Пакеты также могут доставляться неполными, поврежденными или иными дефектами, что делает их бесполезными. Исправление для этого обычно повторно отправляет потерянный пакет.
В большинстве сетей время от времени наблюдается очень низкий уровень потери пакетов. Превращения сетевых соединений таковы, что время от времени пакет отбрасывается, что неизбежно. Тем не менее, в правильно функционирующей сети потеря пакетов происходит достаточно редко, что не влияет на эффективность сетевого подключения.
Если вы видите более высокие уровни потери пакетов в вашей сети, вам нужно будет предпринять шаги, чтобы это исправить. Возвращаясь к нашей аналогии с водой, значительная потеря пакетов напоминает плохо протекающую трубу. Это должно быть исправлено, прежде чем любые другие улучшения могут быть сделаны.
Что вызывает потерю пакетов в вашей сети
Потеря пакета происходит не только по одной причине. Диагностика причины потери пакетов в вашей сети скажет вам, что вам нужно исправить.
- Пропускная способность сети и перегрузка . Основной причиной потери пакетов является недостаточная пропускная способность сети для требуемого соединения. Это происходит, когда слишком много устройств пытаются установить связь в одной сети.
- Недостаточное оборудование . Любое оборудование в сети, которое маршрутизирует пакеты, может привести к потере пакетов. Маршрутизаторы, коммутаторы, межсетевые экраны и другие аппаратные устройства являются наиболее уязвимыми. Если они не могут «идти в ногу» с трафиком, который вы передаете по ним, они будут отбрасывать пакеты. Думайте об этом как официанте с полными руками: если вы попросите их взять другую тарелку, они, вероятно, уронят одну или несколько других тарелок.
- Поврежденные кабели . Потеря пакетов может произойти на уровне 1 , физическом сетевом уровне. Если ваши кабели Ethernet повреждены, неправильно подключены или слишком медленны для обработки сетевого трафика, они будут «пропускать» пакеты.
- Программные ошибки : ни одно программное обеспечение не является безупречным. Микропрограмма вашего сетевого оборудования или программного обеспечения вашего компьютера может содержать ошибки, которые могут привести к потере пакета. В этом случае потребитель мало что может сделать. Вы можете попытаться решить проблему самостоятельно, но зачастую единственным способом решения проблемы является исправление прошивки от поставщика, поставляющего оборудование. Обязательно сообщайте о предполагаемых ошибках, чтобы найти поставщиков, которые помогут решить проблему.
Обнаружение потери пакета
Существует ряд программных приложений, которые могут обнаружить потерю пакетов в сети. Они каким-то образом «вынюхивают» пакеты , анализируя время их поездки или просматривая пакеты. Самый простой способ узнать, существует ли потеря пакетов, — это пропинговать устройства в вашей сети .
-
В Windows откройте окно командной строки и используйте команду ping для настройки вашего маршрутизатора. Например, если локальный IP-адрес вашего маршрутизатора 127.0.0.1, следующая команда будет проверять связь с маршрутизатором:
ping 127.0.0.1 -t
В macOS или Linux откройте окно терминала и используйте следующую команду:
пинг 127.0.0.1
Единственная разница заключается в отсутствии -t в конце команды.
-
After the ping command processes a sufficient number of packets (at least 10), press Ctrl+C to stop the command.
-
Look to see if there was any packet loss. If this specific connection between pinging device and the target is functioning correctly, you should see 0% packet loss.
--- 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 -
That’s it.
There are also more advanced tools available for detecting packet loss.
-
The tcpdump command on macOS and Linux is dramatically more powerful than ping. It’s a little overwhelming to get used to, but the following command will capture packets and then calculate the amount of packet loss:
tcpdump -i any
-
This will run tcpdump over any network connection. It can also be run with -i eth0 to only capture the primary network interface, or with -c 10 to only capture ten packets.
-
After the command runs, look at the bottom line to see if any packets were lost.
17 packets captured
85 packets received by filter
0 packets dropped by kernel -
Ideally, you should see 0 packets were lost.
On Windows, you can either use tcpdump through the Bash shell on Windows 10 or run Wireshark.
The process of detecting packets is fairly low tech. Once you’ve established a way to check communications across the network, you need to follow a practice of isolation and elimination to determine the source and cause of the packet loss. This will require pinging a majority of devices on the network in most cases, or running scripts that accomplish the same. Knowledge of the network’s topology will be hugely helpful here.
Determining the Cause of Packet Loss
To determine the root cause of packet loss, you should start at the easiest problem to detect and work your way backward.
First, check the ethernet connection between devices. Check for obvious signs of physical damage and miswiring. Are those cables functioning properly? Does switching out cables solve the problem? Check routers and switches in a similar way.
Second, determine if there’s sufficient bandwidth to handle the required devices on your network. Is any single piece of hardware handling significantly more connections than it should? This is often a process of search, find, and replace until the problem resolves. You can also use a «known good» switch and router, swapping it with the potentially problematic devices on the network to see if the packet loss disappears when a specific device is removed.
How to Fix Packet Loss on Your Network
Once you’ve determined the cause of packet loss, there are two fixes that can be applied.
The first involves replacing the problematic hardware. If your investigation leads to a hardware device working incorrectly, replace it.
If the packet loss is being caused by software bugs, you’ll need to try and fix the bug yourself, try and work around the bug, or report the bug to the vendor and hope they fix it. For in-house software, it can be easier to find a fix. For third-party software, it depends. If you’re a major customer, you might be able to muscle a fix out. If not, you might be stuck waiting while you try to use a workaround.
Final Thoughts
Packet loss often presents as things running slowly on the network. Of course, something so vague can be caused by a variety of root causes. If you’re diagnosing an underperforming network, packet loss should be at the top of your list. Once packet loss is eliminated as a possibility, you can move on to more complex problems.