ГОСТ Р 54708—2011
Для пакетных каналов связи (например, UDP/IP) понятие синхронизации не нужно, поскольку
транспортный протокол будет предъявлять полные фрагменты уровню PFT. Необходимо только про-
верить, что CRC и длина пакета правильны перед передачей пакета для дальнейшей обработки. Когда
CRC и длина неправильны, пакет считается поврежденным и может не учитываться.
7.4.2 Транспортная адресация
Каждый фрагмент PFT может содержать источник и адрес назначения. Если представлено, поля
адреса должны быть проверены, и если они не будут соответствовать конфигурации модуля, то весь
фрагмент не учитывается.
Фрагменты PFT, которые не содержат дополнительный транспортный заголовок, никогда не учи-
тываются.
7.4.3 Дефрагментация
Дефрагментация — процесс, обратный фрагментации. Управление памятью сохранено простым,
так как известно, что все фрагменты (кроме последнего) — имеют одинаковый размер. Последний
фрагмент будет того же самого размера или меньше, чем предшествующие фрагменты.
Если код Рида-Соломона не используется, каждый фрагмент должен быть принят правильно и
полностью, для того чтобы восстановить оригинальный AF пакет.
При использовании кода Рида-Соломона применяется метод прямой коррекции ошибок, чтобы по-
пытаться восстановить оригинальныйAF пакет прежде, чем будут получены все фрагменты (см. 7.4.4).
П р и м еч а н и е 1 — Не все фрагменты PFTпоступают в установленном порядке. Это может быть результа-
том установления специальных условий на транспортном уровне (например, изменение порядка пакетов, посыла-
емых через публичный Интернет) или может быть инициировано передающей стороной перемежение фрагментов
PFT, принадлежащих различным AF пакетам. Перемежение может быть применено для защиты от продолжитель-
ных потерь связи.
П р и м еч а н и е 2 — PFT фрагменты, которые совпадают с ранее полученными PFT фрагментами и затем
собранными в AF пакеты, должны быть отброшены.
7.4.4 Декодирование Рида-Соломона
Декодирование Рида-Соломона — процесс, обратный кодированию.
Длина RS пакета может быть рассчитана следующим образом:
kp
+
c
max
=
f
×
s
;
(11)
s
Rx
min
=
c
max
×
p
,
(12)
14
max
min
min
где f — число фрагментов, полученных из этого пакета, несущего поле с заголовком Fcount;
s — размер в байтах фрагментов PFT, переносимых в поле заголовка Plen всех фрагментов, за
исключением последнего фрагмента (где Fcount равняется [Findex – 1]);
k — размер данных в байтах кода Рида-Соломона, переносимых в поле заголовка RSk;
p — число байтов четности кода Рида-Соломона, должно иметь значение 48;
с— максимальное число фрагментов кода Рида-Соломона, которые могут быть посланы;
Rx— минимальное число фрагментов, которые должны быть получены, прежде чем может быть
начато декодирование кода Рида-Соломона. Дополнительные фрагменты могут потребовать-
ся, если произошли ошибки или если один из полученных фрагментов является последним.
RxPFT фрагментов могут быть получены один раз, оставшиеся байты могут быть заполнены
нулями и предпринята попытка декодирования кода Рида-Соломона с успешным получением неиска-
женного AF пакета с помощью правильного CRC.
В случае обнаружения битовых ошибок потребуется большее количество PFT фрагментов, пре-
жде чем оригинальный AF пакет может быть правильно декодирован.
Байты заполнения, добавленные в течение процесса перемежения кода Рида-Соломона, могут
в результате привести к большему количеству восстановленных данных, чем первоначально переда-
валось для очень больших пакетов. Эти дополнительные данные все будут нулями, и могут быть диф-
ференцированы, начиная с z нулевых байтов, добавленных при шифровании кодом Рида-Соломона,
используя значение поля заголовка RSz (z — число байтов заполнения кода Рида-Соломона, перено-
симых в поле заголовка RSz (z— число байтов заполнения кода Рида-Соломона, переносимых в поле
заголовка RSz). Размер конечного AF пакета может быть определен из поля LEN AF.