[Cloud Consultant-Chaos] Артефакт управления сетью Linux-tc qdisc
[Cloud Consultant-Chaos] Артефакт управления сетью Linux-tc qdisc

1. Что такое tc qdisc?

Прежде чем познакомиться с tc qdisc, давайте сначала объясним, что такое tc (управление трафиком) — это инструмент управления сетевым трафиком в ядре Linux. Его можно использовать для управления пропускной способностью, задержкой, потерей пакетов и другими параметрами сетевого трафика для обеспечения работы сети. оптимизация и управление трафиком. Подробное описание см. в официальной документации и руководстве пользователя инструмента Linux TC. qdisc (дисциплины организации очередей), который является частью инструмента tc, называется дисциплиной очередей. Это механизм, который может определять правила очереди сетевого трафика Linux. Он может выполнять построение очереди трафика, планирование, ограничение скорости и другие операции для достижения контроля над сетью. Прекрасный контроль и управление трафиком. Вот несколько примеров qdisc:

  • Ограничить пропускную способность сети: ограничить пропускную способность определенного IP-адреса и номера порта.,Не позволяйте ему занимать слишком много сетевых ресурсов.
  • Улучшите скорость ответа: конечно, определенный номер порта сетевого трафика будет иметь приоритет для повышения скорости ответа.
  • Уменьшите перегрузку сети:верноопределенныйиндивидуальныйпротоколиз Сетевой трафик осуществляется Задерживатьиметь дело с,Уменьшите перегрузку сети.
  • Предотвращение сетевых атак: конечно, определенный индивидуальный IP-адрес из сетевого трафика обрабатывается потерей пакетов, чтобы предотвратить угрозы сетевой безопасности.
  • Ограничение скорости классификации трафика: верно Неттаким Классифицируйте сетевой трафик и ограничивайте скорость для обеспечения качества сети.

Сделайте небольшую рекламу

tc qdiscиз очень мощный,Может приехать не только штраф за контроль и управление сетевым трафиком.,Также используйте его для моделирования некоторых производственных сред, в которых могут возникнуть сбои сети.,напримерПотеря сетевых пакетов, задержка, повреждениеСцена ожидания,нода Хотите достичьприезжатьтакиз Добиться эффективных результатов и быстро восстановиться непросто.。Платформа Tencent Cloud Chaos DrillОбеспечивает различные действия по диагностике сетевых сбоев.,Охватывает CVM/TKE и другие продукты.,Способен быстро вводить и восстанавливаться,Контролируемый радиус взрыва,Удобно и быстро,Готов из коробки,иметьнуждатьсяиз Друзья Может Перейти кПлатформа Tencent Cloud Chaos Drill Библиотека действийИспользуйте его часто~

Сбой сети CVM:

Сбой сети ТКЕ:

2. Очереди и правила организации массового обслуживания

проходитьверно Пакеты данных передаютсяочередь(queuing),нас Можетданные решенияизотправлятьСпособ。Здесь важноизнемногода:насТолько верноотправлять данные (передавать) можно изменить(shape the data)。 Механизм работы ИнтернетаРешать ПонятноПринимающая сторона не может напрямую контролировать отправку излишков для。Это похоже на электронную почту вашей компании.:Если только вы не можете связатьсяприезжать Местоиметьлюди(скажи им безтакой Пожалуйста, не пишите мне письмо), В противном случае вы не сможете контролировать, сколько писем попадет в ваш почтовый ящик.

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

Это все равно, что не читать свою электронную почту и надеяться, что другие перестанут отправлять вам новые электронные письма, увидев это. ужасно жаль,Этот метод работает только в Интернете.,верно Адрес электронной почты вашей компании недействителен :-)

3. Неклассифицированные правила организации очередей

Правила поворота без категории(classless queueing дисциплины) могут быть применены к сети интерфейс(interface)начальствоиз Местоиметьтранспортный потокБеспорядочная пластическая хирургия。включатьверно Обработка данных:

  • Перенести
  • Добавить задержку
  • уронить

Наиболее часто используемые в настоящее время неклассифицированные правила детоксикации да pfifo_fast,Это такжедаоченьмногосистеманачальствоиз Правила поворота по умолчанию

3.1 pfifo_fast

Базовая структура pfifo_fast выглядит следующим образом:

pfifo_fast имеет 3 очереди (0, 1, 2). Эти три очереди имеют определенные правила и ограничения:

  • каждыйочередь Все выполненоFIFOСтратегия
  • Приоритет: очередь0>очередь1>очередь2,т.е. если пакет очередь0иметь не обработан,Не будет обрабатывать данные очереди1серединаиз,такой жепричина,Пакет Ifturn1Есть не обрабатывается,Пакет «turn2серединаиз» обрабатываться не будет. (см. здесь,Строго говоря, по определениюpfifo_fast Принадлежит к правилу поворота категорииhat (classful), поскольку для содержит Содержит Понятнотрииндивидуальный очередь, и эти очередь На самом деле даиметь разницу из. Но с точки зрения конфигурации пользователя это classless из,потому чтодляэтоттрииндивидуальныйвнутренний class Пользователь да не может пройти tc Команда configure из. )
  • Программа ядра обнаружит поле TOS каждого пакета.,будет минимальным Задерживатьизупаковкаприезжатьочередь1середина
использование

Код pfifo_fast qdiscдасуществовать жестко запрограммирован, и изменить его конфигурацию невозможно.

priomap

priomapРешать Понятно Как поставить ядроизpacket В какую очередь помещаются приоритетные пакеты. Этот приоритет находится в поле TOS.

Поле TOS занимает 4 бита.

двоичный код

десятичная система

значение

1000

8

Minimize Delay (Минимизировать задержку, мд)

0100

4

Максимальная пропускная способность (мт)

0010

2

Максимальная надежность (г-н)

0001

1

Минимизация денежных затрат (MMC)

0000

0

Нормальный сервис

Можетиспользоватьtcpdump -i <Имя сетевой карты> -vv Проверьте значение tos.

Таблица значений TOS:

  • Столбец TOS: значение TOS
  • Столбец «Биты»: Какой индивидуальный бит находится?
  • MeansСписок:значение
  • Столбец «Приоритет Linux»: приоритет Linux.
  • Столбец очереди: присвоение номера изочередного прибытия.

TOS

Bits

Means

Linux Priority

Queue

0x0

0

Normal Service

0 Best Effort

1

0x2

1

Minimize Monetary Cost

1 Filler

2

0x4

2

Maximize Reliability

0 Best Effort

1

0x6

3

mmc+mr

0 Best Effort

1

0x8

4

Maximize Throughput

2 Bulk

2

0xa

5

mmc+mt

2 Bulk

2

0xc

6

mr+mt

2 Bulk

2

0xe

7

mmc+mr+mt

2 Bulk

2

0x10

8

Minimize Delay

6 Interactive

0

0x12

9

mmc+md

6 Interactive

0

0x14

10

mr+md

6 Interactive

0

0x16

11

mmc+mr+md

6 Interactive

0

0x18

12

mt+md

4 Int. Bulk

1

0x1a

13

mmc+mt+md

4 Int. Bulk

1

0x1c

14

mr+mt+md

4 Int. Bulk

1

0x1e

15

mmc+mr+mt+md

4 Int. Bulk

1

txqueuelen

отправлятьочередьдлина,индивидуальный сетевой интерфейс (интерфейс) параметры,Можетиспользовать ifconfig Настройки команд. Например,ifconfig eth0 txqueuelen 10。tcКоманда не может изменить значение параметра。

3,2 ТБФ (фильтр сегмента токенов, фильтр сегмента токенов)

TBF даодининдивидуальный Простой qdisc,верно ВТрафик не превышает заданную скорость и передается напрямую прозрачно.,нотакжемогу терпетьПревышение заданной скорости и кратковременный джиттер(short bursts in excess of this rate)。 TBF Очень простой, дружественный к сети и процессору. Если вы хотите реализовать только ограничение скорости интерфейса, то TBF да Первый выбор.

Реализация TBF состоит из нескольких частей:

  1. Буфер (ведро): наиболее важным параметром корзины является ее размер.,即能容纳из token количество(token дабаза ВКоличество байтов,и Нетдаколичество упаковок)
  2. Tokens:token будет работать с определенной скоростью (конкретная скорость) наполнение bucket буфер.

