シリアルラインインターネットプロトコル(SLIP)[1] [2]は、インターネットプロトコル[a]をカプセル化したもので、シリアルポートやルータ接続で動作するように設計されている。RFC 1055で文書化されている。パーソナルコンピュータでは、SLIPはポイントツーポイントプロトコル(PPP) に大きく置き換えられている。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 エスケープ文字も必要でした。これにより、一部の文字をコマンドとして認識するモデムを介してバイナリ データを渡すことができるようになりました。
SLIPのヘッダー 圧縮バージョンは、圧縮SLIP(CSLIP )と呼ばれます。[4] CSLIPで使用される圧縮アルゴリズムは、Van Jacobson TCP/IPヘッダー圧縮として知られています。[5] CSLIPはパケットのデータペイロードに影響を与えず、伝送に使用されるシリアル回線モデムによる圧縮の影響も受けません。CSLIPは、伝送制御プロトコル(TCP)ヘッダーを20バイトから7バイトに削減します。CSLIPは、ユーザーデータグラムプロトコル(UDP)データグラム には影響を与えません。
SLIPの「非標準」であるRFC 1055は、1980年代の3COM UNET TCP/IP実装に起源を遡ります。リック・アダムスは1984年に人気の4.2BSDにSLIPを追加し、「急速に普及」しました。RFC(1988年)の時点では、SLIPは「専用シリアルリンクで広く使用され、時にはダイヤルアップにも使用される」と説明されていました。[6]
FreeBSDのマニュアルデータベースに「slattach」(SLIPへの接続コマンド)が含まれている最後のバージョンは、2011年にリリースされたFreeBSD 7.4です。マニュアルには、CSLIPに自動ネゴシエーション機能が存在すると記載されています。FreeBSDのバージョンは4.3BSDから継承されています。[7]
Linuxは以前、SLIPとKISS(TNC)に同じコードベースを使用していました。この分離はカーネルgitヒストリー(Linux-2.6.12-rc2、2005年)が始まる前に発生しました。[8] SLIPドライバは、非ASCII文字を処理できないモデムに対応するために、特別な「6ビット」エスケープモードを提供しています。[9] Linuxのslattachコマンド(独立して記述されています)も、CSLIPサポートを自動検出する機能を備えています。[10]