Лучшей моделью установления приоритетности является Differentiated Services (Дифференцированные службы), или DiffServ. DiffServ предлагает относительно грубый, но простой способ установки приоритетов в трафике. DiffServ переопределяет биты исходного поля типа обслуживания IP Type of Service (ToS) (см. рис. 15.2) по своей собственной схеме, в которой два из восьми ToS-бит используются для уведомления о перегрузке, а оставшиеся 6 бит - для маркировки пакетов. В этой схеме реализуются так называемые кодовые точки (code points) внутри шестибитного пространства маркировки. При входе в DiffServ QoS сеть пакеты имеют маркировку DiffServ-класса.
DiffServ пытается контролировать поведение только на каждом отдельном этапе. Другими словами, политика определяется локально, а DiffServ как механизм работает в устройстве, чтобы оказывать влияние, когда пакеты переходят к новому этапу следования. Так как политика устанавливается без учета топологии, то все происходит внутри устройства. DiffServ поддерживает два уровня обслуживания (трафик двух классов):
- Expediting Forwarding (EF). Уменьшает задержку и пульсацию. Пакеты теряются, если трафик превышает максимальную нагрузку, установленную локальной политикой.
- Assured Forwarding (AF). Обеспечивает четыре подкласса и три дополнительные подгруппы в каждом подклассе (всего 12 кодовых точек). Если нагрузка на трафик превышает уровень, установленный локальной политикой, избыточные AF-пакеты не доставляются в порядке очереди, предписанном их уровнем приоритета, а переводятся на более низкий уровень (но не теряются). Это понижение уровня в каскадном режиме происходит во всех точках кодирования.

Рис. 15.2.ToS-биты используются для установки уровня приоритета пакетов