Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Управление битами TOS

Биты типа обслуживания (Type Of Service, TOS) представляют собой набор из четырехбитных флагов в заголовке IP-пакета. Когда любой из этих флажков установлен, маршрутизаторы могут обрабатывать пакет иначе, чем пакет без TOS-набора битов. Каждый из четырех битов имеет различную цель, и только один из TOS-битов может быть установлен в один момент времени, так что комбинации не позволяются. Флаги названы типом обслуживания потому, что они дают возможность прикладной программе, передающей данные, сообщить сети тип требуемого сетевого обслуживания.

Доступные классы обслуживания сети:

Minimum delay

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

Maximum throughput

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

Maximum reliability

Используется, когда важно иметь некоторую уверенность что данные достигнут адресата без повторной передачи. IP-протокол может быть передан по большому числу основных сред передачи. В то время как SLIP и PPP хорошие для передачи обычных протоколы, они не столь надежны, как X.25 network. Для таких пакетов выбираются самые надежные каналы связи.

Minimum cost

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

Задание TOS-битов с помощью ipfwadm или ipchains

Команды ipfwadm и ipchains имеют дело с TOS-битами. В обоих случаях Вы определяете правило, которое соответствует пакетам с конкретным TOS-битом, и используете параметр -t, чтобы определить изменение, которое Вы желаете сделать.

Изменения определяются, используя двухразрядные маски. Первая из этих разрядных масок используется в логической операции AND с полем параметров IP-пакета, вторая в операции OR. Если это звучит сложно, я дам Вам рецепты, чтобы обеспечить каждый из типов обслуживания немедленно.

Разрядные маски определяются, используя восьмиразрядные шестнадцатеричные значения. ipfwadm и ipchains используют одинаковый синтаксис:
-t andmask xormask

Наиболее полезные применения для масок приведены вместе с их значениями в таблице 9-3.

Таблица 9-3. Использование TOS-битов

TOS ANDmask XORmask Рекомендуемое использование
Minimum Delay 0x01 0x10 ftp, telnet, ssh
Maximum Throughput 0x01 0x08 ftp-данные, www
Maximum Reliability 0x01 0x04 snmp, dns
Minimum Cost 0x01 0x02 nntp, smtp

Установка TOS-битов с помощью iptables

Команда iptables позволяет Вам определять правила для сбора данных с заданными TOS-битами, используя параметр -m tos и устанавливать биты с помощью параметра -j TOS. Вы можете устанавливать TOS-биты только на правилах цепочек FORWARD и OUTPUT. Соответствие и установка происходит совершенно независимо. Вы можете конфигурировать много интересных правил. Например, Вы можете конфигурировать правило для отклонения пакетов с задаными TOS-битами или для установки TOS-битов в пакетах с некоего конкретного компьютера.

В отличие от ipfwadm и ipchains , iptables использует более простой подход, явно определяя чему TOS-биты должны соответствовать, или какие TOS-биты должны быть установлены. Для битов заданы имена, что куда лучше запоминания их числовых масок

Синтаксис для задания соответствия TOS-битов в правилах:
-m tos --tos mnemonic [other-args] -j target
Синтаксис для установки TOS-битов в правилах:
[other-args] -j TOS --set mnemonic

Помните, что они обычно используются вместе, но могут использоваться совершенно независимо, если это нужно.

Имя Шестнадцатеричное значение
Нормальый сервис 0x00
Minimize-Cost 0x02
Maximize-Reliability 0x04
Maximize-Throughput 0x08
Minimize-Delay 0x10