PPP на Linux

В Linux функциональные возможности PPP разделены на две части: low-level HDLC драйвер, расположенный в ядре, и pppd daemon в пользовательском пространстве, который обрабатывает различные протоколы управления. Текущая версия PPP для Linux - linux-ppp-1.0.0. Она включает в себя ядерный модуль PPP, pppd, и программу под названием chat, которая используется для установления удаленного соединения.

Драйвер PPP для ядра был создан Michael Callahan. Pppd базируется на реализации PPP для Sun и 386BSD, созданной Drew Perkins и его командой, и поддерживается Paul Mackerras. Его интеграцию в Linux осуществил Al Longyear. Программа chat была разработана Karl Fox.

Также как и SLIP, PPP реализован через специальную line discipline. Для использования последовательной линии в качестве PPP-соединения, сначала необходимо установить соединение через модем, а затем переключить линию в режим PPP. В этом режиме все входящие данные проходят через драйвер PPP, который проверяет входящие HDLC структуры на соответствие (каждая HDLC структура содержит 16-битную контрольную сумму). На данный момент он поддерживает сжатие заголовков по методу Van Jacobson. Как только Linux начнет поддерживать IPX, драйвер PPP будет дополнен функционалом обработки IPX пакетов.

В работе драйвера ядра активно участвует pppd, PPP daemon, который выполняет первоначальную инициализацию и идентификационный процесс, необходимые перед началом фактической передачи сетевого трафика по соединению. Поведение pppd можно настроить с помощью различных опций. PPP — сложный протокол, и описать все его особенности в одной главе невозможно.

Оба автора заявили, что будут заняты на ближайшее время. Если у вас возникли вопросы по PPP в целом, лучше всего обратиться к участникам NET канала Linux activists mailing list.

Эта книга не рассматривает все аспекты pppd в деталях, но дает общее представление. Для глубокого изучения обратитесь к инструкциям и файлам README в исходном коде pppd. Если после изучения документации у вас остались вопросы, рекомендуем обратиться к newsgroup comp.protocols.ppp, где можно найти множество полезной информации о pppd.