<<
>>

Протокол SLIP

Протокол SLIP (Serial Line IP) стал первым промышленным стандартом де-факто, который позволил устройствам, соединенным последовательным низ­коскоростным интерфейсом связи, работать по протоколам TCP/IP.
Этот Internet-протокол разрешает в качестве линий связи использовать обычные те­лефонные линии. Протокол был создан в начале 80-х годов и согласно RFC-1055 впервые был включен в качестве средства доступа к IP-сети в пакет фирмы 3COM - UNET. В 1984 г. протокол SLIP был встроен Риком Адамсом (Rick Adams) в операци­онную систему 4.2 Berkley Unix. Позднее SLIP был поддержан в других верси­ях Unix и реализован в программном обеспечении для ПК. Ввиду своей функциональной простоты, SLIP использовался и используется в основном на коммутируемых линиях связи, которые не характерны для от­ветственных и скоростных сетевых соединений. Тем не менее, коммутируе­мый канал отличается от некоммутируемого только более низким качеством и необходимостью выполнять процедуру вызова абонента, поэтому SLIP вполне применим и на выделенных каналах.
Протокол SLIP выполняет единственную функцию - он позволяет в потоке бит, которые поступают по выделенному (или коммутируемому) каналу, рас­познать начало и конец IP-пакета. Другие протоколы сетевого уровня SLIP не поддерживает. Программное обеспечение, реализующее работу с протоколом SLIP, прини­мает символы, приходящие с устройства последовательной передачи данных (модема, последовательного порта и т. д.); рассматривает и толкует их как составляющие IP-пакета; укладывает полученные данные в полнокровный нор­мальный IP-пакет и передает этот пакет далее - соответствующей програм­ме, которая обрабатывает IP-пакеты, например модулю TCP. На обратном пути SLIP получает от программы (сетевого уровня), посылающей IP-пакеты, IP- пакет, вычленяет его содержимое, соответствующим образом переформати­рует, затем делит на символы и отправляет его через устройство последова­тельной передачи по последовательной линии в сеть - соседнему узлу Internet.
Структура кадра протокола SLIP. Протокол SLIP предназначен для пе­редачи IP-пакетов через асинхронные линии связи. Поскольку асинхронная пе­редача является байт-ориентированной, то перед транспортировкой средства­ми SLIP пакет разделяется на октеты (байты), которые передаются один за другим. Как известно, в сети Ethernet IP-пакет может иметь длину до 1500 байт, что обусловливает необходимость его сегментации - разбиения на более короткие пакеты. SLIP делает это довольно примитивно. Он не анализирует поток дан­ных и не выделяет какую-либо информацию в этом потоке. Для распознавания границы IP-пакетов, протокол SLIP предусматривает использование специаль­ного символа END, значение которого в шестнадцатеричном представлении равно (С0)А. Для разделения SLIP-кадров между ними вставляется служебный байт-разделитель - символ ESC (DB)A. Применение специального символа может породить конфликт: если байт пересылаемых данных тождественен символу END, то он будет ошибочно оп­ределен как признак конца пакета. Чтобы такой байт, встретившийся внутри IP-пакета, не воспринимался как разделитель, предусмотрен механизм встав­ки байта (byte staffing). Таким образом, собственно служебной информации в протоколе SLIP до­вольно мало: на IP-пакет добавляется один байт-разделитель (между пакета­ми они не дублируются), а иногда появляется несколько дополнительных бай­тов, вставляемых по процедуре вставки байта.
Рис. 5.11. Соответствие между блоками данных протоколов IP и SLIP

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

