シリアルラインインターネットプロトコル(SLIP)[ 1 ] [ 2 ]は、シリアルポートやルータ接続で動作するように設計されたインターネットプロトコル[ a ]のカプセル化です。RFC 1055に文書化されています。パーソナルコンピュータでは、SLIPは、より優れた設計で、より多くの機能を持ち、確立前にIPアドレス構成を設定する必要がないポイントツーポイントプロトコル(PPP)にほぼ置き換えられています。しかし、マイクロコントローラでは、オーバーヘッドが非常に小さいため、 SLIPは依然としてIPパケットをカプセル化する好ましい方法です。
成功し広く使用されているRFC 1055シリアルラインインターネットプロトコルを「リック・アダムスのSLIP」と呼ぶ人もいます[ 3 ] 。これは、 「SLIP」という名前の他の提案されたプロトコルとの混同を避けるためです。それらの他のプロトコルには、はるかに複雑なRFC 914付録Dシリアルラインインターフェースプロトコルが含まれます。[ 3 ] [ 4 ]
SLIPは、標準TCP/IPデータグラムを以下のように変更します。
SLIPでは、シリアルポート構成として、8ビットのデータ 、パリティなし、およびEIAハードウェアフロー制御またはCLOCALモード(3線式ヌルモデム)のUART動作設定が必要です。
SLIPはエラー検出機能を備えておらず、上位層プロトコルに依存しています。そのため、SLIP単独では、低品質のダイヤルアップ接続など、エラーが発生しやすいリンク上では十分な性能を発揮しません。
SLIPエスケープ文字は、ヘイズコマンドセットをエスケープするために一部のモデム接続で必要であり、それによって、一部の文字をコマンドとして認識するモデムを介してバイナリデータを渡すことが可能になった。
ヘッダー圧縮機能を備えた SLIP のバージョンは、圧縮 SLIP ( CSLIP )と呼ばれます。[ 5 ] CSLIP で使用される圧縮アルゴリズムは、Van Jacobson TCP/IP ヘッダー圧縮として知られています。[ 6 ] CSLIP はパケットのデータ ペイロードには影響を与えず、送信に使用されるシリアル ライン モデムによる圧縮とは無関係です。伝送制御プロトコル(TCP) ヘッダーを 20バイトから 7 バイトに削減します。CSLIP はユーザー データグラム プロトコル(UDP) データグラムには影響を与えません。
SLIPの「非標準」であるRFC 1055は、1980年代の3COM UNET TCP/IP実装にその起源を遡ります。リック・アダムスは1984年に人気の4.2BSDにSLIPを追加し、それは「すぐに普及した」。RFCが作成された1988年には、「専用シリアルリンクで一般的に使用され、ダイヤルアップ目的で使用されることもある」と説明されている。[ 7 ]
マニュアルデータベースに「slattach」(スリップに接続するためのコマンド)が含まれている最後のFreeBSDバージョンは、2011年にリリースされたFreeBSD 7.4です。マニュアルには、CSLIPの自動ネゴシエーションが存在すると記載されています。FreeBSDバージョンは4.3BSDから継承されています。[ 8 ]
Linux は以前は SLIP とKISS (TNC)に同じコードベースを使用していました。この分離はカーネル git 履歴の開始前 (Linux-2.6.12-rc2、2005 年) に発生しました。[ 9 ] SLIP ドライバは、非 ASCII 文字を処理できないモデムに対応するために特別な「6 ビット」エスケープ モードを提供します。[ 10 ] Linux の slattach コマンド (独立して作成) も、CSLIP サポートを自動検出する機能を備えています。[ 11 ]