NetBIOS
NetBIOS (/ ˈnɛtbaɪɒs /)はNetwork Basic Input / Output Systemの頭字語です。 OSIモデルのセッションレイヤーに関連するサービスを提供し、個別のコンピューター上のアプリケーションがローカルエリアネットワークを介して通信できるようにします。厳密にはAPIであるため、NetBIOSはネットワークプロトコルではありません。古いオペレーティングシステムは、NetBIOS Frames(NBF)およびNetBIOS over IPX / SPX(NBX)プロトコルをそれぞれ使用して、NetBIOS over IEEE 802.2およびIPX / SPXを実行しました。最近のネットワークでは、NetBIOSは通常、NetBIOS over TCP / IP(NBT)プロトコルを介してTCP / IP上で実行されます。これにより、ネットワーク内の各コンピューターは、(おそらく異なる)ホスト名に対応するIPアドレスとNetBIOS名の両方を持ちます。
歴史と用語
NetBIOSはOSIセッションレイヤー5プロトコルであり、コンピューター上のアプリケーションがローカルエリアネットワーク(LAN)を介して相互に通信できるようにするサービスです。これはルーティング不可能なプロトコルであり、NetBIOSはNetwork Basic Input / Output Systemの略です。 NetBIOSは、1983年にSytek Inc.によってIBM PCネットワークLANテクノロジーを介したソフトウェア通信用のAPIとして開発されました。 PCネットワーク上では、APIのみとして、NetBIOSは有線の通信のために独自のSytekネットワークプロトコルに依存していました。 LANで最大80台のPCをサポートしているにもかかわらず、NetBIOSは業界標準になりました。
1985年、IBMはトークンリングネットワークスキームを推進し、PCネットワーク時代のNetBIOS対応アプリケーションがこの新しい設計で動作できるようにするNetBIOSエミュレーターを開発しました。 NetBIOS拡張ユーザーインターフェイス(NetBEUI)という名前のこのエミュレータは、特にトークンリングのより大きなノード容量を処理する機能により、基本NetBIOS APIを拡張しました。 NetBEUI(NetBIOS)がトークンリングを介して、特にIEEE 802.2論理リンク制御レイヤーでサービスを提供できるように、新しいネットワークプロトコルであるNBFが同時に作成されました。
1985年、MicrosoftはMS-Netネットワークテクノロジー用のNetBIOS実装を作成しました。 IBMのトークンリングの場合のように、MicrosoftのNetBIOS実装のサービスは、NBFプロトコルによってIEEE 802.2論理リンク制御層を介して提供されました。 Microsoftがホスト名のドメインネームシステム(DNS)解決を採用するまで、MicrosoftオペレーティングシステムはNetBIOSを使用してWindowsクライアントサーバーネットワークの名前を解決しました。
1986年、ノベルは自社のNetBIOSエミュレータを搭載したAdvanced Novell NetWare 2.0をリリースしました。そのサービスは、NetBIOS over IPX / SPX(NBX)プロトコルを使用して、NetWareのIPX / SPXプロトコル内にカプセル化されました。
1987年、NetBIOSをTCPおよびUDPパケットにカプセル化する方法、NetBIOS over TCP / IP(NBT)が公開されました。 RFC 1001(「TCP / UDPトランスポート上のNetBIOSサービスのプロトコル標準:概念と方法」)およびRFC 1002(「TCP / UDPトランスポート上のNetBIOSサービスのプロトコル標準:詳細仕様」)で説明されていました。 NBTプロトコルは、「TCP / IPプロトコルスイートが利用可能なほぼすべてのタイプのシステムで実装を構築できるようにする」ためと、「インターネットでのNetBIOS相互運用を可能にするため」に開発されました。
1987年にPS / 2コンピュータが市場に登場した後、IBMは、NetBIOS用のドライバを含むPC LANサポートプログラムをリリースしました。
注目に値するのは、NetBIOSとNetBEUIの名前の混同です。 NetBEUIは、トークンリング用のIBMの拡張1985 NetBIOSエミュレーターのモニカとして厳密に作成されました。 NetBEUIという名前は、当時、他の企業によるNetBIOS実装は、エミュレータで見つかったAPI拡張機能を組み込んでいるかどうかに関係なく、単にNetBIOSと呼ばれていたことを考慮して、消滅するはずでした。ただし、MS-Netの場合、MicrosoftはNBFプロトコルの実装に「NetBEUI」という名前を付けました。これは、IBMのAPIの2番目のバージョンに基づいて、文字通りトランスポートプロトコルの実装に名前を付けました。その結果、今日でも、Microsoftのイーサネット経由のファイルとプリンターの共有は引き続きNetBEUIと呼ばれ、NetBIOSという名前はTCP / IP上のファイルとプリンターの共有に関してのみ一般的に使用されています。実際、前者はNetBIOSフレームプロトコル(NBF)であり、後者はNetBIOS over TCP / IP(NBT)です。
NetBIOS API仕様は、IBMのテクニカルリファレンスブックに最初に公開されて以来、 事実上の標準になっています。
サービス
NetBIOSは3つの異なるサービスを提供します。
- 名前の登録と解決のためのネームサービス(NetBIOS-NS)。
- コネクションレス通信用のデータグラム配布サービス(NetBIOS-DGM)。
- 接続指向の通信のためのセッションサービス(NetBIOS-SSN)。
(注:上位層のSMBは、セッションサービスとデータグラムサービスの上で実行されるサービスであり、NetBIOS自体の必要不可欠な部分と混同しないでください。各SMBメッセージにパケット長を追加する適応層;これは、TCPがパケット境界の概念を持たないバイトストリームサービスのみを提供するために必要です。
ネームサービス
セッションを開始するか、データグラムを配布するには、アプリケーションはネームサービスを使用してNetBIOS名を登録する必要があります。 NetBIOS名は16オクテットの長さで、特定の実装に応じて異なります。多くの場合、NetBIOSサフィックスと呼ばれる16番目のオクテットはリソースの種類を指定し、システムが提供するサービスの種類を他のアプリケーションに伝えるために使用できます。 NBTでは、ネームサービスはUDPポート137で動作します(TCPポート137も使用できますが、まれにしか使用されません)。
NetBIOSが提供するネームサービスプリミティブは次のとおりです。
- 名前の追加-NetBIOS名を登録します。
- グループ名の追加-NetBIOS「グループ」名を登録します。
- 名前の削除-NetBIOS名またはグループ名の登録を解除します。
- 名前の検索-ネットワーク上のNetBIOS名を検索します。
Microsoftはインターネットプロトコルバージョン6(IPv6)のNetBIOS名前解決をサポートしていません。
データグラム配信サービス
データグラムモードはコネクションレスです。アプリケーションはエラーの検出と回復を担当します。 NBTでは、データグラムサービスはUDPポート138で実行されます。
NetBIOSが提供するデータグラムサービスプリミティブは次のとおりです。
- データグラムの送信-データグラムをリモートNetBIOS名に送信します。
- ブロードキャストデータグラムの送信-ネットワーク上のすべてのNetBIOS名にデータグラムを送信します。
- データグラムの受信-データグラムの送信操作からパケットが到着するのを待ちます。
- ブロードキャストデータグラムの受信-ブロードキャストデータグラムの送信操作からパケットが到着するのを待ちます。
セッションサービス
セッションモードでは、2台のコンピューターが接続を確立し、メッセージが複数のパケットにまたがることができ、エラーの検出と回復が可能です。 NBTでは、セッションサービスはTCPポート139で実行されます。
NetBIOSが提供するセッションサービスプリミティブは次のとおりです。
- 呼び出し-リモートNetBIOS名へのセッションを開きます。
- リッスン-NetBIOS名へのセッションを開こうとする試みをリッスンします。
- ハングアップ-セッションを閉じます。
- 送信-セッションの反対側のコンピューターにパケットを送信します。
- Send No Ack – Sendと似ていますが、確認を必要としません。
- 受信-セッションの反対側の送信からパケットが到着するのを待ちます。
PC-NetworkにNetworkBIOSサービスを実装するために使用される元のプロトコルでは、セッションを確立するために、開始コンピューターがOpen要求を送信し、Open確認応答が返されます。セッションを開始したコンピューターは、セッション要求またはセッション拒否パケットのいずれかを促すセッション要求パケットを送信します。
確立されたセッション中に、送信された各パケットは肯定応答(ACK)または否定応答(NAK)応答のいずれかで応答されます。 NAKはデータの再送信を促します。セッションは、終了要求を送信することにより、開始していないコンピューターによって閉じられます。セッションを開始したコンピューターは、最後のセッション終了パケットを促すクローズ応答で応答します。
NetBIOS名とインターネットホスト名
NetBIOSをインターネットプロトコル(NBTなど)と組み合わせて実行する場合、各コンピューターには複数の名前があります。1つ以上のNetBIOSネームサービス名と1つ以上のインターネットホスト名です。
NetBIOS名
NetBIOS名は16 ASCII文字ですが、Microsoftはホスト名を15文字に制限し、16文字目をNetBIOSサフィックスとして予約しています。このサフィックスは、ホストレコード、マスターブラウザーレコード、ドメインコントローラーレコード、その他のサービスなどのサービスまたは名前のレコードタイプを示します。ホスト名(または短いホスト名)は、Windowsネットワークのインストール/構成時に指定され、登録されているサフィックスは、ホストが提供する個々のサービスによって決定されます。 NetBIOS名を介してTCP / IPを実行しているコンピューターに接続するには、名前をネットワークアドレスに解決する必要があります。現在、これは通常IPアドレスです(NetBIOS名からIPアドレスへの解決は、多くの場合、ブロードキャストまたはWINSサーバー– NetBIOSネームサーバーによって行われます)。多くの場合、コンピューターのNetBIOS名はそのコンピューターのホスト名と同じですが(以下を参照)、15文字に切り捨てられますが、完全に異なる場合もあります。
NetBIOS名は、英数字のシーケンスです。次の文字は明示的に許可されていません:\ /:*? "> |。Windows2000以降、NetBIOS名はDNS名の制限にも準拠する必要がありました。数字とハイフン("-")またはフルストップ( "。")文字は最初または最後の文字として表示されない場合があります。Windows2000以降、マイクロソフトはNetBIOS名にフルストップ( "。")文字を含めることをお勧めします。ドメイン名とNetBIOS名を区別するためのフルストップ。
Windows LMHOSTSファイルは、WINSサーバーを使用しない小規模ネットワークで使用できるNetBIOS名前解決方法を提供します。
インターネットホスト名
WindowsマシンのNetBIOS名をコンピューターのインターネットホスト名と混同しないでください(コンピューターがNetBIOSノードであることに加えて、インターネットホストでもあると仮定すると、必ずしもそうである必要はありません)。一般に、インターネットプロトコルを実行しているコンピューター(Windowsマシンであるかどうかに関係なく)には通常、ホスト名(マシン名とも呼ばれる)があります。当初、これらの名前はホストファイルに保存され、ホストファイルによって提供されていましたが、今日ではそのような名前のほとんどは階層的なドメインネームシステム(DNS)の一部です。
通常、Windowsコンピューターのホスト名は、NetBIOS名とプライマリDNSサフィックスに基づいており、どちらも[システムのプロパティ]ダイアログボックスで設定されます。また、コントロールパネルの[ネットワーク]→[ネットワーク]→[TCP / IP]→[詳細プロパティ]の[DNS]タブで表示または変更できる接続固有のサフィックスがある場合もあります。ホスト名は、telnet、ftp、webブラウザーなどのアプリケーションで使用されます。名前を使用してTCP / IPプロトコルを実行しているコンピューターに接続するには、ホスト名をIPアドレスに、通常DNSサーバーによって解決する必要があります。 (IPアドレスのみを使用して、上記の3つを含む多くのTCP / IPベースのアプリケーションを操作することも可能ですが、これは標準ではありません。)
ノードタイプ
Windowsでは、ネットワーク化されたコンピューターのノードタイプは、NetBIOS名をIPアドレスに解決する方法に関連しています。これは、NetBIOSノードにIPアドレスが存在することを前提としています。これは、NetBIOSがNBT上で動作する場合にのみ保証されます。したがって、ノードタイプはNetBIOS自体のプロパティではなく、Windows OS環境でのNetBIOSとTCP / IP間の相互作用のプロパティです。 4つのノードタイプがあります。
- Bノード:0x01ブロードキャスト
- Pノード:0x02ピア(WINSのみ)
- Mノード:0x04混合(ブロードキャスト、次にWINS)
- Hノード:0x08ハイブリッド(WINS、その後ブロードキャスト)
使用中のノードタイプは、コマンドラインを開いてipconfig / allと入力すると表示されます 。 Windowsコンピュータのレジストリは、ノードの種類が「不明」と表示されるように構成することもできます。
NetBIOSサフィックス
NetBIOS終了文字(endchar)とも呼ばれるNetBIOSサフィックスは、NetBIOS名の16番目の文字であり、登録名のサービスタイプを示します。レコードタイプの数は255に制限されています。一般的に使用される値は次のとおりです。
一意の名前の場合:
- 00:ワークステーションサービス(ワークステーション名)
- 03:Windows Messengerサービス
- 06:リモートアクセスサービス
- 20:ファイルサービス(ホストレコードとも呼ばれる)
- 21:リモートアクセスサービスクライアント
- 1B:ドメインマスターブラウザー–ドメインのプライマリドメインコントローラー
- 1D:マスターブラウザー
グループ名の場合:
- 00:ワークステーションサービス(ワークグループ/ドメイン名)
- 1C:ドメインのドメインコントローラー(最大25個のIPアドレスを持つグループレコード)
- 1E:ブラウザサービスの選択