(57)【特許請求の範囲】
【請求項１】
少なくとも一つの仮想ハブをソフトウェアにより形成する少なくとも一つの中継装置と、前記仮想ハブにソフトウェアにより形成される仮想ネットワークインタフェースを介して接続可能な複数のクライアント端末とを有し、アンダーレイネットワーク上に構築される仮想ネットワークを通じて前記複数のクライアント端末が前記仮想ハブを経由して通信を行うネットワーク仮想化システムであって、
前記アンダーレイネットワークは、ＳＣＴＰ（Stream Control Transmission Protocol）を用いて形成され、
前記仮想ハブは、
仮想ポート毎に、フレームの転送先仮想ポートを指定する送信仮想ポートと、その送信仮想ポートへフレームを送信する時に使用するＳＣＴＰの送信ストリーム番号とのマッピングを保持するストリームスイッチングテーブルと、
ある仮想ポートからストリームスイッチングパス生成のトリガとなるフレームを受信すると、そのフレームを他の全ての仮想ポートへ、各仮想ポートのストリームスイッチングテーブルで未使用のＳＣＴＰのストリーム番号を使用して送信すると共に、各仮想ポートのストリームスイッチングテーブルの、前記送信に使用したストリーム番号でインデックス付けされるエントリに、フレームを受信した仮想ポートと、フレームの受信に使用したＳＣＴＰのストリーム番号とを、それぞれ、送信仮想ポート、送信ストリーム番号として設定する、ストリームスイッチングパス生成手段と、
ある仮想ポートからフレームを受信すると、受信に使用したＳＣＴＰのストリーム番号でインデックス付けされるその仮想ポートのストリームスイッチングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているＳＣＴＰのストリーム番号を使用して、受信したフレームを送信する、ストリームスイッチング処理手段と
を具備することを特徴とするネットワーク仮想化システム。
【請求項２】
前記仮想ハブは、ある仮想ポートからＡＲＰ（Address Resolution Protocol）リクエストを受信したときに、前記ストリームスイッチングテーブルの設定を行うことを特徴とする請求項１に記載のネットワーク仮想化システム。
【請求項３】
少なくとも一つの仮想ハブをソフトウェアにより形成する少なくとも一つの中継装置と、前記仮想ハブにソフトウェアにより形成される仮想ネットワークインタフェースを介して接続可能な複数のクライアント端末とを有し、アンダーレイネットワーク上に構築される仮想ネットワークを通じて前記複数のクライアント端末が前記仮想ハブを経由して通信を行うネットワーク仮想化システムであって、
仮想ハブ−仮想ハブ間、及び、仮想ハブ−クライアント間のアンダーレイネットワークがＳＣＴＰ（Stream Control Transmission Protocol）を用いて形成され、
各クライアントは、
宛先クライアントの宛先ＭＡＣアドレスと、そのクライアント宛のフレーム送信時に使用するＳＣＴＰのストリーム番号とのマッピングを保持するＭＡＣ−ストリームマッピングテーブルと、
仮想ハブとの接続に使用しているＳＣＴＰアソシエーションからＡＲＰリクエストを受信すると、通常のＡＲＰ（Address Resolution Protocol）処理を行なうと共に、ＡＲＰリクエストの送信元ＭＡＣアドレスとＡＲＰリクエストの受信に使用したストリーム番号とのマッピングを保持するエントリを、前記ＭＡＣ−ストリームマッピングテーブルに追加する手段と、
他クライアントにフレームを送信する場合、前記ＭＡＣ−ストリームマッピングテーブルにおいて、そのフレームの宛先ＭＡＣアドレスに対応するエントリがあった場合、そのエントリのストリーム番号を使用して、仮想ハブとの接続に使用しているＳＣＴＰアソシエーションに、そのフレームを送信する手段と
を具備し、
前記仮想ハブは、
仮想ポート毎に、フレームの転送先仮想ポートを指定する送信仮想ポートと、その送信仮想ポートへフレームを送信する時に使用するＳＣＴＰの送信ストリーム番号とのマッピングを保持するストリームスイッチングテーブルと、
ある仮想ポートからＡＲＰリクエストを受信すると、そのＡＲＰリクエストを他の全ての仮想ポートへ、各仮想ポートのストリームスイッチングテーブルで未使用のＳＣＴＰのストリーム番号を使用して送信すると共に、各仮想ポートのストリームスイッチングテーブルの、前記送信に使用したストリーム番号でインデックス付けされるエントリに、ＡＲＰリクエストを受信した仮想ポートと、ＡＲＰリクエストの受信に使用したＳＣＴＰのストリーム番号とを、それぞれ、送信仮想ポート、送信ストリーム番号として設定する、ストリームスイッチングパス生成手段と、
ある仮想ポートからフレームを受信すると、受信に使用したＳＣＴＰのストリーム番号でインデックス付けされるその仮想ポートのストリームスイッチングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているＳＣＴＰのストリーム番号を使用して、受信したフレームを送信する、ストリームスイッチング処理手段と
を具備することを特徴とするネットワーク仮想化システム。
【請求項４】
前記ストリームスイッチングテーブルは、全仮想ポートで共有されることを特徴とする請求項１乃至３のいずれか１項に記載のネットワーク仮想化システム。
【請求項５】
前記仮想ハブは、更に、アンダーレイネットワークとしてＳＣＴＰを使用するクライアントに加え、アンダーレイネットワークとしてＳＣＴＰを使用しないクライアントをも収容し、
少なくとも一つ以上のＳＣＴＰを使用しないクライアントを収容する仮想ハブは、
ＳＣＴＰを使用した仮想ポート毎のストリームスイッチングテーブルを持つことに加え、宛先クライアントの宛先ＭＡＣアドレスと、そのクライアント宛のフレーム送信時に使用するストリーム番号、送信先仮想ポートとのマッピングを保持するＭＡＣ−ストリームマッピングテーブルをも備え、
ある仮想ポートからＡＲＰリクエストを受信すると、他の全ての仮想ポートへそれを送信し、この時、送信先仮想ポートが、ＳＣＴＰ以外のアンダーレイネットワークを使用している場合、そこで使用されているアンダーレイネットワークプロトコルに従い、一方、ＳＣＴＰを使用している場合、その仮想ポートのストリームスイッチングテーブルで未使用のストリーム番号を選択し、それを送信に使用し、更に、送信先仮想ポートのストリームスイッチングテーブルの、前記送信に使用したストリーム番号でインデックス付けされるエントリに、ＡＲＰリクエストを受信した仮想ポートと、ＡＲＰリクエストの受信に使用したストリーム番号とを、それぞれ、送信仮想ポート、送信ストリーム番号として設定するが、ＡＲＰリクエストを受信した仮想ポートが、ＳＣＴＰを使用していない場合は、送信ストリーム番号として、送信仮想ポートがＳＣＴＰを使用していないことを表すマジックナンバーを使用し、また、ＭＡＣ−ストリームマッピングテーブルに、ＡＲＰリクエストの送信元ＭＡＣアドレスとＡＲＰリクエストを受信した仮想ポート、ＡＲＰリクエストの受信に使用したストリーム番号とを、それぞれ、宛先ＭＡＣアドレス、送信仮想ポート、送信ストリーム番号として、エントリをＭＡＣ−ストリームマッピングテーブルに追加するが、ＡＲＰリクエストを受信した仮想ポートが、ＳＣＴＰを使用していない場合は、送信ストリーム番号として、送信仮想ポートがＳＣＴＰを使用していないことを表すマジックナンバーを使用し、
ある仮想ポートからフレームを受信すると、フレームを受信した仮想ポートが、ＳＣＴＰを使用している場合、受信に使用したストリーム番号でインデックス付けされるその仮想ポートのストリームスイッチングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているストリーム番号を使用して、受信したフレームを送信するが、送信ストリーム番号がマジックナンバーである場合には、送信仮想ポートのアンダーレイネットワークに従い、フレームを送信し、一方、フレームを受信した仮想ポートが、ＳＣＴＰを使用していない場合、受信したフレームの宛先ＭＡＣアドレスにマッチするＭＡＣ−ストリームマッピングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているストリーム番号を使用して、受信したフレームを送信するが、送信ストリーム番号がマジックナンバーである場合には、送信仮想ポートのアンダーレイネットワークに従い、フレームを送信する
ことを特徴とする請求項３又は４に記載のネットワーク仮想化システム。
【請求項６】
前記仮想ハブ及び各クライアントは、ストリームスイッチングパスを生成時に、ストリームスイッチングパス生成のためのシグナリング用ストリーム番号として、予め特定の値を定義し、
各クライアントは、シグナリング用ストリーム番号を使用してイーサネットフレームを送信し、この時、ＳＣＴＰのＰＰＩＤフィールドに、ストリームスイッチングに使用するストリーム番号を格納し、
前記仮想ハブは、ＰＰＩＤフィールドに格納されているストリーム番号を、ストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルの送信ストリーム番号の値として使用し、
各クライアントは、ＰＰＩＤフィールドに格納されているストリーム番号を、ＭＡＣ−ストリームマッピングテーブルの送信ストリーム番号の値として使用する
ことを特徴とする請求項３乃至５のいずれか１項に記載のネットワーク仮想化システム。
【請求項７】
前記仮想ハブ及び各クライアントは、ストリームスイッチングパスを生成時に、ストリームスイッチングパス生成のためのシグナリング用ストリーム番号として、予め特定の値を定義し、
各クライアントは、シグナリング用ストリーム番号を使用してフレームを送信し、この時、そのフレームのペイロードに、ストリームスイッチングに使用するストリーム番号を格納し、
前記仮想ハブは、前記フレームのペイロードに格納されているストリーム番号を、ストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルの送信ストリーム番号の値として使用し、
各クライアントは、前記フレームのペイロードに格納されているストリーム番号を、ＭＡＣ−ストリームマッピングテーブルの送信ストリーム番号の値として使用する
ことを特徴とする請求項３乃至５のいずれか１項に記載のネットワーク仮想化システム。
【請求項８】
ＡＲＰリクエスト送信時のＳＣＴＰのＰＰＩＤフィールド、或いは、シグナリング用イーサネットフレーム送信時のＳＣＴＰのＰＰＩＤフィールドもしくはイーサネットフレームのペイロードに、１）ストリームスイッチング処理に使用される優先度情報、２）ストリームスイッチング処理の対象とする上位プロトコル、アプリケーション情報、３）イーサネットフレームが、ストリームスイッチングパスに沿ってスイッチングされる時に適用可能な属性情報、のうちの少なくとも一つの情報を格納可能であり、
ストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルに、前記情報に対応するフィールドがあり、
各クライアントは、ＡＲＰリクエスト或いはシグナリング用イーサネットフレーム送信時、前記情報をＳＣＴＰのＰＰＩＤフィールド、或いは、イーサネットフレームのペイロードに設定し、
前記仮想ハブは、ＡＲＰリクエスト或いはシグナリング用イーサネットフレーム受信時、送信仮想ポート、送信ストリーム番号、ＭＡＣアドレスに加え、前記情報をストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルの該当フィールドに設定し、また、ＡＲＰリクエスト或いはシグナリング用イーサネットフレーム送信時、前記情報を同様にＳＣＴＰのＰＰＩＤフィールド、もしくは、イーサネットフレームのペイロードに格納し、
前記仮想ハブは、イーサネットフレームスイッチング時、前記情報に基づき、スイッチング処理のスケジューリングを行ない、
各クライアントは、ＡＲＰリクエスト或いはシグナリング用イーサネットフレーム受信時、送信ストリーム番号、ＭＡＣアドレスに加え、前記情報をＭＡＣ−ストリームマッピングテーブルの該当フィールドに設定し、
各クライアントは、イーサネットフレーム送信時、前記情報を元に、上位プロトコル毎、アプリケーション毎に、いずれの送信ストリーム番号を使うかを決定する制御を行なう
ことを特徴とする請求項３乃至５のいずれか１項に記載のネットワーク仮想化システム。
【請求項９】
前記仮想ハブは、宛先ＭＡＣアドレスによるスイッチングの機能を有し、ストリームスイッチングテーブル、或いは、ＭＡＣ−ストリームマッピングテーブルでミスヒットした場合には、前記機能により、フレームを転送する
ことを特徴とする請求項１乃至８のいずれか１項に記載のネットワーク仮想化システム。
【請求項１０】
少なくとも一つの仮想ハブをソフトウェアにより形成する少なくとも一つの中継装置と、前記仮想ハブにソフトウェアにより形成される仮想ネットワークインタフェースを介して接続可能な複数のクライアント端末とを有し、アンダーレイネットワーク上に構築される仮想ネットワークを通じて前記複数のクライアント端末が前記仮想ハブを経由して通信を行うネットワーク仮想化システムにおいて、前記中継装置に適用されるプログラムであって、
前記アンダーレイネットワークとして、ＳＣＴＰ（Stream Control Transmission Protocol）を使用する機能と、
仮想ポート毎に、フレームの転送先仮想ポートを指定する送信仮想ポートと、その送信仮想ポートへフレームを送信する時に使用するＳＣＴＰの送信ストリーム番号とのマッピングをストリームスイッチングテーブルに保持する機能と、
ある仮想ポートからストリームスイッチングパス生成のトリガとなるフレームを受信すると、そのフレームを他の全ての仮想ポートへ、各仮想ポートのストリームスイッチングテーブルで未使用のＳＣＴＰのストリーム番号を使用して送信すると共に、各仮想ポートのストリームスイッチングテーブルの、前記送信に使用したストリーム番号でインデックス付けされるエントリに、フレームを受信した仮想ポートと、フレームの受信に使用したＳＣＴＰのストリーム番号とを、それぞれ、送信仮想ポート、送信ストリーム番号として設定する機能と、
ある仮想ポートからフレームを受信すると、受信に使用したＳＣＴＰのストリーム番号でインデックス付けされるその仮想ポートのストリームスイッチングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているＳＣＴＰのストリーム番号を使用して、受信したフレームを送信する機能と
をコンピュータに実現させることを特徴とするプログラム。
【請求項１１】
前記設定の機能は、ある仮想ポートからＡＲＰ（Address Resolution Protocol）リクエストを受信したときに、前記ストリームスイッチングテーブルの設定を行うことを特徴とする請求項１０に記載のプログラム。
【請求項１２】
少なくとも一つの仮想ハブをソフトウェアにより形成する少なくとも一つの中継装置と、前記仮想ハブにソフトウェアにより形成される仮想ネットワークインタフェースを介して接続可能な複数のクライアント端末とを有し、アンダーレイネットワーク上に構築される仮想ネットワークを通じて前記複数のクライアント端末が前記仮想ハブを経由して通信を行うネットワーク仮想化システムにおいて、前記中継装置に適用されるプログラムであって、
前記アンダーレイネットワークとして、ＳＣＴＰ（Stream Control Transmission Protocol）を使用する機能と、
仮想ポート毎に、フレームの転送先仮想ポートを指定する送信仮想ポートと、その送信仮想ポートへフレームを送信する時に使用するＳＣＴＰの送信ストリーム番号とのマッピングをストリームスイッチングテーブルに保持する機能と、
ある仮想ポートからＡＲＰリクエストを受信すると、そのＡＲＰリクエストを他の全ての仮想ポートへ、各仮想ポートのストリームスイッチングテーブルで未使用のＳＣＴＰのストリーム番号を使用して送信すると共に、各仮想ポートのストリームスイッチングテーブルの、前記送信に使用したストリーム番号でインデックス付けされるエントリに、ＡＲＰリクエストを受信した仮想ポートと、ＡＲＰリクエストの受信に使用したＳＣＴＰのストリーム番号とを、それぞれ、送信仮想ポート、送信ストリーム番号として設定する機能と、
ある仮想ポートからフレームを受信すると、受信に使用したＳＣＴＰのストリーム番号でインデックス付けされるその仮想ポートのストリームスイッチングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているＳＣＴＰのストリーム番号を使用して、受信したフレームを送信する機能と
をコンピュータに実現させることを特徴とするプログラム。
【請求項１３】
アンダーレイネットワークとしてＳＣＴＰを使用するクライアントに加え、アンダーレイネットワークとしてＳＣＴＰを使用しないクライアントをも収容する機能と、
少なくとも一つ以上のＳＣＴＰを使用しないクライアントを収容する仮想ハブの機能として、
ＳＣＴＰを使用した仮想ポート毎のストリームスイッチングテーブルを持つことに加え、宛先クライアントの宛先ＭＡＣアドレスと、そのクライアント宛のフレーム送信時に使用するストリーム番号、送信先仮想ポートとのマッピングをＭＡＣ−ストリームマッピングテーブルに保持する機能と、
ある仮想ポートからＡＲＰリクエストを受信すると、他の全ての仮想ポートへそれを送信し、この時、送信先仮想ポートが、ＳＣＴＰ以外のアンダーレイネットワークを使用している場合、そこで使用されているアンダーレイネットワークプロトコルに従い、一方、ＳＣＴＰを使用している場合、その仮想ポートのストリームスイッチングテーブルで未使用のストリーム番号を選択し、それを送信に使用し、更に、送信先仮想ポートのストリームスイッチングテーブルの、前記送信に使用したストリーム番号でインデックス付けされるエントリに、ＡＲＰリクエストを受信した仮想ポートと、ＡＲＰリクエストの受信に使用したストリーム番号とを、それぞれ、送信仮想ポート、送信ストリーム番号として設定するが、ＡＲＰリクエストを受信した仮想ポートが、ＳＣＴＰを使用していない場合は、送信ストリーム番号として、送信仮想ポートがＳＣＴＰを使用していないことを表すマジックナンバーを使用し、また、ＭＡＣ−ストリームマッピングテーブルに、ＡＲＰリクエストの送信元ＭＡＣアドレスとＡＲＰリクエストを受信した仮想ポート、ＡＲＰリクエストの受信に使用したストリーム番号とを、それぞれ、宛先ＭＡＣアドレス、送信仮想ポート、送信ストリーム番号として、エントリをＭＡＣ−ストリームマッピングテーブルに追加するが、ＡＲＰリクエストを受信した仮想ポートが、ＳＣＴＰを使用していない場合は、送信ストリーム番号として、送信仮想ポートがＳＣＴＰを使用していないことを表すマジックナンバーを使用する機能と、
ある仮想ポートからフレームを受信すると、フレームを受信した仮想ポートが、ＳＣＴＰを使用している場合、受信に使用したストリーム番号でインデックス付けされるその仮想ポートのストリームスイッチングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているストリーム番号を使用して、受信したフレームを送信するが、送信ストリーム番号がマジックナンバーである場合には、送信仮想ポートのアンダーレイネットワークに従い、フレームを送信し、一方、フレームを受信した仮想ポートが、ＳＣＴＰを使用していない場合、受信したフレームの宛先ＭＡＣアドレスにマッチするＭＡＣ−ストリームマッピングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているストリーム番号を使用して、受信したフレームを送信するが、送信ストリーム番号がマジックナンバーである場合には、送信仮想ポートのアンダーレイネットワークに従い、フレームを送信する機能と
を更にコンピュータに実現させることを特徴とする請求項１２に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理的なネットワークであるアンダーレイネットワーク上に仮想的なネットワークであるオーバレイネットワークを構築するネットワーク仮想化システムおよびそのシステムに備えられる中継装置に適用するプログラムに関する。
【背景技術】
【０００２】
アンダーレイネットワーク上に構築される主なオーバレイネットワーク（以後、「仮想ネットワーク」とも称する）としては、イーサネット（登録商標）に基づく仮想イーサネットが知られている。仮想イーサネットは、例えば以下のようにして形成する。
【０００３】
・ある計算機上にイーサネットスイッチングハブをエミュレートするソフトウェア（以後、「仮想ハブ」と称する）を動作させる（以後、仮想ハブを動作させる計算機を「サーバ」或いは「中継装置」と称する）。
【０００４】
・仮想イーサネットに参加を希望する計算機が、ソフトウェアにて構築された仮想的なネットワークインタフェース（以後、「仮想ネットワークインタフェース」と称する）を介して、仮想ハブに接続する（以後、仮想ネットワークインタフェースを動作させる計算機を「クライアント」と称する）。
【０００５】
・仮想ハブ−仮想ネットワークインタフェース間の接続（すなわち、サーバ−クライアント間の接続）、或いは、仮想ハブ−仮想ハブ間の接続（すなわち、サーバ−サーバ間の接続）には、例えば、現在、広く使用されているＴＣＰ／ＩＰ等のアンダーレイネットワークを用いる。
【０００６】
・仮想ハブでのスイッチング処理（送信ポート決定処理）は、受信したイーサネットフレームの宛先ＭＡＣアドレスを元に行なう。具体的には、物理ネットワークで使用されるイーサネットスイッチングハブと同様、以下のような処理を行なう。
【０００７】
- 学習
あるポートからイーサネットフレームを受信すると、そのイーサネットフレームの送信元ＭＡＣアドレスとそのイーサネットフレームを受信したポートとのマッピングをアドレス学習テーブルに記憶する。
【０００８】
- スイッチング
イーサネットフレームを受信した場合、そのフレームの宛先ＭＡＣアドレスをキーとしてアドレス学習テーブルを検索し、マッチしたエントリのポートを送信ポートとする。マッチするエントリが無い場合、或いは、ブロードキャストフレーム、マルチキャストフレームは、全てのポートに送信する。
【０００９】
このような仮想イーサネットの一般的な構成を図４１に示す。
【００１０】
例えばＴＣＰ／ＩＰネットワークであるアンダーレイネットワーク１５０は、オーバレイネットワークである仮想イーサネット１５４を構築する基盤となる物理ネットワークである。アンダーレイネットワーク１５０は、ファイアウォール１５６、ルータ１５７、リンク層の通信装置（イーサネットならばハブやスイッチングハブ）により構成される。ルータ１５７は、ＴＣＰ／ＩＰネットワークを構成するネットワーク層の装置であり、一般的なものであることから、ここではその詳細な説明を割愛する。また、ファイアウォール１５６は、内部ネットワーク１６０と外部ネットワーク１６１との境界に設置されるセキュリティ装置であり、一般的なものであることからここではその詳細な説明を割愛する。
【００１１】
クライアント１５３は、仮想イーサネット１５４を構成する仮想ハブ１５１に接続する計算機であり、仮想ネットワークインタフェース１５２を介して仮想ハブ１５１に接続する。仮想ハブ１５１は、このように複数のクライアント１５３とのコネクションを保持する中継ノードとして機能する。サーバ１５５は、このような仮想ハブ１５１を配置するネットワーク仮想化装置である。本明細書では、このようなネットワーク仮想化装置であるサーバ１５５と、ネットワーク仮想化装置によって制御される端末であるクライアント１５３とを合わせてネットワーク仮想化システムと称する。仮想イーサネット１５４は、一つ又は複数の仮想ハブ１５１に、それぞれ仮想ネットワークインタフェース１５２を持った複数のクライアント１５３が接続することにより構築される。
【特許文献１】特開２００８−０４２６６５号公報
【非特許文献１】「Stream Control Transmission Protocol」，ＲＦＣ４９６０，２００７年９月
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記従来技術によるスイッチング処理では、以下のような問題がある。
【００１３】
・リソース（アドレス学習テーブル）管理が複雑である
すなわち、アドレス学習テーブルの検索キーが６バイト長のＭＡＣアドレスであるため、アドレス学習テーブルを単純なデータ構造、例えば、ＭＡＣアドレスをインデックスとする一次元配列等で実現することが困難であり、アドレス学習テーブルの管理、例えば、エントリの追加、削除等が複雑となる。
【００１４】
・性能向上が困難である
上記の通り、アドレス学習テーブルの構造が複雑となるため、管理、検索、両面での性能向上が困難である。
【００１５】
・付加価値をつけることが困難である
元来、ＭＡＣアドレスそのものには宛先を示すこと以外の情報はエンコードされていないため（マルチキャストグループ等は除く）、送信元、宛先、上位プロトコル等に依存したＱｏＳ（Quality of Service）／ＣｏＳ（Class of Service）を実現することが困難である。
【００１６】
なお、アンダーレイネットワークプロトコルのヘッダとスイッチング処理の対象となるイーサネットフレームとの間に、特別な情報をエンコードするための領域を挿入することで上記問題を解決することが可能ではあるが、受信データからのそれら領域の読み出し、情報のデコード処理等が必要となり、性能劣化や実装上の複雑さから生じる互換性問題等は避けることができない。
【００１７】
本発明は上記実情に鑑みてなされたものであり、テーブルの管理や検索を容易に行え、スイッチング処理の性能を向上させることのできるネットワーク仮想化システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の一実施態様によれば、少なくとも一つの仮想ハブをソフトウェアにより形成する少なくとも一つの中継装置と、前記仮想ハブにソフトウェアにより形成される仮想ネットワークインタフェースを介して接続可能な複数のクライアント端末とを有し、アンダーレイネットワーク上に構築される仮想ネットワークを通じて前記複数のクライアント端末が前記仮想ハブを経由して通信を行うネットワーク仮想化システムであって、前記アンダーレイネットワークは、ＳＣＴＰ（Stream Control Transmission Protocol）を用いて形成され、前記仮想ハブは、仮想ポート毎に、フレームの転送先仮想ポートを指定する送信仮想ポートと、その送信仮想ポートへフレームを送信する時に使用するＳＣＴＰの送信ストリーム番号とのマッピングを保持するストリームスイッチングテーブルと、ある仮想ポートからストリームスイッチングパス生成のトリガとなるフレームを受信すると、そのフレームを他の全ての仮想ポートへ、各仮想ポートのストリームスイッチングテーブルで未使用のＳＣＴＰのストリーム番号を使用して送信すると共に、各仮想ポートのストリームスイッチングテーブルの、前記送信に使用したストリーム番号でインデックス付けされるエントリに、フレームを受信した仮想ポートと、フレームの受信に使用したＳＣＴＰのストリーム番号とを、それぞれ、送信仮想ポート、送信ストリーム番号として設定する、ストリームスイッチングパス生成手段と、ある仮想ポートからフレームを受信すると、受信に使用したＳＣＴＰのストリーム番号でインデックス付けされるその仮想ポートのストリームスイッチングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているＳＣＴＰのストリーム番号を使用して、受信したフレームを送信する、ストリームスイッチング処理手段とを具備することを特徴とするネットワーク仮想化システムが提供される。
【発明の効果】
【００１９】
本発明によれば、テーブルの管理や検索を容易に行えスイッチング処理の性能を向上させることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、本発明の実施の形態について説明する。
【００２１】
＜各実施形態における共通事項＞
従来の方法とは異なり、固定長インデックスにより検索可能な単純なスイッチングテーブルを使用すること等により、従来の問題を解決する方法を示すものである。その概要を以下に示す。
【００２２】
・仮想ハブ−仮想ハブ間、及び、仮想ハブ−クライアント間のアンダーレイネットワークとしてＳＣＴＰ（Stream Control Transmission Protocol）を使用する。これによりＴＣＰの利点（順序保障や再送機能による高信頼性など）とＵＤＰの利点（メッセージ指向など）の両方を備えた特徴を実現できる。
【００２３】
・ＡＲＰ（Address Resolution Protocol）リクエスト、或いは、これに代わる別のトリガに基づき、クライアント−クライアント間の、ＳＣＴＰストリーム番号（１６ビット）ベースのスイッチングパスを生成する。以後、このパスを「ストリームスイッチングパス」と称する。
【００２４】
・仮想ハブは、イーサネットフレームの転送テーブルの検索キーとしてＳＣＴＰのストリーム番号を使用する。つまり、仮想ハブは、ＳＣＴＰのストリーム番号ベースでイーサネットフレームのスイッチング処理を行なう。以後、この処理を「ストリームスイッチングと称する。
【００２５】
＜第１の実施形態＞
本システムでの処理は、前述の通り、大きく以下の２つに分けることが出来る。
【００２６】
・ＡＲＰリクエストによるクライアント間のストリームスイッチングパスの生成
・仮想ハブによるストリームスイッチング処理
以下、システム構成、仮想ハブが使用するデータ構造等を説明した後、上記２つの処理の詳細を説明する。
【００２７】
［システム構成］
図１に示すように、仮想ハブ０〜３により仮想イーサネットが構築されている。クライアント１０〜１２は仮想ハブ１に、クライアント２０〜２２は仮想ハブ２に、クライアント３０〜３２は仮想ハブ３に、それぞれ仮想ネットワークインタフェースを使用し接続している。なお、仮想ハブ−仮想ハブ間、仮想ハブ−仮想ネットワークインタフェース（クライアント）間の接続には、アンダーレイネットワークとしてＳＣＴＰを使用する。
【００２８】
ここで、ＳＣＴＰとは、ＴＣＰやＵＤＰと同様、トランスポート層プロトコルの一つであり、信頼性のあるコネクション指向、メッセージ指向のプロトコルである。また、ＳＣＴＰは、一つのアソシエーション（ＴＣＰで言うところのコネクションに相当する概念であり、エンドエンドで保持される論理的な通信リンクを指す）の中に複数のストリームを持つことが可能で、それぞれのストリームは、順序制御、再送など、信頼性のある配送の観点からは独立である。アソシエーション内での各ストリームの識別には、１６ビットのストリーム番号が使用されるが、これは、ＳＣＴＰを使用するアプリケーション（アソシエーションのエンドポイントで、ここでは、仮想ハブや仮想ネットワークインタフェース）が指定するものであり、ＳＣＴＰ自体はストリーム番号の割り当てには関与しない（上記の通りストリーム毎の順序制御／再送等は行なう）。
【００２９】
一般的に、アプリケーション（仮想ハブや仮想ネットワークインタフェース）は、ソケットインタフェースを通してＳＣＴＰ（のアソシエーション）に関する処理を行なうことになるが、ストリームに関わる処理は以下のようになる。
【００３０】
・送信側エンドポイント
ＳＣＴＰソケットの送信関数の引数でストリーム番号を指定し、データを送信する。
【００３１】
・ＳＣＴＰ（一般的に、ＯＳ内のネットワークプロトコルの一部）
上記指定されたストリーム番号で指定される制御ブロックの内容に従い、ＳＣＴＰメッセージを送信する。この時、ＳＣＴＰヘッダに、当該ストリーム番号を格納する。
【００３２】
・受信側エンドポイント
ＳＣＴＰソケットの受信関数の引数で、ストリーム番号、及び、データを受信する。
【００３３】
ここで、仮想ハブ−仮想ハブ間、及び、仮想ハブ−クライアント間で送受されるデータのフレーム構成の一例を図２に示す。同図に示されるように、フレームには、先頭から順に、「ＳＣＴＰヘッダ」（ストリーム番号、ＰＰＩＤなど）、「制御用情報」（仮想ネットワークの制御用情報で、必要に応じて付加、使用される）、「Ethernet（登録商標）ヘッダ」（ＭＡＣアドレスなど）、「ユーザデータ」（ペイロード）が格納される。
【００３４】
［ストリームスイッチングテーブル］
各仮想ハブは、各仮想ポート（ＳＣＴＰアソシエーション）毎に図３に示すようなストリームスイッチングテーブルを持ち、受信したイーサネットフレームのスイッチング処理に使用する。エントリ数が２１６個であるのは、ＳＣＴＰで使用可能なストリーム番号が１６ビットで、ストリームスイッチングテーブルの検索キー（インデックス）としてそのストリーム番号を使用するからである（詳細は後述）。
【００３５】
なお、ストリームスイッチングテーブルの送信ストリーム番号は１６ビット必要だが、それ以外のフィールドの長さは、システム要件等により適宜決定すべきものである。
【００３６】
［ＭＡＣ−ストリームマッピングテーブル］
各クライアント（仮想ネットワークインタフェース）は、仮想ハブとの接続の端点であるＳＣＴＰアシソエーションに対して、図４に示すようなＭＡＣ−ストリームマッピングテーブルを持ち、イーサネットフレーム送信時に使用するストリーム番号の決定に使用する。
【００３７】
なお、本テーブルは、従来のＡＲＰテーブルと別個に実装することも、当該ＡＲＰテーブルと統合された形で実装することも可能である。統合された形で実装する場合は、ＡＲＰテーブルの中に、送信ストリーム番号を設定するための領域を確保し、この送信ストリーム番号とＭＡＣドレスとの対応がわかるようにする。
【００３８】
また、クライアントが複数仮想ハブとの接続を持つことを考慮し、ＭＡＣ−ストリームマッピングテーブルに送信先仮想ポート（接続先仮想ハブ）を識別するフィールドを持つことも可能である（後述の、仮想ハブがＭＡＣ−ストリームマッピングテーブルを保持する場合は、このフィールドを使用する）。
【００３９】
［ＡＲＰリクエストによるクライアント間のストリームスイッチングパスの生成］
以下では、図５〜図８に示される各仮想ハブのストリームスイッチングテーブル、及び、図９〜図１１に示される各クライアントのＭＡＣ−ストリームマッピングテーブルを参照しながら説明する。
【００４０】
例えば、クライアント１１があるクライアントと仮想イーサネット上にてＩＰによる通信を開始しようとしたとする。
【００４１】
(1) クライアント１１は、ＩＰによる通信を開始するにあたり、宛先ＩＰアドレスとして通信相手のクライアントのＩＰアドレスを持つＡＲＰリクエストを、仮想ハブ１との接続に使用している仮想ネットワークインタフェース（仮想ハブ１とのＳＣＴＰアソシエーション）に、ストリーム番号０を指定して送出する。
【００４２】
なお、本実施形態では、ストリーム番号が０であることに特別な意味は無いが、ストリーム番号の管理（空き番号管理など）を省略するために、クライアントがＡＲＰリクエストを送信する時には予め決められた番号を使用する、ということは妥当な処理であろう。
【００４３】
(2) 仮想ハブ１は、仮想ポート１０１から上記ＡＲＰリクエストを受信すると、仮想ポート１００、１０２、１０３にそのＡＲＰリクエストを送信するが、この時、それぞれ、ストリーム番号として１０００１、１０２０１、１０３０１を指定して送信する（これらの番号は、各仮想ポートのストリームスイッチングテーブルで未使用のものを選択する。以降、同様。）。
【００４４】
更に、仮想ポート１００のストリームスイッチングテーブルのオフセット１０００１のエントリ、仮想ポート１０２の同テーブルのオフセット１０２０１のエントリ、仮想ポート１０３の同テーブルのオフセット１０３０１のエントリに、送信ストリーム番号０と送信仮想ポート１０１のマッピング情報を追加する（図６参照）。
【００４５】
ここで、各テーブルにおいて、エントリを追加したオフセットは、対応する仮想ポートへのＡＲＰリクエスト送信時に指定したストリーム番号であり、追加したエントリの送信ストリーム番号は、クライアント１１が送信に使用した番号であり、送信仮想ポートは、クライアント１１が接続している仮想ポートである（以降、同様）。
【００４６】
(3) クライアント１０は、仮想ハブ１との接続に使用している仮想ネットワークインタフェース（仮想ハブ１とのＳＣＴＰアソシエーション）から、上記ＡＲＰリクエストを受信すると、通常のＡＲＰ処理を行なうと同時に、ＭＡＣ−ストリームマッピングテーブルに、ＡＲＰリクエストの送信元ＭＡＣアドレス（クライアント１１のＭＡＣアドレス）とストリーム番号１０００１とのマップを追加する（図９参照）。後に、クライアント１１宛にイーサネットフレームを送信する時は、この情報を元に、ストリーム番号１０００１を使用して送信することとなる。
【００４７】
クライアント１２についても同様である（図９参照）。
【００４８】
(4) 仮想ハブ０は、仮想ポート１１から上記ＡＲＰリクエストを受信すると、仮想ポート１２、１３にそのＡＲＰリクエストを送信するが、この時、それぞれ、ストリーム番号として１２０１、１３０１を指定して送信する。
【００４９】
更に、仮想ポート１２のストリームスイッチングテーブルのオフセット１２０１のエントリ、仮想ポート１３の同テーブルのオフセット１３０１のエントリに、送信ストリーム番号１０３０１と送信仮想ポート１１のマッピング情報を追加する（図５参照）。
【００５０】
ここで、各テーブルにおいて、エントリを追加したオフセットは、対応する仮想ポートへのＡＲＰリクエスト送信時に指定したストリーム番号であり、追加したエントリの送信ストリーム番号は、仮想ハブ１が送信に使用した番号であり、送信仮想ポートは、仮想ハブ１が接続している仮想ポートである。
【００５１】
(5) 仮想ハブ２は、仮想ポート２０３から上記ＡＲＰリクエストを受信すると、仮想ポート２００、２０１、２０２にそのＡＲＰリクエストを送信するが、この時、それぞれ、ストリーム番号として２０００１、２０１０１、２０２０１を指定して送信する。
【００５２】
更に、仮想ポート２００のストリームスイッチングテーブルのオフセット２０００１のエントリ、仮想ポート２０１の同テーブルのオフセット２０１０１のエントリ、仮想ポート２０２の同テーブルのオフセット２０２０１のエントリに、送信ストリーム番号１２０１と送信仮想ポート２０３のマッピング情報を追加する（図７参照）。
【００５３】
(6) クライアント２０は、仮想ハブ２との接続に使用している仮想ネットワークインタフェース（仮想ハブ２とのＳＣＴＰアソシエーション）から、上記ＡＲＰリクエストを受信すると、通常のＡＲＰ処理を行なうと同時に、ＭＡＣ−ストリームマッピングテーブルに、ＡＲＰリクエストの送信元ＭＡＣアドレス（クライアント１１のＭＡＣアドレス）とストリーム番号２０００１とのマップを追加する（図１０参照）。後に、クライアント１１宛にイーサネットフレームを送信する時は、この情報を元に、ストリーム番号２０００１を使用して送信することとなる。
【００５４】
クライアント２１、２２についても同様である（図１０参照）。
【００５５】
(7) 仮想ハブ３は、仮想ポート３０３から上記ＡＲＰリクエストを受信すると、仮想ポート３００、３０１、３０２にそのＡＲＰリクエストを送信するが、この時、それぞれ、ストリーム番号として３０００１、３０１０１、３０２０１を指定して送信する。
【００５６】
更に、仮想ポート３００のストリームスイッチングテーブルのオフセット３０００１のエントリ、仮想ポート３０１の同テーブルのオフセット３０１０１のエントリ、仮想ポート３０２の同テーブルのオフセット３０２０１のエントリに、送信ストリーム番号１３０１と送信仮想ポート３０３のマッピング情報を追加する（図８参照）。
【００５７】
(8) クライアント３０は、仮想ハブ３との接続に使用している仮想ネットワークインタフェース（仮想ハブ３とのＳＣＴＰアソシエーション）から、上記ＡＲＰリクエストを受信すると、通常のＡＲＰ処理を行なうと同時に、ＭＡＣ−ストリームマッピングテーブルに、ＡＲＰリクエストの送信元ＭＡＣアドレス（クライアント１１のＭＡＣアドレス）とストリーム番号３０００１とのマップを追加する（図１１参照）。後に、クライアント１１宛にイーサネットフレームを送信する時は、この情報を元に、ストリーム番号３０００１を使用して送信することとなる。
【００５８】
クライアント３１、３２についても同様である（図１１参照）。
【００５９】
なお、上記処理が全て完了した時点で、各クライアントからクライアント１１へのストリームスイッチングパス（ストリーム番号によるスイッチングのパス）が生成されたと考えることが出来る。すなわち、以後、この仮想イーサネット上では、クライアント１１宛のイーサネットフレームは、宛先ＭＡＣアドレスではなく、各仮想ハブが当該イーサネットフレームを受信した仮想ポートで使用されているＳＣＴＰのストリーム番号に基づきスイッチングされることとなる（詳細は後述）。
【００６０】
なお、上記クライアント１１と同様に、他の全てのクライアントがＡＲＰリクエストをブロードキャストした後の、各仮想ハブのストリームスイッチングテーブル、各クライアントのＭＡＣ−ストリームマッピングテーブルの状態を図１２〜図１５、図１６〜図１８にそれぞれ示す。これらは、全クライアント間のエンドエンドのストリームスイッチングパスが生成されたことを示すものである。
【００６１】
［仮想ハブによるストリームスイッチング処理］
上記状態で、クライアント２２がクライアント３０にイーサネットフレームを送信しようとしたとする。
【００６２】
(1) クライアント２２は、ＭＡＣ−ストリームマッピングテーブル（図１７参照）において、クライアント３０のＭＡＣアドレスであるＭＡＣ３０がストリーム番号２０２０６とマッピングされていることを認識し、ストリーム番号２０２０６を使用し、当該イーサネットフレームを仮想ハブ２との接続に使用している仮想ネットワークインタフェース（仮想ハブ２とのＳＣＴＰアソシエーション）に送信する。
【００６３】
(2) 仮想ハブ２は、クライアント２２を収容する仮想ポート２０２から、ＳＣＴＰストリーム番号２０２０６にてイーサネットフレームを受信すると、当該仮想ポートのストリームスイッチングテーブル（図１４参照）のインデックス２０２０６のエントリ（送信ストリーム番号１２０６／送信仮想ポート２０３）を参照する。
【００６４】
その結果、ストリーム番号１２０６を使用し、仮想ポート２０３へ当該イーサネットフレームを送信する。
【００６５】
(3) 仮想ハブ０は、仮想ハブ２と接続する仮想ポート１２から、ＳＣＴＰストリーム番号１２０６にてイーサネットフレームを受信すると、当該仮想ポートのストリームスイッチングテーブル（図１２参照）のインデックス１２０６のエントリ（送信ストリーム番号３０３０６／送信仮想ポート１３）を参照する。
【００６６】
その結果、ストリーム番号３０３０６を使用し、仮想ポート１３へ当該イーサネットフレームを送信する。
【００６７】
(4) 仮想ハブ３は、仮想ハブ０と接続する仮想ポート３０３から、ＳＣＴＰストリーム番号３０３０６にてイーサネットフレームを受信すると、当該仮想ポートのストリームスイッチングテーブル（図１５参照）のインデックス３０３０６のエントリ（送信ストリーム番号０／送信仮想ポート３００）を参照する。
【００６８】
その結果、ストリーム番号０を使用し、仮想ポート３００へ当該イーサネットフレームを送信する。
【００６９】
(5) クライアント３０は、仮想ハブ３との接続に使用している仮想ネットワークインタフェース（仮想ハブ３とのＳＣＴＰアソシエーション）から、ＳＣＴＰストリーム番号０にてイーサネットフレームを受信する。
【００７０】
上記の通り、ＳＣＴＰのストリーム番号をイーサネットフレームのスイッチング処理に使用することにより、従来のＭＡＣアドレスによる方法と比較して、以下のようなメリットがある。
【００７１】
・スイッチングのためのテーブル構造の単純化による性能向上
４８ビット長のＭＡＣアドレスと比較して、より短い１６ビット長のストリーム番号をテーブル検索のキー（インデックス）として用いるので、スイッチングテーブルを単純な一次元配列で構成可能である。
【００７２】
このことから、スイッチングテーブルの管理（エントリの追加、削除など）、スイッチング処理双方で性能向上が見込める。
【００７３】
・イーサネットフレーム参照不要によるスイッチング処理の性能向上
スイッチング処理時、イーサネットフレームを参照する必要が無い。つまり、スイッチングはストリーム番号のみで処理される。
【００７４】
具体的には、本実施形態では、ストリーム番号はソケット受信関数の引数として取得することができるので、スイッチング処理時、イーサネットフレームを参照する必要が無い（従来の方法では、イーサネットフレーム中の宛先ＭＡＣアドレスを参照必要があった）。よって、スイッチング処理における性能向上が見込める。
【００７５】
なお、現状、一般的なＯＳのソケットインタフェースによる実装を想定しており、ＯＳ内でイーサネットフレームのメモリコピーが発生することから、上記の通りスイッチング処理時にイーサネットフレームを参照しないとは言え、大幅な性能向上を見込めるものではない。しかし、将来、ＯＳ内にてイーサネットフレームに対するメモリコピーが発生しないような仕組みが確立され利用可能となった場合、或いは、ハードウェア支援の仕組みを利用可能になった場合には、スイッチング処理によるメモリコピー処理を実質ゼロにできるため、大幅な性能向上が見込めるであろう。ジャンボフレームが一般的に使用されるような状況では、これは、より大きな優位点であると言える。
【００７６】
この場合、ストリーム番号の取得方法が変更になる可能性はあるものの、ストリーム番号によるスイッチング処理そのものは、本実施形態のままで有効であることは言うまでもない。
【００７７】
・スイッチングパス毎の独立した信頼性のある配送
信頼性のある配送はストリーム毎に独立であるため、ストリーム番号をスイッチングに使用することにより、仮想ハブ間のスイッチングパスはそれぞれ独立して信頼性のある配送が適用される。
【００７８】
すなわち、ＴＣＰで見られるように、コネクション内でデータ落ちが発生した場合、その再送が完了するまでに、同じコネクション内のその他の（スイッチングパスの）データの配送が遅延されてしまう、というような状況にはならない。
【００７９】
＜第２の実施形態＞（仮想ハブ内でグローバルなストリームスイッチングテーブルを使用）
本来、ストリーム番号の２１６空間は仮想ポート（ＳＣＴＰアソシエーション毎）なので、第１の実施形態では、各仮想ハブは、他仮想ハブと接続している仮想ポート毎に２１６個のインデックスを持つストリームスイッチングテーブルを持つ。
【００８０】
一方、本実施形態では、仮想ハブ内の全ての仮想ポートで２１６空間を共有する場合について、特に第１の実施形態と異なる部分について説明する。なお、このような方法は、特に、メモリリソースの要件の厳しい環境等では有効であろう。
【００８１】
第１の実施形態の、例えば、仮想ハブ１の処理（パス生成処理(2)）において、仮想ハブ１は、仮想ポート１０１から受信したＡＲＰリクエストを仮想ポート１００、１０２、１０３に送信する時のストリーム番号として（及び、ストリームスイッチングテーブルにマッピングのエントリを追加する時のオフセットとして）、それぞれ１０００１、１０２０１、１０３０１を、すなわち、異なる番号を指定しているが、これは、説明上、わかりやすさを重視した結果、敢えて異なる番号としただけで、本来、それぞれの仮想ポートに対応するストリームスイッチングテーブル、すなわち、２１６のストリーム番号空間は独立であるから、上記ストリーム番号は全て同一であっても何ら問題は無い（各ストリームスイッチングテーブル内では、未使用の番号を使う必要がある）。これは他の仮想ハブでも同様である。
【００８２】
そこで、本実施形態では、仮想ハブでは、全ての仮想ポートでストリームスイッチングテーブルを共有する、すなわち、２１６のストリーム番号空間を共有する。
【００８３】
処理の詳細を、第１の実施形態の仮想ハブ２の処理（ストリームスイッチングパス生成処理の(5)、及び、ストリームスイッチング処理の(2)）と対比させる形で以下に説明する。
【００８４】
［ストリームスイッチングパス生成処理］
仮想ハブ２は、仮想ポート２０３から上記ＡＲＰリクエストを受信すると、仮想ポート２００、２０１、２０２にそのＡＲＰリクエストを送信するが、この時、それぞれ、ストリーム番号として１０００、１００１、１００２を指定して送信する（（これらの番号は、全ポートで共有するただ一つのストリームスイッチングテーブルで未使用のものを選択する必要がある）。
【００８５】
更に、ストリームスイッチングテーブルのオフセット１０００のエントリ、オフセット
１００１のエントリ、オフセット１００２のエントリに、受信仮想ポート識別子、送信ストリーム番号１２０１と送信仮想ポート２０３のマッピング情報を追加する（図１９参照）。
【００８６】
ここで、上記テーブルにおいて、エントリを追加したオフセットは、対応する仮想ポートへのＡＲＰリクエスト送信時に指定したストリーム番号であり、受信仮想ポート識別子は、ＡＲＰリクエストを送信した仮想ポートであり、追加したエントリの送信ストリーム番号は、仮想ハブ０が送信に使用した番号であり、送信仮想ポートは、仮想ハブ０が接続している仮想ポートである。
【００８７】
［ストリームスイッチング処理］
仮想ハブ２は、クライアント２２を収容する仮想ポート２０２から、ＳＣＴＰストリーム番号１００２にてイーサネットフレームを受信すると、全仮想ポート共通のストリームスイッチングテーブル（図１９参照）のインデックス１００２のエントリ（送信ストリーム番号１２０１／送信仮想ポート２０３）を参照する。
【００８８】
その結果、ストリーム番号１２０１を使用し、仮想ポート２０３へ当該イーサネットフレームを送信する。
【００８９】
上記処理は、他の仮想ハブでも同様である。
【００９０】
この第２の実施形態によれば、メモリリソースの要件の厳しい環境等において有効となる。
【００９１】
＜第３の実施形態＞（ＳＣＴＰ未対応のクライアント収容）
第１の実施形態では、仮想ハブ−仮想ハブ間の接続に加え、仮想ハブ−クライアント（仮想ネットワークインタフェース）間の接続においても、ＳＣＴＰを使用した。
【００９２】
ところが、ＳＣＴＰは比較的新しいプロトコルであり、現在、普及の過渡期である。
【００９３】
仮想ハブについては、オペレータ等の管理の元、サーバ上で動作することが多いと想定されるので、ＳＣＴＰをサポートしているＯＳを仮想ハブの動作環境として選択することが十分可能であると考える。
【００９４】
一方、エンドユーザが使用する一般的なＰＣのＯＳではＳＣＴＰをサポートしていない、或いは、デフォルトで使用できる状態にはなっていない可能性が高い。つまり、エンドユーザのＰＣ上での動作が多いと想定される仮想ネットワークインタフェースでは、ＳＣＴＰを使用できない可能性が高い。
【００９５】
このようなＳＣＴＰ普及の過渡期にも対応するため、本実施形態では、仮想ハブ−クライアント間はＳＣＴＰを使わない場合の処理を説明する。
【００９６】
なお、リーフの仮想ハブ（クライアント（仮想ネットワークインタフェース）を収容する仮想ハブ）が、ストリームスイッチングテーブルに加え、第１の実施形態のクライアント（仮想ネットワークインタフェース）のようにＭＡＣ−ストリームマッピングテーブルを持ち、それらに基づき、イーサネットフレームのスイッチング処理を行なうところが、本実施形態の特徴的な部分である。なお、リーフ以外の仮想ハブ（クライアントを収容しない仮想ハブ）の処理は第１の実施形態、或いは、第２の実施形態と同様である。
【００９７】
以下、第１の実施形態と同様の構成（図１参照）に基づき処理の詳細を説明するが、第１の実施形態と重複する部分の説明は適宜省略する。
【００９８】
［システム構成］
図１に示す構成で、仮想ハブ−仮想ハブ間の接続には、アンダーレイネットワークとしてＳＣＴＰを使用する。一方、仮想ハブ−仮想ネットワークインタフェース（クライアント）間の接続には、アンダーレイネットワークとしてＳＣＴＰ以外の、例えば、ＵＤＰ、ＴＣＰ、ＨＴＴＰ、ＳＳＬ等を使用する。
【００９９】
［ストリームスイッチングテーブル］
仮想ハブ０は、各仮想ポート（ＳＣＴＰアソシエーション）毎にストリームスイッチングテーブルを持つ。一方、リーフである仮想ハブ１、仮想ハブ２、仮想ハブ３は、仮想ハブ０に接続する仮想ポート（ＳＣＴＰアソシエーション）に対してのみストリームスイッチングテーブルを持つ。
【０１００】
［ＭＡＣ−ストリームマッピングテーブル］
リーフである仮想ハブ１、仮想ハブ２、仮想ハブ３は、仮想ハブ内でグローバルな（ただ一つの）ＭＡＣ−ストリームマッピングテーブルを持つ。
【０１０１】
一方、各クライアントはＳＣＴＰを使用しないことから、第１の実施形態とは異なり、ＭＡＣ−ストリームマッピングテーブルを持たない。
【０１０２】
［ＡＲＰリクエストによるクライアント間のストリームスイッチングパスの生成］
例えば、クライアント１１があるクライアントと仮想イーサネット上にてＩＰによる通信を開始しようとしたとする。
【０１０３】
(1) クライアント１１は、ＩＰによる通信を開始するにあたり、宛先ＩＰアドレスとして通信相手のクライアントのＩＰアドレスを持つＡＲＰリクエストを、仮想ハブ１との接続に使用している仮想ネットワークインタフェースに送出する。
【０１０４】
(2) 仮想ハブ１は、仮想ポート１０１から上記ＡＲＰリクエストを受信すると、仮想ポート１００、１０２、１０３にそのＡＲＰリクエストを送信するが、この時、仮想ポート１０３へは、ストリーム番号として１０３１１を指定して送信する（この番号は、仮想ポート１０３のストリームスイッチングテーブルで未使用のものを選択する。以降、同様。）。仮想ポート１００、仮想ポート１０２へは、それぞれで使用されているアンダーレイネットワークの手順に従い、ＡＲＰリクエストを送信する。
【０１０５】
更に、仮想ポート１０３のストリームスイッチングテーブルのオフセット１０３１１のエントリに、送信ストリーム番号６５５３５と送信仮想ポート１０１のマッピング情報を追加する（図２０参照）。
【０１０６】
更に、ＭＡＣ−ストリームマッピングテーブルに、クライアント１１のＭＡＣアドレスであるＭＡＣ１１と仮想ポート１０１、送信ストリーム番号６５５３５のマッピング情報を追加する（図２１参照）。
【０１０７】
ここで、仮想ポート１０３のストリームスイッチングテーブル（図２０参照）、及び、ＭＡＣ−ストリームマッピングテーブル（図２１参照）にて、送信ストリーム番号６５５３５を使用したが、本実施形態では、この値を、送信仮想ポート１０１がアンダーレイネットワークとしてＳＣＴＰを使用していないことを示すマジックナンバーとして使用している。つまり、ストリームスイッチング処理時、送信ストリーム番号が６５５３５であった場合には、当該送信仮想ポートへはＳＣＴＰを使用しないことを表している（以降、同様）。
【０１０８】
(3) クライアント１０は、上記ＡＲＰリクエストを受信すると、通常のＡＲＰ処理を行なう。
【０１０９】
クライアント１２についても同様である。
【０１１０】
(4) 仮想ハブ０の処理は、第１の実施形態と同様である。
【０１１１】
(5) 仮想ハブ２は、仮想ポート２０３から上記ＡＲＰリクエストを受信すると、仮想ポート２００、２０１、２０２にそのＡＲＰリクエストを送信するが、この時、それぞれ、使用されているアンダーレイネットワークの手順に従い、ＡＲＰリクエストを送信する。
【０１１２】
更に、ＭＡＣ−ストリームマッピングテーブルに、クライアント１１のＭＡＣアドレスであるＭＡＣ１１と仮想ポート２０３、送信仮想ポート番号１２１１のマッピング情報を追加する（図２２参照）。
【０１１３】
(6) クライアント２０は、上記ＡＲＰリクエストを受信すると、通常のＡＲＰ処理を行なう。
【０１１４】
クライアント２１、２２についても同様である。
【０１１５】
(7) 仮想ハブ３は、仮想ポート３０３から上記ＡＲＰリクエストを受信すると、仮想ポート３００、３０１、３０２にそのＡＲＰリクエストを送信するが、この時、それぞれ、使用されているアンダーレイネットワークの手順に従い、ＡＲＰリクエストを送信する。
【０１１６】
更に、ＭＡＣ−ストリームマッピングテーブルに、クライアント１１のＭＡＣアドレスであるＭＡＣ１１と仮想ポート３０３、送信仮想ポート番号１３１１のマッピング情報を追加する（図２３参照）。
【０１１７】
(8) クライアント３０は、上記ＡＲＰリクエストを受信すると、通常のＡＲＰ処理を行なう。
【０１１８】
クライアント３１、３２についても同様である。
【０１１９】
なお、上記処理が全て完了した時点で、仮想ハブ２、仮想ハブ３からクライアント１１へのストリームスイッチングパスが生成されたと考えることが出来る。すなわち、以後、この仮想イーサネット上では、クライアント１１宛のイーサネットフレームは、仮想ハブ０、仮想ハブ１上では、宛先ＭＡＣアドレスではなく、それぞれの仮想ハブが当該イーサネットフレームを受信した仮想ポートで使用されているＳＣＴＰのストリーム番号に基づきスイッチングされることとなる（詳細は後述）。
【０１２０】
一方、仮想ハブ２、仮想ハブ３では、ＭＡＣ−ストリームマッピングテーブルに基づき、スイッチングされることになる（詳細は後述）。
【０１２１】
なお、上記クライアント１１と同様に、他の全てのクライアントがＡＲＰリクエストをブロードキャストした後の、各仮想ハブのストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルの状態を図２４〜図２７、図２８〜図３０に、それぞれ示す。
【０１２２】
［仮想ハブによるストリームスイッチング処理］
上記状態で、クライアント２２がクライアント３０にイーサネットフレームを送信しようとしたとする。
【０１２３】
(1) クライアント２２は、通常の手順でＡＲＰ処理したのち、宛先ＭＡＣアドレスとしてクライアントのＭＡＣアドレスであるＭＡＣ３０を使用し、当該イーサネットフレームを仮想ハブ２へ送信する。
【０１２４】
(2) 仮想ハブ２は、クライアント２２を収容する仮想ポート２０２からイーサネットフレームを受信すると、ＭＡＣ−ストリームマッピングテーブル（図２９参照）のＭＡＣ３０のエントリ（送信ストリーム番号１２１６／送信仮想ポート２０３）を参照する。
【０１２５】
その結果、ストリーム番号１２１６を使用し、仮想ポート２０３へ当該イーサネットフレームを送信する。
【０１２６】
(3) 仮想ハブ０は、仮想ハブ２と接続する仮想ポート１２から、ＳＣＴＰストリーム番号１２１６にてイーサネットフレームを受信すると、当該仮想ポートのストリームスイッチングテーブル（図２４参照）のインデックス１２１６のエントリ（送信ストリーム番号３０３１６／送信仮想ポート１３）を参照する。
【０１２７】
その結果、ストリーム番号３０３１６を使用し、仮想ポート１３へ当該イーサネットフレームを送信する。
【０１２８】
(4) 仮想ハブ３は、仮想ハブ０と接続する仮想ポート３０３から、ＳＣＴＰストリーム番号３０３１６にてイーサネットフレームを受信すると、当該仮想ポートのストリームスイッチングテーブル（図２７参照）のインデックス３０３１６のエントリ（送信ストリーム番号６５５３５／送信仮想ポート３００）を参照する。
【０１２９】
その結果、仮想ポート３００へ、使用されているアンダーレイネットワークの手順に従い、当該イーサネットフレームを送信する。
【０１３０】
(5) クライアント３０は、仮想ハブ３との接続に使用している仮想ネットワークインタフェースから、使用しているアンダーレイネットワークの手順に従い、イーサネットフレームを受信する。
【０１３１】
なお、本実施形態では、全てのクライアントがＳＣＴＰを使用しない構成を前提としたが、本来、このような構成に限定されるものではなく、ＳＣＴＰを使用するクライアントと、ＳＣＴＰを使用しないクライアントが混在することは一向に差し支えない（この場合、一つ以上のＳＣＴＰを使用しないクライアントを収容する仮想ハブは、ＭＡＣ−ストリームマッピングテーブルを保持しなければならない）。
【０１３２】
この場合、仮想ハブにおいて、ある仮想ポートからＡＲＰリクエストを受信して、それを他の仮想ポートへ送信する時に、ＭＡＣ−ストリームマッピングテーブル、或いは、ＡＲＰリクエストを送信する仮想ポートのストリームスイッチングテーブルの送信ストリーム番号フィールドを、以下のように設定すれば良い。
【０１３３】
・ＡＲＰリクエストを受信したクライアントとの仮想ポートでＳＣＴＰが使用されていない場合マジックナンバー（６５５３５）を設定。
【０１３４】
・ＡＲＰリクエストを受信したクライアントとの仮想ポートでＳＣＴＰが使用されている場合クライアントが送信時に使用してきたストリーム番号を設定。
【０１３５】
また、イーサネットフレーム転送時、送信ストリーム番号と送信仮想ポートの決定に、いずれかのテーブルを以下のように使用すれば良い。
【０１３６】
・イーサネットフレームを受信した仮想ポートでＳＣＴＰが使用されていない場合
ＭＡＣ−ストリームマッピングテーブルを使用する。
【０１３７】
・イーサネットフレームを受信した仮想ポートでＳＣＴＰが使用されている
その仮想ポートのストリームスイッチングテーブルを使用する。
【０１３８】
この第３の実施形態によれば、仮想ハブ−クライアント間がＳＣＴＰを使わない場合にも対処でき、ＳＣＴＰ普及の過渡期にも対応することができる。
【０１３９】
＜第４の実施形態＞（システム構成のバリエーション）
第１の実施形態〜第３の実施形態では、仮想ハブとの接続のみを持つ仮想ハブが存在する（仮想ハブ０）が、仮想ハブ０がクライアントを直収するような構成でも問題なく動作することは明らかである。これは、クライアント−サーバ型モデルを実現するためのサーバを仮想ハブ０に、クライアント群を仮想ハブ１〜３に接続するような構成であろう。
【０１４０】
この場合、仮想ハブ０は、直収するクライアントからＡＲＰリクエストを受信すると、それを仮想ポート１１、１２、１３に送信するとともに、それぞれの仮想ポートのストリームスイッチングテーブルに適切なエントリを設定する。
【０１４１】
逆に、仮想ポート１１、１２、１３で受信したＡＲＰリクエストを直収するクライアントとの仮想ポートに送信する場合も、その処理は、第１の実施形態〜第３の実施形態と同様である。
【０１４２】
もちろん、直収するクライアントとの仮想ポートは、ＳＣＴＰでもそうでなくても問題は無い。
【０１４３】
＜第５の実施形態＞（ストリームスイッチングパス生成トリガのバリエーション）
第１の実施形態〜第４の実施形態では、ストリームスイッチングパス生成のトリガとしてＡＲＰリクエストを使用し、ストリームスイッチングには、各仮想ハブがローカルに決定したＡＲＰリクエスト送信時のストリーム番号を使用した。
【０１４４】
本実施形態では、ストリームスイッチングパス生成のトリガとして予め定義された特定のストリーム番号を使用し（以後、シグナリング用ストリーム番号）、ストリームスイッチングには、ストリームスイッチングパス生成時（以後、シグナリング時）に送信されるイーサネットフレーム、或いは、ＳＣＴＰのＰＰＩＤ（Payload Protocol Identifier）フィールドにピギーバックさせたストリーム番号を使用する。ＳＣＴＰのＰＰＩＤフィールドは、ＳＣＴＰヘッダの３２ビットフィールドで、ストリーム番号と同様、ＳＣＴＰはその内容に関知せず、その値は、エンドエンドで透過的にやりとりされる。一般的に、ソケットの送受信関数の引数で指定、読み出しが可能である。
【０１４５】
以下、ストリームスイッチングパス生成処理の詳細を説明する（システム構成、ストリームスイッチング処理は、第１の実施形態と同様）。
【０１４６】
［クライアント間のストリームスイッチングパスの生成］
シグナリング用ストリーム番号を０と予め定義し、この情報を全仮想ハブ、クライアントで共有しておく。
【０１４７】
以下、ストリームスイッチングで使用されるストリーム番号の情報をＰＰＩＤにピギーバックさせた場合の、ストリームスイッチングパス生成処理の詳細を説明する。
【０１４８】
例えば、クライアント１１が、上位プロトコル、アプリケーション等からの何らかのトリガで、ストリームスイッチングパス生成を開始しようとしたとする。
【０１４９】
(1) クライアント１１は、仮想ハブ１との接続に使用している仮想ネットワークインタフェース（仮想ハブ１とのＳＣＴＰアソシエーション）に、ＰＰＩＤとして１１０００、ストリーム番号として０を指定して、シグナリング用のイーサネットフレームを送出する。
【０１５０】
ここで、イーサネットフレームのペイロードの内容は不問である。
【０１５１】
(2) 仮想ハブ１は、仮想ポート１０１から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、仮想ポート１００、１０２、１０３にシグナリング用イーサネットフレームを送信するが、この時、それぞれ、ＰＰＩＤとして１０００１、１０２０１、１０３０１を、ストリーム番号として０を指定して送信する（ＰＰＩＤに設定する値は、各仮想ポートのストリームスイッチングテーブルで未使用のものを選択する。以降、同様。）。
【０１５２】
更に、仮想ポート１００のストリームスイッチングテーブルのオフセット１０００１のエントリ、仮想ポート１０２の同テーブルのオフセット１０２０１のエントリ、仮想ポート１０３の同テーブルのオフセット１０３０１のエントリに、送信ストリーム番号１１０００と送信仮想ポート１０１のマッピング情報を追加する。
【０１５３】
ここで、各テーブルにおいて、エントリを追加したオフセットは、対応する仮想ポートへのシグナリング用イーサネットフレーム送信時に指定したＰＰＩＤの値であり、追加したエントリの送信ストリーム番号は、クライアント１１がシグナリング用イーサネットフレーム送信時に指定したＰＰＩＤの値で、仮想ハブ１がクライアント１１と接続している仮想ポートにて、ソケット受信関数の引数から取得した値であり、送信仮想ポートは、クライアント１１が接続している仮想ポートである（以降、同様）。
【０１５４】
(3) クライアント１０は、仮想ハブ１との接続に使用している仮想ネットワークインタフェース（仮想ハブ１とのＳＣＴＰアソシエーション）から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、ＭＡＣストリームマッピングテーブルに、イーサネットフレームの送信元ＭＡＣアドレス（クライアント１１のＭＡＣアドレス）と、ソケット受信関数の引数から取得したＰＰＩＤの値１０００１とのマップを追加する。後に、クライアント１１宛にイーサネットフレームを送信する時は、この情報を元に、ストリーム番号１０００１を使用して送信することとなる。
【０１５５】
クライアント１２についても同様である。
【０１５６】
(4) 仮想ハブ０は、仮想ポート１１から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、仮想ポート１２、１３にシグナリング用イーサネットフレームを送信するが、この時、それぞれ、ＰＰＩＤとして１２０１、１３０１を、ストリーム番号として０を指定して送信する。
【０１５７】
更に、仮想ポート１２のストリームスイッチングテーブルのオフセット１２０１のエントリ、仮想ポート１３の同テーブルのオフセット１３０１のエントリに、送信ストリーム番号１０３０１と送信仮想ポート１１のマッピング情報を追加する。
【０１５８】
(5) 仮想ハブ２は、仮想ポート２０３から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、仮想ポート２００、２０１、２０２にシグナリング用イーサネットフレームを送信するが、この時、それぞれ、ＰＰＩＤとして２０００１、２０１０１、２０２０１を、ストリーム番号として０を指定して送信する。
【０１５９】
更に、仮想ポート２００のストリームスイッチングテーブルのオフセット２０００１のエントリ、仮想ポート２０１の同テーブルのオフセット２０１０１のエントリ、仮想ポート２０２の同テーブルのオフセット２０２０１のエントリに、送信ストリーム番号１２０１と送信仮想ポート２０３のマッピング情報を追加する。
【０１６０】
(6) クライアント２０は、仮想ハブ２との接続に使用している仮想ネットワークインタフェース（仮想ハブ２とのＳＣＴＰアソシエーション）から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、ＭＡＣストリームマッピングテーブルに、イーサネットフレームの送信元ＭＡＣアドレス（クライアント１１のＭＡＣアドレス）と、ソケット受信関数の引数から取得したＰＰＩＤの値２０００１とのマップを追加する。後に、クライアント１１宛にイーサネットフレームを送信する時は、この情報を元に、ストリーム番号２０００１を使用して送信することとなる。
【０１６１】
クライアント２１、２２についても同様である。
【０１６２】
(7) 仮想ハブ３は、仮想ポート３０３から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、仮想ポート３００、３０１、３０２にシグナリング用イーサネットフレームを送信するが、この時、それぞれ、ＰＰＩＤとして３０００１、３０１０１、３０２０１をストリーム番号として０を指定して送信する。
【０１６３】
更に、仮想ポート３００のストリームスイッチングテーブルのオフセット３０００１のエントリ、仮想ポート３０１の同テーブルのオフセット３０１０１のエントリ、仮想ポート３０２の同テーブルのオフセット３０２０１のエントリに、送信ストリーム番号１３０１と送信仮想ポート３０３のマッピング情報を追加する。
【０１６４】
(8) クライアント３０は、仮想ハブ３との接続に使用している仮想ネットワークインタフェース（仮想ハブ３とのＳＣＴＰアソシエーション）から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、ＭＡＣストリームマッピングテーブルに、イーサネットフレームの送信元ＭＡＣアドレス（クライアント１１のＭＡＣアドレス）と、ソケット受信関数の引数から取得したＰＰＩＤの値３０００１とのマップを追加する。後に、クライアント１１宛にイーサネットフレームを送信する時は、この情報を元に、ストリーム番号３０００１を使用して送信することとなる。
【０１６５】
クライアント３１、３２についても同様である。
【０１６６】
なお、上記処理の詳細にて、「シグナリング用イーサネットフレーム送信時のＰＰＩＤの値設定」の部分、「シグナリング用イーサネットフレーム受信時のソケット受信関数の引数からのＰＰＩＤ取得」部分を、それぞれ、「シグナリング用イーサネットフレーム送信時にそのペイロードに当該値を設定する」、「シグナリング用イーサネットフレーム受信時にそのペイロードから当該値を取得する」、と読み変えることで、ストリームスイッチングで使用されるストリーム番号の情報をシグナリング用イーサネットフレームのペイロードにピギーバックさせた場合の、ストリームスイッチングパス生成処理の説明となることは自明である。
【０１６７】
この第５の実施形態によれば、ストリームスイッチングパス生成のトリガとして、ＡＲＰリクエストではなく、予め定義された特定のストリーム番号（シグナリング用ストリーム番号）を使用する形態を実現することができる。
【０１６８】
＜第６の実施形態＞（付加情報のピギーバック）
第５の実施形態では、シグナリング用イーサネットフレーム送信時に、ＳＣＴＰヘッダのＰＰＩＤフィールド、或いは、イーサネットフレームのペイロードに、ストリームスイッチングで使用するストリーム番号をピギーバックさせた。
【０１６９】
本実施形態では、以下に示すような情報を、シグナリング用イーサネットフレーム送信時のＰＰＩＤフィールド、或いは、そのイーサネットフレームのペイロードにピギーバックさせた場合の処理について詳細を説明する。
【０１７０】
・ストリームスイッチング処理時に適用される優先度
・ストリームスイッチングの対象とする上位プロトコル、アプリケーション等の情報
・その他、イーサネットフレームが、ストリームスイッチングパスに沿ってスイッチングされる時に適用されるべき属性全般
なお、第１の実施形態ではＡＲＰリクエストをシグナリング（ストリームスイッチングパス生成）のトリガとしているが、上記と同様の情報をＡＲＰリクエスト送信時に、ＰＰＩＤフィールドにピギーバックさせることも可能である。
【０１７１】
以下、一例として、シグナリング用イーサネットフレーム送信時のＰＰＩＤフィールドに、ストリームスイッチングで使用するストリーム番号に加え、上記情報をピギーバックさせる場合の処理の詳細を説明する（構成は第１の実施形態と同様）。
【０１７２】
［ストリームスイッチングテーブル］
本実施形態では、各仮想ハブが使用するストリームスイッチングテーブルに、ストリームスイッチング処理の優先度を示すフィールドを追加する（図３１参照）。
【０１７３】
［ＭＡＣ−ストリームマッピングテーブル］
本実施形態では、各クライアントが使用するＭＡＣ−ストリームマッピングテーブルに、上位プロトコルを識別するフィールドを追加する（図３２参照）。
【０１７４】
［ＰＰＩＤフィールド］
本実施形態では、ＰＰＩＤフィールドに、ストリームスイッチングに使用するストリーム番号、スイッチング処理の対象とする上位プロトコル情報、スイッチング処理の優先度情報をピギーバック（エンコード）させる必要があるため、図３３に示すようにＰＰＩＤフィールドを更に３つのサブフィールドに細分化し、使用する。
【０１７５】
なお、図３３に示す分割方法は一例であって、本来、用途に応じて分割するべきものであり、これに限定されるものではない。
【０１７６】
［クライアント間のストリームスイッチングパスの生成］
第５の実施形態と同様、シグナリング用ストリーム番号を０と予め定義し、この情報を全仮想ハブ、クライアントで共有しておく。
【０１７７】
ここで、例えば、クライアント１１が、上位プロトコル、アプリケーション等からの何らかのトリガで、ＨＴＴＰを送受信するイーサネットフレームを高優先度でスイッチングするためのストリームスイッチングパス生成を開始しようとしたとする。
【０１７８】
(1) クライアント１１は、仮想ハブ１との接続に使用している仮想ネットワークインタフェース（仮想ハブ１とのＳＣＴＰアソシエーション）に、ＰＰＩＤの各サブフィールドに以下の値を指定し、更に、ストリーム番号０を指定してシグナリング用のイーサネットフレームを送出する。
【０１７９】
・ストリーム番号サブフィールド“１１０２０”
・上位プロトコルサブフィールド“８０”（ＨＴＴＰ）
・優先度サブフィールド“５”
優先度は低優先度〜通常〜高優先度に応じて、１〜５の値を設定するものとする（０は、例えばベストエフォート）。
【０１８０】
(2) 仮想ハブ１は、仮想ポート１０１から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、仮想ポート１００、１０２、１０３にシグナリング用イーサネットフレームを送信するが、この時、それぞれ、ＰＰＩＤのサブフィールドに以下の値を指定し、更に、ストリーム番号として０を指定して送信する。
【０１８１】
・ストリーム番号サブフィールド
・仮想ポート１００への送信時“１００２１”
・仮想ポート１０２への送信時“１０２２１”
・仮想ポート１０３への送信時“１０３２１”
・上位プロトコルサブフィールド“８０”（ＨＴＴＰ）
・優先度サブフィールド“５”
更に、仮想ポート１００のストリームスイッチングテーブルのオフセット１００２１のエントリ、仮想ポート１０２の同テーブルのオフセット１０２２１のエントリ、仮想ポート１０３の同テーブルのオフセット１０３２１のエントリに、送信ストリーム番号１１０２０と送信仮想ポート１０１のマッピング情報を追加し、更に、優先度フィールドに５を設定する。
【０１８２】
ここで、各テーブル（詳細は後述）において、エントリを追加したオフセットは、対応する仮想ポートへのシグナリング用イーサネットフレーム送信時に指定したＰＰＩＤのストリーム番号サブフィールドの値であり、追加したエントリの送信ストリーム番号、優先度の値は、それぞれ、クライアント１１がシグナリング用イーサネットフレーム送信時に指定したＰＰＩＤのストリーム番号サブフィールド、優先度サブフィールドの値で、仮想ハブ１がクライアント１１と接続している仮想ポートにて、ソケット受信関数の引数から取得した値であり、送信仮想ポートは、クライアント１１が接続している仮想ポートである（以降、同様）。
【０１８３】
(3) クライアント１０は、仮想ハブ１との接続に使用している仮想ネットワークインタフェース（仮想ハブ１とのＳＣＴＰアソシエーション）から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、ＭＡＣストリームマッピングテーブルに、イーサネットフレームの送信元ＭＡＣアドレス（クライアント１１のＭＡＣアドレス）と、ソケット受信関数の引数から取得したＰＰＩＤのストリーム番号サブフィールドの値１００２１とのマップを追加する。更に、そのマップエントリの上位プロトコルフィールドに、同ＰＰＩＤの上位プロトコルサブフィールドの値８０（ＨＴＴＰ）を設定する。後に、クライアント１１宛に上位プロトコルがＨＴＴＰであるイーサネットフレームを送信する時は、この情報を元に、ストリーム番号１００２１を使用して送信することとなる。
【０１８４】
クライアント１２についても同様である。
【０１８５】
(4) 仮想ハブ０は、仮想ポート１１から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、仮想ポート１２、１３にシグナリング用イーサネットフレームを送信するが、この時、それぞれ、ＰＰＩＤのサブフィールドに以下の値を指定し、更に、ストリーム番号として０を指定して送信する。
【０１８６】
・ストリーム番号サブフィールド
・仮想ポート１２への送信時“１２２１”
・仮想ポート１３への送信時“１３２１”
・上位プロトコルサブフィールド“８０”（ＨＴＴＰ）
・優先度サブフィールド“５”
更に、仮想ポート１２のストリームスイッチングテーブルのオフセット１２２１のエントリ、仮想ポート１３の同テーブルのオフセット１３２１のエントリに、送信ストリーム番号１０３２１と送信仮想ポート１１のマッピング情報を追加し、更に、優先度フィールドに５を設定する。
【０１８７】
(5) 仮想ハブ２は、仮想ポート２０３から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、仮想ポート２００、２０１、２０２にシグナリング用イーサネットフレームを送信するが、この時、それぞれ、ＰＰＩＤのサブフィールドに以下の値を指定し、更に、ストリーム番号として０を指定して送信する。
【０１８８】
・ストリーム番号サブフィールド
・仮想ポート２００への送信時“２００２１”
・仮想ポート２０１への送信時“２０１２１”
・仮想ポート２０２への送信時“２０２２１”
・上位プロトコルサブフィールド“８０”（ＨＴＴＰ）
・優先度サブフィールド“５”
更に、仮想ポート２００のストリームスイッチングテーブルのオフセット２００２１のエントリ、仮想ポート２０１の同テーブルのオフセット２０１２１のエントリ、仮想ポート２０２の同テーブルのオフセット２０２２１のエントリに、送信ストリーム番号１２２１と送信仮想ポート２０３のマッピング情報を追加し、更に、優先度フィールドに５を設定する。
【０１８９】
(6) クライアント２０は、仮想ハブ２との接続に使用している仮想ネットワークインタフェース（仮想ハブ２とのＳＣＴＰアソシエーション）から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、ＭＡＣストリームマッピングテーブルに、イーサネットフレームの送信元ＭＡＣアドレス（クライアント１１のＭＡＣアドレス）と、ソケット受信関数の引数から取得したＰＰＩＤのストリーム番号サブフィールドの値２００２１とのマップを追加する。更に、そのマップエントリの上位プロトコルフィールドに、同ＰＰＩＤの上位プロトコルサブフィールドの値８０（ＨＴＴＰ）を設定する。後に、クライアント１１宛にイーサネットフレームを送信する時は、この情報を元に、ストリーム番号２００２１を使用して送信することとなる。
【０１９０】
クライアント２１、２２についても同様である。
【０１９１】
(7) 仮想ハブ３は、仮想ポート３０３から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、仮想ポート３００、３０１、３０２にシグナリング用イーサネットフレームを送信するが、この時、それぞれ、ＰＰＩＤのサブフィールドに以下の値を指定し、更に、ストリーム番号として０を指定して送信する。
【０１９２】
・ストリーム番号サブフィールド
・仮想ポート３００への送信時“３００２１”
・仮想ポート３０１への送信時“３０１２１”
・仮想ポート３０２への送信時“３０２２１”
・上位プロトコルサブフィールド“８０”（ＨＴＴＰ）
・優先度サブフィールド“５”
更に、仮想ポート３００のストリームスイッチングテーブルのオフセット３００２１のエントリ、仮想ポート３０１の同テーブルのオフセット３０１２１のエントリ、仮想ポート３０２の同テーブルのオフセット３０２２１のエントリに、送信ストリーム番号１３２１と送信仮想ポート３０３のマッピング情報を追加し、更に、優先度フィールドに５を設定する。
【０１９３】
(8) クライアント３０は、仮想ハブ３との接続に使用している仮想ネットワークインタフェース（仮想ハブ３とのＳＣＴＰアソシエーション）から、ストリーム番号０を使用したイーサネットフレーム（上記シグナリング用イーサネットフレーム）を受信すると、ＭＡＣストリームマッピングテーブルに、イーサネットフレームの送信元ＭＡＣアドレス（クライアント１１のＭＡＣアドレス）と、ソケット受信関数の引数から取得したＰＰＩＤのストリーム番号サブフィールドの値３００２１とのマップを追加する。更に、そのマップエントリの上位プロトコルフィールドに、同ＰＰＩＤの上位プロトコルサブフィールドの値８０（ＨＴＴＰ）を設定する。後に、クライアント１１宛にイーサネットフレームを送信する時は、この情報を元に、ストリーム番号３００２１を使用して送信することとなる。
【０１９４】
クライアント３１、３２についても同様である。
【０１９５】
なお、他の全てのクライアントが、例えば、プロトコル０（プロトコル指定無し）、優先度３（通常）でシグナリング用イーサネットフレームを送信した後の、各仮想ハブのストリームスイッチングテーブル、各クライアントのＭＡＣ−ストリームマッピングテーブルの状態を図３５〜図３７、図３８〜図４０にそれぞれ示す。これらは、全クライアント−クライアント１１間の上位プロトコルがＨＴＴＰであるイーサネットフレームを高優先度でスイッチングする、ストリームスイッチングパスが生成されたことを示すものである（その他のクライアント間の全てのプロトコルは通常の優先度）。
【０１９６】
また、同じＭＡＣアドレスでも、優先度、上位プロトコル、アプリケーションが異なるエントリが同一ノードの同一テーブルに並存することはあり得ることである。
【０１９７】
［仮想ハブによるストリームスイッチング処理］
上記状態で、クライアント３２がクライアント１１に、上位プロトコルがＨＴＴＰであるイーサネットフレームを送信しようとしたとする。
【０１９８】
(1) クライアント３２は、ＭＡＣ−ストリームマッピングテーブル（図４０参照）において、クライアント１１のＭＡＣアドレスであるＭＡＣ１１がストリーム番号３０２２１とマッピングされていること、更には、そのマッピングの上位プロトコルがＨＴＴＰであることを認識し、ストリーム番号３０２２１を使用し、当該イーサネットフレームを仮想ハブ２との接続に使用している仮想ネットワークインタフェース（仮想ハブ２とのＳＣＴＰアソシエーション）に送信する。
【０１９９】
(2) 仮想ハブ３は、クライアント３２を収容する仮想ポート３０２から、ＳＣＴＰストリーム番号３０２２１にてイーサネットフレームを受信すると、当該仮想ポートのストリームスイッチングテーブル（図３７参照）のインデックス３０２２１のエントリ（送信ストリーム番号１３２１／送信仮想ポート３０３／優先度５）を参照する。
【０２００】
その結果、ストリーム番号１３２１を使用し、仮想ポート３０３へ当該イーサネットフレームを送信する。
【０２０１】
この時、優先度５（高優先度）であることから、スイッチング処理を高優先度でスケジューリングする。なお、スケジューリングの具体的処理は、本提案の主旨では無いため、詳細は割愛する（以降、同様）。
【０２０２】
(3) 仮想ハブ０、仮想ハブ１は、上記仮想ハブ３と同様、該当イーサネットフレームを高優先度でスイッチングする。
【０２０３】
(4) クライアント１１は、仮想ハブ１との接続に使用している仮想ネットワークインタフェース（仮想ハブ１とのＳＣＴＰアソシエーション）から、ＳＣＴＰストリーム番号１１０２０にてイーサネットフレームを受信する。
【０２０４】
この第６の実施形態によれば、優先度などを含む各種の情報を、シグナリング用イーサネットフレーム送信時のＰＰＩＤフィールド、或いは、そのイーサネットフレームのペイロードにピギーバックさせることにより付加価値を向上させることができる。
【０２０５】
＜第７の実施形態＞（従来のイーサネットスイッチング機能との並存）
第１の実施形態〜第６の実施形態に示した方法は、従来の宛先ＭＡＣアドレスによるスイッチングの機能との並存が可能である。
【０２０６】
すなわち、仮想ハブは、ストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルでミスヒットした場合には、従来の機能により、宛先ＭＡＣアドレスを元に、イーサネットフレームを転送する。
【０２０７】
＜応用＞
仮想イーサネットの構築に適用可能である。また、ＡＲＰと同等のアドレス解決の仕組みを有する仮想ネットワークにも同様に適用可能である。
【０２０８】
＜まとめ＞
上述した各実施形態で説明した各種のシステムに備えられる各種の機能や情報などの概念をまとめると以下の通りとなる。
【０２０９】
（１）各実施形態に共通する基本概念（スイッチングにストリーム番号を使用）について
一つ以上の中継ノード（仮想ハブ）を経由してクライアント間が通信を行なう仮想ネットワーク（仮想イーサネット）におけるイーサネットフレームをスイッチングする方法であり、以下の特徴を持つ。
【０２１０】
・アンダーレイネットワークとしてＳＣＴＰ（Stream Control Transmission Protocol）を使用する。
【０２１１】
・仮想ハブは、ある仮想ポートからイーサネットフレームを受信すると、受信時に使用したＳＣＴＰストリーム番号に基づき、送信先の仮想ポート、及び、送信時に使用するＳＣＴＰストリーム番号を決定し、前記決定したＳＣＴＰストリーム番号を使用して、前記決定した仮想ポートに、前記受信したイーサネットフレームを送信する。
【０２１２】
（２） 第１の実施形態について
一つ以上の中継ノード（仮想ハブ）を経由してクライアント間が通信を行なう仮想ネットワーク（仮想イーサネット）におけるイーサネットフレームをスイッチングする方法であり、以下の特徴を持つ。
【０２１３】
・アンダーレイネットワーク
仮想ハブ−仮想ハブ間、及び、仮想ハブ−クライアント（仮想ネットワークインタフェース）間のアンダーレイネットワークとして、ＳＣＴＰを使用する。
【０２１４】
・クライアント（仮想ネットワークインタフェース）
- 宛先クライアントの宛先ＭＡＣアドレスと、そのクライアント宛のイーサネットフレーム送信時に使用するストリーム番号とのマッピングを保持する、ＭＡＣストリームマッピングテーブルを持つ。
【０２１５】
- 仮想ハブとの接続に使用しているＳＣＴＰアソシエーションからＡＲＰリクエストを受信すると、通常のＡＲＰ処理を行なうと同時に、ＡＲＰリクエストの送信元ＭＡＣアドレスとＡＲＰリクエストの受信に使用したストリーム番号とのマッピングを保持するエントリを、ＭＡＣ−ストリームマッピングテーブルに追加する。
【０２１６】
- 他クライアントにイーサネットフレームを送信する場合、ＭＡＣ−ストリームマッピングテーブルにおいて、そのイーサネットフレームの宛先ＭＡＣアドレス（宛先クライアントのＭＡＣアドレス）に対応するエントリがあった場合、そのエントリのストリーム番号を使用して、仮想ハブとの接続に使用しているＳＣＴＰアソシエーションに、そのイーサネットフレームを送信する。
【０２１７】
・仮想ハブ
- 仮想ポート毎に、イーサネットフレームの転送先仮想ポートを指定する送信仮想ポートと、その送信仮想ポートへイーサネットフレームを送信する時に使用する送信ストリーム番号とのマッピングを保持する、ストリームスイッチングテーブルを持つ。
【０２１８】
* ストリームスイッチングテーブルのエントリ数はストリーム番号空間と同じである。
【０２１９】
- ある仮想ポートからＡＲＰリクエストを受信すると、他の全ての仮想ポート（ＳＣＴＰアソシエーション）へそれを送信する。
【０２２０】
* 仮想ポートへのＡＲＰリクエスト送信時、その仮想ポートのストリームスイッチングテーブルで未使用のストリーム番号を選択し、それを送信に使用する。
【０２２１】
* 仮想ポートへのＡＲＰリクエスト送信時、その仮想ポートのストリームスイッチングテーブルの、上記送信に使用したストリーム番号でインデックス付けされるエントリに、ＡＲＰリクエストを受信した仮想ポートと、受信に使用したストリーム番号とを、それぞれ、送信仮想ポート、送信ストリーム番号として設定する。
【０２２２】
- ある仮想ポートからイーサネットフレーム（ユニキャストフレーム）を受信すると、受信に使用したストリーム番号でインデックス付けされるその仮想ポートのストリームスイッチングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているストリーム番号を使用して、受信したイーサネットフレームを送信する。
【０２２３】
（３）第２の実施形態について
上記（２）に示した特徴を持つ仮想ハブにおいて、更に、以下の特徴を持つ。
【０２２４】
・ストリーム番号空間と同数のエントリ数を持つストリームスイッチングテーブルを、全仮想ポートで共有する。
【０２２５】
（４）第３の実施形態について
上記（２）、（３）に示した特徴を持つ仮想ネットワーク（仮想イーサネット）におけるイーサネットフレームをスイッチングする方法において、更に、仮想ハブが以下の特徴を持つ。
【０２２６】
・アンダーレイネットワークとしてＳＣＴＰを使用するクライアントに加え、アンダーレイネットワークとしてＳＣＴＰを使用しないクライアントをも収容する。
【０２２７】
・少なくとも一つ以上のＳＣＴＰを使用しないクライアントを収容する仮想ハブは、
- ＳＣＴＰを使用した仮想ポート毎のストリームスイッチングテーブルを持つことに加え、宛先クライアントの宛先ＭＡＣアドレスと、そのクライアント宛のイーサネットフレーム送信時に使用するストリーム番号、送信先仮想ポートとのマッピングを保持する、ＭＡＣ−ストリームマッピングテーブルをも持つ。
【０２２８】
- ある仮想ポートからＡＲＰリクエストを受信すると、他の全ての仮想ポートへそれを送信する。
【０２２９】
この時、送信先仮想ポートが、
* ＳＣＴＰ以外のアンダーレイネットワークを使用している場合
そこで使用されているアンダーレイネットワークプロトコルに従う。
【０２３０】
* ＳＣＴＰを使用している場合
その仮想ポートのストリームスイッチングテーブルで未使用のストリーム番号を選択し、それを送信に使用する。
【０２３１】
更に、送信先仮想ポートのストリームスイッチングテーブルの、上記送信に使用したストリーム番号でインデックス付けされるエントリに、ＡＲＰリクエストを受信した仮想ポートと、ＡＲＰリクエストの受信に使用したストリーム番号とを、それぞれ、送信仮想ポート、送信ストリーム番号として設定する。
【０２３２】
ただし、ＡＲＰリクエストを受信した仮想ポートが、ＳＣＴＰを使用していない場合は、送信ストリーム番号として、予め定義された値（送信仮想ポートがＳＣＴＰを使用していないことを表すマジックナンバー）を使用する。
【０２３３】
また、ＭＡＣ−ストリームマッピングテーブルに、ＡＲＰリクエストの送信元ＭＡＣアドレスとＡＲＰリクエストを受信した仮想ポート、ＡＲＰリクエストの受信に使用したストリーム番号とを、それぞれ、宛先ＭＡＣアドレス、送信仮想ポート、送信ストリーム番号して、エントリをＭＡＣ−ストリームマッピングテーブルに追加する。
【０２３４】
ただし、ＡＲＰリクエストを受信した仮想ポートが、ＳＣＴＰを使用していない場合は、送信ストリーム番号として、マジックナンバーを使用する。
【０２３５】
・ある仮想ポートからイーサネットフレーム（ユニキャストフレーム）を受信すると、イーサネットフレームを受信した仮想ポートが、
- ＳＣＴＰを使用している場合
受信に使用したストリーム番号でインデックス付けされるその仮想ポートのストリームスイッチングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているストリーム番号を使用して、受信したイーサネットフレームを送信する。
【０２３６】
ただし、送信ストリーム番号がマジックナンバーである場合には、送信仮想ポートのアンダーレイネットワークに従い、イーサネットフレームを送信する。
【０２３７】
- ＳＣＴＰを使用していない場合
受信したイーサネットフレームの宛先ＭＡＣアドレスにマッチするＭＡＣ−ストリームマッピングテーブルのエントリを参照し、そのエントリの送信仮想ポートに設定されている仮想ポートに、同じくそのエントリの送信ストリーム番号に設定されているストリーム番号を使用して、受信したイーサネットフレームを送信する。
【０２３８】
ただし、送信ストリーム番号がマジックナンバーである場合には、送信仮想ポートのアンダーレイネットワークに従い、イーサネットフレームを送信する。
【０２３９】
（５）第４の実施形態について
上記（２）〜（４）に示した特徴を持つ仮想ハブにおいて、更に、以下の特徴を持つ。
【０２４０】
・一つ以上の他仮想ハブ、及び、一つ以上のクライアントとの接続を持つ。
【０２４１】
（６）第５の実施形態（ＰＰＩＤ使用）について
上記（２）〜（５）に示した特徴に加え、仮想ハブ、及び、クライアントは、ストリームスイッチングパスを生成時に、以下の特徴を持つ。
【０２４２】
・ストリームスイッチングパス生成のためのシグナリング用ストリーム番号として、予め特定の値を定義する（以後、シグナリング用ストリーム番号）。
【０２４３】
・クライアントは、シグナリング用ストリーム番号を使用してイーサネットフレームを送信する。この時、ＳＣＴＰのＰＰＩＤフィールドに、ストリームスイッチングに使用するストリーム番号を格納する。
【０２４４】
・仮想ハブは、上記イーサネットフレームを受信したストリーム番号ではなく（請求項１の方法）、ＰＰＩＤに格納されているストリーム番号を、ストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルの送信ストリーム番号の値として使用する。
【０２４５】
・クライアントは、上記イーサネットフレームを受信したストリーム番号ではなく（請求項１の方法）、ＰＰＩＤに格納されているストリーム番号を、ＭＡＣ−ストリームマッピングテーブルの送信ストリーム番号の値として使用する。
【０２４６】
（７）第５の実施形態（イーサネットフレームペイロード使用）について
上記（２）〜（５）に示した特徴に加え、仮想ハブ、及び、クライアントは、ストリームスイッチングパスを生成時に、以下の特徴を持つ。
【０２４７】
・ストリームスイッチングパス生成のためのシグナリング用ストリーム番号として、予め特定の値を定義する（以後、シグナリング用ストリーム番号）。
【０２４８】
・クライアントは、シグナリング用ストリーム番号を使用してイーサネットフレームを送信する。この時、そのイーサネットフレームのペイロードに、ストリームスイッチングに使用するストリーム番号を格納する。
【０２４９】
・仮想ハブは、上記イーサネットフレームを受信したストリーム番号ではなく（請求項１の方法）、上記イーサネットフレームのペイロードに格納されているストリーム番号を、ストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルの送信ストリーム番号の値として使用する。
【０２５０】
・クライアントは、上記イーサネットフレームを受信したストリーム番号ではなく（請求項１の方法）、上記イーサネットフレームのペイロードに格納されているストリーム番号を、ＭＡＣ−ストリームマッピングテーブルの送信ストリーム番号の値として使用する。
【０２５１】
（８）第６の実施形態について
上記（２）〜（７）に示した特徴に加え、以下の特徴を持つ。
【０２５２】
・ＡＲＰリクエスト送信時のＳＣＴＰのＰＰＩＤフィールド、或いは、シグナリング用イーサネットフレーム送信時のＰＰＩＤフィールドもしくはイーサネットフレームのペイロードに、以下の情報を格納する。
【０２５３】
- ストリームスイッチング処理に使用される優先度情報
- ストリームスイッチング処理の対象とする上位プロトコル、アプリケーション情報
- その他、イーサネットフレームが、ストリームスイッチングパスに沿ってスイッチングされる時に適用される可能性のある属性全般
・ストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルに、上記情報に対応するフィールドを追加する。
【０２５４】
・クライアントは、ＡＲＰリクエスト或いはシグナリング用イーサネットフレーム送信時、上記情報をＰＰＩＤフィールド、或いは、イーサネットフレームのペイロードに設定する。
【０２５５】
・仮想ハブは、ＡＲＰリクエスト或いはシグナリング用イーサネットフレーム受信時、送信仮想ポート、送信ストリーム番号、ＭＡＣアドレスに加え、上記情報をストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルの該当フィールドに設定する。
【０２５６】
また、ＡＲＰリクエスト或いはシグナリング用イーサネットフレーム送信時、上記情報を同様にＰＰＩＤフィールド、もしくは、イーサネットフレームのペイロードに格納する。
【０２５７】
・仮想ハブは、イーサネットフレームスイッチング時、上記情報、例えば、優先度情報に基づき、スイッチング処理のスケジューリングを行なう。
【０２５８】
・クライアントは、ＡＲＰリクエスト或いはシグナリング用イーサネットフレーム受信時、送信ストリーム番号、ＭＡＣアドレスに加え、上記情報をＭＡＣ−ストリームマッピングテーブルの該当フィールドに設定する。
【０２５９】
・クライアントは、イーサネットフレーム送信時、上記情報を元に、上位プロトコル毎、アプリケーション毎に、いずれの送信ストリーム番号を使うか等の制御を行なう。
【０２６０】
（９）第７の実施形態について
上記（２）〜（８）に示した特徴を持つ仮想イーサネットにおいて、従来の宛先ＭＡＣアドレスによるスイッチングの機能を有し、ストリームスイッチングテーブル、ＭＡＣ−ストリームマッピングテーブルでミスヒットした場合には、従来の機能により、イーサネットフレームを転送する。
【０２６１】
以上詳述したように、本発明の実施の形態によれば、ネットワーク仮想化システムにおいて、テーブルの管理や検索を容易に行え、スイッチング処理の性能を向上させることができる。
【０２６２】
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０２６３】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０２６４】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【０２６５】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【０２６６】
また、記憶媒体は一つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０２６７】
なお、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコンやサーバ計算機等の一つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０２６８】
また、本発明におけるコンピュータとは、パソコンやサーバ計算機に限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０２６９】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【０２７０】
【図１】本発明の各実施形態に共通するネットワーク仮想化システムのシステム構成の一例を示す図。
【図２】仮想ハブ−仮想ハブ間、及び、仮想ハブ−クライアント間で送受されるデータのフレーム構成の一例を示す図。
【図３】ストリームスイッチングテーブルの一例を示す図。
【図４】ＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図５】第１の実施形態における仮想ハブ０のストリームスイッチングテーブルの一例を示す図。
【図６】第１の実施形態における仮想ハブ１のストリームスイッチングテーブルの一例を示す図。
【図７】第１の実施形態における仮想ハブ２のストリームスイッチングテーブルの一例を示す図。
【図８】第１の実施形態における仮想ハブ３のストリームスイッチングテーブルの一例を示す図。
【図９】第１の実施形態におけるクライアント１０、１２のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図１０】第１の実施形態におけるクライアント２０、２１、２２のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図１１】第１の実施形態におけるクライアント３０、３１、３２のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図１２】第１の実施形態におけるパス生成後の仮想ハブ０のストリームスイッチングテーブルの一例を示す図。
【図１３】第１の実施形態におけるパス生成後の仮想ハブ１のストリームスイッチングテーブルの一例を示す図。
【図１４】第１の実施形態におけるパス生成後の仮想ハブ２のストリームスイッチングテーブルの一例を示す図。
【図１５】第１の実施形態におけるパス生成後の仮想ハブ３のストリームスイッチングテーブルの一例を示す図。
【図１６】第１の実施形態におけるパス生成後のクライアント１０、１１、１２のストリームスイッチングテーブルの一例を示す図。
【図１７】第１の実施形態におけるパス生成後のクライアント２０、２１、２２のストリームスイッチングテーブルの一例を示す図。
【図１８】第１の実施形態におけるパス生成後のクライアント３０、３１、３２のストリームスイッチングテーブルの一例を示す図。
【図１９】第２の実施形態における仮想ハブのストリームスイッチングテーブルの一例を示す図。
【図２０】第３の実施形態における仮想ハブ１のストリームスイッチングテーブルの一例を示す図。
【図２１】第３の実施形態における仮想ハブ１のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図２２】第３の実施形態における仮想ハブ２のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図２３】第３の実施形態における仮想ハブ３のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図２４】第３の実施形態におけるパス生成後の仮想ハブ０のストリームスイッチングテーブルの一例を示す図。
【図２５】第３の実施形態におけるパス生成後の仮想ハブ１のストリームスイッチングテーブルの一例を示す図。
【図２６】第３の実施形態におけるパス生成後の仮想ハブ２のストリームスイッチングテーブルの一例を示す図。
【図２７】第３の実施形態におけるパス生成後の仮想ハブ３のストリームスイッチングテーブルの一例を示す図。
【図２８】第３の実施形態におけるパス生成後の仮想ハブ１のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図２９】第３の実施形態におけるパス生成後の仮想ハブ２のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図３０】第３の実施形態におけるパス生成後の仮想ハブ３のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図３１】優先度情報を追加したストリームスイッチングテーブルの一例を示す図。
【図３２】上位プロトコル情報を追加したストリームスイッチングテーブルの一例を示す図。
【図３３】ＰＰＩＤのサブフィールドの構成の一例を示す図。
【図３４】第６の実施形態におけるパス生成後の仮想ハブ０のストリームスイッチングテーブルの一例を示す図。
【図３５】第６の実施形態におけるパス生成後の仮想ハブ１のストリームスイッチングテーブルの一例を示す図。
【図３６】第６の実施形態におけるパス生成後の仮想ハブ２のストリームスイッチングテーブルの一例を示す図。
【図３７】第６の実施形態におけるパス生成後の仮想ハブ３のストリームスイッチングテーブルの一例を示す図。
【図３８】第６の実施形態におけるパス生成後のクライアント１０、１１、１２のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図３９】第６の実施形態におけるパス生成後のクライアント２０、２１、２２のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図４０】第６の実施形態におけるパス生成後のクライアント３０、３１、３２のＭＡＣ−ストリームマッピングテーブルの一例を示す図。
【図４１】仮想イーサネットの一般的な構成の一例を示す図。
【符号の説明】
【０２７１】
０〜３…仮想ハブ、１０〜１２，２０〜２２，３０〜３２…クライアント、１１〜１３，１００〜１０３，２００〜２０３，３００〜３０３…仮想ポート。
【図１】
0004703689.tif 000002
【図２】
0004703689.tif 000003
【図３】
0004703689.tif 000004
【図４】
0004703689.tif 000005
【図５】
0004703689.tif 000006
【図６】
0004703689.tif 000007
【図７】
0004703689.tif 000008
【図８】
0004703689.tif 000009
【図９】
0004703689.tif 000010
【図１０】
0004703689.tif 000011
【図１１】
0004703689.tif 000012
【図１２】
0004703689.tif 000013
【図１３】
0004703689.tif 000014
【図１４】
0004703689.tif 000015
【図１５】
0004703689.tif 000016
【図１６】
0004703689.tif 000017
【図１７】
0004703689.tif 000018
【図１８】
0004703689.tif 000019
【図１９】
0004703689.tif 000020
【図２０】
0004703689.tif 000021
【図２１】
0004703689.tif 000022
【図２２】
0004703689.tif 000023
【図２３】
0004703689.tif 000024
【図２４】
0004703689.tif 000025
【図２５】
0004703689.tif 000026
【図２６】
0004703689.tif 000027
【図２７】
0004703689.tif 000028
【図２８】
0004703689.tif 000029
【図２９】
0004703689.tif 000030
【図３０】
0004703689.tif 000031
【図３１】
0004703689.tif 000032
【図３２】
0004703689.tif 000033
【図３３】
0004703689.tif 000034
【図３４】
0004703689.tif 000035
【図３５】
0004703689.tif 000036
【図３６】
0004703689.tif 000037
【図３７】
0004703689.tif 000038
【図３８】
0004703689.tif 000039
【図３９】
0004703689.tif 000040
【図４０】
0004703689.tif 000041
【図４１】
0004703689.tif 000042