4.2.1 Спецификация
Общий поток состоит из последовательности кадров основной полосы переменной длины. В таблице 1 представлен синтаксис структуры кадра основной полосы. Пакеты GSE мультиплексированы и размещены в кадрах основной полосы. Инкапсулированные PDU или фрагменты PDU (см. 4.3) транспортируются в пакетах GSE. Дополнение (при необходимости) добавляется после последнего пакета GSE в кадре основной полосы.
Таблица 1 - Синтаксис структуры кадра основной полосы
Синтаксис | Количество битов | Мнемоника | ||
Frame() { | ||||
for(j=0;j<N1;j++) { | ||||
GSE_Packet() | ||||
} |
В том случае, когда информация о фактическом размещении данных кадра основной полосы (например, в DVB-S2 в поле длина поля данных (Data Field Length) не представлена, так как информация сигнализации переносится в заголовке основной полосы, то приемник должен распознавать присутствие дополнения посредством обнаружения конкретной комбинации битов индикатора старта, индикатора конца и типа метки. Синтаксис структуры кадра основной полосы показан в таблице 2. Приемник должен отбрасывать любые пакеты GSE, следующие за этой комбинацией, которая никогда не должна использоваться для каких-либо заголовков GSE.
Таблица 2 - Синтаксис структуры кадра основной полосы
Синтаксис | Количество битов | Мнемоника | ||||
GSE_Packet() { | ||||||
Start_Indicator | 1 | bslbf | ||||
End_Indicator | 1 | bslbf | ||||
Label_Type_Indicator | 2 | bslbf | ||||
if (Start_lndicator=="0") and (End_lndicator=="0") and (Label_type_indicator=="00") { | ||||||
Padding_bits | 4 | bslbf | ||||
for(i=0;i<N1;i++) { | ||||||
Padding_bytes | 8 | bslbf | ||||
} | ||||||
} else { | ||||||
GSE_Length | 12 | uimsbf | ||||
If (Start_lndicator=="0") or (End_lndicator=="0") { | ||||||
Frag_ID | 8 | uimsbf | ||||
} | ||||||
If (Start_lndicator=="1") and (End_lndicator=="0") { | ||||||
Total_Length | 16 | uimsbf | ||||
} | ||||||
lf (Start_lndicator=="1") { | ||||||
Protocol_Type | 16 | uimsbf | ||||
if (Label_Type_lndicator=="00") { | ||||||
6_byte_Label | 48 | bslbf | ||||
} else if (Label_Type_lndicator=="01") { | ||||||
3_byte_Label | 24 | bslbf | ||||
} | ||||||
if (Protocol_Type<1536) { | ||||||
for(i=0;i<N2;i++) { | ||||||
Extension_Header_byte | 8 | bslbf | ||||
} | ||||||
} | ||||||
} | ||||||
for(i=0;i<N3;i++) { | ||||||
PDU_data_byte | 8 | bslbf | ||||
} | ||||||
If (Start_lndicator=="0") and (End_lndicator=="1") { | ||||||
CRC_32 | 32 | rpchof | ||||
} | ||||||
} | ||||||
} |
Каждый пакет GSE состоит из заголовка GSE и последующей полезной нагрузки GSE, где находится инкапсулированный PDU или фрагмент инкапсулированного PDU. На рисунке 2 показан формат заголовка GSE. Применение незаштрихованных полей всегда обязательно, а заштрихованные поля могут быть опущены в зависимости от типов предыдущих полей управления в первых 4 битах заголовка GSE. Наличие возможных заголовков расширения определяется типом протокола. Минимальная длина заголовка GSE 2 байта.
Рисунок 2 - Формат заголовков GSE
Далее представлена семантика основных пакетов GSE:
Label_Type_Indicator: Поле 2 бита. При наличии дополнения в поле Label_Type_Indicator должно быть установлено "00". В противном случае, если в поле Start_Indicator установлен "0", то Label_Type_Indicator зарезервирован, и в поле должно быть установлено "11". Семантика величин поля Label_Type_Indicator показана в таблице 3. Определение меток и способов адресации представлено в разделе 5.
Таблица 3 - Семантика величин поля Label_Type_Indicator
Величина | Значение |
"00" | Метка "6 байт" присутствует и должна использоваться для фильтрации |
"01" | Метка "3 байта" присутствует и должна использоваться для фильтрации |
"10" | Режим вещания. Поле метки не представлено. Все приемники должны обработать этот пакет GSE. Такое сочетание может быть использовано в других системах, когда фильтрация на уровне 2 не применяется, а используется обработка заголовка IP [5] |
"11" | Метка повторного использования. Поле метки не представлено. Все приемники должны использовать метку, которая присутствовала в предыдущем пакете GSE из того же кадра основной полосы. Этот метод используется для передачи последовательности пакетов GSE с той же меткой, не повторяя поле метки. Эта величина не должна использоваться для первого пакета GSE в кадре |
Padding_bits: Биты дополнения должны быть установлены в "0".
Примечание - N 1 - это количество байтов до конца кадра основной полосы.