シリアルラインインターネットプロトコル(SLIP)[1] [2]は、インターネットプロトコル[a]をカプセル化したもので、シリアルポートやルーター接続で動作するように設計されている。RFC 1055に文書化されている。パーソナルコンピュータでは、SLIPは主にポイントツーポイントプロトコル(PPP) に置き換えられている。PPPはより優れた設計で、より多くの機能を備えており、確立前にIPアドレス構成を設定する必要もない。しかし、マイクロコントローラでは、オーバーヘッドが非常に小さいため、 SLIPは依然としてIPパケットをカプセル化する好ましい方法である。
広く普及しているRFC 1055シリアルラインインターネットプロトコルを「リックアダムスのSLIP」と呼ぶ人もいます。[3] これは、「 SLIP」という名前の他の提案されたプロトコルとの混同を避けるためです。これらの他のプロトコルには、はるかに複雑なRFC 914付録Dシリアルラインインターフェイスプロトコルが含まれます。[3]
説明
SLIP は標準のTCP/IP データグラムを次のように変更します。
- バイトストリーム内のデータグラム境界を区別する特別な「END」バイトを追加します。
- 送信データにENDバイトが含まれる場合、代わりに2バイトシーケンスESC、ESC_ENDが送信されます。
- データ内に ESC バイトが発生した場合、2 バイトのシーケンス ESC、ESC_ESC が送信されます。
- プロトコルのバリエーションでは、パケットが END で始まったり、終了したりすることがあります。
SLIP には、 8データビット、パリティなし、EIAハードウェアフロー制御、または CLOCAL モード (3 線式ヌル モデム) UART操作設定 のいずれかのシリアル ポート構成が必要です。
SLIP はエラー検出を提供しておらず、これには上位層プロトコルに依存しています。したがって、低品質のダイヤルアップ接続など、エラーが発生しやすいリンクでは、SLIP だけでは不十分です。
一部のモデム接続では、ヘイズ コマンド セットをエスケープするために SLIP エスケープ文字も必要でした。これにより、一部の文字をコマンドとして認識するモデムを介してバイナリ データを渡すことができました。
CSLIPP
ヘッダー 圧縮機能を備えた 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 実装にその起源を遡ることができます。Rick Adams は 1984 年に人気の4.2BSDに SLIP を追加し、「すぐに普及しました」。RFC (1988) の時点では、「専用シリアル リンクでよく使用され、ダイヤルアップの目的で使用されることもあります」と説明されています。[6]
マニュアルデータベースに「slattach」(SLIPに接続するためのコマンド)が含まれているFreeBSDの最後のバージョンは、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]
参照
参考文献
- ^ SLIP は実際には IP の内部構造を気にしません。つまり、あらゆるネットワーク層プロトコルを回線経由で送信できます。
- ^ 「インターネットQ&A」。ニューヨークタイムズ。1996年5月31日。
- ^ 「エグゼクティブ コンピュータ: 困惑した初心者のための、より簡単なアクセス」。ニューヨーク タイムズ。1994 年 5 月 8 日。
- ^ ab RFC 1547: 「インターネット標準ポイントツーポイントプロトコルの要件」
- ^ TCP/IP の理解 (第 4.2 章 圧縮 SLIP)。
- ^ Jacobson, V. (1990 年 2 月)。「低速シリアル リンク用の TCP/IP ヘッダーの圧縮」。— CSLIPで使用されるVan Jacobson TCP/IPヘッダー圧縮を導入
- ^ 「RFC 1055: シリアル回線経由の IP データグラムの転送に関する非標準: SLIP」。IETF Datatracker。1988年 6 月 1 日。
- ^ "slattach(8)". man.freebsd.org .
- ^ Torvalds, Linus (2023年5月13日). 「mkiss.cの履歴」 。 2023年5月13日閲覧。
- ^ Torvalds, Linus (2023年5月13日). 「drivers/net/slip/Kconfig」.
- ^ – Linuxプログラマーズマニュアル– 管理および特権コマンド 「その他の可能な値は、slip (通常の SLIP)、adaptive (アダプティブ CSLIP/SLIP) です...」
