Протокол SLIP (Serial Line IP, RFC-1055) - это самый простой способ инкапсуляции IP-дейтаграмм для последовательных каналов связи.
Этот протокол стал популярным благодаря возможностям подключения домашних персональных машин к сети Интернет через порт RS-232 который соединен с модемом. IP-дейтаграмма в случае SLIP должна завершаться специальным символом 0xC0, что называется конец. Во многих реализациях дейтаграмма и начинается из этого символа. Если какой-то байт дейтаграмм равняется символу конец, то вместо него передается двухбайтовая последовательность 0xDB, 0xDC. Октет 0xDB выполняет в SLIP функцию ESC-символу. Если же байт дейтаграмм равняется 0xDB, то вместо него передается последовательность 0xDB, 0xDD.
Использование протокола SLIP допускает выполнение ряда условий:
- Каждый партнер обмена должен знать IP-адресу своего адресата, потому что не существует метода обмена такого рода информацией.
- SLIP в отличии от Ethernet не использует контрольные суммы, потому выявление и коррекция ошибок полностью ложится на программное обеспечение верхних уровней.
- Потому что кадр SLIP не имеет поле тип, его нельзя использовать, в отличии от кадров Ethernet, для реализации других протоколов методом инкапсуляции.
В первый раз протокол SLIP был применен в 1984 году в 4.2BSD. Скорость передачи информации при использовании протокола SLIP не превышает 19.2Кб/с, что обычно достаточно для интерактивного обмена в рамках протоколов Telnet или RLOGIN. Максимальный размер переданного блока (MTU) для SLIP лежит вблизи 256-512 байт, который обеспечивает умный компромисс между значением задержки отзыва (~256 мс.) и эффективностью использования канала (~98% для CSLIP). При этом для передачи одного символа (нажата клавиша) используется 20 байт заглавия в IP-дейтаграмм и 20 байт TCP-заголовка. Если учесть расходы формирования SLIP-кадру, накладные расходы превосходят 40 байт.
Частично этот недостаток устранен в новой версии CSLIP (Compressed SLIP, RFC-1144, предложенной Джекобсоном в 1990 году). В CSLIP заглавие сокращается к 3-5байт (против 40 в SLIP). Эта версия протокола способна поддерживать до 16 TCP-соединений на каждом из концов последовательного канала. Много современные SLIP-драйверов поддерживают и CSLIP.