После выявления начала кадра приемник на другом конце связи выполняет удаление всех нулей после каждых пяти последовательных единиц внутри кадра (это делается на аппаратном уровне).
На рис. 4.5 показаны данные до и после вставки дополнительных битов.
Рис. 4.5. Вставка нулевого бита в HDLC
4.6.1 Формат кадра HDLC
Использование шаблона в протоколе HDLC влияет на всю структуру формата кадра. На рис. 4.6 показан информационный кадр HDLC, имеющий заголовок, данные и завершающую секцию, которая содержит контрольную последовательность кадра (Frame Check Sequence — FCS). Октет шаблона применяется как разделитель в начале и в конце кадра.
Рис. 4.6. Формат кадра HDLC с разделителями
FCS создается в результате математического вычисления на основе содержимого кадра. Полученный результат называется циклической избыточной суммой (Cyclic Redundancy Check — CRC), и некоторые авторы используют для именования завершающей секции кадра название CRC, а не FCS. Аналогичные вычисления выполняются в точке назначения связи. Если полученный при этом результат не будет равен значению поля FCS, значит, некоторые биты кадра изменились при пересылке и кадр должен игнорироваться как содержащий ошибку.
Использование контрольной последовательности кадра — это очень полезная идея. Поле FCS можно обнаружить практически во всех кадрах локальных и региональных сетей.
Заголовок кадра HDLC имеет поле адреса назначения (destination address). Такое поле необходимо для многоточечной (multipoint) версии протокола HDLC (например, в протоколе Synchronous Data Link Control (SDLC) компании IBM), которая позволяет нескольким системам совместно использовать одну линию. Каждой системе присваивается собственный адрес, а трафик этой системы перенаправляется в соответствии с адресом в заголовке кадра.
IP не использует технологию многоточечной линии связи, и передаваемые в кадрах HDLC датаграммы IP имеют своим адресом двоичное значение 11111111 (шестнадцатеричное X'FF), которое называется широковещательным адресом (broadcast), определяющим пересылку кадра на все станции сети. (Далее в книге для записи шестнадцатеричных чисел используется формат X'N, где X указывает на шестнадцатеричное число, N — представляет само число, а "'" — разделяет два поля такой записи.— Прим. пер.)
Заголовок кадра HDLC имеет поле управления (control). Некоторые протоколы связи помещают в это поле номера пересылаемых кадров или номера кадров для подтверждения их получения. Примерами могут служить протоколы SDLC и LAPB, использующие поле управления для нумерации, подтверждения приема и повторной трансляции кадров. Такие протоколы выполняют повторную пересылку тех кадров, для которых не получено подтверждение их получения приемником за заданный интервал времени.
Кадры, переносящие датаграммы IP, как и кадры для пересылки данных других протоколов, например IPX или DECnet, не требуют нумерации и подтверждения. Для IP и других похожих протоколов в управляющем поле записывается значение X'03, указывающее на нечисловой информационный кадр (Unnumbered Information frame) протокола HDLC.
Таким образом, датаграммы IP в кадрах HDLC имеют формат, представленный на рис. 4.7.
Рис. 4.7. Формат кадра HDLC, передающего датаграмму IP
Обобщив, можно отметить, что при пересылке датаграмм IP в кадрах HDLC:
■ Используется широковещательный адрес X'FF.
■ Управляющее поле имеет значение X'03 — нечисловой информационный кадр.
4.6.2 Недостатки HDLC
То, что HDLC является стандартом, еще не означает успешного взаимодействия друг с другом связей "точка-точка" между различными реализациями интерфейсов HDLC.
В HDLC определено множество дополнительных и необязательных возможностей, что приводит к различным "стандартным" реализациям HDLC. Еще более запутывает ситуацию предоставление многими разработчиками собственных версий HDLC для интерфейсов "точка-точка".
В результате долгое время не было единого стандарта для коммуникаций "точка-точка", что существенно затрудняло использование оборудования от различных производителей.
Разработка HDLC была выполнена до появления многопротокольных сетей. Однако сегодня многие линии "точка-точка" служат для пересылки трафика от различных протоколов, что приводит к дополнительным проблемам.
Решение этих вопросов поручено комитету IETF.
4.7 Протокол PPP