Однородная модель
При однородной модели MPLS-туннели (другими словами LSP) рассматриваются с позиции Diff-Serv, как соединение точка-точка. MPLS-туннели могут использоваться для целей переадресации, но не имеют никакого влияния на Diff-Serv. В этой модели любой пакет содержит только одно поле с информацией Diff-Serv, имеющей какое-то значение, и именно его величина заносится в самую внешнюю метку (или в поле IP DSCP, когда IP-пакет передается непомеченным, например, вначале LSP). Любая информация Diff-Serv, хранящаяся где-либо еще (например, в более глубокой записи стека меток), не играет никакой роли для промежуточных узлов или выхода туннеля и игнорируется. Если формирование трафика в промежуточных узлах LSP оказывает влияние на "выходную" информацию Diff-Serv, актуализованная информация Diff-Serv считается значимой на выходе LSP. Работа однородной модели без PHP проиллюстрирована на рис. 5:
Рис. 5.
(M) - значимая информация Diff-Serv в соответствующем заголовке.
(x) - отсутствие значимой информации Diff-Serv.
I - входной узел LSP
E - выходной узел LSP
Работа однородной модели с PHP проиллюстрирована на рис. 6:
Рис. 6.
(M) - существенная информация Diff-Serv, записанная в соответствующем заголовке.
(x) - безразличная информация Diff-Serv.
I - входной узел LSP;
P - предпоследний узел LSP;
E - выходной узел LSP.
Однородная модель для Diff-Serv поверх происходит так, как если бы MPLS не использовался совсем. Другими словами для работы Diff-Serv MPLS совершенно прозрачен.
Для поддержки однородной модели для заданного LSP, LSR определяет входное PHB и кодирование информации Diff-Serv следующим образом:
при получении непомеченного пакета, LSR определяет входное PHB, просматривая полученный IP-заголовок.
при получении помеченного пакета, LSR определяет входное PHB, просматривая верхнюю позицию полученного стека меток. В частности, для рассматриваемого LSP должна быть выполнена операция pop, LSR определяет входное PHB до осуществления команды pop.
при выполнении операции push для заданного LSP, LSR заносит информацию Diff-Serv в передаваемую метку, записанную в стек. Информация Diff-Serv, занесенную в инкапсулированный заголовок (свопированная запись метки или IP-заголовок), не имеет никакого значения.
при выполнении операции swap-only для заданного LSP, LSR заносит информацию Diff-Serv в позицию стека меток, которая содержит свопированную метку.
когда используется PHP, предпоследний LSR должен позаботиться о формировании таблицы PHB-->Encaps для метки, соответствующей обрабатываемому заголовку (или соответствия PHB-->DSCP), для того чтобы выполнить кодирование информации Diff-Serv. В качестве примера, таблица PHB-->DSCP может быть сконфигурирована локально. В качестве другого примера для некоторой среды, вполне приемлемо для предпоследнего LSR предположить, что набор таблиц PHB-->Encaps следует использовать для исходящей метки в обрабатываемом LSR заголовке, если он не выполняет PHP. Заметим также, что данная спецификация предполагает, что предпоследний LSR не осуществляет обмен меток (swapping) для позиции в стеке, для которой выполнена операция pop (и в действительности он даже не смотрит на обрабатываемую метку). Следовательно, ограничения могут быть наложены на кодирование информации Diff-Serv, которые могут быть выполнены предпоследним LSR. Например, данная спецификация не допускает ситуаций, когда предпоследний LSR извлекает из стека метку, соответствующую E-LSP, поддерживающему два PSC, в то время как заголовок при выполнении операции pop содержит значения меток для двух L-LSP, каждый из которых поддерживает один PSC, так как кодирование информации Diff-Serv будет требовать выбора одной или другой метки.
Заметим, что поведение LSR для моделей трубы, короткой трубы и однородной модели отличаются только при выполнении операций push или pop. Таким образом, промежуточные LSR, которые выполняют для LSP только операции swap, ведут себя в точности также, вне зависимости оттого, какая из моделей использована. При реализации Diff-Serv, поддерживающей несколько моделей туннелирования, только LSR, ведущие себя как вход LSP, предпоследний LSR или выход LSP, должны конфигурироваться для работы с определенной моделью.