Когда посылка прибудет, токен будет получен из корзины, затем будет собрана информация о пакете и, наконец, токен будет удален из корзины. Сочетание этого алгоритма с потоком токенов и потоком данных приведет к трем возможным сценариям:

  1. скорость передачи данных == token ставка:каждый Вы можете найти все сумкиприезжатьодининдивидуальныйверноотвечатьизtoken,Затем выйдите прямо из поворота,Никакой задержки.
  2. скорость передачи данных < token ставка:нормальныйприезжать Приходитьиз Данные могут быть своевременнымиотправлятьвыходить,Однако Удалить позжеодининдивидуальный token。 Зависит от В token скорость больше скорости передачи данных,Будет генерировать отставание в сегменте,Крайние случаи будут bucket оккупированный。Если скорость передачи данных внезапно превысит token скорость, просто потребляй эти отставанияиз token . Поэтому отставаниеиз token иметьодининдивидуальныйдополнительные преимущества:Способен выдерживать короткие всплески скорости передачи данных
  3. скорость передачи данных > token ставка:token Скоро оно закончится и тогда TBF отключится (дроссельная заслонка) на некоторое время。Этот вид ситуация называется overlimit(превысить лимит)。Если посылка возвращенадаисточник Нет Постоянноприезжать Приходить,Произойдет потеря пакетов.

Третий вид очень важен.,потому чтодляэто делаетнасможетправда, данные могут быть сформированы с использованием пропускной способности

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

использование

Обычно никаких изменений не требуется TBF Конфигурацияпараметр.нода Этида Может Конфигурацияиз。

  • limit or latency
    • limit:потому чтождатьобращаться Можетиспользовать token ибыть вставленнымочередьизКоличество байтов
    • latency:каждый Сумкасуществовать TBF серединаМаксимальное время пребывания。随后встречабаза В latency、bucket size、rate и пиковая скорость (если установлена) для расчета limit。
  • burst/buffer/maxburst bucket изразмер,Единица дабайт。累积Можетиспользоватьиз token При поддержке изMAX байтов( maximum amount of bytes that tokens can be available for instantaneously)。Чем большеизвыпрямительставка(shaping ставки) требует большего размера буфера
  • mpu Пакеты «нулевой длины» занимают и не занимают нулевую полосу пропускания.(A zero-sized packet does not use zero пропускная способность). Например, в Ethernet любой пакет из Количества байтов будет не менее 64。 Minimum Packet Единица (минимальная единица упаковки) определяет наименьший размер, используемый в упаковке. token сумма ( minimal token usage for a packet)。
  • rate Скорость генерации токенов.

Если в настоящее время bucket Есть токен и никакого бана bucket из token удалить действие, которое по умолчанию ,это будетУдалить на полной скорости。если Нетожидать Этот вид ХОРОШОдля,Затем Может устанавливает следующие индивидуальные параметры:

  • peakrate Как упоминалось ранее, по умолчанию после отправки пакета приезжать Понятно только иметь возможность token будет немедленно отправлен. Это может быть не то, что вы ожидаете, особенно когда. bucket Очень большое время. peakrate определяемый Ведро отправить данные с максимальной скоростью。в целом Приходитьобъяснять,это нужно сделатьиз Сразуда:放ХОРОШОодининдивидуальный Сумка - Время ожидания - Выпуск следующего индивидуального пакета. Рассчитав время ожидания, мы наконец достигнем Понятно peakrate Эффект。действительныйсередина,Зависит от В Unix По умолчанию из 10ms Предел точного считывания таймера,Если среднийкаждый Сумка 10K bits , Могу только приехать 1Mbps peakrate!(10Kb/10ms = 1000Kbps = 1Mbps)。
  • mtu/minburst 1Mbit/s из peakrate Обычно это не очень полезно, поскольку реальная пропускная способность намного больше этой. достичь более высокого peakrate в одну сторону да: каждый timer tick отправлятьмногоиндивидуальный Сумка,существовать Эффектначальство Сразунравитьсянассоздавать Понятновторойиндивидуальный bucket!этотвторойиндивидуальный bucket По умолчанию имеется только один индивидуальный пакет (по умолчанию to a single пакет), не совсем индивидуальный ведро. Вычислите максимально возможное из peakrate когда, использовать MTU умножить на 100 (точнее, умножить на HZ номер, например Intel Да 100,Alpha Да 1024)。

