Протокол последовательной линии Интернета ( SLIP ) [1] [2] представляет собой инкапсуляцию протокола Интернета [a], разработанного для работы через последовательные порты и соединения маршрутизаторов . Он задокументирован в RFC 1055. На персональных компьютерах SLIP в значительной степени был заменен протоколом точка-точка (PPP), который лучше спроектирован, имеет больше функций и не требует настройки конфигурации IP-адреса перед его установкой. Однако на микроконтроллерах SLIP по-прежнему является предпочтительным способом инкапсуляции IP-пакетов из-за его очень малых накладных расходов.
Некоторые называют успешный и широко используемый протокол последовательной линии Интернета RFC 1055 "SLIP Рика Адамса", [3] чтобы избежать путаницы с другими предложенными протоколами под названием "SLIP". Эти другие протоколы включают в себя гораздо более сложный протокол последовательной линии интерфейса RFC 914, приложение D. [3]
SLIP изменяет стандартную датаграмму TCP/IP следующим образом:
Для SLIP требуется конфигурация последовательного порта с 8 битами данных , без контроля четности и либо аппаратное управление потоком EIA , либо режим CLOCAL (3-проводной нуль-модем ) для работы UART .
SLIP не обеспечивает обнаружение ошибок , полагаясь на протоколы верхнего уровня для этого. Поэтому SLIP сам по себе неудовлетворителен для канала, подверженного ошибкам, например, для некачественного коммутируемого соединения.
В некоторых модемных соединениях также требовались экранирующие символы SLIP для экранирования набора команд Hayes , что позволяло передавать двоичные данные через те модемы, которые распознавали некоторые символы как команды.
Версия SLIP со сжатием заголовков называется Compressed SLIP ( CSLIP ). [4] Алгоритм сжатия, используемый в CSLIP, известен как Van Jacobson TCP/IP Header Compression . [5] CSLIP не влияет на полезную нагрузку пакета и не зависит от сжатия модемом последовательной линии, используемым для передачи. Он уменьшает заголовок протокола управления передачей (TCP) с двадцати до семи байтов . CSLIP не влияет на датаграммы протокола пользовательских дейтаграмм (UDP).
RFC 1055, «нестандарт» для SLIP, берет свое начало в реализации 3COM UNET TCP/IP из 1980-х годов. Рик Адамс добавил SLIP в популярную 4.2BSD в 1984 году, и он «быстро прижился». К моменту RFC (1988) он описывался как «обычно используемый на выделенных последовательных соединениях и иногда для коммутируемых целей». [6]
Последняя версия FreeBSD, включающая "slattach" (команда для подключения к slip) в базу данных руководства, — FreeBSD 7.4, выпущенная в 2011 году. В руководстве утверждается, что для CSLIP существует автосогласование. Версия FreeBSD унаследована от 4.3BSD. [7]
Linux ранее использовал одну и ту же кодовую базу для SLIP и KISS (TNC) . Разделение произошло до начала истории ядра git (Linux-2.6.12-rc2, 2005). [8] Драйвер SLIP предлагает специальный "6-битный" экранированный режим для модемов, неспособных обрабатывать не-ASCII символы. [9] Команда Linux slattach (написанная независимо) также имеет возможность автоматически определять поддержку CSLIP. [10]