ГОСТ Р 56451—2015
Приложение Б
(обязательное)
Правила работы приемника
Приемник настраивается на конкретный общий непрерывный поток с приемным фильтром для приема всех
кадров этого потока. Эти кадры собраны для формирования потока пакетов GSE. Единственный приемник может
принять несколько общих потоков. В каждом случае сборка должна выполняться независимо для каждого общего
потока и для каждого фрагментированного PDU. Для выполнения сборки приемник может использовать буфер для
хранения частично собранного PDU. В конкретных реализациях приемника могут использоваться другие структуры
данных, но при этом должно обеспечиваться выполнение эквивалентных операций, описаных ниже.
В минимальной комплектации приемник должен содержать один буфер сборки для каждого адреса, с кото
рым он связывается. Механизмы поддержки QoS развитой сети могут использовать различные ID Frag на адрес,
чтобы учестьчередование фрагментов PDU по этому адресу. Поэтому для работы в этом виде сетей
приемникдол жен быть в состоянии обработать в общем потоке одновременно до 256 фрагментированных PDU-
Приемник должен начать обработку первого пакета GSE. который начинается непосредственно после основ
ного заголовка кадра основной полосы, и затем продолжать обработку всех последующих пакетов GSE. Приемник
может определить начало следующего пакета GSE. вычисляя длину текущего пакета GSE по значению поля длина
GSE в заголовке GSE.
П р и м е ч а н и е — Кадр основной полосы может содержать более одного пакета GSE.
Б.1 Фильтрация
Приемникдолжен фильтровать пакеты GSE для конкретных режимов маркировки (например. 3-байтовые или
6-байтовые метки). Если бит S в заголовке GSE установлен в «1». то приемник должен интерпретировать биты мет
ки. Если заголовок GSE содержит 6 байтов или 3 байта, то метка соответствует любому фильтру, и приемник про
должает обработку пакета. В противном случае приемник должен отбросить пакет GSE и продолжать обработку
следующего пакета GSE. Если биты LT установлены в *10» (метка не существует), то приемник должен обрабаты
вать пакет независимо от любых фильтров. Если поле LT установлено а *11* (режим повторного использования
метки), то приемникдолжен проверить, был липредыдущий naKeTGSE в кадре предназначен для приемника. Если
это так. приемник обрабатывает пакет, в противном случае приемник должен отбросить пакет GSE. Использование
величины LT «11» после предыдущей величина LT «10» (отсутствие метки) недопустимо.
Если оба бита S и Е установлены в * 1».то пакет GSE содержит единственный PDU. Приемник считывает поле
длина GSE и может обработать пакет в соответствии с Б.З настоящего приложения, в противном случае пакет GSE
должен пройти процесс сборки в соответствии с Б.2 настоящего приложения.
Б.2 Процесс сборки
Если бит S установлен на «1»,а бит Е установлен на «0». то пакет GSE содержит первый фрагмент PDU сдан
ным Frag ID. Перед входом в процессе сборки для этого ID Frag приемникдолжен выполнить операции:
- проверить факт использования идентификатора, что означает наличие в буфере перекомпановки приемни
ка фрагментов с этим ID Frag. Если идентификатор ID Frag уже используется, то приемник должен сначала отбро
сить сохраненные ранее в буфере фрагменты, соответствующие этому ID Frag;
- инициализировать процесс сборки для данного ID Frag и начать сборку нового PDU. Необходимое простра
нство буфера представлено в поле Общей Длины.
Когда бит S установлен на «0». то пакет GSE содержит продолжение или окончание фрагмента. Если буфер
приемника находится в состоянии сборки для ID Frag, соответствующего ID Frag в Заголовке GSE. то он продолжает
обработку. В противном случае пакет GSE должен быть отброшен.
Если биты S и Е установлены на *0». то пакет GSE содержит продолжение фрагмента PDU с ID Frag, соотве
тствующему ID Frag в заголовке GSE. Он должен быть добавлен к фрагменту в буфер сборки. Приемник может про
верить размер фрагмента, чтобы общая собранная длина не превышала размер общей длины (если размер общей
длины превышен, то приемникдолжен отбрасывать в буфере фрагменты, соответствующие этим ID Frag и пре
рвать сборку).
Если бит S установлен на «0». а бит Е установлен на «1». то naKeTGSE содержит последний фрагмент PDU с
ID Frag, заданной в заголовке GSE. Приемникдолжен добавить фрагмент ксборке в буфер для этого ID Frag. Прием
ник должен проверить, соответствует ли количество принятых байтов, в том числе длину
нефрагментированной PDU. поля тип протокола, поля тип метки (при наличии), а также любого продления этого
заголовка, общему значе нию длины поля впервом пакете GSE для этого PDU. Если длина собранного PDU
идополнительных вышеперечис ленных полей не соответствуют общему значению длины поля, приемник
должен отбрасывать PDU. Наконец, приемник сравнивает CRC (последние 4 байта текущего пакета GSE) с
текущим CRC в буфере PDU. Если CRC не совпадают, то приемникдолжен отбросить текущий буфер PDU. Эта
ошибка должна учитываться как ошибка PDU
15