3.3 SFQ (Стохастическая справедливая организация очереди, случайная справедливая организация очереди)

Случайная очередь Fair (SFQ) — семейство алгоритмов Fair Turn — это отдельная простая реализация. По сравнению с другими алгоритмами,SFQ Менее точный одиннекоторый,Но это также требует меньше вычислений,Результат почти полностью справедлив.

SFQ серединаизосновнойда конверсия (сессия) или поток,Соответствует большую часть времени одному TCP session или UDP stream。каждый conversion Соответствует одному FIFO queue,Затем разделите трафик наприезжать Нет такой же очередь. При отправке данных следуйте round robin кстати, каждый session Отправляйте по очереди.

Этот механизмбудет производство очень справедливое по результатам, а не из-за одного человека conversion Слишком большой и поставь другой conversion из Пропускная способность занята。SFQ Это называется «случайным из» (стохастическим), потому что на самом деле для каждого его не существует. session выделить queue,идаиспользоватьалгоритмХешировать трафик в группу очередей

ноэтот Сатокайиметьодининдивидуальныйвопрос:многоиндивидуальный session Уилл Мэй Хэш приедеттакой жеодининдивидуальный ведро (хеш-слот), Что, в свою очередь, приводит к каждому session из quota становится меньше и не достигает ожидаемой полосы выпрямления (или скорости)。дляизбегай этогоиндивидуальныйвопрос Проходить Вочевидный,SFQ будет постоянно преобразовывать его, используя алгоритм хеширования.,В конце концов, любой конфликт между двумя сессиями не будет длиться очень долго.,Это займет всего несколько секунд.

SFQ эффективен только тогда, когда фактическая исходящая полоса пропускания уже полностью заполнена.,Это очень важно! в противном случае, Linux Его нет на машине queue,потому чтоэтоттакже Сразубезиспользовать Эффект。буду смотреть позжеприезжатьКак использовать SFQ с другими qdisc объединяется для достижения общего случая из справедливой очередности

объяснятьизболее явныйнемного:Не существует соответствующей конфигурации выпрямителя из слов, просто существует (соединение modem из) Конфигурация интерфейса Ethernet Установить SFQ бессмысленныйиз

использование

SFQ В большинстве случаев достаточно параметров по умолчанию.

  • perturb каждыймногонемногоВторойСразуснова Конфигурация哈希алгоритм。Если этоиндивидуальный Параметры не установлены,Алгоритм хеширования никогда не перенастраивается。 Рекомендуется указать это явно.индивидуальныйпараметр,Не будь пустым,В противном случае могут легко возникнуть вышеупомянутые проблемы с перемещением.
  • quantum существоватьколесоприезжать Внизодининдивидуальный queue отправлять Извперед,когдавперед queue Разрешить удаление из очереди (dequeue) из максимального количества байтов。по умолчаниюда одининдивидуальный МТУ. Не рекомендуется устанавливать значение меньше MTU изценить。
  • limit SFQ Максимальное количество пакетов, которые можно кэшировать (превышение этого порога приведет к потере пакетов).

Пример:

1$ tc qdisc add dev eth1 root sfq perturb 5 2 3$ tc -s -d qdisc ls 4qdisc sfq 764c: dev eth1 quantum 1514b limit 128p flows 234/1024 perturb 5sec 5 Sent 4812 bytes 62 pkts (dropped 0, overlimits 0)

объяснять:

  • 764c::автоматическое распределениеиз handle номер (номер ручки)
  • limit 128p:Максимальный кэш 128 индивидуальный Сумка
  • flows 234/1024:этотиндивидуальный SFQ иметь 1024 индивидуальныйхеш-слот(hash buckets),Чтосередина 234индивидуальныйкогдавпередиметь Ожидание данныхотправлять.
  • perturb 5sec:каждый 5s Измените алгоритм хеширования.

