文档介绍:1 一、 EN301 —协议封装数据传输规范数据被封装在 datagram_sections 中,符合_section 关于私有数据的格式。将 datagram_section 映射到 MPEG-2 传输流的包格式定义见 ISO/IEC 13818-1 。 Datagram_section (){ Table_id // 8b, uimsbf Section_syntax_indicator // 1b, bslbf Private_indicator // 1b, bslbf Reserved // 2b, bslbf Section_length // 12b, uimsbf MAC_address_6 // 8b, uimsbf MAC_address_5 // 8b, uimsbf Reserved // 2b, bslbf Payload_scrambling_control // 2b, bslbf Address_scrambling_control // 2b, bslbf LLC_SNAP ?_flag // 1b, bslbf Current_next_indicator // 1b, bslbf Section_number // 8b, uimsbf Last_section_number // 8b, uimsbf MAC_address_4 // 8b, uimsbf MAC_address_3 // 8b, uimsbf MAC_address_2 // 8b, uimsbf MAC_address_1 // 8b, uimsbf If( LLC_SNAP_flag == 1){ LLC_SNAP ()} else { for (j= 0;j< N1; j++ ){ IP_datagram_data_byte // 8b, bslbf }} if( section_number == last_section_number ){ for (j= 0;j< N2; j++ ){ stuffing_byte // 8b, bslbf }} if( section_syntax_indicator == 0){ check_sum // 32b, uimsbf } else { 2 CRC_32 // 32b, rpchof }} table_id :8 位,设为 0x3E section_syntax_indicator : 该区域设置应符合 ISO/IEC 13818-6 [5] 。为1 表示后面为 CRC _32 域;为 0 表示为 checksum 域。 private_indicator : 该区域设置应符合 ISO/IEC 13818-6 [5] 。为 section_syntax_indicator 的反码。 reserved :2 位,设为“ 11” section_length : 该区域设置应符合 ISO/IEC 13818-6 [5] 。表示本域之后的整个 _section 域的字节数(包括后面的 CRC 和 checksum 域), 其值不能超过 4093 (即本段的最大数据长度为 40 96)。 MAC_address :48位, 包含的是目的 MA C 地址。分为6个8 位的区域, 分别为 MAC _address_ 1 至 MAC_address_6 ,其中 MAC _address_1 为最高有效位, MAC _address_ 6 为最低有效位, 发送时遵循最高有效位先发送原则。 MAC 地址映射方式如下图所示: payload_scrambling_control :2 位,定义本段的有效负荷的加扰模式。负荷包含从 MAC_address_1 后面到 CRC 校验之间的区域。加扰模式使用为用户私有。 address_scrambling_control :2 位,定义本分句中 MAC 地址的加扰模式。本域使得可以动 3 态改变 MAC 地址。加扰模式使用为用户私有。 LLC_SNAP_flag :1 位标志位,为“1”表示负荷中在 MAC _address_1 后携带一段 LLC/SNA P 封装的数据报。 LLC/SNAP 结构应指定含有的数据报类型;当为“0”时,包含的则是一个未经 LLC/SNAP 封装的 IP 数据报。 current_next_indicator :1 位,设为“1” section_number :8位, 如果数据报被段存储再多个 datagram_section 中, 则本域表示在整个数据报分段中的位置;否则设为“0” last_section_number :8 位,表示携带数据报的最后一个域的编号。 LLC/SNAP : 携带的数据报