Что происходит на коммутаторе?

Что происходит на коммутаторе?

Мне просто интересно, что произойдет, если коммутатор потеряет слишком много пакетов. Причина, по которой я спрашиваю, в том, что у меня есть коммутатор, который постоянно перегружен. Это вызвано тем, что люди загружают тяжелые файлы в сеть. У меня есть резервный коммутатор на случай, если этот выйдет из строя.

иллюстрация

решение1

Короткий ответ: "не так уж много". С точки зрения того, что на самом деле происходит на коммутаторе, пакеты теряются — и всё. Коммутатору всё равно, кроме как зафиксировать факт их потери.

В следующем разделе вы узнаете, что именно является причиной потери пакетов, а также как сеть в целом справляется с этой проблемой.

Опять же, вкратце, реагирование на потерю пакетов выполняется клиентами, а не коммутатором. Это их ответственность, и единственный контроль, который есть у коммутатора, — это настройка его очередей и такие функции, как QoS, которые просто приоритизируют трафик (они не останавливают потерю пакетов).

Что происходит на коммутаторе?

Коммутаторы используют очереди, чтобы обеспечить небольшой буфер между входящими и исходящими пакетами. Они представляют собой своего рода кэш и имеют много похожих функций. Обычно вы хотите, чтобы пакет входил в коммутатор и сразу выходил. Это самый быстрый способ, но он не всегда возможен.

Если у вас есть несколько клиентов, подключающихся к соединению, которому не хватает пропускной способности, или вы подключаетесь к месту назначения через более узкую полосу пропускания, пакеты не могут отправляться так же быстро, как они поступают на устройство.

Дополнительные пакеты будут накапливаться в очередях, используемых внутри коммутатора, в надежде, что это был пакетный выброс и что пакетов будет меньше, прежде чем кэш полностью заполнится, и он сможет «догнать» себя.

Если кэш заполнен, это означает, что всем остальным поступающим пакетам негде храниться, и именно здесь пакеты отбрасываются — они просто отбрасываются до тех пор, пока в очереди не будет достаточно места.

Пример

Реальным примером этого может служить файловый сервер в офисе. Допустим, у вас есть 48 подключений по 100 Мбит/с и 2 подключения по 1 Гбит/с (где 48 предназначены для клиентов, а 2 гигабитных подключены к серверу). Если бы никто другой не пытался связаться с сервером, то клиент мог бы с радостью использовать все свое подключение по 100 Мбит/с (конечно, с издержками). Но как только более 20 человек захотят получить доступ к файловому серверу, который уже 2 Гбит/с, 21-й человек не сможет этого сделать.

Пакеты начнут добавляться в очередь в порядке «первым пришел — первым обслужен» и освобождаться с использованием настройки приоритетов, настроенной на коммутаторе — обычно First In First Out (FIFO), когда не настроена конфигурация типа QoS. Когда этот буфер заполняется (слишком много пакетов), пакеты полностью отбрасываются, и клиенты должны это осознать и что-то с этим сделать.

Типичный результат будет выглядеть available_bandwidth / (number_of_clients * bandwidth_of_clients)как средняя пропускная способность. Где скорость, которую получает каждый клиент, пропорциональна скорости его подключения к коммутатору. Это не столько детерминированное решение по проектированию, сколько результат вероятности поступления пакета с любого из портов, как только освободится место в очереди.

Что происходит с сетевым трафиком?

Программное/аппаратное обеспечение, взаимодействующее между собой, должно определить, что пакеты отбрасываются, и реализовать ограничение скорости для уменьшения объема данных, которые пытаются отправить. При этом, конечно, если данные — это UDP (обычно в приложениях реального времени), то нет никаких сообщений ACK, поэтому оно не будет знать, что нужно ограничивать скорость.

Ограничение скорости — это, как правило, способ, которым весь трафик определяет максимальную скорость, с которой он может передаваться. Например, у вас может быть 1-гигабитное соединение с маршрутизатором в простой сети, но тогда скорость загрузки составляет всего 20 Мбит, и когда вы пытаетесь отправить больше, ваши пакеты будут потеряны, ПК не получит ACK, и будет установлено ограничение скорости, которое соответствует максимальной скорости, которую он может достичь во всей сети (включая Интернет) до пункта назначения.

В TCPАлгоритм Нейглаиспользуется для наложения этого ограничения скорости, но в соединении UDP результатом, вероятно, будет снижение качества (например, для видеопотока) или просто сбой, но неспособность получить достаточное количество данных должна была бы явно исходить от получателя, а не из-за отсутствия подтверждения.

Связанный контент