Интернет-протокол последовательной линии
Набор интернет-протоколов |
---|
Прикладной уровень |
Транспортный уровень |
Интернет-слой |
Слой связи |
Интернет- протокол последовательной линии ( SLIP ) [ 1 ] [ 2 ] представляет собой инкапсуляцию протокола интернет- [ а ] предназначен для работы через последовательные порты и соединения маршрутизатора . Это задокументировано в РФК 1055 . На персональных компьютерах SLIP в значительной степени был заменен протоколом « точка-точка» (PPP), который лучше спроектирован, имеет больше функций и не требует настройки конфигурации IP-адреса до его установки. Однако на микроконтроллерах SLIP по-прежнему является предпочтительным способом инкапсуляции IP-пакетов из-за его очень небольших накладных расходов.
Некоторые люди называют успешный и широко используемый Интернет-протокол последовательной линии RFC 1055 «SLIP Рика Адамса». [ 3 ] чтобы избежать путаницы с другими предложенными протоколами под названием «SLIP». Эти другие протоколы включают гораздо более сложные RFC 914, приложение D, Протокол последовательного интерфейса . [ 3 ]
Описание
[ редактировать ]Шестнадцатеричное значение | Декабрьское значение | Октябрьское значение | Аббревиатура | Описание |
---|---|---|---|---|
0xC0 | 192 | 300 | КОНЕЦ | Конец кадра |
0xDB | 219 | 333 | ЭКУ | Выход из кадра |
0xDC | 220 | 334 | ESC_END | Транспонированный конец кадра |
0xDD | 221 | 335 | ESC_ESC | Транспонированное перемещение кадра |
SLIP изменяет стандартную TCP/IP датаграмму следующим образом:
- добавление к нему специального байта «END» , который различает границы датаграммы в потоке байтов,
- если в отправляемых данных встречается байт END, вместо него отправляется двухбайтовая последовательность ESC, ESC_END,
- если в данных встречается байт ESC, отправляется двухбайтовая последовательность ESC, ESC_ESC.
- варианты протокола могут начинать, а также заканчивать пакеты с помощью END.
последовательного порта Для SLIP требуется конфигурация с 8 данных битами , без контроля четности и либо EIA аппаратное управление потоком , либо режим CLOCAL (3-проводной нуль-модем ) UART настройки работы .
SLIP не обеспечивает обнаружение ошибок , поскольку для этого он полагается на протоколы верхнего уровня . Таким образом, SLIP сам по себе неудовлетворителен для канала, который подвержен ошибкам, например, при плохом качестве коммутируемого соединения.
Escape-символы SLIP также требовались при некоторых модемных соединениях для экранирования набора команд Hayes , что позволяло передавать двоичные данные через те модемы, которые распознавали некоторые символы как команды.
CSLIP
[ редактировать ]Версия SLIP со заголовков сжатием называется Compressed SLIP ( CSLIP ). [ 4 ] Алгоритм сжатия, используемый в CSLIP, известен как сжатие заголовка TCP/IP Ван Якобсона . [ 5 ] CSLIP не влияет на полезную нагрузку данных пакета и не зависит от какого-либо сжатия модемом последовательной линии, используемым для передачи. Это уменьшает заголовок протокола управления передачей (TCP) с двадцати байтов до семи байтов. CSLIP не влияет на дейтаграммы протокола пользовательских дейтаграмм (UDP).
История
[ редактировать ]RFC 1055, «нестандартный» для SLIP, берет свое начало от реализации 3COM UNET TCP/IP 1980-х годов. Рик Адамс добавил SLIP к популярной 4.2BSD в 1984 году, и она «быстро прижилась». Ко времени RFC (1988 г.) он описывался как «обычно используемый на выделенных последовательных каналах, а иногда и для коммутируемого доступа». [ 6 ]
Последней версией FreeBSD, включающей «slattach» (команду для подключения к скольжению) в базе данных руководства, является 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 ] Команда slattach в Linux (написанная независимо) также имеет возможность автоматически определять поддержку CSLIP. [ 10 ]
См. также
[ редактировать ]- Интернет-протокол параллельной линии
- Слип
- KA9Q
- Прямое кабельное соединение
- Внутриполосная сигнализация
- ПОЦЕЛУЙ (протокол любительского радио)
- Последовательное заполнение служебных байтов
Ссылки
[ редактировать ]- ^ SLIP на самом деле не заботится о внутренней структуре IP: любые протоколы сетевого уровня могут передаваться по проводу.
- ^ «Интернет-вопросы и ответы» . Нью-Йорк Таймс . 31 мая 1996 г.
- ^ «Компьютер для руководителей; облегченный доступ для сбитых с толку новичков» . Нью-Йорк Таймс . 8 мая 1994 года.
- ^ Jump up to: а б RFC 1547 : «Требования к стандартному интернет-протоколу двухточечной связи».
- ^ Понимание TCP/IP (глава 4.2. Сжатый SLIP) .
- ^ Джейкобсон, В. (февраль 1990 г.). «Сжатие заголовков TCP/IP для низкоскоростных последовательных каналов» . - представлено сжатие заголовков TCP/IP Ван Якобсона, используемое CSLIP.
- ^ «RFC 1055: Нестандарт для передачи IP-дейтаграмм по последовательным линиям: SLIP» . Трекер данных IETF . 1 июня 1988 года.
- ^ "slattach(8)" . man.freebsd.org .
- ^ Торвальдс, Линус (13 мая 2023 г.). «История mkiss.c» . Проверено 13 мая 2023 г.
- ^ Торвальдс, Линус (13 мая 2023 г.). "drivers/net/slip/Kconfig" .
- ^ Linux программиста Руководство – Администрирование и привилегированные команды «Другие возможные значения: скольжение (обычный SLIP), адаптивный (адаптивный CSLIP/SLIP)… –