Опции управления связью

Выше Вы уже столкнулись с LCP (Link Control Protocol, протокол управления связью), который используется для того, чтобы задать характеристики связи и проверить ее работу.

Две наиболее важных опции, которые могут быть включены LCP: максимальная длина получаемых пакетов (Maximum Receive Unit) и асинхронное отображение управляющего символа (Asynchronous Control Character Map). Имеется ряд других опций конфигурации LCP, но они слишком специализированы для обсуждения их здесь (большинству пользователей они никогда не понадобятся). Пожалуйста, обратитесь к RFC 1548 за их описанием.

Asynchronous Control Character Map, коротко именуется async map, используется на асинхронных связях, типа телефонных линий, для опознания управляющих символов, которые нужно найти (заменить специфической последовательностью с двумя символами). Например, Вы, может быть, захотите избежать символов XON и XOFF, используемых для установления связи программным обеспечением, потому что плохо сконфигурированный модем может нарушить получение стоп-сигнала. Другим символом, передача которого в чистом виде нежелательна, является Ctrl-] (символ ESC в telnet). PPP позволяет Вам обходить любой символ с ASCII-кодом от 0 до 31, определяя их в аsync-отображении.

Async-отображение предсавляет собой растр длиной в 32 бита с самым младшим битом, соответствующим ASCII-символу NULL, и старшим битом, соответствующим ASCII-коду 31. Если бит установлен, он сообщает, что соответствующий символ должен быть пропущен при передаче.

Для того, чтобы сообщить серверу, что он не должен пропускать все управляющие символы, а только некоторые из них, Вы можете точно определить новый asyncmap для pppd, используя опцию asyncmap. Например, если должны быть пропущены только ^S и ^Q (ASCII-коды 17 и 19, обычно используются для старт-сигнала (XON) и стоп-сигнала (XOFF)), то Вам надо использовать следующую опцию:

asyncmap 0x000A0000

Первоначально, async-отображение установлено в 0xffffffff, то есть все управляющие символы будут пропущены.

Максимальная длина получаемого пакета или Maximum Receive Unit (MRU) сообщает максимальный размер HDLC-фрейма, который мы хотим получить. Хотя это может напоминать Вам значение MTU (Maximum Transfer Unit), но эти два параметра имеют мало общего. MTU параметр ядра для работы с сетями, он описывает максимальный размер структуры для передачи через сетевой интерфейс (неважно какой). MRU советует передающей стороне, какой размер пакетов оптимален.

Выбор MRU задает не скорость связи, а скорее количество пакетов, пришедших без ошибок. Если Вы имеете в виду интерактивные приложения, то установить MRU в значение около 296 является хорошей идеей, чтобы случайный больший блок данных (например, из FTP-сеанса) не сделал курсор "прыгающим". Чтобы сообщить pppd о том, что ему надо запросить MRU 296, задайте ему опцию mru296. Но маленький MRU имеет смысл только, если Вы используете VJ-сжатие заголовков (оно включается по умолчанию).

pppd также понимает пару LCP-опций, которые конфигурируют поведение процесса переговоров, типа максимального числа запросов конфигурации, которые могут быть переданы перед тем, как связь будет прервана.

В заключение есть две опции, которые обращаются к LCP-ECHO сообщениям. PPP определяет эти два сообщения, Echo Request и Echo Response. pppd использует эту особенность, чтобы проверить, действует ли связь. Вы можете отключить это, используя опцию lcp-echo-interval. Время задается в секундах. Если никаких структур от удаленного хоста не получено за этот интервала, то pppd сгенерирует запрос ECHO и будет ожидать, какой ECHO-ответ вернет сервер. Если он не возвращает ответ, связь будет прервана после некоторого числа посланных запросов. Это число может быть установлено, используя опцию lcp-echo-failure. По умолчанию эта возможность отключена.