Глава 8. Протокол Point-to-Point

Точно так же, как SLIP, PPP протокол нужен для того, чтобы посылать пакеты через последовательную связь. Он позволяет сообщающимся сторонам обсудить опции такие, как IP-адрес, максимальный размер пакета во время запуска и обеспечивает авторизацию клиента. Для каждой из этих возможностей PPP имеет отдельный протокол. Ниже мы кратко рассмотрим эти базисные стандартные блоки PPP. Это обсуждение далеко не полно, и если Вы хотите выяснить что-либо еще относительно PPP, то я настоятельно рекомендую Вам прочитать спецификацию в RFC 1548 также, как и dozen или companion RFC. Кроме того, в O'Reilly издана хорошая книга "Using & Managing PPP" (автор Andrew Sun).

В самой основе PPP лежит управление передачей данных высокого уровня, сокращенно HDLC (High-Level Data Link Control), которое определяет границы структур PPP и обеспечивает 16 разрядов контрольной суммы. В противоположность более примитивному оформлению SLIP-пакета, PPP способен к захвату блоков из других протоколов таких, как IP, IPX Novell или Appletalk. PPP достигает этого, добавляя область протокола к основному HDLC.

Протокол управления связью LCP (Link Control Protocol) используется на вершине HDLC для согласования опций, имеющих отношение к каналу связи типа Maximum Receive Unit (MRU), которая заявляет максимальный размер пакета одной стороны связи.

Важный шаг в конфигурации связи PPP, организация клиентской авторизации. Хотя это необязательно, но для dial-up линий должно быть сделано. Обычно вызываемый хост просит клиента зарегистрировать себя, доказывая, что он знает секретный ключ. Если клиент набрал неправильный ключ, связь будет прервана. С PPP авторизация работает обоими способами. То есть, вызывающий может также просить, чтобы сервер опознал себя. Эти процедуры установления подлиности не зависят друг от друга. Имеются два протокола для различных типов авторизации, которые мы обсудим позже. Они называются "протокол установления подлинности пароля" или PAP (Password Authentication Protocol) и CHAP (Challenge Handshake Authentication Protocol).

Каждый сетевой протокол, который использует канал связи подобно IP, AppleTalk и т.д., может быть сконфигурирован динамически, используя Network Control Protocol (NCP). Например, чтобы послать IP-пакет, оба PPP-абонента должны сначала обсудить, какой из IP-адресов каждый из них использует. Протокол управления, используемый для этого, Internet Protocol Control Protocol (IPCP).

Помимо посылки IP-пакетов PPP также поддерживает Van Jacobson header compression IP-пакетов. Это метод для того, чтобы сократить заголовки TCP-блоков всего до трех байтов. Это также используется в CSLIP и относится к VJ header compression. Использование сжатия может быть задано во время запуска через IPCP.

PPP и Linux

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

PPP kernel-драйвер был написан 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 header compression. Как только Linux стала поддерживать IPX, драйвер PPP был расширен для того, чтобы обрабатывать IPX-пакеты.

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

Эта работа не может покрыть все аспекты pppd, но даст Вам полное введение. Для более подробной информации, обратитесь к man-страницам и файлам README дистрибутива pppd, которые должны помочь Вам решить большинство вопросов. Если у Вас остаются проблемы даже после чтения всей документации, то Вы должны обратиться в конференцию comp.protocols.ppp. Там Вы узнаете многое о pppd, эти конференции просто необъятны.



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости