Кратко

  • RFC 9893 вводит упреждающий контроль: модем начисляет байтовый кредит окну с данным FID, а маршрутизатор отправляет пакет только при наличии суммы на весь кадр с учётом MAC framing, заголовка и трейлера.
  • Grant означает разрешение на локальной границе, Status — представление счётчика у маршрутизатора. Ни один из них не подтверждает вход в очередь, передачу по среде, удалённый приём или выполнение операции.

В отчёте всё сходилось до байта. Начисления модема минус отправленные маршрутизатором кадры давали последний Credit Window Status. При этом удалённая система не видела одну операцию. Равенство чисел оказалось не доказательством доставки, а указателем на границу общего источника данных.

RFC 9893 добавляет в Dynamic Link Exchange Protocol два сообщения и пять Data Items для кредитного управления. Базовый DLEP из RFC 8175 обменивает сведения о переменном канале между маршрутизатором и модемом, но не выделяет потоки точнее конечных точек и не управляет плоскостью данных. При кредитной схеме маршрутизатор ждёт указания свободного места, а не продолжает отправку до команды pause.

Это способно уменьшить потери при нехватке буфера, но действует лишь от маршрутизатора к модему. Логическое окно обычно соответствует физической или виртуальной очереди модема. Его можно разделить между потоками или выделить одному набору. Оно не резервирует будущий радиоэфир, не закрепляет состояние среды и не обещает готовность удалённого узла.

Кредит опирается на классификацию. RFC 9892 задаёт TID для набора и FID для потоков внутри него. Модем связывает TID с назначением DLEP. Значения локальны для выдавшего их модема: одинаковая цифра у двух устройств не создаёт общей сущности. FID уникально называет окно только в пределах конкретной сессии.

Следовательно, эпоха сессии входит в идентичность доказательства. Нужны модем, маршрутизатор, экземпляр сессии, поколение классификатора, назначение, TID, FID и правило wildcard. После переподключения номер может получить новый смысл. Без совпавшего классификатора маршрутизатор не имеет права отправлять; без wildcard несовпавший пакет должен быть отброшен.

Пять Data Items сообщают разные факты. Initialization создаёт или обновляет окно FID. Association связывает TID с назначением. Grant добавляет кредит. Status передаёт текущий остаток в представлении маршрутизатора. Request запрашивает добавку для выбранных либо всех FID. Общий индикатор «очередь в норме» лишает эти сообщения автора и времени.

Additional Credits — беззнаковое 64-битное число байтов; ноль не добавляет кредит. Модем может увеличить окно, когда доступность передачи или его локальной очереди превышает ранее объявленный остаток. Но накладные расходы подключённой технологии могут лишь приблизительно соответствовать MAC-семантике RFC. Grant фиксирует локальное решение при текущей модели, а не неизменную ёмкость к моменту следующего пакета.

Маршрутизатор обязан покрыть целый пакет. Он учитывает framing, заголовок и трейлер MAC, видимые на линии до модема, и списывает число при отправке. Запись подтверждает классификацию, решение отправить и локальный расчёт. Она не подтверждает, что интерфейс модема принял пакет, прошивка сохранила его в нужной очереди, планировщик выбрал его, повторы не исчерпались или дальняя сторона ответила.

Status — не телеметрия буфера модема. Это текущий остаток по мнению маршрутизатора для синхронизации. Модем сравнивает его со своим ожидаемым состоянием и при необъяснимом расхождении может переинициализировать окно либо скорректировать будущие Grants. Стандарт допускает расхождение двух добросовестных представлений. Их сведение не восстанавливает историю каждого кадра.

Особенно важна граница журналирования: RFC говорит, что описанные сообщения журнала возникают из содержимого полученных Data Items; активность плоскости данных сама таких записей не создаёт. Чистый журнал DLEP совместим с потерей на входе модема, сбросом в очереди, задержкой планировщика, исчерпанными радиоповторами, удалённой потерей и отказом приложения.

Расширение Diffserv из RFC 9894 связывает DSCP с окнами. Маршрутизатор может поддерживать меньше очередей или сочетаний, чем модем, и использовать подмножество либо сбросить сессию. RFC 2474 связывает codepoint с локальным per-hop behavior; RFC 2475 строит сервис из классификации, conditioning и последовательности поведений. Решение одной очереди не становится гарантией от конца до конца.

Pause/restart из RFC 8651 имеет ту же территорию: канал данных маршрутизатор-модем в одной подсети. Кредит действует раньше, но не наблюдает дальше.

Надёжная сверка начинается с согласования расширения и экземпляра сессии. Далее сохраняются байты классификатора, назначение, TID/FID, Initialization, Association, каждый Grant, Status и Request. К ним присоединяются решение маршрутизатора, MAC-размер, время отправки и списание. Потом требуются новые свидетели: вход и допуск модема, заполнение, сброс и дренирование очереди; планирование, передача, повтор и подтверждение; удалённый приём; авторизация, commit и ответ приложения.

Running-Code Primacy в подходе Heng Lu ограничивает власть каждого наблюдателя его реальной работой. Счётчик маршрутизатора не говорит за прошивку, радио и удалённый сервис. Minimum Initial Specification оставляет общей лишь небольшую грамматику сообщений, идентичности и подсчёта, а конфигурацию очередей, DSCP, оповещения, хранение и откат — локальным операторам.

Руководству нужен не ответ «кредит был». Нужен перечень независимых свидетельств, которые продолжают путь пакета после окончания локального разрешения.

Sources