Содержание
Введение
Собственно 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
,
асинхронное (старт/стоп) и синхронное бит-ориентированное формирование пакета
данных, мультиплексирование протокола сети, конфигурация канала связи, проверка
качества канала связи, обнаружение ошибок и согласование варианта для таких
способностей, как согласование адреса сетевого уровня и согласование компрессии
информации. РРР
решает эти вопросы путем обеспечения расширяемого
Протокола Управления Каналом (Link Control
Protocol) (LCP)
и семейства Протоколов Управления Сетью
(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
РРР
обеспечивает метод передачи дейтаграмм через последовательные
каналы связи с непосредственным соединением. Он содержит три основных
компонента:
- Метод формирования дейтаграмм для передачи по последовательным каналам.
РРР
использует протокол High-level Data Link Control
(HDLC)
(Протокол управления каналом передачи данных высокого уровня)
в качестве базиса для формирования дейтаграмм при прохождении через каналы с
непосредственным соединением.
- Расширяемый протокол LCP (Link
Control Protocol
)
для организации, выбора конфигурации и
проверки соединения канала передачи данных.
- Семейство протоколов NCP (Network Control Protocols
)
для
организации и выбора конфигурации различных протоколов сетевого уровня.
РРР
предназначен для обеспечения одновременного пользования
множеством протоколов сетевого уровня.
Алгоритм работы.
Для того чтобы организовать связь через канал связи с непосредственным
соединением, инициирующий РРР
сначала отправляет пакеты LCP
для
выбора конфигурации и (факультативно) проверки канала передачи данных. После
того, как канал установлен и пакетом LCP
проведено необходимое согласование факультативных средств, инициирующий
РРР
отправляет пакеты NCP
, чтобы выбрать и определить конфигурацию
одного или более протоколов сетевого уровня. Как только конфигурация каждого
выбранного протокола определена, дейтаграммы из каждого протокола сетевого
уровня могут быть отправлены через данный канал. Канал сохраняет свою
конфигурацию для связи до тех пор, пока явно выраженные пакеты LCP
или
NCP
не закроют этот канал, или пока не произойдет какое-нибудь внешнее
событие (например, истечет срок бездействия таймера или вмешается какой-нибудь
пользователь).
Link
Control Protocol (LCP)
может согласовывать модификации стандартной
структуры блока данных РРР
. Однако модифицированные блоки данных всегда
будут четко различимы от стандартных блоков данных. (Подробнее смотри далее).
Фаза Dead начинает и заканчивает процесс связи. В случае появления внешнего
события (например, готовность аппаратного обеспечения осуществить связь) будет
инициирована фаза Establish, в которой происходит согласование различных
параметров соединения (обмен пакетами LCP
). В
случае невозможности согласовать некоторый параметр процесс прервется и протокол
перейдет в состояние 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
.
|