Протоколы SLIP, PPP. Протокол SLIP и PPP

Основное отличие протоколов SLIP и PPP от рассмотренных выше протоколов – это то, что они поддерживают связь "точка-точка", когда сетевой кабель используется для передачи информации только между двумя компьютерами (или другим сетевым оборудованием), соединенным этим кабелем. Такое соединение характерно при подключении к Internet по телефонной линии, при соединении локальных сетей между собой по выделенным или коммутируемым линиям, а также в сетях X.25, Frame Relay и ATM (см. далее в лекциях). Существует большое количество протоколов канального уровня для соединения "точка-точка", однако здесь мы ограничимся рассмотрением только SLIP и PPP.

SLIP (Serial Line IP) – протокол канального уровня, который позволяет использовать последовательную линию передачи данных (телефонную линию) для связи с другими компьютерами по протоколу IP (протокол сетевого уровня). SLIP появился достаточно давно, для связи между Unix – компьютерами по телефонным линиям и, в настоящее время, является устаревшим, т.к. не позволяет использовать протоколы сетевого уровня, отличные от IP, не позволяет согласовывать IP – адреса сторон и имеет слабую схему аутентификации (подтверждения личности) пользователя, заключающуюся в пересылке по сети имени и пароля пользователя. Таким образом, имя и пароль (даже зашифрованный) могут быть перехвачены и повторно использованы злоумышленником, или он может просто дождаться, пока пользователь пройдет аутентификацию, а затем отключить его и самому подключится от имени пользователя. Поэтому, большинство провайдеров Internet для подключения к своим машинам используют протокол PPP.

Протокол канального уровня PPP (Point to Point Protocol – протокол точка-точка) позволяет использовать не только протокол IP, но также и другие протоколы сетевого уровня (IPX, AppleTalk и др.). Достигается это за счет того, что в каждом кадре сообщения хранится не только 16-битная контрольная сумма, но и поле, задающее тип сетевого протокола. Протокол PPP также поддерживает сжатие заголовков IP-пакетов по методу Ван Джакобсона (VJ-сжатие), а также позволяет согласовать максимальный размер передаваемых дейтаграмм, IP-адреса сторон и др. Аутентификация в протоколе PPP является двусторонней, т.е. каждая из сторон может потребовать аутентификации другой. Процедура аутентификации проходит по одной из двух схем:

а) PAP (Password Authentication Protocol) – в начале соединения на сервер посылается имя пользователя и

(возможно зашифрованный) пароль.

б) CHAP (Challenge Handshake Authentication Protocol) – в начале соединения сервер посылает клиенту случайный запрос (challenge). Клиент шифрует свой пароль, используя однонаправленную хэш-функцию (функция у которой по значению Y невозможно определить X) и запрос, в качестве ключа шифрования. Зашифрованный отклик (response) передается серверу, который, имея в своей базе данных пароль клиента, выполняет те же операции и, если полученный от клиента отклик совпадает с вычисленным сервером, то аутентификация считается успешной. Таким образом, пароль по линиям связи не передается. Даже если отклик клиента и будет перехвачен, то в следующий раз использовать его не удастся, т.к. запрос сервера будет другим. Определить же пароль на основании отклика – невозможно, т.к. хэш-функция шифрует данные только "в одну сторону". Для предотвращения вмешательства в соединение уже после прохождения клиентом аутентификации, в схеме CHAP сервер регулярно посылает испытательные запросы через равные промежутки времени. При отсутствии отклика или неверном отклике соединение прерывается.

Модель OSI. Верхние уровни

Протокол SLIP

Протокол SLIP (Serial Line IP) был первым стандартом де-факто, позволяющим устройствам, соединенным последовательной линией связи, работать по протоколам TCP/IP. Он был создан в начале 80-х годов и в 1984 году встроен Риком Адамсом (Rick Adams) в операционную систему 4.2 Berkley Unix. Позднее SLIP был поддержан в других версиях Unix и реализован в программном обеспечении для ПК.

Правда, ввиду его функциональной простоты, SLIP использовался и используется в основном на коммутируемых линиях связи, которые не характерны для ответственных и скоростных сетевых соединений. Тем не менее коммутируемый канал отличается от некоммутируемого только более низким качеством и необходимостью выполнять процедуру вызова абонента, поэтому SLIP вполне применим и на выделенных каналах.

Протокол SLIP выполняет единственную функцию - он позволяет в потоке бит, которые поступают по выделенному (или коммутируемому) каналу, распознать начало и конец IP-пакета. Помимо протокола IP, другие протоколы сетевого уровня SLIP не поддерживает.

Чтобы распознать границы IP-пакетов, протокол SLIP предусматривает использование специального символа END, значение которого в шестнадцатеричном представлении равно С0. Применение специального символа может породить конфликт: если байт пересылаемых данных тождественен символу END, то он будет ошибочно определен как признак конца пакета. Чтобы предотвратить такую ситуацию, байт данных со значением, равным значению символа END, заменяется составной двухбайтовой последовательностью, состоящей из специального символа ESC (DB) и кода DC. Если же байт данных имеет тот же код, что и символ SLIP ESC, то он заменяется двухбайтовой последовательностью, состоящей из собственно символа SLIP ESC и кода DD. После последнего байта пакета передается символ END.

Механизм формирования составных последовательностей показан на рис. 6.13. Здесь приведены стандартный IP-пакет (один байт которого тождественен символу END, а другой - символу SLIP ESC) и соответствующий ему SLIP-пакет, который больше на 4 байта.

Рис. 6.13. Инкапсуляция IP-пакетов в SLIP-пакеты

Хотя в спецификации протокола SLIP не определена максимальная длина передаваемого пакета, реальный размер IP-пакета не должен превышать 1006 байт. Данное ограничение связано с первой реализацией протокола SLIP в соответствующем драйвере для Berkley Unix, и его соблюдение необходимо для поддержки совместимости разных реализации SLIP (большинство современных реализации позволяют администратору самому установить размер пакета, а по умолчанию используют размер 1500 байт).

Для установления связи по протоколу SLIP компьютеры должны иметь информацию об IP-адресах друг друга. Однако возможна ситуация, когда, скажем, при осуществлении соединения между хостом и маршрутизатором последнему понадобится передать хосту информацию о его IP-адресе. В протоколе SLIP нет механизмов, дающих возможность обмениваться адресной информацией. Это ограничение не позволяет использовать SLIP для некоторых видов сетевых служб.

Другой недостаток SLIP - отсутствие индикации типа протокола, пакет которого инкапсулируется в SLIP-пакет. Поэтому через последовательную линию по протоколу SLIP можно передавать трафик лишь одного сетевого протокола - IP.

При работе с реальными телефонными линиями, зашумленными и поэтому искажающими пакеты при пересылке, требуются процедуры обнаружения и коррекции ошибок. В протоколе SLIP такие процедуры не предусмотрены. Эти функции обеспечивают вышележащие протоколы: протокол IP проводит тестирование целостности пакета по заголовку IP, а один из двух транспортных протоколов (UDP или TCP) проверяет целостность всех данных по контрольным суммам.

Низкая пропускная способность последовательных линий связи вынуждает сокращать время передачи пакетов, уменьшая объем содержащейся в них служебной информации. Эта задача решается с помощью протокола Compressed SLIP (CSLIP), поддерживающего сжатие заголовков пакетов. Появление CSLIP объясняется тем фактом, что при использовании программ типа Telnet, Riogin и других для пересылки одного байта данных требуется переслать 20-байтовый заголовок IP-пакета и 20-байтовый заголовок TCP-пакета (итого 40 байт). Спецификация CSLIP обеспечивает сжатие 40-байтового заголовка до 3-5 байт. На сегодняшний момент большинство реализации протокола SLIP поддерживают спецификацию CSLIP.

Пользователи Интернета, работающие через поставщиков услуг Интернета, представляют очень существенный сегмент сети. Прием и передача данных ведется при помощи модема, подключенного через последовательный порт компьютера к обычной телефонной линии. Для работы с сетью через модем используется один из двух существующих протоколов для работы по последовательным линиям связи: PPP или SLIP. Для того чтобы писать сетевые приложения, необходимо хорошо представлять себе ключевые моменты и различия между ними. Необходимо также иметь представление о производном от SLIP-протоколе, который называется SLIP с компрессией (обеспечивающий сжатие данных). В данной статье рассматриваются вопросы, связанные с первым протоколом - SLIP и его модификацией CSLIP (описаны в документах RFC 1055 и RFC 1144).

Для установления соединения по протоколу SLIP обычно используется модем, работающий по телефонной линии и подключенный к асинхронному, последовательному порту. Два компьютера, установившие такое соединение, обмениваются данными с паузами переменной длины. К сожалению, в телефонной линии всегда присутствуют помехи (шум), поэтому устройства, подключаемые к телефонной сети, отличают данные от возможных помех, пользуясь различными параметрами связи.

Соединение по протоколу SLIP

В первые годы существования Интернета протокол SLIP пользовался наибольшей популярностью для входа в Интернет начинающих пользователей с их домашних или рабочих компьютеров. Чтобы использовать SLIP, вы должны иметь соответствующее программное обеспечение, способное установить соединение по этому протоколу между вашим компьютером и хостом Интернета. Программное обеспечение такого рода (оно часто называется TCP-manager) выполняет функции управления сетевым устройством, то есть является драйвером сетевого устройства, такого как модем. Вы загружаете и выгружаете программу управления SLIP по мере надобности.

Соединение по протоколу SLIP - это наиболее экономичный и простой способ подключить ваш компьютер к Интернету. SLIP можно использовать, если ваша локальная сеть не имеет прямого доступа к Интернету, или вы хотите соединить отдельный компьютер. Для работы SLIP необходимо, чтобы ваш поставщик услуг Интернета также обеспечил протокол SLIP на своем узловом компьютере (хосте Интернета).

Известно, что каждый уровень стека протоколов TCP/IP инкапсулирует (вставляет) данные в том формате, в котором они требуются для передачи окружающим уровням. При "путешествии" данных через стек протоколов TCP/IP они последовательно окружаются дополнительной информацией (инкапсулируются) для следующего на пути уровня. Для того чтобы послать IP-датаграмму через сетевой уровень, вышележащий уровень соединения должен соответствующим образом инкапсулировать данные, оформить их в кадр, как того требует стандарт сетевого уровня протокола TCP/IP. Например, уровень соединения для сети Ethernet инкапсулирует данные в кадр Ethernet. Для сети token-ring, соответственно, это будут кадры стандарта token-ring.

Стандарты передачи данных по последовательному каналу связи, SLIP и CSLIP просто определяют другой способ инкапсуляции. SLIP и CSLIP подготавливают данные для передачи по последовательному каналу (обычно это интерфейс RS-232) в Интернет. Протокол РРР также инкапсулирует данные для этой же цели. Однако РРР использует более сложный метод инкапсуляции и интерфейс с Интернетом, нежели SLIP. Однако канал передачи для них всех по-прежнему последовательный и двухточечный. Логически, SLIP и РРР находятся между последовательным портом компьютера и его программным стеком TCP/IP.

Что такое SLIP?

Протоколы семейства TCP/IP могут работать, пользуясь широким спектром разнообразных сетевых технологий. Большинство сетевых технологий требуют применения четко определенной структуры кадра данных. Институт электрической и электронной инженерии (IEEE), основанный в 1963 году и имеющий в своем составе более 300 000 членов, описал набор различных стандартов, облегчающих производителям ПО и оборудования разработку и применение совместимых друг с другом стандартов по передаче данных, в том числе и в локальных компьютерных сетях. Как и большинство создающих стандарты организаций, IEEE нумерует исходящие документы. Группа стандартов IEEE 802 посвящена локальным компьютерным сетям. Например, стандарт IEEE 802.1 посвящен методам управления сетью, IEEE 802.3 и IEEE 802.5 описывают физические уровни для сетей Ethernet и token-ring, IEEE 802.2 содержит спецификацию уровня соединения для сетей типа Ehternet, token ring и ряда других технологий.

Преобразование (инкапсуляция) данных для передачи по последовательным каналам связи описано в документе под названием RFC 1055, "A Nonstandard for Transmission of IP Datagrams Over Serial Lines: SLIP", Rornkey, 1988. RFC 1055 не является официальным стандартом Интернета. Он описывает стандарт де-факто. Это значит, что, хотя сообщество Интернет и не рассматривает RFC 1055 в качестве стандарта, любой желающий, чтобы его программное обеспечение обладало совместимостью с уже существующими методами передачи, должен воспользоваться рекомендациями документа в своей работе.

SLIP - это протокол инкапсуляции IP-пакетов в кадры, пригодные для передачи по последовательному каналу связи. SLIP не предоставляет возможности адресовать данные, обозначать типы кадров, корректировать или определять повреждение данных, а также сжимать пакеты. Отсутствие этих возможностей делает протокол чрезвычайно простым в реализации и, следовательно, популярным. Несмотря на популярность, фирмы и производители программного обеспечения редко используют SLIP в качестве стандартного протокола, так как он не является официальным стандартом Интернета. Как правило, в качестве такого стандарта применяется РРР. Протокол РРР - это действительно стандарт Интернета, обладающий теми же свойствами по передаче данных в последовательном двухточечном канале, что и SLIP.

Инкапсуляция данных SLIP

