NetBIOSをプロトコルとして独立させたNetBEUIに関しては、NetBEUIのページで既に述べました。
現在では、NetBIOSは、アプリケーションプログラムから利用される単なるAPI(Application Program Interface)という位置付けになります。
NetBIOSのAPIは、NetBEUI、IPX/SPX、NetBIOS over TCP/IP(NBTまたはNetBT)、過去の遺物であるMS−DOSの環境下でも利用できます。
MS−DOS環境下では、LANマネージャー、NetWareのNetxワークステーションがあります。
以下に、Windows® 95とNetBEUIの環境下でのNetBEUIとNetBIOSの関係について、プロトコルレベルのレイヤ構造ではなく、プログラムレベルのレイヤ構造について表で示します。
| |||
NETBIOS.DLL | |||
VNETBIOS.386 | |||
VNETBEUI.VXD | |||
NDIS.VXD | |||
NDIS3.1ドライバー |
これらのサービスは、実際にはアプリケーションプログラムを作ることで利用できます。
具体的には、以下のアセンブリ言語でNetBIOSを呼び出します。
int 5c
NCB(Network Control Block)構造体に適切な値や文字列を設定して、上記のアセンブリ言語の命令を実行すると、前述のサービスがいろいろ利用できます。
上の例は、BIOSコールの記述で、intというアセンブリ言語の命令を使用しています。
従って、元々NetBIOSという名前からもわかるように、5Cという16進数の番号で示される特定のBIOSなのです。
元々BIOSの一種だったので、NetBIOSには、BIOSの名前が残っています。
前述のプログラムの例は、MS−DOS時代のプログラムの例で、私(ケロ丸)は昔NetBIOSコールの部分とその前後だけアセンブリ言語で書いていました。
MS−DOS、Windows®3.1、及び、NetWareの環境でテストしました。
通信全体をC言語で書いた記憶があります。
その後、Windows NT®時代にもNetBIOSAPIを利用したネットワークプログラムをまた作りました。
この頃は、NetBIOSAPIが提供しているC言語の関数や前述のNCB構造体を利用して通信を行っていました。
今では、このスタイルでプログラムを作成します。
32ビットアプリケーションプログラムからは前述のBIOSコールはできませんから、NetBIOSAPIが提供しているC言語の関数を利用することになります。
具体的には、前述したNetbiosというC言語の関数を呼び出すことでNetBIOSコマンドを実行できます。
恐らく、Windows® 2000以降でも同じだと思います。
NCB構造体について説明しておいても良いのですが、あくまでもLANの初歩としての解説なのでここまでにしておきます。
最後に、NetBIOSで使用されるコマンド一覧表を以下に示しておきます。
コマンド | 同期コード【16進数】 | 非同期コード【16進数】 |
---|---|---|
NCBRESET | 32 | − |
NCBASTAT | 33 | B3 |
NCBCANCEL | 35 | − |
NCBUNLINK | 70 | − |
NCBADDNAME | 30 | B0 |
NCBDELNAME | 31 | B1 |
NCBADDGRNAME | 36 | B6 |
NCBFINDNAME | 78 | F8 |
NCBCALL | 10 | 90 |
NCBLISTEN | 11 | 91 |
NCBHANGUP | 12 | 92 |
NCBSEND | 14 | 94 |
NCBRECV | 15 | 95 |
NCBRECVANY | 16 | 96 |
NCBCHAINSEND | 72 | F2 |
NCBSSTAT | 34 | B4 |
NCBDGSEND | 20 | A0 |
NCBDGRECV | 21 | A1 |
NCBDGSENDBC | 22 | A2 |
NCBDGRECVBC | 23 | A3 |
ページトップへ
サイトマップ(LAN技術研究室の案内図)
ネットワーク技術用語集へ行く
LAN技術研究室のトップページへ
© 2007 Toyozi Masuda All rights reserved.