4. Классифицированные правила организации очередей

4.1 Список технических названий

Техническое название

описывать

Дисциплина очередей (правило qdisc, дисциплина очередей)

Управление очередями устройств of устройств) из алгоритма, можетда управления входящими (входящим/входящим )очередь,Также Мэнда управляет исходящей очередью (исходящая/выходная).

правило root qdisc (корневая дисциплина очередей)

attach приезжатьсетевое оборудованиеиз которого индивидуальныйqдиск.

Бесклассовый qdisc (бесклассовая дисциплина массового обслуживания)

верно Местоиметь Сумкаодин Видетьтакой или,такой жеждатьвернообращатьсяждатьвернообращаться

Классы

каждый classful qdisc может включать в себя несколько класс, это все qdisc Видно внутри. верно в каждом индивидуальный класс, тоже да Может потом к нему добавить в Другие class из。потому чтоэтот,одининдивидуальный class из parent Может даодининдивидуальный qdisc,также Можетда Другойодининдивидуальный class。Leaf class дабезиметь child class из сорт. Этот вид class середина attach Понятноодининдивидуальный qdisc , ответственный за class изданныеотправлять.создаватьодининдивидуальный class автоматически attach одининдивидуальный fifo qdisc。икогда Кэтотиндивидуальный class добавить в child class час,этотиндивидуальный fifo qdisc будет автоматически удалено. для leaf class,Можетиспользоватьодининдивидуальныйболее подходящийиз qdisc Приходитьзаменятьэтотиндивидуальныйfifo qдиск. Вы даже можете использовать индивидуальный classful qdisc Чтобы заменить этого человека fifo qdisc, так что Можетдобавить в Другие сорт.

Классификатор

каждый classful qdisc Нужно решить, куда положить каждую сумку, индивидуальную. сорт. Это делается через классификатор

Фильтр

Процесс классификации(Classification)Можетпроходить Проходить滤器(filters)Заканчивать。Проходить滤器Сумка Содержит许многоизсудить Условие разрыва, оно будет учитываться после соответствия условию filter Матч прошел успешно.

Планирование

С помощью классификатора существования из,одининдивидуальный qdisc Можете судить, должен ли тот или иной пакет выйти до того, как будут отправлены другие пакеты, это Процесс индивидуального называется планированием, а «может» упоминается выше, например, приезжатьиз. pfifo_fast qdisc Заканчивать. Планирование также Это называется переупорядочением, но последнее может сбить с толку.

Формирование

существовать Сумкаотправлятьвыходить Извперед进ХОРОШОЗадерживатьиметь дело с,Добиться того, чтобы приехать в заданный режим с максимальной отдачей процесса. Пластическая хирургиядасуществовать egress Сделать из (ранее упомянутое приезжать Понятно, въезд Направление из не называется формирование, называемое полиции, примечание переводчика). Грубо говоря, процесс отбрасывания пакетов для уменьшения трафика также называется формированием.

полиция,Решите, стоит ли отбрасывать пакет)

Задерживатьиливыбросить(delaying or сброс) пакета для достижения заданной пропускной способности процесса. существовать Linux начальство, policing Пакеты можно только отбрасывать, но не задерживать. —— Нет «входящей очереди» («входящая queue”)。

qdisc, экономящий работу (qdisc по требованию)

work-conserving qdisc Отправьте, как только появится посылка, доступная для отправки. Другими словами, пока доступна сетевая карта. статус отправки (для egress qdisc Приходитьобъяснять),это никогда Нетвстреча Задерживать Сумкаизотправлять.

qdisc, не сохраняющий работу (qdisc, не предназначенный для использования на ходу)

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

4.2 Основной процесс обработки

Желтый прямоугольник на рисунке выше представляет Linux Ядро. Крайняя левая стрелка указывает на трафик, поступающий на хост из внешней сети. затем введите Ingress Qdisc,Здесь будет верный пакет для фильтрации (применить фильтры),По результатамРешите, стоит ли выбрасывать эту сумку。этотиндивидуальныйпроцесссказатьдля “Policing”。Этот индивидуальный процесс происходит на очень ранней стадии обработки ядра.,существовать进入大部分Ядробаза础程序Извперед。Поэтому здесь очень эффективно отбрасывать пакеты.,Не потребляет много процессора.

