Структура кадра PPPoE?

Какова реальная структура кадра PPP при инкапсуляции в PPPoE? Если читать ту же википедию, спец. литературу то всегда указывается что присутствую следующие поля:
Флаг 0x7E | Адрес 0xFF | Управление 0x03 | Данные | Контрольная сумма | Флаг 0x7E

Данные в свою очередь разбиваются на:
Протокол 0xХХХХ | Данные

Но если смотреть на содержимое ethernet фрейма PPPoE сессии с помощью Wireshark то там нет Флаг 0x7E, Адрес 0xFF, Управление 0x03, Контрольная сумма, Флаг 0x7. Есть только Протокол 0xХХХХ и Данные (IP пакеты).
Буду премного признателен за разъяснение.
  • Вопрос задан
  • 2969 просмотров
Решения вопроса 1
vvpoloskin
@vvpoloskin Куратор тега Компьютерные сети
Инженер связи
Интересный вопрос, захотелось самому поковыряться)

Если кратко, то стандарт PPPoE отличается от стандарта PPP в части полей Address и Control. А остальные поля привнесла одна известная американская контора Microsoft. Подробнее ниже.

Открываем RFC 1661, там описано, как должен инкапсулироваться PPP. Видим, что поле Protocol Information может быть размером 8-16 бит. В частности, в PPPoE и есть только 8 бит, в чистом PPP - 16.

Классический PPP должен поддерживать те же самые заголовки, что и более ранний HDLC, для этого протокола необходимы поля Address и Control. Эти же поля успешно перекочевали в PPP, хотя формально они в нем не нужны.

Копаем дальше. В реализации протокола PPP определен механизм синхронизации LCP, у него есть опция Address-and-Control-Field-Compression. Так вот в RFC 2516 (PPPoE, не такое уж оно и большое) явно говорится, эту опцию не использовать, и вполне логично выплюнуть поля Address и Control. Как используется эта опция в PPP можно почитать здесь.

Итак, разобрались с Address и Control, займемся флагом 0x7e. Явно в стандарте PPP вы нигде не найдете такое поле, зато оно имеется в описании стандарта для win-систем. Это ни что иное, как простая переделка протокола под себя конторой MS)

Ну и напоследок несколько картиночек простых ICMP-echo пакетов.

Вот вам пример дампа PPP.dce336b7b2ac44ee9e473320c03f3f00.jpg
Как видите, в нем нет полей flags, FCS. Зато есть Control и Address.

А вот вам картинка с дампом PPPoE.4649c63383d84f34958a4ff51e30e6a0.jpg
В нем тоже нет этих полей, как нет и Control и Address. PPPoE в таком виде не нужна совместимость с HDLC, зато нужно больше параметров синхронизации. Эти параметры идут в заголовке PPP-Over-Ethernet-Session.

Ну и напоследок картинка с дампом PPTP. Address и Control присутствуют, хотя также не обязательны, зато в начале есть заголовок GRE.370faf47fec247b996c75c8e786fbd25.jpg

Итог - не надо читать вики просто так без оглядки, верить всему что там написано.

P. S. дампы можете сами посмотреть на packetlife, просматривать их можно сразу в браузере через cloudshark
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Такие вещи не на Википедии нужно смотреть. Заходишь на сайт хранилища IETF в строку поиска вводишь "pppoe" и разбираешься в документах. Узнав номер RFC в котором описано то, что тебе нужно - можешь поискать перевод на русский.

А вообще, возможно через Wireshark ты просто что-то не то смотришь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы