Протокол 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.
Таким образом, протокол SLIP
выполняет работу по выделению из
последовательности передаваемых по
последовательному каналу бит границ IP-пакета.
Протокол не имеет механизмов передачи
адресной информации, идентификации типа
протокола сетевого уровня, определения и
коррекции ошибок.
дальше |содержание |назад
|