Если будет определено, что этому пакету разрешено прохождение, то его пунктом назначения может быть приложение на локальном компьютере (локальный приложение), и в этом случае оно войдет в ядро IP Стек протоколов выполняет дальнейшую обработку и, наконец, передается соответствующей программе пользовательского режима. Кроме того, этот пункт назначения пакета также может использоваться на других хостах. В этом случае вам необходимо использовать этот компьютер. Egress Classifier Отправьте его еще раз. Хост-программа также может отправлять данные, и в этом случае они также будут передаваться. Egress Classifier отправлять.

Egress Classifier серединавстречаиспользоватьприезжатьоченьмного qdisc。По умолчанию Толькоиметьодининдивидуальный:pfifo_fast qdisc , он всегда получит пакет, расположенный по адресу qdisc середина Понятно, дождитесь вызова ядра, а затем передайте сетевой интерфейс (сетевой интерфейс) отправляется. .

кначальстворисованиеизда Одна сетевая картаиз Состояние。В случае наличия нескольких сетевых карт каждая сетевая карта имеет входные и выходные перехватчики.

4.3 Фильтрация типов

когда Вход в трафикприезжатьодининдивидуальныйclassful Когда qdisc (далее именуемый CQ), этотиндивидуальныйqdiscвстречанастраиватьиспользоватьФильтрыверно Пакеты данных передаются Классификация Проходить滤,Возвращает индивидуальное значение флага,qdisc поставит в очередь приезжатьверно соответствующую категорию изCQсередина на основе этого индивидуального значения. Следующий процесс аналогичен,постоянно фильтрую,Присоединяйтесь к команде. Если в qdisc нет других фильтров,Пакеты будут поставлены в очередь прибытия изqdiscсередина.

4.4 roots, handles, siblings & parents

  • каждыйинтерфейс Всеиметьодининдивидуальный egress "root qdisc". По умолчанию это индивидуальный root qdisc Просто упомяните о прибытии перед да classless pfifo_fast qdisc。
  • каждый qdisc и class городвыделить Взаимноотвечатьиз ручка (ручка), может указано handle верно qdisc настроить.
  • каждыйинтерфейс Может能还встречаиметьодининдивидуальный ingress qdisc, используемый для выполнения политик для входящего трафика (который polices traffic coming in)。

О ручке:

  • Каждая ручка Зависит от состоит из двух частей.,<major>:<minor>
  • По соглашению корень qdisc из handle для 1:,этотда 1:0 Сокращение от из.
  • каждый qdisc из minor number Навсегда 0

О классе:

  • каждый class из major number должен быть с parent последовательный.
  • major number существоватьодининдивидуальный egress или ingress Должно быть уникальным внутри.
  • minor number существоватьодининдивидуальный qdisc или class Должно быть уникальным внутри.

4.5 Как использовать фильтры для классификации трафика

Пример уровня дескриптора.

Пакеты будут проходить только root qdisc Присоединяйтесь к командеили Удаление из очереди(get enqueued and dequeued), который является единственной частью ядра, с которой он взаимодействует. На картинке выше середина зеленая стрелка из пути Может рассматривается как да1:0 → 10:2 Упаковка в процессе цепной передачи. После серии проходов он наконец достигнет класса. 10:2изqdiscизочередьсередина,этот Внутрикаждыйnodeгородиметьодининдивидуальныйfilter, судитьперерывданные Сумкаизпуть распространения,Когда Однако это индивидуальный регулярный процесс,когда Однако МожетдобавлятьодининдивидуальныйfilterНепосредственно разделитьприезжать10:2。:-)

4.6 Отправка пакета данных

Проходит ли пакет данных через сетевой порт, решает ядро. когда ядро ​​решило удалить одного человека из qdiscсередина packet При отправке на сетевой порт будет вызван root. qdisc из dequeue метод(и будет вызывать только root qdiscиз)。кначальствокартинадляпример,Предположим, что только иметь 10:2иметь ожидает отправки пакетов.,настройка ядраиспользоватьroot метод qdiscизdequeue, корень qdiscполучатьприезжатьнастраиватьиспользовать Из后,Будет переведен на 1:1,1:1 переведет его на следующий уровень,Идите вниз по порядку; каждый qdisc будет запрашивать их братьев и сестер.,и попробуйте вызвать dequeue.

