
Первые три бита, РРР, называются Precedence - предпочтительность. С
помощью заполнения данного трехбитового подполя поля TOS отправитель может
попросить маршрутизатор обработать данный пакет «вне очереди», раньше других
пакетов, возможно поступивших в маршрутизатор раньше данного и попавших
вместе с ним в очередь. Так поле Precedence имеет длину три бита, то
соответственно в IP пакете поддерживается указание одного из восьми значений
предпочтительности обслуживания. RFC791 описывает названия этих уровней
предпочтительности:
111 - Network Control (сетевое управление)
110 - Internetwork Control (межсетевое управление)
101 - CRITIC/ECP (критический)
100 - Flash Override (быстрее чем молниеносный)
011 – Flash (молниеносный)
010 – Immediate (немедленный)
001 – Priority (приоритетный)
000 – Routine (обычный)
Для поддержки Precedence маршрутизатор должен поддерживать несколько
очередей обработки пакетов, в идеале таких очередей должно быть 8. Однако
многие маршрутизаторы игнорируют значение поля Precedence, так как имеют
только одну очередь, работающую по принципу FIFO (First input – first output или
Первым вошел – первым вышел) и просто не могут обеспечить различным пакетам
различный уровень обслуживания. Иногда маршрутизатор поддерживает поле
Precedence, но ограничено, то есть имеет не восемь, а, например, три очереди
обслуживания пакетов, одна для значений поля Precedence 000, вторая для
значений 001, 010, 011, 100, и третья – для значений 101, 110, 111. Разумеется,
возможны и другие реализации.
Для
того
чтобы
пакеты
могли
предпочтительно
обрабатываться
маршрутизаторами если они (маршрутизаторы), конечно, это поддерживают,
приложениям необходимо снабжать отправляемые пакеты отличными от 000
значениями поля Precedence. Некоторые приложения, действительно нуждающиеся
в приоритетном обслуживании их пакетов исправно заполняют поле Precedence, не
смотря на то, что очень часто его использование не поддерживается
маршрутизаторами, другие приложения игнорируют поле Precedence, так как
обычно его применение не приносит никакой пользы. Как поведет себя конкретное
приложение, решает его автор, а проверить, как оно себя ведет можно,
разумеется, с помощью анализатора протоколов.
Следующие три бита, D, T, R расшифровываются как:
D:
Delay.
T:
Throughput.
R:
Reliability (в RFC791 – грамматическая ошибка, написано
«Relibility»).
Установка этих битов в «0» означает отсутствие специальных требований по
обработке пакета, установка каждого бита в «1» означает соответственно:
D
– передать пакет по маршруту, характеризующемуся минимальной
задержкой передачи
T
– передать пакет по маршруту, характеризующемуся максимальной
пропускной способностью
R: – передать пакет по маршруту, характеризующемуся максимальной
достоверностью передачи, чтобы уменьшить вероятности искажения или
потери пакета.