Передача пакетного трафика по транспортным сетям последующих поколений
.pdf
ной нагрузки PH (Payload Header) и поле информации полезной нагрузки PI |
||||||||
(Payload Information). Кроме того, оно может содержать необязательное (факуль- |
||||||||
тативное) поле FCS (Frame Check Sequence) полезной нагрузки, pFCS. |
|
|||||||
5 |
|
|
Структура заголовка полезной нагрузки РН |
|||||
Тип |
2 |
|
|
|
|
|
||
6 |
показана на рисунке 3. Область содержит два обя- |
|||||||
|
|
|||||||
7 |
tHEC |
2 |
|
|
|
|
|
|
Байты 8 |
зательных поля: «Тип» и tHEC, а также одно или |
|||||||
|
|
|||||||
9 |
|
|
два дополнительных поля. Группа дополнитель- |
|||||
|
Поле заголов- |
|
||||||
|
|
|
|
|
|
|
||
ка расширения |
От 0 до 60 |
ных полей считается заголовком расширения Ext. |
||||||
|
|
|||||||
|
еHEC |
|
Наличие заголовка расширения, его формат и на- |
|||||
|
2 |
личие факультативного FCS полезной нагрузки |
||||||
|
|
|
||||||
Рис. 3 |
Структура заголовка |
определяется полем «Тип». Поле tHEC защищает |
||||||
полезной нагрузки |
поле «Тип» от ошибок. |
|
|
|
|
|||
|
|
|
|
|
|
|
||
Поле «Тип» является обязательным двухбайтовым полем заголовка полез- |
||||||||
ной нагрузки, которое указывает на содержимое и формат информации полезной |
||||||||
нагрузки PI. В этом поле содержится информация о типах кадров GFP и различ- |
||||||||
ных службах в мультисервисной среде. Как показано на рисунке 4, поле «Тип» |
||||||||
состоит из идентификатора типа полезной нагрузки |
|
|
Биты |
|
||||
|
|
|
|
|
|
|
||
PTI (Payload Type Identifier), индикатора FCS полез- |
1 |
2 3 |
4 5 6 |
7 8 |
||||
ной нагрузки PFI (Payload FCS Indicator), идентифи- |
5 |
PTI |
PFI |
EXI |
||||
катора заголовка расширения EXI (Extension Header |
Байты 6 |
|
UPI |
|
||||
Identifier) и идентификатора полезной нагрузки кли- |
Рис. 4 Структура по- |
|||||||
ента UPI (User Payload Identifier). |
||||||||
ля «ТИП» заголовка |
||||||||
|
|
|
|
|||||
Идентификатор |
типа полезной нагрузки PTI |
полезной нагрузки |
|
|||||
имеет размер три бита и определяет вид кадра клиента. В настоящее время опре- |
||||||||
делены два вида кадров клиента: кадры данных (PTI = 000) и кадры управления |
||||||||
клиента (PTI = 100). Остальные значения PTI зарезервированы. |
|
|
|
|||||
Однобитовый индикатор PFI указывает наличие (PFI =1) или отсутствие |
||||||||
(PFI = 0) проверочного поля FCS полезной нагрузки (см. рисунок 2). |
|
|
||||||
Идентификатор заголовка расширения EXI содержит четыре бита и указы- |
||||||||
вает на тип заголовка расширения GFP. В настоящее время определены три вида |
||||||||
заголовков расширения: заголовок нулевого расширения (Null Extension Header, |
||||||||
EXI = 0000), заголовок линейного расширения (Linear Extension Header, EXI = |
||||||||
0001) и заголовок кольцевого расширения (Ring Extension Header, EXI = 0010). |
||||||||
Другие значения EXI зарезервированы. |
|
|
|
|
||||
11
Как уже говорилось, кадры данных и кадры управления клиента имеют одинаковую структуру и отличаются типом полезной нагрузки. Тип полезной нагрузки определяется 8-битовым полем UPI (User Payload Identifier). Значения UPI для кадров данных клиента приведены в табл. 2, а для кадров управления клиента
– в табл. 3.
Таблица 2
|
Кадр данных клиента (PTI = 000) |
|
Биты UPI |
Область полезной нагрузки |
|
0000 0000 |
Зарезервированы и недоступны |
|
1111 1111 |
||
|
||
0000 0001 |
Ethernet с кадровым отображением |
|
0000 0010 |
РРР с кадровым отображением |
|
0000 0011 |
Прозрачный волоконно-оптический канал |
|
0000 0100 |
Прозрачное волоконно-оптическое соединение (FICON) |
|
0000 0101 |
Прозрачное соединение учрежденческих систем (ESCON) |
|
0000 0110 |
Прозрачный Gb Ethernet |
|
0000 0111 |
Зарезервирован для будущего использования |
|
0000 1000 |
Протокол множественного доступа через SDH с кадровым отображением |
|
(MAPOS) |
||
|
||
0000 1001 |
Прозрачное асинхронное цифровое телевидение (DVB ASI) |
|
0000 1010 |
"Эластичное" пакетное кольцо с битовым отображением (IEEE 802.17) |
|
00001011 |
Волоконно-оптический канал с битовым отображением (FC-BBW) |
|
00001100 |
Асинхронный прозрачный волоконно-оптический канал |
|
00001101 |
MPLS с кадровым отображением (одноадресные) |
|
00001110 |
MPLS с кадровым отображением (многоадресные) |
|
00001111 |
Транзитная система – транзитная система (IS-IS) с кадровым отображением |
|
0001 0000 |
Ipv4 с кадровым отображением |
|
0001 0001 |
Ipv6 с кадровым отображением |
|
0001 0010 |
DVB-ASI с кадровым отображением |
|
С 0001 0011 |
Зарезервированы для будущей стандартизации |
|
по 1110 1111 |
|
|
С 1111 0000 |
Зарезервированы для частного использования |
|
по 1111 1110 |
|
Таблица 3
|
Кадр управления клиента (PTI = 100) |
|
Биты UPI |
Область полезной нагрузки |
|
0000 0000 |
Зарезервированы |
|
1111 1111 |
||
|
||
0000 0001 |
Повреждение сигнала клиента (Пропадание сигнала клиента) |
|
0000 0010 |
Повреждение сигнала клиента (Пропадание тактовой синхронизации) |
|
С 0000 0011 |
Зарезервированы для будущей стандартизации |
|
по 1101 1111 |
||
|
||
С 1110 0000 |
Зарезервированы для частного использования |
|
по 1111 1110 |
||
|
12
Двухбайтное поле обнаружения ошибок tHEC в поле «Тип» заголовка полезной нагрузки содержит проверочное слово кода CRC-16, предназначенное для исправления однобитовых и обнаружения многобитовых ошибок. Содержимое поля tHEC генерируется по тем же правилам, что и поле обнаружения ошибок cHEC основного заголовка.
Вприемнике GFP производится исправление одиночной ошибки заголовка
исброс кадра, если ошибок в заголовке больше одной.
Заголовок расширения полезной нагрузки занимает поле от 0 до 60 байтов (включая поле eHEC для обнаружения ошибок в самом заголовке расширения), и содержит информацию, специфическую для звена данных передачи дискретной информации. Например, заголовок может содержать идентификаторы виртуального канала, адреса источника/пункта назначения, номера портов, значение категории обслуживания и другие сведения. Как уже указывалось, тип заголовка расширения определяется содержимым битов EXI в поле «Тип» основного заголовка полезной нагрузки, причем пока определены только три типа заголовка расширения: «нулевой», «пункт-пункт» и «кольцо».
«Нулевой» заголовок используется при соединении вида «точка-точка». Он предназначен для случаев, когда транспортный тракт выделен для одного сигнала клиента. Этот заголовок состоит из двухбайтного поля «Тип» и двухбайтного проверочного поля tHEC (см. рис. 3), то есть не содержит поля расширения.
Заголовок полезной нагрузки с заголовком расширения «логический пунктпункт» показан на рисунке 5, его используют, когда требуется объединение нескольких независимых каналов в один тракт. Из
|
5 |
Тип |
|
|
сравнения рисунков 3 и 5 видно, что заголовок |
|
6 |
|
|
||
|
|
|
|
|
|
|
7 |
|
|
|
расширения для такого кадра (который называют |
Октеты |
tHEC |
|
|
||
|
|
|
|||
|
|
|
линейным) состоит из двух полей: поля иденти- |
||
8 |
|
|
|
||
9 |
|
|
Заголовок расширения |
фикатора канала CID, резервного поля и поля |
|
CID |
|
||||
|
|
||||
10 |
Резервное |
|
обнаружения ошибок заголовка eHEC. Поле CID |
||
11 |
|
|
|||
еHEC |
|
||||
|
содержит двоичное число (от 0 до 255), указы- |
||||
|
|
||||
12 |
|
|
|||
|
|
|
|||
|
|
|
|
||
Рис. 5 |
Структура заго- |
|
вающее на номер данного канала. |
||
|
Структура заголовка расширения типа |
||||
ловка полезной нагрузки с |
|
||||
заголовком расширения |
«кольцо» в настоящее время находится в стадии |
|
для линейного кадра |
||
|
||
|
изучения. |
13
Двухбайтное поле eHEC обнаружения ошибок заголовка расширения содержит проверочное слово кода CRC-16, контролирующего поля заголовка расширения. Как и в основном заголовке здесь возможно исправление однобитовых ошибок и обнаружение многобитовых. Проверочное слово eHEC генерируется аналогично проверочному слову поля cHEC.
Исправление одиночных ошибок является необязательным для заголовка расширения. Поэтому приемник производит сброс любых кадров GFP, в которых были обнаружены ошибки, если исправление одиночных ошибок не используется.
Поле информации полезной нагрузки PI (см. рис.2) содержит пакет клиентской нагрузки для GFP с кадровым отображением или, в случае прозрачной GFP, группу знаков сигнала клиента. Сигнал клиента всегда передается в поле информации полезной нагрузки в виде потока выровненных по байтам пакетов. Поле имеет переменную длину и может включать от 0 до 65535-X байтов, где X – размер заголовка полезной нагрузки. Последние четыре байта поля информации могут содержать факультативное поле FCS полезной нагрузки; оно содержит проверочное слово кода CRC-32, контролирующего появление ошибок в кадре. Значение «1» бита PFI внутри поля «Тип» (см. рис.3) указывает на наличие этого поля, а значение «0» – на то, что поле FCS отсутствует (процедура контроля кодом CRC-32 не задействована). Порождающий полином кода CRC-32 имеет вид G(x) =
x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1.
Вся область полезной нагрузки скремблируются самосинхронизирующимся скремблером с образующим полиномом 1 + x43.
Как уже отмечалось, кадры управления клиента отличаются от кадров данных клиента лишь содержанием области полезной нагрузки, которая используется для решения многообразных задач технического обслуживания. Заметим только, что в кадрах управления клиента по возможности не следует использовать расширения заголовка и проверочного поля FCS, так как это уменьшает пропускную способность тракта.
Кадры управления GFP принципиально отличаются от кадров управления клиента. Они используются в управлении соединением GFP. В настоящее время определены только кадры управления, которые являются «пустыми» кадрами
GFP.
«Пустой» кадр GFP − специальный четырехбайтный кадр управления GFP, содержащий только основной заголовок GFP с полями PLI и cHEC, заполненными
14
нулями, и не содержащий области полезной нагрузки. «Пустой» кадр предназначен для использования в качестве заполняющего кадра для выравнивания скорости потока байтов GFP с любой средой передачи, в которой транспортный канал имеет более высокую пропускную способность, чем требуется для сигнала клиента. «Пустой» кадр перед передачей скремблируется так же, как и основной заголовок кадра клиента GFP, то есть суммируется по модулю 2 с шестнадцатеричным числом B6AB31E0.
3. ОБРАБОТКА КАДРОВ GFP Обработкой кадров GFP называется:
−мультиплексирование;
−определение начала и конца кадра (синхронизация кадров);
−загрузка кадра в кадровом и прозрачном режимах;
−обработка сигналов технического обслуживания.
Кадры GFP из нескольких портов и от нескольких типов клиентов мультиплексируются, если скорости передачи отдельных клиентов невелики по сравнению с пропускной способностью предоставляемого тракта транспортной сети (организуется соединение «пункт-пункт»). Для этого кадры от разных клиентов вводятся в буфер по принципу «кадр за кадром». Периодически буфер передатчика опустошается, так как пропускная способность предоставляемого тракта транспортной сети всегда должна иметь некоторый запас. При опустошении буфера передаются «пустые» кадры GFP, что обеспечивает непрерывный поток байтов на физическом уровне. Затем поток мультиплексированных кадров вводится через соответствующий интерфейс доступа в транспортную сеть, например, в сеть SDH или OTN. При этом, как правило, в транспортной сети организуются тракты на основе виртуальных сцепок. Следует отметить, что мультиплексирование кадров применяется только в режиме GFP-F; в прозрачном режиме GFP-Т всегда организуется одиночное соединение («точка-точка»).
На приеме «пустые» кадры уничтожаются, а мультиплексированные кадры демультипексируются, то есть распределяются по портам клиентов в соответствии с информацией, заключенной в их заголовках расширения.
Определение начала кадра осуществляется так же, как в технологии ATM определяется начало ячейки. Однако в технологии GFP размеры кадров различны в отличие от ячеек АТМ, имеющих постоянный размер (53 байта), поэтому в GFP
15
требуется дополнительная операция определения окончания кадра. Эта операция базируется на прочтении первых двух байтов основного заголовка кадра GFP (поля PLI – индикатора полезной нагрузки), которое указывает на количество байтов в кадре.
Функция нахождения начала кадра иллюстрируется диаграммой состояний, показанной на рисунке 6.
|
Виртуальные |
|
|
Предсинхр |
анализаторы |
Предсинхр |
|
кадров (до М) |
|
||
(сНЕСID) |
|
(сНЕСМD) |
|
|
Неверный |
|
|
|
сНЕС |
|
|
Предсинхр |
|
Предсинхр |
последовательных |
|
верных сНЕСs |
||
|
|
|
|
(сНЕСI1) |
|
(сНЕСМ1) |
|
Верный |
Верный |
|
сНЕС |
сНЕС |
|
Поиск |
|
|
|
Неверный НЕС |
Синхр |
Байт за байтом |
(Многобитовые ошибки) |
|
|
|
|
(Исправление ошибок запрещено) |
Кадр за кадром |
|
(Исправление ошибок разрешено)
Рис. 6 Диаграмма состояний синхронизации кад-
ров
В исходном состоянии приемник кадров GFP осуществляет поиск начала кадра (Поиск), сканируя байт за байтом и анализируя каждую четверку байтов в предположении, что первые два байта являются байтами поля PLI, а два следующих – проверочным полем cHEC. Совпадение рассчитанного приемником поля cHEC c вложенным (значениями третьего и четвертого анализируемого байта) трактуется как предполагаемое начало GFP кадра (cHECM1 на диаграмме рис. 6), и приемник переходит в состояние предсинхронизации (Предсинхр).
Следующий этап (Предсинхр) начинается с анализа четверки байтов, предположительно являющихся основным заголовком следующего кадра. Положение этих байтов находится на основании числа в проверенном поле PLI, определяющего размер данного кадра. Если для следующего кадра обработка полей PLI и
16
сНЕС показывает наличие ошибок, система возвращается в режим поиска (Поиск). В режимах поиска и предсинхронизации исправление ошибок запрещено.
Если безошибочно обработаны поля основных заголовков последовательных кадров (cHECMD на диаграмме рисунка 6), то система переходит в основной режим – режим синхронизации (Синхр). В настоящее время рекомендовано = 1, то есть для входа в основной режим считается достаточным безошибочный прием основного заголовка только одного очередного, кадра. Очевидно, что увеличение
снижает вероятность ложного синхронизма, но и увеличивает время восстановления основного режима.
«Пустые» кадры GFP участвуют в процессе синхронизации, а затем сбрасываются.
В основном режиме разрешено исправление одиночных ошибок. При появлении множественных ошибок синхронизация считается потерянной, фиксируется аварийное событие (повреждение сигнала сервера – Server Signal Fail, SSF) и система возвращается в режим поиска.
Время восстановления может быть снижено путем реализации нескольких «виртуальных анализаторов кадров», которые для каждого кадра-кандидата GFP (предполагаемого кадра), обнаруженного во входящем потоке октетов, порождают отдельное состояние предсинхронизации (кадры cHECI1 … cHECID для одного анализатора на диаграмме рисунка 6). При возникновении процесса поиска используется очередной кадр, уже определенный одним из виртуальных анализаторов, что уменьшает время восстановления синхронизма, так как в этом случае не требуется накопления кадров-кандидатов.
Перейдем к рассмотрению функции загрузки кадров. В настоящее время подробно стандартизированы функции загрузки клиентских кадров (пакетов), относящимся к различным технологиям (см. табл. 2) в кадры GFP [6]. Эти функции можно разделить на две больших группы: функции загрузки в кадровом (GFP-F) и прозрачном (GFP-T) режимах передачи кадров GFP.
Для передачи в режиме GFP-F загружаются клиентские кадры (пакеты) технологий некритичных к задержкам пакетов. В этом случае каждый клиентский пакет на передаче записывается в буфер и затем целиком вводится в отдельный пакет GFP. Так как передача возможна только после записи всего клиентского пакета (а он может иметь значительную величину), это и вызывает определенную задержку при передаче. Если клиентские пакеты снабжены флагами, определяю-
17
щими их границы, как, например, в технологиях HDLC или Ethernet MAC, флаги эти при упаковке в кадры GFP удаляются. Удаляются из пакетов и служебные байты идентификации клиентских байтов, совпадающих по структуре с флагами исходных пакетов. Эти операции относятся к функции адаптации клиентской нагрузки. На приеме, в соответствии с типом нагрузки, информация о котором переносится в байте UPI заголовка полезной нагрузки (см. рис. 3 и табл. 2), ранее удаленные байты восстанавливаются.
Если клиентские пакеты имеют механизмы определения их начала и окончания по заложенным в их служебной информации признакам, как например, в технологии АТМ, они без изменения вводятся в информационные поля отдельных пакетов GFP. Очевидно, что в любом из этих случаев пакеты GFP будут иметь длину, зависящую от длины упаковываемого клиентского пакета.
Режим GFP-T используется для передачи клиентских сигналов, сформированных посредством технологий, обеспечивающих минимальные задержки, таких, как прозрачный волоконно-оптический канал, Gigabit Ethernet и другие. В этом режиме передача символов сигнала осуществляется по мере их поступления, а не после загрузки законченного блока клиентской информации.
Поступающие клиентские сигналы в указанных технологиях представляют собой сигналы в коде 8В10В. Этот код является алфавитным кодом, в котором каждая группа из восьми последовательных символов заменяется десятисимвольной группой. Поскольку число различных восьмисимвольных комбинаций равно 28=256, а десятисимвольных комбинаций – 210=1024, из последних формируется два алфавита, каждый из 256 комбинаций (кодовых слов), обозначаемых RD+ и RD-. Комбинации, входящие в эти алфавиты, имеют, по крайней мере, по два перехода между «0» и «1», что обеспечивает уверенное определение тактовой частоты принятого сигнала. Для очередной заменяющей группы выбирается группа из того алфавита, которая обеспечит динамический баланс цифровой последовательности, то есть минимальную разность между количеством переданных единичных и нулевых символов. Динамический баланс может быть положительным или отрицательным (передано соответственно на один символ больше «1» или «0») или нейтральным. Очередная комбинация должна или инвертировать динамический баланс, или оставлять его нейтральным. Ошибки по битам при передаче приводят к неправильному значению текущего состояния динамического баланса в принятом кодовом слове 8В10В. В этих случаях фиксируется ошибка динамиче-
18
ского баланса. Вне зависимости от этого принятый знак передачи используется для вычисления нового значения динамического баланса, которое считается действующим. Воздействие нескольких ошибок на кодовое слово может сохранять состояние динамического баланса. Это может привести к тому, что в некотором последующем кодовом слове без ошибок будет зафиксировано нарушение динамического баланса. В некоторых протоколах созданы специальные правила, на основании которых каждый пакет данных начинается или заканчивается определенным значением динамического баланса. В этом случае ошибки будут зафиксированы изменением разрешенного значения динамического баланса в начале или конце кадра.
Из 256 возможных восьмисимвольных комбинаций шестнадцать являются запрещенными, двенадцать из которых используются для переноса сигналов управления в потоке клиента, две – для сигналов управления в потоке GFP, а две являются резервными. Приходящий поток в коде 8В10В декодируется, а затем вновь кодируется кодом 64В65В, в котором 64-м битам потока клиента соответствует 65 битов в потоке GFP. Эти операции соответствуют адаптации клиентского потока. На приемном конце поток 64В65В расформировывается, происходит восстановление исходного потока в коде 8В10В, который и направляется клиенту. Поскольку запрещенных комбинаций в коде 8В10В всего шестнадцать, для отображения каждой из них в коде 64В65В достаточно четырех битов. В табл. 4 приведены имена запрещенных комбинаций в коде 8В10В, их значения в двоичной и десятичной форме, соответствующие им комбинации алфавитов RD+ и RD- и четырехбитовое отображение в коде 64В65В.
Ошибки в поступающих сигналах в коде 8В10В, могут приводить к тому, что кодовое слово не удается распознать (например, если нарушен динамический баланс или кодовое слово является запрещенным). В этом случае передается специальный знак управления 10B_RRR. На приеме рекомендуется производить типовое преобразование этого знака в недействительное значение кодового слова 00 1111 0001 (RD-) или 11 0000 1110 (RD+). Хотя при этом фактическое значение нераспознанного кодового слова не сохраняется, обеспечивается регистрация повреждения и его позиция, а также минимизируется вероятность смещения границ между соседними кодовыми словами.
Так как пропускная способность канала должна быть выше скорости поступающей информации, то входной буфер будет регулярно недогружаться. Если в
19
данный момент передается кадр GFP-T, а готовые к передаче знаки клиента отсутствуют, то передается знак заполнения 65B_PAD. Этот знак отображается так же, как и знак управления (см. далее), а на приемном конце удаляется из принимаемого потока.
|
|
|
|
|
Таблица 4 |
|
|
|
|
|
|
|
|
|
Значение байта |
Комбинация 10В |
4-битовое |
|
||
Имя |
десятич- |
шестна- |
|
|
отображе- |
|
дцати- |
RD- |
RD+ |
ние в коде |
|
||
|
ное |
|
||||
|
ричное |
|
|
64В65В |
|
|
|
|
|
|
|
||
/K28.0/ |
28 |
1С |
001111 0100 |
110000 1011 |
0000 |
|
/K28.1/ |
60 |
3С |
001111 1001 |
110000 1010 |
0001 |
|
/K28.2/ |
92 |
5С |
001111 0101 |
110000 1100 |
0010 |
|
/K28.3/ |
124 |
7С |
001111 0011 |
110000 1101 |
0011 |
|
/K28.4/ |
156 |
9С |
001111 0010 |
110000 0101 |
0100 |
|
/K28.5/ |
188 |
BC |
001111 1010 |
110000 1001 |
0101 |
|
/K28.6/ |
220 |
DC |
001111 0110 |
110000 0111 |
0110 |
|
/K28.7/ |
252 |
FC |
001111 1000 |
110000 0111 |
0111 |
|
/K23.7/ |
247 |
F7 |
111010 1000 |
000101 0111 |
1000 |
|
/K27.7/ |
251 |
FB |
110110 1000 |
001001 0111 |
1001 |
|
/K29.7/ |
253 |
FD |
101110 1000 |
010001 0111 |
1010 |
|
/K30.7/ |
254 |
FE |
011110 1000 |
100001 0111 |
1011 |
|
10B_ERR |
1 |
01 |
Нераспознанный |
Нераспознанный |
1100 |
|
RD- |
RD+ |
|
||||
|
|
|
|
|
||
65B_PAD |
2 |
02 |
Нет |
Нет |
1101 |
|
Резерв |
3 |
03 |
Нет |
Нет |
1110 |
|
Резерв |
4 |
04 |
Нет |
Нет |
1111 |
|
65-и символьные блоки кода 64В65В, каждый из которых состоит из восьми байтов сигналов клиента (включая сигналы управления) и одного бита начала блока (флага блока), объединяются в суперблоки, величина которых составляет 67 байтов каждого. N суперблоков вводится в поле информации полезной нагрузки PI кадра GFP-T (см. рисунок 1). Число N суперблоков в кадре GFP-T зависит от скорости передачи данных клиента, пропускной способности тракта передачи кадров GFP и состава служебных полей кадра GFP, и может варьироваться от 1 до 978. В Приложении приведен пример расчета оптимального количества суперблоков 64В65В в кадре GFP-T.
Структура суперблока показана на рисунке 7. Первые 64 байта являются последовательными байтами декодированного потока 8В10В клиента. Они объединены в группы по 8 байтов, каждой из которых соответствует один бит в 65-м байте. Каждой i-й восьмибайтной группе соответствует Li-й бит, являющийся еѐ флагом. Значение Li = 0 свидетельствует о том, что все восемь байтов группы содержат данные клиента, а значение Li = 1 – что в группе, по крайней мере, один
20