Проще говоря,Вложенный класс (вложенный классы) будут соответствовать только им parent qdiscs связи и никогда не взаимодействуйте напрямую с сетевым портом.。Ядро Тольковстречанастраиватьиспользовать root qdisc из dequeue() метод.

4.7 Правила приоритетной организации очереди — PRIO qdisc

PRIO qdisc Трафик не будет формироваться, а будет классифицироваться по установленным фильтрам.

когдаодининдивидуальныйданные Сумка enqueue приезжать PRIO qdisc После этого оно будет основываться на настройках из filters выбиратьодининдивидуальный class и отправьте посылку приезжать этому человеку сорт. По умолчанию создаются три человека class。каждый class По умолчанию они содержат индивидуальныйчистый FIFO qdisc,Никакой другой внутренней структуры,Можетиспользовать Что Другие типыиз qdisc заменять ФИФО. Когда из PRIO qdisc Вынимая (удаляя из очереди) индивидуальную сумку, вы сначала попробуете :1. только lower bands/classes Попробую только тогда, когда пакет недоступен higher занятия. Если вы хотите основываться на tc filters И не только да TOS flags При классификации приоритета трафика этот индивидуальный qdisc Это будет очень полезно. Также может быть к этим трем индивидуальным пресетам из classes добавить в дополнительном из qdisc, в конце концов pfifo_fastТолькоможет предоставить Простойиз FIFO qdisc。

параметриспользование

Следующие индивидуальные параметры могут быть tc Идентификация:

  • bands Нужно создать из band количество。этотиндивидуальныйкаждый band действительныйначальство Даодининдивидуальный сорт. Если вы измените эту индивидуальную конфигурацию, еще нужен такой Изменить, когда же priomap параметр.
  • priomap Если не предусмотрено tc filters Чтобы узнать, как классифицировать трафик, PRIO qdisc будет основано на TC_PRIO Приоритет определяет приоритет. Здесь из работает так же, как pfifo_fast qdisc дапохожийиз。

PRIO qdisc Внутри band Да класс, по умолчанию имена major:1major:2major:3, Так что если вы PRIO qdisc да 10:,Что tc filter доставлятьприезжать 10:1 трафик имеет более высокий приоритет.

4.8. Используйте фильтры для классификации трафика

Каждый раз вам приходится решать, какую посылку отправить для проживанияиндивидуальный class При обработке будет вызываться так называемый «классификатор» цепь» (категория цепь для посуды)。этотиндивидуальный chain Зависит от attach приезжать classful qdisc из Местоиметь filter составляют.

Также предыдущий пример индивидуального проживания (включая окончательное проживание) 10:2

При постановке в очередь отдельного пакета каждое отдельное ответвление должно запрашивать соответствующие правила фильтрации.

Типичная конфигурация:

  1. существовать 1:1 Конфигурацияодининдивидуальный отфильтровать, отправить посылку куда приехать 10:
  2. существовать 10: Конфигурацияодининдивидуальный отфильтровать, отправить посылку куда приехать10:2

Другая конфигурация: объединить два индивидуальных filters Все Конфигурациясуществовать 1:1,нобудет точнее из filter Децентрализовать проживание ниже изпозициониметь помогает повысить производительность。нужно вниманиеизда,Сумкада无法Кначальство Проходить滤из。 Пакет может идти только вниз enqueue。когда dequeue час,они появятся снова,прибыл, чтобы вывести его из сетевого интерфейса.

Варианты использования

Следующее содержание сценария использования нескольких индивидуальных фильтров:

  1. Фильтрация сетевого трафика по IP-адресу: 1tc filter add dev eth0 protocol ip prio 1 u32 match ip src 192.168.1.100 flowid 1:1 Эта отдельная команда классифицирует сетевой трафик, исходящий с IP-адреса для 192.168.1.100изприезжать1:1изочередьсередина.
  2. Фильтрация сетевого трафика по номеру порта: 1tc filter add dev eth0 protocol ip prio 1 u32 match ip sport 80 0xffff flowid 1:1 Эта отдельная команда классифицирует сетевой трафик, поступающий с порта номер 80изприезжать1:1изочередьсередина.
  3. Фильтрация сетевого трафика по типу протокола: 1tc filter add dev eth0 protocol ip prio 1 u32 match ip protocol 6 0xff flowid 1:1 Эта отдельная команда классифицирует сетевой трафик по протоколу TCP на 1:1изочередьсередина.

Ниже приведены параметры приведенной выше команды:

  1. tc filter add:добавить индивидуальный фильтр правил.
  2. dev eth0:Укажите для фильтрацииизсетьинтерфейсдляeth0。
  3. protocol ip:Укажите для фильтрацииизпротоколтипдляIPпротокол。
  4. prio 1:Укажите правила фильтрацииизприоритетдля1,Чем меньше число, тем выше приоритет.
  5. u32:обозначениеиспользоватьu32Правила сопоставления фильтров。
  6. match:Укажите правила соответствия。
  7. ip src 192.168.1.100:Укажите соответствующий источникIPадресдля192.168.1.100изсетевой трафик。
  8. flowid 1:1:Указывает, что оно будет соответствоватьизсетевой трафик Классификацияприезжать1:1изочередьсередина。
  9. ip sport 80 0xffff:Укажите соответствующий источникномер портадля80изсетевой трафик。
  10. ip protocol 6 0xff:Укажите соответствиеTCPпротоколизсетевой трафик。

Несмотря на использование TC-фильтра «Можетверно трафик» для точного управления,нода Конфигурацияпоказыватьи Легко увидетьБолее сложный,Чем тоньше управление, тем больше параметров задействовано.,Буровая платформа Хаоса скрывает эти детали конфигурации.,Пользователю необходимо только ввести значение параметра,Остальное оставьте Платформе Хаоса. Например, проводите повторные тренировки сети.,Требуется, конечно, конкретный трафик для повторных тренировок.,Если ручная настройка полностью принята,Большая загруженность и вероятность ошибок,Платформа Хаоса объединяет это в одно атомарное действие.,Удобно и быстро。

5. Заключение

существоватьсетевой трафикконтрольсередина,TCсерединаизqdisc (правило очередности) является очень важной индивидуальной концепцией. через qdisc,Возможно, к сетевому трафику применяются такие операции, как поворот, планирование и ограничение скорости.,Таким образом достигается точный контроль и управление сетевым трафиком. существуетэта статьясередина,Простойпредставлять Понятно Правила поворота без категориии Категорияизочередьправилода Два общихизqdiscтехнология。

существоватьдействительныйотвечатьиспользоватьсередина,Необходимо выбрать подходящую технологию изготовления дисков в соответствии с реальной ситуацией. Если сетевой трафик относительно прост,«Выберите неклассифицированные правила очереди, если вам нужен точный контроль сетевого трафика»;,Можетвыбирать Категорияизочередьправило。такой При чтении также необходимо обратить внимание на параметр конфигурации qdiscиз номер, напримерпропускная способность、Задерживать、оставлять Сумкаждатьпараметр,Для достижения более совершенного контроля и управления сетевым трафиком.

TC Хотя qdisciz является мощным инструментом, он не только обеспечивает точный контроль и управление сетевым трафиком, но также использует qdisciz для настройки параметров. напримерпропускная способность、Задерживать、оставлять Сумкаждатьпараметрмоделированиеодиннекоторыйсеть方面из Сценарий отказа,Может проводит сетевые учения,Но да также можно узнать из краткого описания этой статьи середина,Настройка qdisc на самом деле довольно сложна.,Если есть необходимость в сетевых тренировках,МожетиспользоватьПлатформа Tencent Cloud Chaos Drill,Обеспечьте понимание различных типов сетей из-за неисправностей,ЧтосерединаодиннекоторыйнапримерПотеря сетевых пакетов, повреждение сетиждать Сценарий отказа Сразудабаза Вtc qdiscвыполнитьиз,Может Готов из коробки,Иди и испытай это~

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose