今度は、メーカー固有のネットワーク層のプロトコルについて解説しましょう。
ここでは、代表的なプロトコルだけをあげます。
Microsoft®では、NetBEUI(NetBIOS Extended User Interface)というものがあります。
NetBEUIは、Microsoft®が開発したわけではないのですが、Windows® XPが登場するまでは、私(ケロ丸)も含めてたっぷりお世話になったのではないでしょうか。
元々IBMのNetBIOSをMicrosoft®などが拡張したもので、Microsoft®のネットワークではよく使われていました。
また、NetBIOSは、Microsoft®のネットワークだけではなく、それ以外ではNovellなどがあります。
Novell NetWareでは、NetBIOS over IPX/SPXとして存在します。
余談ですが、昔、私(ケロ丸)は、NetWareというNovellのネットワークOSの環境下でNetBIOSAPIを使用したプログラムを作って試験したことがあります。
サーバー1台、クライアント2台用意して、適当な文字列を送信して受信するだけの単純なプログラムですが、うまくいきました。
この時は、MS-DOS+Windows®3.1(クライアントOS)、NetWare(Ver3.12J)(サーバーOS)のネットワークを使用していました。
その後もWindows NT®の環境下でも同様の実験を行い、その時のプログラムソースが残っていると思いますので、いつか当サイト(LAN技術研究室)で公開しようかと思っています。
それではまたNetBEUIの解説に戻ります。
今では、TCP/IPが主流なので、NetBIOS over TCP/IPがあることから、NetBEUIはあまり利用価値がなくなりました。
NetBEUIは、ネットビューイと読み、OSI参照モデルではレイヤ3のネットワーク層からレイヤ4のトランスポート層までに相当します。
ただし、NetBEUIは、経路選択の機能を有していません。つまり、ルーティングができません。
NetBEUIがレイヤ3以上なので、レイヤ2以下は、イーサーネットがカバーします。
ここで、フレーム構造について触れる必要があります。
既にイーサーネットフレームの項目でMACフレームに関しては解説しました。
詳しくは、イーサーネットフレームを参照して下さい。
NetBEUIの説明のため、もう一度簡単に説明します。
MACフレームは、EthernetUとIEEE802.3の2つの仕様に分かれ、それぞれフォーマットがやや異なります。
もう一度フレームフォーマットを以下に示します。
終点MACアドレス | 始点MACアドレス | イーサーネットタイプ | データ | FCS |
---|
終点MACアドレス | 始点MACアドレス | フレーム長 | DSAP | SSAP | 制御 | OUI | 上位プロトコルタイプ | データ | FCS |
---|
レイヤ3 | ネットワーク層 | ||||
レイヤ2 |
| ||||
レイヤ1 | 物理層 |
MACフレーム | 802.2LLCヘッダー | NetBEUIヘッダー | NetBIOSデータ |
---|
NetBEUIフレームの長さ | デリミタ | NetBEUIコマンド | オプションデータ | xmit/resp | 宛先 | 送信元 |
---|
NetBEUIフレームの長さ【2オクテット】 | NetBEUIヘッダーとそれに続くデータまで含むNetBEUIフレームの長さ |
デリミタ【2オクテット】 | 16進数でEFFFと決まっています。 |
NetBEUIコマンド【1オクテット(16進数2桁)】 |
この項目には、NetBEUIコマンドが設定されます。 このすぐ下のNetBEUIコマンド一覧表で示したように、NetBEUIコマンドは、NetBIOSの項目で後述するNetBIOSコマンドと似てはいる部分もありますが、NetBIOSコマンドはAPIのコマンドでNetBEUIコマンドとは異なります。 |
オプションデータ【3バイト】 | コマンドに付随するオプションのデータ |
xmit/resp【4バイト】 | 送信したリクエストと受信したレスポンスの対応関係を示す1個か2個の数値が設定されます。 |
宛先【1バイトまたは16バイト】 |
NetBIOSセションサービスの場合だけ、1バイトのセション識別用のセション番号になりますが、それ以外のサービスでは16バイトの宛先のNetBIOS名になります。 |
送信元【1バイトまたは16バイト】 |
NetBIOSセションサービスの場合だけ、1バイトのセション識別用のセション番号になりますが、それ以外のサービスでは16バイトの送信元のNetBIOS名になります。 |
コマンド名 | コマンドコード【16進数】 | コマンドの種類 | コマンドの説明 |
---|---|---|---|
ADD_GROUP_NAME_QUERY | 00 | 名前管理コマンド | NetBIOSグループ名の多重登録をチェックする。 |
ADD_NAME_QUERY | 01 | 名前管理コマンド | NetBIOS名の多重登録をチェックする。 |
NAME_IN_CONFLICT | 02 | 名前管理コマンド | 登録しようとしている名前が重複していることを意味する。 |
STATUS_QUERY | 03 | その他の管理コマンド | リモート・ノードのステータスの問い合わせ |
TERMINATE_TRACE (リモート・ノードのみ) | 07 | その他の管理コマンド | リモート・ノードのみトレースを中止します。 |
DATAGRAM | 08 | データ通信関連コマンド | 指定の名前に対してコネクションレス型データ転送を行う。 |
DATAGRAM_BROADCAST | 09 | データ通信関連コマンド | すべての名前に対してコネクションレス型データ転送を行う。 |
NAME_QUERY | 0A | セション関連コマンド | 名前の問い合わせを行い、セション確立の準備に入る。 |
ADD_NAME_RESPONSE | 0D | 名前管理コマンド | ADD_NAME_QUERYかADD_GROUP_NAME_QUERYに対する応答で名前が重複していることを意味する。 |
NAME_RECOGNIZED | 0E | セション関連コマンド | NAME_QUERYに対する応答でセション確立の準備ができたことを通知する。 |
STATUS_RESPONSE | 0F | その他の管理コマンド | STATUS_QUERYに対する応答を意味する。 |
TERMINATE_TRACE | 13 | その他の管理コマンド | ローカル・ノードとリモート・ノードの何れのトレースも中止します。 |
DATA_ACK | 14 | データ通信関連コマンド | DATA_ONLY_LASTに対する応答を意味する。 |
DATA_FIRST_MIDDLE | 15 | データ通信関連コマンド | 断片化されたデータを送信を意味し、最初か途中の断片を示す。 |
DATA_ONLY_LAST | 16 | データ通信関連コマンド | 断片化されていないデータの送信か、最後の断片化されたデータの送信を示す。 |
SESSION_CONFIRM | 17 | セション関連コマンド | SESSION_INITIALIZEに対する応答で、セションの確立が成功したことを意味する。 |
SESSION_END | 18 | セション関連コマンド | セションが終了したことを意味する。 |
SESSION_INITIALIZE | 19 | セション関連コマンド | NAME_RECOGNIZEDに対する応答で、セションの初期化を意味する。 |
NO_RECEIVE | 1A | データ通信関連コマンド | 送信の停止を要求する。 |
RECEIVE_OUTSTANDING | 1B | データ通信関連コマンド | 受信の再開を要求する。 |
RECEIVE_CONTINUE | 1C | データ通信関連コマンド | 受信保留中であることを通知する。 |
SESSION_ALIVE | 1F | セション関連コマンド | セションがまだ生きていることを通知する。 |
ページトップへ
ネットワーク層のプロトコル[メニュー]へ戻る
サイトマップ(LAN技術研究室の案内図)
ネットワーク技術用語集へ行く
LAN技術研究室のトップページへ
© 2007 Toyozi Masuda All rights reserved.