Объяснение сценария управления пропускной способностью, звоня tc

Какой способ пойти действительно зависит от того, если Вы хотите сделать программирование ядра или нет. Если не Затем Вашим единственным разумным выбором является FUSE.

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

Если Вы хотите сделать реальное программирование ядра, конкретно на FS, Вы могли бы хотеть считать Linux NTFS. Ядру действительно нужна полная высокая производительность записи-чтения / устойчивость драйвер NTFS.... Две птицы с одним камнем, крупным вкладом и тезисом в одном.

2
08.04.2013, 16:49
1 ответ

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

Сценарий является неполным, таким образом, не ясно, что это делает.

Трафик, ставивший в очередь к этому интерфейсу, должен быть дан определенному классу. 1:0 qdisc, 1:1, 1:2... 1:256 классы, которые принадлежат этому qdisc. Каждый класс может иметь свою собственную конфигурацию.

tc filter определяет, какой класс ответственен за определенный пакет. Если ни один не найден затем, qdisc определение делает 1:256 класс по умолчанию, который статически настроен в Вашем случае. Другие настроены "динамично" (однако, это не часть кода, который Вы показали).

Кажется, существует список целевых узлов (единственные IP-адреса), который у всех есть гарантируемая пропускная способность. Если пакет предназначен для одного из этих хостов затем, он помещается в класс, ответственный за этот хост. Существует больше условий, чем просто целевой IP, но я не понимаю u8 и фильтры u16, не ища это. Это может отфильтровать для TCP по сравнению с UDP, их портами, флагами TCP, размером пакета и т.п..

3
27.01.2020, 22:07
  • 1
    Если Вы хотите доверять комментарию, фильтр вуду для ACKs ;) Кажется лишним, поскольку это все еще входит в тот же класс, и первый фильтр должен соответствовать им уже...? (Это были несколько лет, с тех пор как я использовал tc.) –  frostschutz 08.04.2013, 22:44
  • 2
    @frostschutz, я ни заметил первую строку фильтра, ни # ack... Мы не знаем то, что происходит с $n (довольно забавный это $(($n)) так или иначе), но первая строка не соответствует сначала, конечно, из-за prio 2. Имеет ли смысл определять фильтры наоборот prio, порядок является другим вопросом. Если $n не изменяется между тем затем, эта структура фильтра является braindead. –  Hauke Laging 08.04.2013, 23:15

Теги

Похожие вопросы