Каждый протокол обладает свойством инкапсулировать данные. SLIP здесь не является исключением. Он использует специальные символы для ограничения кадра данных в последовательном канале. SLIP определяет следующие два символа, служащие для этой цели: End и Esc. Символом End служит символ с кодом ASCII 192 (ОхСО), символом Esc - символ с кодом 219 (OxDB). Компьютер с протоколом SLIP передает символ End в конце каждого пакета данных. Символ Esc используется для обозначения данных, имеющих тот же номер, что и символы Esc и End внутри пакета данных. В том, что для Esc и End выбрали именно указанные коды, нет особого скрытого смысла. Просто они были выбраны, и все. Поэтому почти наверняка в потоке данных пользователя будут встречаться как символы Esc, так и End. Когда это происходит, SLIP использует Esc, чтобы сообщить приемнику, что следующий символ с кодом End на самом деле не является концом кадра. Например, когда в пакете данных попадается байт с номером ОхСО (код символа End), SLIP подставляет двухбайтную Esc-последовательность Esc OxDC. Если байт имеет код самого символа Esc, SLIP вставляет двухбайтную Esc-последовательность Esc OxDD.

Реализация SLIP на принимающей стороне совершает противоположные действия, чтобы правильно разобрать поступающий пакет данных. Если в последовательности встречается символ Esc, SLIP сразу же смотрит на следующий за Esc символ и в зависимости от его номера так или иначе интерпретирует принятую последовательность. Например, если следующий за Esc символ имеет код OxDC, SLIP заменяет два символа на один с кодом ОхСО. Если принято сочетание Esc OxDD, оно заменяется на байт с кодом OxDB. Когда SLIP видит, что пришедший байт имеет код End и перед ним нет байта с кодом Esc, это значит, что достигнут конец кадра. Далее, SLIP передает все полученные до этого данные вышележащему сетевому уровню в качестве IP-пакета.

Большинство реализаций SLIP посылают байт с кодом End также и впереди кадра данных. Строго говоря, протокол SLIP не требует этого. Однако, поступая таким образом, SLIP позволяет принимающей стороне эффективно отбросить любой мусор, принятый до передачи действительного кадра и расценивающийся как кадр. Реализация SLIP, действующая описанным образом, позволяет отбросить кадр данных нулевой длины, когда принимающая сторона получает два следующих друг за другом символа End.

Как мы уже отметили выше, вставка символа End перед началом кадра позволяет принимающей стороне избавиться от любого шума на линии связи. Однако такими мерами все способности SLIP определить и тем более исправить ошибки данных исчерпываются. SLIP возлагает задачу по определению и исправлению пакетов данных и сообщений полностью на вышележащие протоколы, то есть на сетевой и транспортный уровни TCP/IP. Протокол IP требует присутствия и проверки контрольной суммы в заголовке пакета, поэтому SLIP вполне может не обращать внимания на возможное повреждение данных - эту работу за него сделает протокол IP, который проверит пакет и отбросит его в случае повреждения. TCP-протокол таким же образом проверит контрольную сумму своего заголовка и сегмента данных и в случае повреждения поступит с пакетом надлежащим образом. Итак, мы видим, что, поскольку вышележащие протоколы и так проверяют состояние и целостность данных, нет никакой необходимости вводить дополнительный контроль данных на уровне протокола SLIP.

В предыдущем абзаце мы повторили тот факт, что IP и TCP обнаруживают и корректируют ошибки, могущие возникнуть при передаче данных к ним с нижележащих уровней, например, от протокола SLIP, который сам не обнаруживает ошибок. Поскольку в UDP не применяется контрольных сумм, никто не может гарантировать, что пакет UDP дойдет до получателя по SLIP неповрежденным, коль скоро SLIP тоже не обнаруживает ошибки. Вообразите, что вы передаете пакеты UDP по шумной телефонной линии, пользуясь SLIP. Ни один из этих протоколов не обратит внимания на возможный сбой и повреждение данных. Компьютер, получивший поврежденный пакет, с чистой совестью будет считать его нормальным, и такое поведение сможет привести к непредсказуемым последствиям. Поэтому нельзя передавать датаграммы UDP по протоколу SLIP, если только вы не используете UDP с контрольной суммой.

Недостатки SLIP

Кроме отсутствия обнаружения и коррекции ошибок, в протоколе SLIP отсутствуют еще некоторые достаточно важные для профессиональных сетевых программистов функции. Например, SLIP не в состоянии адресовать пакеты, обозначать пакеты различными типами, а также сжимать данные внутри пакета. В RFC 1055 прямо указано, что создатели SLIP разрабатывали его, когда наличие таких функций не было существенно.

Каждый раз после установления SLIP-соединения компьютер превращается в полноправный хост Интернета со своим собственным IP-адресом. Таким образом, становится возможным обслуживать и других пользователей Интернета. Поскольку ваш поставщик услуг Интернета может применять динамическое присвоение адреса (из диапазона, имеющегося у него), при каждом новом соединении ваш компьютер будет получать новый IP-адрес. Следовательно, другие компьютеры в сети будут вынуждены искать вас каждый раз под неизвестно каким адресом.

В дополнение ко всем неприятностям, отметим, что не существует метода прямо указать ваш новый IP-адрес при установлении SLIP-соединения. Каждый раз вы вынуждены вручную вводить изменившийся адрес в компьютер, поскольку один компьютер не может автоматически передать IP-адрес другому, пользуясь SLIP. Из такого положения есть только один выход: получить у поставщика услуг один, принадлежащий только вам IP-адрес компьютера. Как правило, иметь такой адрес обойдется вам дороже, чем иметь динамически присваиваемый.

На свете есть много компьютеров, в которых в одно и то же время может исполняться несколько различных сетевых протоколов. Например, компьютеры фирмы DEC могут совмещать TCP/IP и DECnet. Разумеется, работая с двумя протоколами сразу, вы захотите, чтобы они жили вместе на одном и том же проводе, соединяющем вас с внешним миром. Такая задача проста, пока вы применяете Ethernet в качестве сетевой среды. Фреймы Ethernet имеют соответствующие поля, где указывается тип передающегося пакета, однако как только вы попытаетесь перейти на SLIP, обнаружится, что у кадра SLIP такое поле отсутствует, а, следовательно, он может передать данные только для одного IP протокола.

Сети Ethernet передают информацию со скоростью до 10 миллионов бит в секунду. Соединение SLIP может работать на скоростном модеме, но даже при этом обеспечивать скорость только 19200 бит в секунду. Другими словами, Ethernet быстрее SLIP более, чем в пятьсот раз. Для увеличения производительности SLIP-соединения вы можете сжимать передаваемые по модему данные, что уменьшает необходимый трафик сети и позволяет передать больше информации за меньшее время. Предположим, требуется передать файл размером в 100 Кбайт (100х1024 байт) по модему на скорости 1200 бод. Для этого потребуется около 14 минут:
100 х 1024 = 102400 байт
102400 байт / 120 байт в секунду = 853 секунды 853 секунды / 60 секунд в минуте = 14 минут

Если передаваемые данные предварительно сжать в соотношении 1:4, объем уменьшится до 25 Кбайт. Время, нужное для передачи, сократится до четырех минут. Новые модемы используют встроенную технологию сжатия данных. Некоторые программные протоколы также используют сжатие данных при работе. Информация в заголовках пакетов TCP и IP, которая меняется редко, может быть эффективно устранена с применением простейших алгоритмов сжатия данных, когда передаются только изменяющиеся части заголовков. RFC 1055, описывающий протокол SLIP, не описывает, однако, никакого алгоритма компрессии. В следующем разделе вы познакомитесь с реализацией протокола CSLIP, обладающего возможностью сжимать заголовки TCP/IP для увеличения производительности.

Протокол SLIP со сжатием (CSLIP)

Алгоритм SLIP со сжатием заголовков данных, увеличивающий производительность сети, рассматривается в документе под названием RFC 1144, "Сжатие заголовков TCP/IP на низкоскоростных последовательных соединениях" (Compressing TCP/IP Headers for Low-Speed Serial Links, Jacobson, 1990).

Протокол CSLIP сжимает только заголовки пакетов. Сами данные пакета остаются неизменными. Точнее, CSLIP сжимает исключительно заголовки TCP и IP для сегментов данных TCP. CSLIP не затрагивает ни заголовки пакетов UDP, ни заголовки IP для них. Разработано достаточно много различных реализаций протокола CSLIP, поэтому вам скорее всего, не понадобится изобретать новую.

Предпосылки к появлению CSLIP

Чтобы понять, почему сжатие заголовков пакетов столь эффективно, давайте рассмотрим некоторые типичные сетевые задачи;

Интерактивный вход в удаленный компьютер (Telnet);

Интерактивная передача файлов (FTP);

Электронная почта с использованием Simple Mail Transfer Protocol (SMTP);

Чтение и передача новостей с использованием Network News Transfer Protocol (NNTP).

Как и любая другая линия связи, последовательная линия переносит пакеты данных пользователя, снабженные заголовками. Для увеличения пропускной способности линии не мешало бы сжимать заголовки пакетов. Способы передачи пакетов по сети делятся на две большие категории: интерактивные и неинтерактивные. Мы покажем позже, что эффективность канала связи зависит от типа передачи пакетов.

Прекрасными примерами неинтерактивной передачи пакетов служат два протокола: FTP и NNTP. Разумеется, начальная стадия работы обоих процессов включает их ручную настройку и передачу параметров. Однако все, что происходит потом, - это перекачка информации с одного сетевого хоста на другой, не требующая вашего вмешательства. При запуске ftp с вашего компьютера, вы указываете имя файла для передачи, а потом сидите и ждете, пока поток байтов, составляющих этот файл, попадет с другого хоста на ваш собственный. Точно так же вы выбираете группу новостей в приложении NNTP и ждете, пока все новости с сервера передадутся на ваш компьютер. Это примеры неинтерактивной передачи пакетов.

Типичным примером интерактивной передачи информации служит Telnet. Каждое нажатие на клавиатуре пользователя обычно приводит к посылке пакета, содержащего код введенного символа, на удаленный сетевой хост. Несмотря на то, что многие реализации Telnet умеют передавать сразу всю введенную строку символов, обычно эта возможность не используется, ибо пользователь хочет получить незамедлительную реакцию удаленного компьютера на введенный символ. Кроме того, удаленный компьютер посылает пакет-подтверждение с копией введенного символа обратно пользователю. В общем, Telnet создает двунаправленный поток данных, состоящий из маленьких пакетов.

Обыкновенно IP-заголовки имеют длину в 20 байт, заголовок TCP имеет длину также в 20 байт. Отсюда следует, что сеанс Telnet создает пакеты данных длиной в 40 байт заголовков для каждого переданного символа в один байт. Для понимания принципа работы CSLIP нужно усвоить два различных, но тесно связанных понятия: эффективность линии и интерактивная реакция системы. Эффективность линии - это коэффициент, равный длине заголовка TCP/IP-пакета, деленной на длину заголовка плюс длину данных пользователя в этом пакете. Мы сейчас вычислим эффективность линии для сеанса Telnet.

Предположим, что программа Telnet передает один пакет на одно нажатие клавиши, которое, в свою очередь, состоит из одного символа длиной в байт. Пакет данных, содержащий символ длиной в байт и снабженный TCP/IP-заголовками (еще 40 байт), будет иметь длину в 41 байт. Приемник пакета должен послать обратно подтверждение о доставке, и это будет пакет длиной в 41 байт. Теперь сосчитаем эффективность линии. Она составит менее трех процентов (процесс передачи по TCP/IP дуплексный, так как пакеты данных следуют независимо друг от друга в обоих направлениях, поэтому эффективность линии считается независимо для обоих направлений. Впрочем, в нашем случае результат одинаков как для одного, так и для другого направления).

Для увеличения эффективности линии надо либо увеличить количество данных в пакете, либо уменьшить размер заголовков. Алгоритм CSLIP концентрирует внимание на уменьшении размеров заголовков пакетов. Кроме того, CSLIP соблюдает требования интерактивной реакции системы. Интерактивность реакции системы - это просто ее свойство убедить пользователя в том, что все работает. Например, когда пользователь нажимает клавишу, он, вполне понятно, хочет увидеть, как введенный символ отобразится на его мониторе. Если работа сети приводит к ощутимым задержкам при передаче пакета, пользователь расценит интерактивность сети как неудовлетворительную.

В RFC 1144 рассматривается, каким образом особенности передачи заголовков пакетов сетевых данных могут влиять на восприятие ситуации пользователем. Предположив, что каждый введенный символ приводит к появлению двух пакетов длиной в 41 байт, получим, что для обеспечения задержки эха не более чем на 200 миллисекунд, необходимо, чтобы скорость обмена составляла по меньшей мере 4000 бит в секунду. Другими словами, медленная последовательная линия заставляет пользователя думать, будто скорость работы программы мала, даже если программа вполне эффективна в действительности.

Неинтерактивная передача пакетов также может влиять на интерактивную реакцию системы. Например, чтобы передача неинтерактивных пакетов обладала эффективностью более 90 процентов при длине TCP/IP-заголовков в 40 байт, необходимо сохранять максимальную длину пакета (MTU) в диапазоне от 500 до 1000 байт. Предположим далее, что ваше соединение SLIP имеет MTU 1024 байт при скорости модема 9600 бод. При этом, один пакет в одну сторону будет передаваться приблизительно в течение секунды. Любой интерактивный сеанс будет при этом ждать окончания передачи неинтерактивного пакета.

Влияние аппаратных средств

Кроме рассмотренного нами человеческого фактора, на проектирование протокола также влияют и некоторые особенности аппаратных средств. Производители модемов используют различные способы увеличения эффективности работы этих устройств. При программировании приложений нет необходимости знать досконально, что происходит внутри модема, однако нужно обратить внимание на некоторые вещи.

Теория связи оговаривает фактическую полосу пропускания между двумя устройствами. Эффективная полоса пропускания в зависимости от используемой техники позволяет увеличить (и превысить) фактическую полосу пропускания при сжатии передаваемых данных. Сжатие данных позволяет передать их больше за одно и то же время. В некоторых случаях достигаемая при этом скорость передачи превышает теоретический предел скорости канала связи.

В дуплексном протоколе, характерном для модема, данные следуют в обоих направлениях одновременно. Однако для обоих направлений редко применяется одна и та же полоса пропускания, так как одна из сторон, участвующих в соединении, скорее всего, передает больше данных, чем другая. Именно для нее отводится большая полоса пропускания за счет противоположной стороны. Распределение полосы пропускания происходит прозрачно для пользователя и управляется самим модемом.

Чтобы определить, какая из сторон в соединении требует большей полосы, производители модемов считают, что одной из сторон всегда является человек, и именно она требует наибольшей полосы. Модем, однако, должен самостоятельно догадаться об этом. За отправную точку берется скорость в 300 бит в секунду. Большинство людей не могут печатать со скоростью, превышающей указанную. К сожалению, ситуация меняется, как только мы начинаем передавать пакеты TCP/IP с заголовками из сорока байт на каждый введенный символ. Скорость увеличивается в соотношении 40:1 и заставляет модем часто менять полосы в противоположных направлениях. IP-пакет размером в 41 байт состоит из 328 бит, что выходит за пределы, предписанные для узнавания человека модемом. При покупке модема следует обращать внимание на такие тонкости, как поддерживаемые типы сжатия данных и другие возможности по передаче данных. Покупка хорошего в этих отношениях модема позволит вам значительно увеличить производительность сетевого соединения.

Цели проектирования

Современная архитектура модемов позволяет сократить потребность в скорости передачи нажатий клавиш до 300 бит в секунду и даже меньше. Если мы рассматриваем десятибитовую последовательность на один символ (восемь бит данных плюс старт- и стоп-биты), 300 бит в секунду образуют полосу пропускания в 30 байт данных в секунду. Обычная скорость печати на клавиатуре составляет 5 символов в секунду. Таким образом, для передачи заголовков остается 25 байт (30 - 5) при условии сохранения выбранной максимальной полосы пропускания в 300 бит в секунду. Другими словами, на один передаваемый символ допустимо передать еще и пятибайтовый заголовок. Кроме того, такая передача сохраняет хорошую интерактивность системы, так как пауза между нажатием и получением эха у нас не превысит 200 миллисекунд при скорости 4096 бит в секунду.

Реализация SLIP

В RFC 1144 обсуждаются методы, служащие для сокращения необходимой длины передаваемых заголовков с 40 байт на пакет до всего лишь трех-пяти. Джекобсон показывает, что на протяжении TCP-соединения около половины информации заголовка остается неизменной. Протокол CSLIP требует, чтобы после установки TCP-соединения хостами, они хранили у себя копии последнего принятого и переданного пакетов, и в дальнейшем, храня у себя номер текущего соединения, просто передает изменения в заголовках, позволяя собирать реальный заголовок на основе имеющейся неизменной части и принятого изменения.

Как только появляется новый CSLIP-пакет, сетевое ПО по идентификатору устанавливает, к какому соединению он относится и восстанавливает его в нормальном виде. Как видим, по CSLIP не передаются настоящие заголовки пакетов, что сокращает размер пакета сразу на 20 байт.

Далее, CSLIP не передает поле IP заголовка "Общая длина пакета" (Total Length), получая его вместо этого от сетевого уровня соединения и сокращая длину еще как минимум на два байта. В заголовке IP-пакета остается только поле контрольной суммы заголовка, однако нет никакой необходимости передавать контрольную сумму отсутствующих данных. Вместо передачи контрольной суммы заголовка CSLIP вычисляет ее на месте, в отличие от SLIP, который по-прежнему вынужден передавать контрольную сумму по каналу связи. Мы убираем контрольную сумму заголовка - и получаем еще два байта экономии.

В результате остается еще 16 байт в заголовке пакета, которые могут изменяться на протяжении сеанса TCP/IP. Разумеется, они изменяются не постоянно, а лишь иногда. В RFC 1144 отмечается, что, скажем, протокол FTP изменяет только идентификаторы пакетов (ID), номер последовательности и контрольную сумму в направлении от передатчика к приемнику. Идентификатор пакета, пакет-подтверждение, контрольная сумма и, возможно, окно передачи - вот что обычно изменяется по направлению от приемника к передатчику. Передатчик CSLIP всегда хранит копию последнего посланного пакета у себя. Таким образом, он знает, какие именно изменения произошли в следующем по счету пакете для передачи. Если передатчик шлет только изменившиеся байты, средний размер заголовка пакета становится равным примерно десяти байтам. Зная, каким образом изменяются поля в заголовке, можно достичь еще большего сокращения его размера.

Идентификатор пакета изменяется, как правило, на единицу при передаче каждого нового пакета. Что это значит? Что разность двух идентификаторов можно закодировать небольшим положительным целым числом, меньшим, чем 256 (один байт). Как правило, это число равно единице. Далее, для передатчика номер последовательности текущего пакета будет числом, полученным от сложения этого номера у предыдущего пакета с длиной предыдущего пакета. Максимальная длина IP-пакета равна 64000 байт, значит, изменение номера последовательности между двумя пакетами никогда не превысит двух байт. На этом этапе, посылая вместо реальных полей только их изменения, CSLIP экономит нам еще от трех до четырех байт дополнительно.

Итак, мы сумели сократить размер TCP/IP-заголовка с 40 байт до пяти, что и являлось поставленной целью. Детали реализации в общем случае не существенны, если только вам не хочется написать собственную реализацию CSLIP...

Введение
Собственно SLIP и PPP - это протоколы, адаптирующие IP для работы на последовательных линиях. Они представляют собой некую прокладку между IP и модемными протоколами. SLIP и PPP имеет смысл использовать вкупе со скоростными модемами на достаточно скоростных линиях.
Основная функция программного обеспечения SLIP/PPP - организовать пересылку IP -пакетов по последовательной линии, которая не предусматривает деления пересылаемой информации на какие-либо отдельные блоки и пересылает все данные единым непрерывным потоком. SLIP/PPP как раз и занимается организацией такой пересылки, чтобы на другом конце можно было этот сплошной и непрерывный поток данных разделить на составляющие его IP -пакеты, выделить их и передать дальше уже как IP -пакеты.
SLIP/PPP очень удобен для подключения домашнего компьютера к локальной сети, которая, в свою очередь, входит в Internet. Например, можно воспользоваться PPP , чтобы подключить свою домашнюю персоналку к сети вашей организации. И тогда ваш компьютер будет иметь такие же возможности работы в Internet, как и любой другой компьютер вашей организации, подключённый к Сети через Ethernet.
SLIP/PPP подходят и для подключения домашнего компьютера (или очень маленькой локальной сети) к собственно првайдеру, который может предоставить непосредственный доступ в Internet.
Однако следует понимать, что эти протоколы, вообще-то, совсем не предназначены для подключения к Internet сетей средней величины или больших сетей: они не предназначены для работы на высокоскоростных линиях, которые требуются для обслуживания большого количество пользователей.

Протоколы SLIP и CSLIP
Первым стандартом де-факто, позволяющим устройствам, соединенным последовательной линией связи, работать по протоколам TCP/IP , был протокол SLIP (Serial Line IP ), созданный в начале 80-х годов и в 1984 году встроенный Риком Адамсом (Rick Adams) в ОС 4.2 Berkley UNIX. Позднее SLIP был поддержан и в других версиях UNIX и реализован в программном обеспечении для ПК.
Популярность протокола SLIP объясняется тем, что он дал возможность подключаться к сети Internet посредством стандартного порта RS232, имеющегося в большинстве компьютеров. В настоящее время SLIP широко используется в основном на домашних компьютерах, подключенных к последовательным линиям, которые имеют пропускную способность от 1200 бит/с до 19,2 Кбит/с.

Ограничения

Соединение по протоколу SLIP (Serial Lines Internet Protocol). Каждый протокол обладает свойством инкапсулировать данные. Протокол SLIP использует специальные символы для ограничения кадра данных в последовательном канале. Для того чтобы распознать границы SLIP-кадров, передаваемых по последовательной линии связи, и отделить один кадр от другого, протокол SLIP предусматривает использование специального символа END, значение которого в шестнадцатеричном представлении равно C0. Применение специального символа может породить конфликт: если байт пересылаемых данных тождественен символу END, то он будет ошибочно определен как признак конца кадра. Чтобы предотвратить такую ситуацию, байт данных со значением, равным значению символа END, заменяется составной двухбайтовой последовательностью, состоящей из специального символа ESC (DB) и кода DC. (Применяемый в протоколе SLIP символ ESC, не равный символу ESC в кодировке ASCII, будем обозначать SLIP ESC.) Если же байт данных имеет тот же код, что и символ SLIP ESC, то он заменяется двухбайтовой последовательностью, состоящей из собственно символа SLIP ESC и кода DD. После последнего байта пакета передается символ END.
Механизм формирования составных последовательностей показан на рис.1. Здесь приведены стандартный пакет IP, один байт которого тождественен символу END, а другой - символу SLIP ESC, и соответствующий ему пакет SLIP, который больше на 4 байта.

Хотя в спецификации протокола SLIP не определена максимальная длина передаваемого SLIP-кадра, реальный его размер определяется длной IP- пакета и не должен превышать 1006 байтов. Данное ограничение связано с первой реализацией протокола SLIP в соответствующем драйвере для Berkley Unix, и его соблюдение необходимо для поддержки совместимости разных реализаций SLIP .
Популярность протокола SLIP объясняется тем, что он дал возможность подключаться к сети Internet посредством стандартного порта RS 232, имеющегося в большинстве компьютеров. Программа управления SLIP загружается и выгружается по мере надобности. Большинство программ управления SLIP имеют возможность набирать телефонный номер провайдера.
Программное обеспечение, реализующее работу с протоколом SLIP (TCP-manager), выполняет функции управления сетевым устройством, то есть является драйвером сетевого устройства, такого, как модем. Оно принимает IP -пакеты от программы (точнее процесса), посылающей их (от программы сетевого уровня), обкладывает своей служебной информацией и передаёт устройству последовательной передачи данных (модему, в последовательный порт и т.п.). На другом конце последовательной линии аналогичная программа принимает символы, приходящие с устройства последовательной передачи данных, освобождает от служебной информации и передаёт то, что получилось, а должны получаться при этом IP -пакеты, соответствующей программе (сетевого уровня), которая обрабатывает IP -пакеты.


Ограничения. Для установления связи по протоколу SLIP в стеке протоколов TCP/IP компьютеры должны иметь информацию об адресах IP друг друга. Однако возможна ситуация, когда, скажем, при осуществлении соединения между хостом и маршрутизатором последнему понадобится передать хосту информацию о его адресе IP. Но в протоколе SLIP нет механизмов, дающих возможность обмениваться адресной информацией. Это ограничение не позволяет использовать SLIP для некоторых видов сетевого сервиса. Например, каждый раз после установления SLIP -соединения компьютер превращается в полноправный хост Internet со своим собственным IP -адресом. Если провайдер использует динамическое присвоение IP -адресов, то при каждом новом соединении компьютер будет получать новый IP адрес. Следовательно, другие компьютеры в сети будут вынуждены искать его под неизвестно каким адресом.
Другой недостаток SLIP - отсутствие индикации типа протокола, пакет которого инкапсулируется в пакет SLIP. Поэтому через последовательную линию по протоколу SLIP можно передавать трафик лишь одного сетевого протокола.
При работе с реальными телефонными линиями, зашумленными и поэтому искажающими пересылаемые данные, требуются процедуры обнаружения и коррекции ошибок. В протоколе SLIP такие процедуры не предусмотрены. Эти функции обеспечивают:

  • Либо вышележащие протоколы, например, в стеке TCP/IP протокол IP проводит тестирование целостности пакета по заголовку IP, а один из двух транспортных протоколов (UDP или TCP) проверяет целостность всех данных по контрольным суммам. Однако в протоколе UDP не обязательно использование контрольных сумм, поэтому совместное использование UDP и SLIP нежелательно.
  • Либо нижележащие протоколы. Поскольку для установления соединения по протоколу SLIP обычно используется модем, работающий по телефонной линии и подключенный к асинхронному, последовательному порту. Два компьютера, установившие такое соединение, обмениваются данными с паузами переменной длины. К сожалению, в телефонной линии всегда присутствуют помехи, иначе называемые шумом, поэтому модемы, подключаемые к телефонной сети, отличают данные от возможных помех, пользуясь различными параметрами связи. При использовании модема и программного обеспечения для обмена данными настраиваются определенные параметры связи, такие как скорость, размер данных, контроль четности. Для успешного взаимодействия двух модемов оба они должны быть одинаково настроены.
Но, несмотря на это, для повышения эффективности работы протоколу SLIP не помешало бы иметь собственный механизм (пусть даже простейший) коррекции ошибок.

Отсутствие этих возможностей делает протокол SLIP очень простым в реализации и, следовательно, популярным.

Compressed SLIP
Низкая пропускная способность последовательных линий вынуждает сокращать время передачи пакетов, уменьшая объем содержащейся в них служебной информации. Эта задача решается с помощью протокола Compressed SLIP , поддерживающего сжатие заголовков пакетов. Этот протокол был создан в Lawrence Berkeley Labs (LBL) Ван Якобсоном, как способ повысить эффективность последовательной передачи и уровень сервиса прикладных программ, использующих TCP/IP на медленных линиях. Появление CSLIP объясняется тем, что при использовании программ типа telnet, rlogin и других для пересылки одного байта данных требуется переслать 20-байтовый заголовок пакета IP и 20-байтовый заголовок пакета TCP . Спецификация CSLIP обеспечивает сжатие 40 байтов заголовка до 3-5 байтов.
На низких скоростях передачи данных эта разница заметна только при работе с пакетами, несущими малые объёмы информации, такие пакеты порождаются, например, при работе telnet или rlogin. На больших же скоростях CSLIP даёт меньший выигрыш и почти ничего не даёт для пакетов с большими объёмами данных, например, ftp -пакетов.
CSLIP для пересылки пакета использует информацию из предыдущего пакета, т.е. передача имеет структуру цепочки. Первый пакет в цепочке - несжатый. Если какой-либо пакет теряется, то цепочка рвётся, нельзя этот же пакет запросить в самом конце, его нужно пересылать заново тут же, т.е. прекращать процесс передачи и начинать новую цепочку. Таким образом, эта технология при частых пропажах или искажениях пакетов приводит к большим потерям времени, чем обычный SLIP . Это происходит из-за задержек на остановку и передачу нового несжатого пакета.

Протокол PPP (Point-to-Point Protocol).

Библиографическая справка

В конце 1980 гг. Internet (крупная международная сеть, соединяющая множество исследовательских организаций, университетов и коммерческих концернов) начала испытывать резкий рост числа главных вычислительных машин, обеспечивающих TCP/IP . Преобладающая часть этих главных вычислительных машин была подсоединена к локальным сетям (LAN) различных типов, причем наиболее популярной была Ethernet. Большая часть других главных вычислительных машин соединялись через глобальные сети (WAN), такие как общедоступные сети передачи данных (PDN) типа Х.25 . Сравнительно небольшое число главных вычислительных машин были подключены к каналам связи с непосредственным (двухточечным) соединением (т.е. к последовательным каналами связи). Однако каналы связи с непосредственным соединением принадлежат к числу старейших методов передачи информации, и почти каждая главная вычислительная машина поддерживает непосредственные соединения. Например, асинхронные интерфейсы RS-232-С встречаются фактически повсюду.
Одной из причин малого числа каналов связи IP с непосредственным соединением было отсутствие стандартного протокола формирования пакета данных Internet. Протокол Point-to-Point Protocol (PPP) (Протокол канала связи с непосредственным соединением) предназначался для решения этой проблемы. Помимо решения проблемы формирования стандартных пакетов данных Internet IP в каналах с непосредственным соединением, РРР также должен был решить другие проблемы, в том числе присвоение и управление адресами IP , асинхронное (старт/стоп) и синхронное бит-ориентированное формирование пакета данных, мультиплексирование протокола сети, конфигурация канала связи, проверка качества канала связи, обнаружение ошибок и согласование варианта для таких способностей, как согласование адреса сетевого уровня и согласование компрессии информации. РРР решает эти вопросы путем обеспечения расширяемого Протокола Управления Каналом и семейства Протоколов Управления Сетью (Network Control Protocols) (NCP) , которые позволяют согласовывать факультативные параметры конфигурации и различные возможности. Сегодня PPP , помимо IP , обеспечивает также и другие протоколы, в том числе IPX и DECnet .
В отличие от SLIP- протокола РРР может работать через любой интерфейс DTE/DCE (например, EIA RS-232-C, EIA RS-422, EIA RS-423 и CCITT V.35). Протокол PPP достаточно неприхотлив и может работать без управляющих сигналов модемов (таких, как Request to Send, Clear to Send, Data Carrier Detect и Data Terminal Ready). Единственным абсолютным требованием, которое предъявляет РРР , является требование обеспечения дублированных схем (либо специально назначенных, либо переключаемых), которые могут работать как в синхронном, так и в асинхронном последовательном по битам режиме, прозрачном для блоков данных канального уровня РРР . РРР не предъявляет каких-либо ограничений, касающихся скорости передачи информации, кроме тех, которые определяются конкретным примененным интерфейсом DTE/DCE.

Компоненты PPP
РРР обеспечивает метод передачи дейтаграмм через последовательные каналы связи с непосредственным соединением. Он содержит три основных компонента:
Алгоритм работы.
Для того чтобы организовать связь через канал связи с непосредственным соединением, инициирующий РРР сначала отправляет пакеты для выбора конфигурации и (факультативно) проверки канала передачи данных. После того, как канал установлен и пакетом проведено необходимое согласование факультативных средств, инициирующий РРР отправляет пакеты NCP , чтобы выбрать и определить конфигурацию одного или более протоколов сетевого уровня. Как только конфигурация каждого выбранного протокола определена, дейтаграммы из каждого протокола сетевого уровня могут быть отправлены через данный канал. Канал сохраняет свою конфигурацию для связи до тех пор, пока явно выраженные пакеты или NCP не закроют этот канал, или пока не произойдет какое-нибудь внешнее событие (например, истечет срок бездействия таймера или вмешается какой-нибудь пользователь).
может согласовывать модификации стандартной структуры блока данных РРР . Однако модифицированные блоки данных всегда будут четко различимы от стандартных блоков данных. (Подробнее смотри далее).


Фаза Dead начинает и заканчивает процесс связи. В случае появления внешнего события (например, готовность аппаратного обеспечения осуществить связь) будет инициирована фаза Establish, в которой происходит согласование различных параметров соединения (обмен пакетами ). В случае невозможности согласовать некоторый параметр процесс прервется и протокол перейдет в состояние Dead. Если же все необходимые параметры согласованы, будет инициирована фаза Authenticate, в которой проводится проверка на подлинность участников сеанса (если таковая требуется). В случае неудачной аутентификации будет инициирована фаза Terminate, подготавливающая разрыв соединения. Если же фаза Authenticate прошла успешно, протокол переходит к фазе Network. В этой фазе осуществляется пересылка данных в соответствии с ранее сконфигурированными параметрами связи (в частности - типом сетевого протокола). Фаза Network начинается с того, что каждый протокол сетевого уровня (например, IP или IPX) конфигурирует различные параметры (скажем, согласует алгоритм сжатия заголовка пакета, обменивается адресной информацией) с помощью соответствующих протоколов Network Control Protocol (например, IP Control Protocol или IPX Control Protocol). Фаза Terminate (используется по окончании передачи кадров или в случае возникновения каких-либо ошибок) прерывает передачу кадров и переводит протокол РРР в состояние Dead.

Структура кадра протокола PPP.
РРР использует принципы, терминологию и структуру блока данных процедур HDLC (High Level Data Link Control ) (ISO 3309-1979) Международной Организации по Стандартизации (ISO), модифицированных стандартом ISO 3309-1984/PDAD1. ISO 3309-1979 определяет структуру блока данных HLDC для применения в синхронных окружениях. ISO 3309-1984/PDAD1 определяет предложенные для стандарта ISO 3309-1979 модификации, которые позволяют его использование в асинхронных окружениях. Процедуры управления РРР используют дефиниции и кодирование управляющих полей, стандартизированных ISO 4335-1979 и ISO 4335-1979/Addendum 1-1979.
1 байт 1 байт 1 байт 2 байта (до 1500 байтов) 2 байта 1 байт
Flag Address Control Protocol Information CRC Flag
(7E) (FF) (03) (7Е)

Flag Длина последовательности "флаг" равна одному байту; она указывает на начало или конец блока данных. Эта последовательность состоит из бинарной последовательности 01111110. Address
Длина поля "адрес" равна 1 байту; оно содержит бинарную последовательность 11111111, представляющую собой стандартный широковещательный адрес. РРР не присваивает индивидуальных адресов станциям, то есть содержимое поля "адрес" никогда не изменяется.
Control Поле "управление" составляет 1 байт и содержит бинарную последовательность 00000011, которая требует от пользователя передачи информации непоследовательным кадром. Предусмотрены услуги без установления соединения канала связи, аналогичные услугам LLC Type 1. Protocol Длина поля "протокол" равна 2 байтам; его значение идентифицирует протокол, заключенный в информационном поле блока данных. Значения поля Protocol и соответствующие им пакеты
Значение поля Protocol Тип пакета
0021 IP
0023 ISO CLNP
0025 Xerox NS IDP
0027 DECnet Phase IV
0029 Apple Talk
002В IPX
002D Van Jacobson Compressed TCP/IP 1
002F Van Jacobson Compressed TCP/IP 2
8021 IP Control Protocol
8023 ISO CLNP Control Protocol
8025 Xerox NS IDP Control Protocol
8027 DECnet Phase IV Control Protocol
8029 Apple Talk Control Protocol
802B IPX Control Protocol
C021 Link Control Protocol
C023 User/Password Authentication Protocol

Information Длина поля "данные" - от нуля и больше; оно содержит дейтаграмму для протокола, заданного в поле протокола. Максимальная длина умолчания информационного поля равна 1500 байтам. В соответствии с априорным соглашением, разрешающие реализации РРР могут использовать другие значения максимальной длины информационного поля.
Если при синхронном типе связи в поле "данные" появляется байт со значением 7E (значение байта-флага), то ситуация обрабатывается на аппаратном уровне с помощью техники вставки битов (bit stuffing).
При асинхронном (стартстопном)типе связи ситуации, когда между байтами-флагами появляются байты со значениями 7E или 7D (значение символа Esc - escape) и значениями меньшими 20 (управляющие символы ASCII), обрабатываются при помощи составных последовательностей. Байт 7E передается как двухбайтовая последовательность 7D,5E; байт 7D - как последовательность 7D,5D; байты XX со значениями меньшими 20 - как XX, 01. CRC Поле "проверочная последовательность блока данных" (CSC) обычно составляет 16 бит (два байта). В соответствии с априорным соглашением, разрешающие реализации РРР могут использовать 32-х битовое (четырехбайтовое) поле CSC, чтобы улучшить процесс выявления ошибок.

Преимущества.
По сравнению с протоколом SLIP протокол PPP является значительно более развитым инструментом для работы на последовательных линиях и имеет следующие преимущества:
    • возможность одновременной работы по различным сетевым протоколам, а не только по IP ;
    • проверка целостности данных путем подсчета контрольной суммы;
    • поддержка динамического обмена адресами IP ;
    • возможность сжатия заголовков IP - и TCР -пакетов, разработанных Van Jacobson (механизм похож на реализованный в протоколе CSLIP ).
Перспективы
Тестовые испытания, проведенные недавно в фирме Morning Star Technologies, показали, что существенной разницы в производительности протоколов SLIP и РРР нет. Различие приемо-передающих характеристик компьютеров и модемов и даже качество реализации протоколов влияет на производительность гораздо больше, чем собственно различия между протоколами.
До недавнего времени пользователей протокола SLIP было больше, чем пользователей протокола РРР , но в основном это было связано с малым число программных продуктов, поддерживающих РРР . Однако сейчас не вызывает сомнений, что будущее за протоколом РРР . Это подтверждается массовым появлением продуктов, реализующих этот протокол.
Среди последних новостей - реализация спецификации Point-to-PointTunneling Protocol (фирма US Robotic совместно с Microsoft).

Протокол управления канала связи PPP (LCP)

LCP обеспечивает метод организации, выбора конфигурации, поддержания и окончания работы канала с непосредственным соединением. Процесс LCP проходит через 4 четко различаемые фазы:
    • Организация канала и согласование его конфигурации. Прежде чем может быть произведен обмен каких-либо дейтаграмм сетевого уровня (например, IP ), LCP сначала должен открыть связь и согласовать параметры конфигурации. Эта фаза завершается после того, как пакет подтверждения конфигурации будет отправлен и принят.
    • Определение качества канала связи. LCP обеспечивает факультативную фазу определения качества канала, которая следует за фазой организации канала и согласования его конфигурации. В этой фазе проверяется канал, чтобы определить, является ли качество канала достаточным для вызова протоколов сетевого уровня. Эта фаза является полностью факультативной. LCP может задержать передачу информации протоколов сетевого уровня до завершения этой фазы.
    • Согласование конфигурации протоколов сетевого уровня. После того, как LCP завершит фазу определения качества канала связи, конфигурация сетевых протоколов может быть по отдельности выбрана соответствующими NCP , и они могут быть в любой момент вызваны и освобождены для последующего использования. Если LCP закрывает данный канал, он информирует об этом протоколы сетевого уровня, чтобы они могли принять соответствующие меры.
    • Прекращение действия канала. LCP может в любой момент закрыть канал. Это обычно делается по запросу пользователя (человека), но может произойти и из-за какого-нибудь физического события, такого, как потеря носителя или истечение периода бездействия таймера.
Существует три класса пакетов LCP :
    • Пакеты для организации канала связи. Используются для организации и выбора конфигурации канала.
    • Пакеты для завершения действия канала. Используются для завершения действия канала связи.
    • Пакеты для поддержания работоспособности канала. Используются для поддержания и отладки канала.
Эти пакеты используются для достижения работоспособности каждой из фаз LCP .

Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: