Реклама:

info.krc.karelia.ru

win -:|:- koi -:|:- iso -:|:- dos -:|:- mac

Start -:|:- Проекты -:|:- О нас

Frequently Asked Questions по FreeBSD 2.X : Работа в сети : Не могу заставить работать ppp. Что я делаю не так? : Согласование LCP продолжается, пока не закроется соединение
Previous: В протоколе есть сообщения о том, что 'magic being the same'.
Next: Вскоре после соединения ppp блокируется

10.7.9. Согласование LCP продолжается, пока не закроется соединение

В настоящий момент одной из неприятных особенностей реализации ppp является то, что она не связывает сообщения LCP, CCP & IPCP с запросами. Как результат, если реализация ppp с одной стороны более чем на 6 секунд медленнее, чем с другой, противоположная сторона будет посылать два дополнительных запроса на согласование параметров LCP. Это фатально.

Предположим, что у нас работают две реализации, A и B. A начинает посылать запросы LCP сразу же после соединения, а B требуется 7 секунд для запуска. Когда B запускается, A послало 3 LCP-запроса. Полагаем, что режим эха выключен, в противном случае мы столкнулись бы с проблемами "магического" числа, описанные в предыдущем разделе. B посылает REQ, затем ACK на первый REQ от A. Это приводит к тому, что A входит в состояние OPENED и посылает (первый) ACK обратно B. В то же самое время B посылает обратно ещЃ два ACK в ответ на два дополнительных REQ, посланные A до старта B. B затем получает первый ACK от A и возвращается в состояние REQ-SENT, послав ещЃ один (четвЃртый) REQ согласно RFC. Затем он получает третий ACK и входит в состояние OPENED. В то же время B принимает четвЃртый REQ от A, что возвращает его в состояние ACK-SENT и посылает ещЃ один (второй) REQ и (четвЃртый) ACK согласно RFC. A получает REQ, переходит в состояние REQ-SENT и посылает ещЃ один REQ. Он немедленно принимает последующий ACK и входит в состояние OPENED.

Это будет продолжаться до тех пор, пока одна из сторон не обнаружит, что это ни к чему не приводит и не закроет соединение.

Лучшим способом избежать этой ситуации является конфигурация одной из сторон как passive, чтобы она ждала другую для начала согласования. Это можно сделать командой

          set openmode passive
        

С этой командой нужно быть осторожным. Вы также должны будете использовать команду

          set stopped N
        

для ограничения периода ожидания, в течении которого ppp ждЃт начала согласования с противоположной стороны. Как вариант, может быть использована строка

          set openmode active N
        

(где N - период ожидания в секундах перед тем, как начать согласование).


Frequently Asked Questions по FreeBSD 2.X : Работа в сети : Не могу заставить работать ppp. Что я делаю не так? : Согласование LCP продолжается, пока не закроется соединение
Previous: В протоколе есть сообщения о том, что 'magic being the same'.
Next: Вскоре после соединения ppp блокируется

 

Rambler's Top100 Service Яндекс цитирования