В каждом из SLIP-кадров полностью воспроизводится IP-заголовок разме­ром 20 байт (рис. 5.11). Из-за этого избыточность, возникающая при передаче длинных пакетов по протоколу SLIP, весьма велика. Существенна и избыточ­ность, порождаемая самим асинхронным методом передачи на интерфейсе ПК- модем (минимум 20 % на дополнительные стартовый и столовый биты на каж­дый байт). Но с этим ничего поделать нельзя, поскольку все персональные компьютеры имеют только асинхронные порты. Для установления связи по протоколу SLIP компьютеры должны иметь ин­формацию об IP-адресах друг друга. В протоколе SLIP нет механизмов, обес­печивающих возможность обмениваться адресной информацией, так как в структуре кадра не предусмотрено поле адреса и его специальная обработка. Поэтому компьютерам, взаимодействующим по протоколу SLIP, должны быть назначены IP-адреса заранее. Каждый раз после установления SLIP-соедине­ния компьютер превращается в полноправный хост Internet со своим собствен­ным IP-адресом. Если провайдер использует динамическое присвоение 1Р-ад- ресов, то при каждом новом соединении компьютер будет получать новый IP-адрес. Следовательно, другие компьютеры в сети будут вынуждены искать его под неизвестно каким адресом. Другим недостатком протокола SLIP является отсутствие в нем индикации типа протокола, пакет которого инкапсулируется в SLIP-кадр. Поэтому через последовательную линию по протоколу SLIP можно передавать трафик лишь одного сетевого протокола. SLIP не позволяет различать пакеты по типу про­токола, например, IP или DECnet. При работе по протоколу SLIP предполага­ется использование только протокола IP, что определено его названием Serial Line IP. При работе с реальными телефонными линиями, зашумленными и поэтому искажающими информацию при пересылке, необходимы процедуры обнаруже­ния и коррекции ошибок. В протоколе SLIP такие процедуры не предусмотре­ны. Эти функции обеспечивают вышележащие протоколы: протокол IP прово­дит тестирование целостности пакета по заголовку IP, а один из двух транспортных протоколов (UDP или TCP) проверяет целостность всех данных по контрольным суммам.
В стандартном SLIP не предусмотрено сжатие данных, но существуют его варианты со сжатием, например С SLIP. Большинство современных модемов, поддерживающих стандарты V.42bis и MNP5, осуществляют эту операцию ап­паратно. Низкая пропускная способность последовательных линий связи заставляет сокращать время передачи пакетов, уменьшая объем содержащейся в них слу­жебной информации. Эта задача решается с помощью протокола Compressed SLIP (CSLIP), поддерживающего сжатие заголовков IP-пакетов. Протокол CSLIP был создан в Lawrence Berkeley Labs (LBL) Ван Якобсо­ном как средство повышения эффективности последовательной передачи и уровня сервиса прикладных программ, использующих TCP/IP на медленных линиях. Протокол CSLIP, по сравнению с протоколом SLIP, использует в шесть раз меньше избыточной информации (в виде заголовков). На низких скоростях передачи данных эта разница заметна только при работе с IP-пакетами, несу­щими малые объемы информации, такие пакеты формируются, например, при работе telnet или rlogin. На больших же скоростях CSLIP дает меньший выиг­рыш и почти никакого выигрыша для пакетов с большими объемами данных, например ftp-пакетов. Появление CSLIP объясняет тот факт, что при использовании программ типа telnet, rlogin и других для пересылки одного байта данных требуется переслать 40 байт служебной информации. При сжатии заголовков 20 октетов заголовка IP и 20 октетов заголовка TCP (итого 40 байт) заменяются 3-7 октетами. CSLIP для сжатия - распаковки и проверки правильности пересылки пакета (и заголовка) использует информацию из предыдущего пакета, т.е. передача име­ет структуру цепочки. Первый пакет в цепочке - несжатый. Если какой-либо пакет теряется, то цепочка рвется, нельзя этот же пакет запросить в самом конце передачи, его нужно пересылать заново тут же, т.е. прекращать процесс передачи и начинать новую цепочку. Таким образом, эта технология при пропа­же или искажении пакетов приводит к большим потерям времени, чем обыч­ный SLIP. Это происходит из-за задержек на останов и передачу нового несжа­того пакета. Так как в протоколе SLIP процедуры обнаружения и коррекции ошибок не предусмотрены, то нежелательно совместное использование дейтаграммного протокола UDP и SLIP. Это объясняется тем, что в протоколе UDP не обяза­тельно применение контрольных сумм. Дальнейшим развитием протокола SLIP является протокол РРР (RFC 1331), в котором устранены некоторые недостатки протокола SLIP. Необходимо по­мнить что SLIP и РРР - протоколы канального уровня.
<< | >>
Источник: В .А. Галкин, Ю .А. Григорьев. Телекоммуникации и сети. 2003

Еще по теме Протокол SLIP:

  1. Глава 4. Киотский протокол в Украине
  2. § 6. Протокол судебного заседания
  3. Судебные протоколы вообще
  4. Пример обработки протокола.
  5. Базовый протокол устранения проблемы с BSFF
  6. В. Г. Олифер, Н. А. Олифер. 54 Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 3-е изд, 2006
  7. Определение пятое
  8. Основания
  9. Определение семнадцатое
  10. 3.1. Общие положения
  11. Основания