RFC 1662
RFC 1662 — это запрос на комментарии (Request for Comments), опубликованный в июле 1994 года, который описывает метод инкапсуляции пакетов протокола PPP (Point-to-Point Protocol) в кадры HDLC (High-Level Data Link Control). Документ, озаглавленный «PPP in HDLC-like Framing», является частью семейства протоколов для установления и поддержания соединений «точка-точка» в компьютерных сетях. RFC 1662 определяет, как данные PPP, включая управляющие и информационные пакеты, упаковываются в структуру, совместимую с HDLC, и как осуществляется обнаружение и исправление ошибок на физическом уровне.
История и контекст
Протокол PPP был разработан в начале 1990-х годов как замена устаревшему протоколу SLIP (Serial Line Internet Protocol). Основной целью PPP было обеспечение стандартизированного способа передачи многопротокольных дейтаграмм (например, IP, IPX) через последовательные линии связи, такие как модемные соединения, выделенные линии и ISDN. RFC 1661, опубликованный в 1994 году, определил общую архитектуру PPP, а RFC 1662 стал его неотъемлемой частью, описывающей кадрирование.
До появления PPP кадрирование в SLIP было примитивным: оно не поддерживало обнаружение ошибок, не имело механизма идентификации протокола и требовало специальных символов для разделения пакетов. RFC 1662, основанный на стандарте HDLC (ISO 3309), решил эти проблемы, предложив структурированный формат кадра с контрольной суммой и механизмом экранирования.
Структура кадра HDLC-подобного кадрирования
RFC 1662 определяет, что каждый кадр PPP, передаваемый по физической линии, должен быть заключён в оболочку, соответствующую формату HDLC. Кадр состоит из следующих полей:
- Флаг (Flag): 1 байт, значение
0x7E. Этот байт обозначает начало и конец кадра. Для синхронизации между кадрами может передаваться непрерывная последовательность флагов. - Адрес (Address): 1 байт, значение
0xFF(стандартный широковещательный адрес HDLC). В контексте PPP это поле обычно игнорируется, но сохраняется для совместимости. - Управление (Control): 1 байт, значение
0x03(кадр ненумерованной информации, UI). Это указывает, что кадр не требует подтверждения. - Протокол (Protocol): 1 или 2 байта. Поле идентифицирует тип данных, инкапсулированных в кадре (например,
0x0021для IPv4,0x0057для IPv6,0xC021для Link Control Protocol). - Информация (Information): переменная длина (от 0 до 1500 байт по умолчанию). Содержит полезные данные протокола верхнего уровня.
- Контрольная сумма (FCS): 2 или 4 байта. Поле Frame Check Sequence (FCS) используется для обнаружения ошибок при передаче. По умолчанию используется CRC-16 (2 байта), но может быть согласован CRC-32 (4 байта).
- Флаг (Flag): завершающий байт
0x7E.
Механизм экранирования (Byte Stuffing)
Поскольку байт 0x7E (флаг) и 0x7D (escape-символ) являются служебными, они не могут встречаться внутри полезной нагрузки. RFC 1662 определяет процедуру байт-стаффинга (byte stuffing), при которой каждый байт 0x7E заменяется на последовательность 0x7D 0x5E, а каждый байт 0x7D — на 0x7D 0x5D. Кроме того, байты со значением менее 0x20 (управляющие символы) могут быть экранированы для предотвращения их интерпретации модемами или последовательными портами. Эта процедура гарантирует, что кадры не будут случайно разорваны или искажены.
Виды кадрирования
RFC 1662 описывает два основных режима работы:
- Синхронное кадрирование: используется в синхронных линиях связи (например, T1/E1, ISDN). В этом режиме флаги передаются непрерывно, а кадры вставляются между ними. Экранирование не требуется, так как битовый поток синхронизирован, и байт
0x7Eне может появиться внутри данных. - Асинхронное кадрирование: применяется в асинхронных линиях (например, RS-232, модемы). Здесь данные передаются по одному байту с стартовым и стоповым битами. Из-за отсутствия битовой синхронизации требуется байт-стаффинг для предотвращения ложных флагов.
Применение
RFC 1662 является основой для работы PPP в подавляющем большинстве случаев, где используется последовательная передача данных. Основные области применения:
- Коммутируемый доступ в Интернет (dial-up): модемы использовали PPP с HDLC-подобным кадрированием для установления соединения с провайдером.
- DSL-соединения: PPPoE (PPP over Ethernet) и PPPoA (PPP over ATM) часто используют кадрирование, основанное на RFC 1662, для передачи пакетов через DSL-линии.
- ISDN: цифровые линии ISDN используют синхронное кадрирование PPP.
- Спутниковая связь и выделенные линии: PPP применяется для настройки каналов «точка-точка» в корпоративных сетях.
- VPN-туннели: протоколы PPTP и L2TP могут инкапсулировать PPP-кадры, сформированные по RFC 1662.
Взаимосвязь с другими протоколами
RFC 1662 является частью стека протоколов PPP, который включает:
- RFC 1661 — общая архитектура PPP.
- RFC 1332 — протокол управления IP (IPCP) для настройки IP-адресов.
- RFC 1994 — протокол аутентификации CHAP.
- RFC 2516 — метод передачи PPP через Ethernet (PPPoE).
Кадрирование по RFC 1662 используется на физическом уровне, в то время как LCP (Link Control Protocol) и NCP (Network Control Protocol) работают на уровне выше, управляя параметрами соединения.
Критика и ограничения
Несмотря на широкое распространение, RFC 1662 имеет ряд недостатков:
- Накладные расходы на экранирование: в асинхронном режиме байт-стаффинг может увеличить размер кадра на 10-20% при передаче случайных данных, что снижает пропускную способность.
- Отсутствие поддержки современных скоростей: для высокоскоростных линий (например, 10 Гбит/с) HDLC-подобное кадрирование становится неэффективным из-за необходимости обработки каждого байта.
- Ограниченная длина кадра: максимальный размер информационного поля (1500 байт) был установлен в эпоху модемов и не всегда подходит для современных приложений.
В современных сетях PPP с HDLC-кадрированием постепенно вытесняется более эффективными протоколами, такими как Ethernet (включая PPPoE) и MPLS. Однако RFC 1662 остаётся важным историческим документом, лежащим в основе многих технологий доступа.
Интересные факты
- RFC 1662 был разработан группой инженеров, включая Уильяма Симпсона (William Simpson), который также участвовал в создании протокола PPP.
- Документ был опубликован одновременно с RFC 1661, что подчеркивает их взаимосвязь.
- В RFC 1662 используется термин «HDLC-like framing», поскольку он не полностью соответствует стандарту HDLC (например, поле адреса фиксировано).
- Алгоритм байт-стаффинга, описанный в RFC 1662, был реализован в аппаратных контроллерах, что ускорило обработку кадров в модемах и маршрутизаторах.
Источники
- RFC 1662 — «PPP in HDLC-like Framing», July 1994.
- RFC 1661 — «The Point-to-Point Protocol (PPP)», July 1994.
- RFC 1332 — «The PPP Internet Protocol Control Protocol (IPCP)», May 1992.
- RFC 1994 — «PPP Challenge Handshake Authentication Protocol (CHAP)», August 1996.
- RFC 2516 — «A Method for Transmitting PPP Over Ethernet (PPPoE)», February 1999.
- ISO 3309 — «Data communication — High-level data link control procedures — Frame structure».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →