Потеря пакетов происходит, когда один или несколько пакетов данных, перемещающихся по компьютерной сети, не достигают места назначения. Потеря пакетов вызвана либо ошибками при передаче данных, обычно в беспроводных сетях , [1] [2] , либо перегрузкой сети . [3] : 36 Потеря пакетов измеряется как процент потерянных пакетов по отношению к отправленным пакетам.
Протокол управления передачей (TCP) обнаруживает потерю пакетов и выполняет повторную передачу для обеспечения надежного обмена сообщениями . Потеря пакетов в TCP-соединении также используется, чтобы избежать перегрузки и, таким образом, намеренно снижает пропускную способность соединения.
В приложениях реального времени, таких как потоковое мультимедиа или онлайн-игры , потеря пакетов может повлиять на качество работы пользователя (QoE).
Интернет -протокол (IP) разработан по сквозному принципу как служба доставки с максимальной эффективностью , с намерением сохранить логику, которую должны реализовать маршрутизаторы , как можно более простой. Если бы сеть сама обеспечивала надежные гарантии доставки , для этого потребовалась бы инфраструктура хранения и пересылки , в которой каждый маршрутизатор выделяет значительный объем места для хранения пакетов, ожидая проверки того, что следующий узел правильно их получил. Надежная сеть не сможет сохранить гарантии доставки в случае сбоя маршрутизатора. Надежность также необходима не для всех приложений. Например, при потоковой передаче мультимедиа в реальном времени более важно быстро доставить последние пакеты, чем гарантировать, что устаревшие пакеты в конечном итоге будут доставлены. Приложение или пользователь также могут решить повторить операцию, которая занимает много времени, и в этом случае к бремени доставки исходного набора будет добавлен еще один набор пакетов. Такой сети также может потребоваться протокол управления и контроля для управления перегрузками, что еще больше усложняет ее.
Чтобы избежать всех этих проблем, Интернет-протокол позволяет маршрутизаторам просто отбрасывать пакеты, если маршрутизатор или сегмент сети слишком заняты для своевременной доставки данных. Это не идеально для быстрой и эффективной передачи данных, и не ожидается, что это произойдет в незагруженной сети. [4] Отбрасывание пакетов действует как неявный сигнал о том, что сеть перегружена, и может привести к тому, что отправители уменьшат потребляемую полосу пропускания или попытаются найти другой путь. Например, используя воспринимаемую потерю пакетов в качестве обратной связи для обнаружения перегрузки, протокол управления передачей (TCP) спроектирован таким образом, что чрезмерная потеря пакетов заставит отправителя снизить скорость и прекратить наводнение узким местом данными. [3] : 282–283.
Пакеты также могут быть отброшены, если контрольная сумма заголовка IPv4 или последовательность проверки кадра Ethernet указывают на то, что пакет поврежден. Потеря пакетов также может быть вызвана атакой сбрасывания пакетов .
Беспроводные сети подвержены воздействию ряда факторов, которые могут привести к повреждению или потере пакетов при передаче, например, радиочастотные помехи (RFI), [1] слишком слабые радиосигналы из-за расстояния или многолучевого замирания , неисправное сетевое оборудование или неисправные сетевые драйверы.
Wi-Fi по своей сути ненадежен , и даже когда два одинаковых приемника Wi-Fi расположены в непосредственной близости друг от друга, они не демонстрируют одинаковых закономерностей потери пакетов, как можно было бы ожидать. [1]
В сотовых сетях могут возникать потери пакетов из-за «высокой частоты ошибок по битам (BER), нестабильных характеристик канала и мобильности пользователей». [5] Преднамеренное регулирование TCP не позволяет беспроводным сетям работать со скоростью, близкой к теоретической потенциальной скорости передачи, поскольку немодифицированный TCP обрабатывает все отброшенные пакеты так, как если бы они были вызваны перегрузкой сети , и поэтому может регулировать беспроводные сети, даже если они на самом деле не перегружены. [5]
Перегрузка сети является причиной потери пакетов, которая может повлиять на все типы сетей. Когда контент в течение длительного периода времени поступает на данный маршрутизатор или сегмент сети со скоростью, превышающей возможную для передачи, нет другого выбора, кроме как отбрасывать пакеты. [3] : 36 Если один маршрутизатор или канал ограничивает пропускную способность всего маршрута или сети в целом, это называется узким местом. В некоторых случаях пакеты намеренно отбрасываются процедурами маршрутизации [6] или с помощью техники подавления сети в целях оперативного управления. [7]
Потеря пакетов напрямую снижает пропускную способность для данного отправителя, поскольку некоторые отправленные данные никогда не принимаются и не могут учитываться как пропускная способность. Потеря пакетов косвенно снижает пропускную способность, поскольку некоторые протоколы транспортного уровня интерпретируют потерю как признак перегрузки и корректируют скорость передачи, чтобы избежать коллапса из-за перегрузки.
Когда необходима надежная доставка, потеря пакетов увеличивает задержку из-за дополнительного времени, необходимого для повторной передачи. [a] При отсутствии повторной передачи пакеты, испытывающие наибольшую задержку, могут быть предпочтительно отброшены (в зависимости от используемой дисциплины организации очереди ), что приведет к снижению общей задержки.
Потери пакетов можно измерить как коэффициент потери кадров, определяемый как процент кадров, которые должны были быть перенаправлены сетью, но не были перенаправлены. [8] : 4
Потеря пакетов тесно связана с качеством обслуживания . Допустимый объем потери пакетов зависит от типа отправляемых данных. Например, для трафика голосовой связи по IP один комментатор подсчитал, что «пропуск одного или двух пакетов время от времени не повлияет на качество разговора. Потери от 5% до 10% общего потока пакетов повлияют на качество значительно». [9] Другой описал потерю пакетов менее 1% как «хорошую» для потоковой передачи аудио или видео, а 1–2,5% — как «приемлемую». [10]
Потеря пакетов обнаруживается с помощью надежных протоколов, таких как TCP. Надежные протоколы автоматически реагируют на потерю пакетов, поэтому, когда сетевому администратору необходимо обнаружить и диагностировать потерю пакетов, он обычно использует информацию о состоянии сетевого оборудования или специальных инструментов.
Протокол управляющих сообщений Интернета обеспечивает функцию эха , при которой передается специальный пакет, который всегда дает ответ. Такие инструменты, как ping , Traceroute , MTR и PathPing, используют этот протокол для обеспечения визуального представления пути, по которому проходят пакеты, и для измерения потерь пакетов на каждом прыжке . [б]
Многие маршрутизаторы имеют страницы состояния или журналы, где владелец может узнать количество или процент отброшенных пакетов за определенный период.
Согласно сквозному принципу , Интернет-протокол оставляет ответственность за восстановление пакетов посредством повторной передачи отброшенных пакетов конечным точкам — компьютерам, отправляющим и получающим данные. Они находятся в лучшем положении, чтобы решить, необходима ли повторная передача, поскольку приложение, отправляющее данные, должно знать, лучше ли передать сообщение полностью или частично, прошла ли необходимость в отправке сообщения и как контролировать объем пропускной способности, потребляемой для устранения перегрузок.
Сетевые транспортные протоколы, такие как TCP, предоставляют конечным точкам простой способ обеспечить надежную доставку пакетов, поэтому отдельным приложениям не нужно самостоятельно реализовывать логику для этого. В случае потери пакета получатель запрашивает повторную передачу или отправитель автоматически повторно отправляет все неподтвержденные сегменты. [3] : 242 Хотя TCP может восстановиться после потери пакетов, повторная передача недостающих пакетов снижает пропускную способность соединения, поскольку получатели ждут повторной передачи, и они потребляют дополнительную полосу пропускания. В некоторых вариантах TCP, если переданный пакет потерян, он будет отправлен повторно вместе с каждым пакетом, который уже был отправлен после него.
Такие протоколы, как протокол пользовательских дейтаграмм (UDP), не обеспечивают восстановление потерянных пакетов. Ожидается, что приложения, использующие UDP, при необходимости реализуют свои собственные механизмы обработки потери пакетов.
Существует множество дисциплин организации очередей , используемых для определения того, какие пакеты следует отбрасывать. Большинство базового сетевого оборудования будет использовать очередь FIFO для пакетов, ожидающих прохождения узкого места, и отбрасывать пакет, если очередь заполнена на момент получения пакета. Этот тип отбрасывания пакетов называется хвостовым отбрасыванием . Другие механизмы полной очереди включают случайное раннее обнаружение и взвешенное случайное раннее обнаружение . Отбрасывание пакетов нежелательно, поскольку пакет либо теряется, либо должен быть передан повторно, а это может повлиять на пропускную способность в реальном времени; однако увеличение размера буфера может привести к его раздуванию , что по-своему влияет на задержку и джиттер во время перегрузки.
В случаях, когда качество обслуживания ограничивает скорость соединения, например, при использовании алгоритма дырявого ведра , пакеты могут намеренно отбрасываться, чтобы замедлить работу определенных служб и обеспечить доступную полосу пропускания для других служб, отмеченных более высокой важностью. По этой причине потеря пакетов не обязательно является показателем плохой надежности соединения или признаком узкого места в полосе пропускания.
Доля потерянных пакетов увеличивается по мере увеличения интенсивности трафика. Поэтому производительность узла часто измеряется не только с точки зрения задержки, но и с точки зрения вероятности потери пакета… потерянный пакет может быть передан повторно на сквозной основе, чтобы гарантировать, что все данные в конечном итоге будут переданы. от источника к месту назначения.