サブネットワーク アクセス プロトコル( SNAP ) は、 IEEE 802.2 LLC を使用するネットワーク上で、8 ビットの 802.2サービス アクセス ポイント(SAP) フィールドで区別できるよりも多くのプロトコルを多重化するメカニズムです。SNAP は、EtherTypeフィールド値によるプロトコルの識別をサポートし、ベンダー独自のプロトコル識別子スペースもサポートします。これは、IEEE 802.3 、 IEEE 802.4、IEEE 802.5、IEEE 802.11およびその他のIEEE 802 物理ネットワーク層、および802.2 LLC を使用するFDDIなどの IEEE 802 以外の物理ネットワーク層で使用されます。
SNAP フィールドとLSAPフィールドは、受信ノードが各受信フレームを、指定されたプロトコルを理解する適切なデバイス ドライバーに渡すことができるように、送信ノードでパケットに追加されます。
背景
OSIモデルでは、サービス アクセス ポイント(SAP) を使用して、レイヤー (ネットワーク、トランスポート、セッション、および 7 層モデルのその他のレイヤーなど) 間の通信を定義します。つまり、着信メッセージをどのプロトコルで処理するかを識別します。特定のレイヤー内では、プログラムは相互に合意したプロトコル メカニズムによってデータを交換できます。共通のプロトコルをサポートしていない 2 つのプログラムは、相互に通信できません。したがって、レイヤー内で複数のプロトコルを共存させるには、下位レイヤーによって配信されるサービス データ ユニットを処理するためにどのプロトコルを呼び出すかを決定する必要があります。
SAP に関する最も一般的な言及は、ソース サービス アクセス ポイント (SSAP) と宛先サービス アクセス ポイント (DSAP) を含み、データ リンク層とネットワーク層の境界を指します。SAP は、IEEE 802.2 標準で定義されている論理リンク制御(LLC) サブ層、具体的にはレイヤー 2 での使用のみで考えるのが一般的です。リンク サービス アクセス ポイント (LSAP) には、宛先サービス アクセス ポイント (DSAP) とソース サービス アクセス ポイント (SSAP) の両方が含まれます。これにより、MAC ステーションはさまざまなプロトコルを介して上位層と通信できるようになります。
標準ネットワーク層プロトコルには、ISO/IEC TR 11802-1 に記録されているように、予約済みの LLC アドレスが割り当てられています。LLC アドレス空間の半分は、このような割り当て用に予約されています。他のプロトコルは、2 つの方法で対応されます。1 つは、LLC アドレス空間の残りの半分が使用可能な LSAP のローカル割り当てです。2 つ目の方法は、サブネットワーク アクセス プロトコル (SNAP) と組み合わせて使用するために割り当てられた特定の予約済み LLC アドレス値を使用することです。この値は、SNAP アドレスと呼ばれます。SNAP アドレスは、各 MAC SAP で単一の LSAP を識別します。したがって、SNAP を使用する各プロトコルは、プロトコル識別子を使用する必要があります。したがって、サブネットワーク アクセス プロトコル(SNAP) は、 IEEE 802.2 LLC を使用するネットワーク上で、8 ビットの 802.2サービス アクセス ポイント(SAP) フィールドで区別できるよりも多くのプロトコルを多重化するメカニズムです。SNAP は、イーサネットタイプ フィールド値によるプロトコルの識別をサポートし、ベンダー独自のプロトコル識別子空間もサポートします。これは、IEEE 802.3、IEEE 802.4、IEEE 802.5、IEEE 802.11およびその他のIEEE 802 物理ネットワーク層、および802.2 LLC を使用するFDDIなどの非 IEEE 802 物理ネットワーク層で使用されます。
使用
SNAPは、IEEE 802の概要とアーキテクチャのドキュメントで指定されている802.2 LLCの拡張です。[1] 宛先SAP(DSAP)と送信元SAP(SSAP)に16進数値AAまたはABが含まれている場合、5オクテットのSNAPヘッダーは802.2 LLCヘッダーに続きます。
SNAP ヘッダーは、3 オクテットのIEEE 組織固有識別子(OUI) とそれに続く 2 オクテットのプロトコル ID で構成されます。OUI がゼロの場合、プロトコル ID は SNAP 上で実行されているプロトコルの登録済みEtherType値です。OUI が特定の組織の OUI である場合、プロトコル ID はその組織によって SNAP 上で実行されているプロトコルに割り当てられた値です。
SNAP は通常、制御フィールド値が 3 の非番号情報802.2プロトコル データ ユニット(PDU) で使用され、LSAP 値は通常 16 進数の AA であるため、SNAP パケットの 802.2 LLC ヘッダーは通常 AA AA 03 になります。ただし、SNAP は他の PDU タイプでも使用できます。
イーサネットでは、LLC ヘッダーと SNAP ヘッダーが占める 8 オクテットによって、インターネット プロトコルなどのプロトコルで使用可能なペイロードのサイズが、イーサネット II フレーミングを使用する場合と比較して 1492 バイトに減少します。したがって、EtherType 値を持つプロトコルの場合、パケットは通常、LLC ヘッダーと SNAP ヘッダーではなく、イーサネット II ヘッダーを使用して送信されます。他のネットワーク タイプでは、MAC 層自体に EtherType フィールドがないため、リンク層で異なるプロトコルを多重化するために LLC ヘッダーと SNAP ヘッダーが必要であり、使用可能なペイロードが大きい代替フレーミングはありません。
「なぜ別のサブネットワーク ヘッダーが必要なのか」と疑問に思う人もいるかもしれません。その答えは、LLC ヘッダーのレイアウト中に下された決定を補強するためです。LLC ヘッダーが設計されていた当時、ベンダーが登録したいすべてのプロトコル値を指定するには、ヘッダー内の 1 つのオクテット (可能な値は 256 個) で十分であると考えられていました。値が予約され始めると、LLC ヘッダーの空き値がすぐになくなることが判明しました。16 進数の AA 値と AB 値が予約され、追加のヘッダーである SNAP ヘッダーが開発されました。このヘッダーは、すべての EtherType 値と複数のプライベート プロトコル値空間をサポートできます。
IETF RFC 1042に従い、IP データグラムと ARP データグラムは、RFC 894 に従い Ethernet II ヘッダーを使用して送信される Ethernet/IEEE 802.3 を除き、LLC ヘッダーと SNAP ヘッダーを使用して IEEE 802 ネットワーク経由で送信されます。
参考文献
- ^ IEEE 802 の概要とアーキテクチャ、IEEE、2010年11月29日時点のオリジナルからアーカイブ、 2014年8月2日取得
