(57)【要約】【課題】  オペレーティング・システム・パーティションとコンピュータ・ネットワークとの間の通信を提供する。【解決手段】  一側面においては、複数のオペレーティング・システム・パーティションにネットワーク通信を分配するための装置は、ネットワークとコンピュータ・システムとの間の通信を可能にする物理的ポートと、物理的ポートと関連付けられた論理ポートとを含み、各論理ポートはオペレーティング・システム・パーティションの１つと関連付けられる。論理ポートの各々は、物理的ポートと関連するオペレーティング・システム・パーティションとの間での通信を可能にし、システムのネットワーク・リソースのコンフィギュレーション能力を可能にする。他の側面は、論理ポート及び物理的ポートのための論理スイッチと、各接続及び各論理ポートのためのパケット・キューとを含む。【選択図】図３
2008535342.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・システムに設けられた複数のオペレーティング・システム・パーティションにネットワーク通信を分配するための装置であって、前記装置は、
ネットワークに結合された少なくとも１つの物理的ポートであって、前記ネットワークと前記コンピュータ・システムとの間の通信を可能にする物理的ポートと、
前記少なくとも１つの物理的ポートと関連する複数の論理ポートとを含んでおり、前記論理ポートの各々は前記オペレーティング・システム・パーティションの１つと関連付けられ、前記論理ポートの各々は、関連する物理的ポートと関連するオペレーティング・システム・パーティションとの間での情報の伝達を可能にし、前記装置のネットワーク・リソースのコンフィギュレーション能力を可能にする装置。
【請求項２】
前記少なくとも１つの物理的ポートは複数の物理的ポートであり、複数の論理ポートが各物理的ポートと関連付けられる請求項１に記載の装置。
【請求項３】
前記物理的ポートと、各物理的ポートと関連付けられた前記複数の論理ポートとは、ほぼ一定量のリソースが各ポート・グループに割り当てられるようにポート・グループに組織される請求項２に記載の装置。
【請求項４】
前記リソースの分配は、設定可能である各ポート・グループの前記物理的ポートに割り当てられる帯域幅を含む請求項３に記載の装置。
【請求項５】
各ポート・グループは所定数の使用可能な論理ポートを有し、各論理ポートは同じポート・グループ内のどの物理的ポートにも割り当てられ得る請求項３に記載の装置。
【請求項６】
各論理ポートは、関連する媒体アクセス制御（ＭＡＣ）アドレスにより識別され、前記物理的ポートに到着したその様な各パケットは、そのパケット内の前記ＭＡＣアドレスと一致するＭＡＣアドレスを有する論理ポートに割り当てられる請求項１に記載の装置。
【請求項７】
各物理的ポート及び論理ポートは論理スイッチにより通信のために選択され得る請求項１に記載の装置。
【請求項８】
各論理ポートは、その論理ポートと関連付けられた前記オペレーティング・システム・パーティションにより送信又は受信されるパケットを格納するためのデフォルト論理ポート・キューと関連付けられる請求項１に記載の装置。
【請求項９】
各論理ポートは、その論理ポートを通して伝達される情報を管理又は制御するために使用されるリソースの独立のセットと関連付けられる請求項１に記載の装置。
【請求項１０】
前記リソースのセットは、関連する論理ポートを通る情報と関連する論理ポートで発生するエラーとを監視するための管理情報ベース・カウンタを含む請求項９に記載の装置。
【請求項１１】
前記リソースのセットは、関連する論理ポートを通過するネットワーク・パケットのタイプをフィルタリングするための少なくとも１つのフィルタ・テーブルを含む請求項９に記載の装置。
【請求項１２】
複数の論理ポートが単一のオペレーティング・システム・パーティションと関連付けられ得る請求項１に記載の装置。
【請求項１３】
コンピュータ・システム上に設けられた複数のオペレーティング・システム・パーティションにネットワーク通信を分配する方法であって、前記方法は、
オペレーティング・システム・パーティションと、前記オペレーティング・システム・パーティションと関連付けられた少なくとも１つの論理ポートとの間で情報を伝達することであって、複数のオペレーティング・システム・パーティションの各々の１つが関連する少なくとも１つの論理ポートと通信することができる前記伝達することと、
前記オペレーティング・システム・パーティションと関連付けられた前記少なくとも１つの論理ポートと前記少なくとも１つの論理ポートと関連付けられた少なくとも１つの物理的ポートとの間で前記情報を伝達することであって、前記物理的ポートがネットワークに結合されている前記伝達することと、
を含む方法。
【請求項１４】
前記方法は前記ネットワークから前記少なくとも１つの論理ポートで情報を受け取ることを更に含み、前記少なくとも１つの論理ポートと少なくとも１つの物理的ポートとの間で情報を伝達することは前記情報を前記物理的ポートと関連付けられた複数の論理ポートのうちの少なくとも１つに供給することを含み、オペレーティング・システム・パーティションと少なくとも１つの論理ポートとの間で情報を伝達することは前記情報を前記少なくとも１つの論理ポートからその少なくとも１つの論理ポートと関連付けられた前記オペレーティング・システム・パーティションに供給することを含む請求項１３に記載の方法。
【請求項１５】
オペレーティング・システム・パーティションと少なくとも１つの論理ポートとの間で情報を伝達することは前記オペレーティング・システム・パーティションから前記少なくとも１つの関連する論理ポートで情報を受け取ることを含み、前記少なくとも１つの論理ポートと少なくとも１つの物理的ポートとの間で情報を伝達することは前記情報を前記物理的ポート関連付けられた前記少なくとも１つの論理ポートから前記少なくとも１つの物理的ポートに供給することを含み、前記少なくとも１つの物理的ポートに供給された前記情報は前記ネットワークへ送出される請求項１３に記載の方法。
【請求項１６】
複数の論理ポートが各物理的ポートに関連付けられる請求項１３に記載の方法。
【請求項１７】
前記物理的ポートと、各物理的ポートと関連付けられた前記複数の論理ポートとは、ほぼ一定量のリソースが各ポート・グループに割り当てられるようにポート・グループに組織される請求項１６に記載の方法。
【請求項１８】
各ポート・グループは所定数の使用可能な論理ポートを有し、各論理ポートは同じポート・グループ内のどの物理的ポートにも割り当てられ得る請求項１７に記載の方法。
【請求項１９】
各論理ポートは、関連する媒体アクセス制御（ＭＡＣ）アドレスにより識別され、前記物理的ポートにおいて受信されたその様な各パケットは、そのパケット内の前記ＭＡＣアドレスと一致するＭＡＣアドレスを有する論理ポートに割り当てられる請求項１４に記載の方法。
【請求項２０】
論理スイッチを用いて通信のために各物理的ポートと、関連する論理ポートとを選択することを更に含む請求項１６に記載の方法。
【請求項２１】
各論理ポートはデフォルト論理ポートキューと関連付けられており、前記方法は、論理ポートと関連付けられた前記オペレーティング・システムにより送信又は受信されるパケットを格納することを更に含む請求項１３に記載の方法。
【請求項２２】
前記関連する論理ポートを通過する情報を監視すると共に前記関連する論理ポートで発生するエラーを監視するために複数の論理ポートの各々にリソースを設けることを更に含む請求項１３に記載の方法。
【請求項２３】
前記関連する論理ポートを通過するネットワーク・パケットのタイプをフィルタリングするために複数の論理ポートの各々にリソースを設けることを更に含む請求項１３に記載の方法。
【請求項２４】
コンピュータ・システム上でネットワーク通信を分配する方法であって、前記方法は、
複数のオペレーティング・システム・パーティションを動作させる前記コンピュータ・システムにおいて論理スイッチでデータ・パケットを受信することと、
前記パケット内の情報がラップ経路を示すときに、前記データ・パケットを前記コンピュータ・システムの１つのオペレーティング・システム・パーティションから前記コンピュータ・システムの他のオペレーティング・システム・パーティションへ前記コンピュータ・システム内のハードウェア経路を通してラッピングすることと、
前記データ・パケット内の情報が非ラップ経路を示すときに、オペレーティング・システム・パーティションから受信された前記データ・パケットを外部ネットワークに結合された物理的ポートへ、或いは前記外部ネットワークから受信されたデータ・パケットをオペレーティング・システム・パーティションへ送ることと、
を含む方法。
【請求項２５】
前記コンピュータ・システムは前記外部ネットワークに結合された少なくとも１つの物理的ポートを含み、各オペレーティング・システム・パーティションはデータを送信し受信するために１つ以上の論理ポートを有し、前記論理ポートと、関連する物理的ポートとは、前記データ・パケットをそれを通して送るために前記論理スイッチにより選択されるところの仮想ポートとして動作するようになっている請求項２４に記載の方法。
【請求項２６】
前記データ・パケット内の前記情報は、宛先アドレスとパケット制御既述子とを含む請求項２４に記載の方法。
【請求項２７】
前記データ・パケットはユニキャスト・パケット、マルチキャスト・パケット、及びブロードキャスト・パケットのうちの１つである請求項２６に記載の方法。
【請求項２８】
もし前記データ・パケットがユニキャスト・パケットならば、前記データ・パケットを内部オペレーティング・システム・パーティションへ送るか或いは前記外部ネットワーク上の宛先へ送るかを判定するために前記データ・パケットの前記宛先アドレスが調べられる請求項２７に記載の方法。
【請求項２９】
もし前記データ・パケットがマルチキャスト・パケット又はブロードキャスト・パケットであれば、前記データ・パケットは前記コンピュータ・システム上に実装されたマルチキャスト／ブロードキャスト・マネージャに送られる請求項２７に記載の方法。
【請求項３０】
前記マルチキャスト／ブロードキャスト・マネージャは、前記パケットについての追加宛先のために前記データ・パケットを複製し、前記データ・パケットと複製されたデータ・パケットとについて、それらが前記マルチキャスト／ブロードキャスト・マネージャにより処理されたことを示すように前記パケット制御記述子を変更し、前記データ・パケットと複製されたデータ・パケットとを、それらが前記コンピュータ・システムと前記外部ネットワークとの適切な宛先に送られるように、出力する請求項２９に記載の方法。
【請求項３１】
前記マルチキャスト／ブロードキャスト・マネージャにより受信されたデータ・パケットが前記コンピュータ・システムのオペレーティング・システム・パーティションに送られるべきであるならば、前記マルチキャスト／ブロードキャスト・マネージャは、そのデータ・パケットが送られる特定のオペレーティング・システム・パーティションを示すタグを前記データ・パケットに付け加える請求項３０に記載の方法。
【請求項３２】
前記受信されたデータ・パケットがマルチキャスト・パケット又はブロードキャスト・パケットであって前記パケット制御既述子がそのデータ・パケットが前記マルチキャスト／ブロードキャスト・マネージャにより指定された追い出しパケットであることを示すならば、前記データ・パケットは前記外部ネットワーク上の宛先に送られる請求項２９に記載の方法。
【請求項３３】
前記受信されたデータ・パケットがマルチキャスト・パケット又はブロードキャスト・パケットであって前記パケット制御既述子がそのデータ・パケットが前記マルチキャスト／ブロードキャスト・マネージャにより指定された再循環パケットであることを示すならば、前記データ・パケットは、前記データ・パケットに関連付けられて前記マルチキャスト／ブロードキャスト・マネージャにより提供されるタグにより示される前記コンピュータ・システムのオペレーティング・システム・パーティションに送られる請求項２９に記載の方法。
【請求項３４】
コンピュータ・システムに設けられた複数のオペレーティング・システム・パーティションにネットワーク通信を分配するための装置であって、前記装置は、
外部ネットワークに結合された少なくとも１つの物理的ポートであって、前記外部ネットワークと前記コンピュータ・システムとの間の通信を可能にする物理的ポートと、
前記オペレーティング・システム・パーティションのうちの１つと各々関連付けられた複数の論理ポートと、
前記物理的ポートと前記論理ポートとを選択すると共に前記オペレーティング・システム・パーティション及び前記物理的ポートへの情報の伝達を可能にする前記コンピュータ・システム内に実装された論理スイッチと、
を含む装置。
【請求項３５】
前記論理スイッチがデータ・パケットを受信したとき、前記パケット内の情報がラップ経路を示すときには前記論理スイッチは前記データ・パケットを前記オペレーティング・システム・パーティションのうちの１つから前記コンピュータ・システム内のハードウェア経路を通して前記オペレーティング・システム・パーティションのうちの他のものへラッピングし、前記データ・パケット内の情報が非ラップ経路を示すときには前記論理スイッチは前記データ・パケットをオペレーティング・システム・パーティションから前記外部ネットワーク上の宛先へ、又は前記外部ネットワークから前記オペレーティング・システム・パーティションのうちの１つへ送る請求項３４に記載の装置。
【請求項３６】
前記データ・パケット内の前記情報は宛先アドレスとパケット制御既述子とを含む請求項３５に記載の装置。
【請求項３７】
前記データ・パケットはユニキャスト・パケット、マルチキャスト・パケット、及びブロードキャスト・パケットのうちの１つである請求項３６に記載の装置。
【請求項３８】
もし前記データ・パケットがユニキャスト・パケットならば、前記論理スイッチは、前記データ・パケットをオペレーティング・システム・パーティションへ送るか或いは前記外部ネットワーク上の宛先へ送るかを判定するために前記データ・パケットの前記宛先アドレスを調べる請求項３７に記載の装置。
【請求項３９】
もし前記データ・パケットがマルチキャスト・パケット又はブロードキャスト・パケットであれば、前記論理スイッチは前記データ・パケットを前記コンピュータ・システム上に実装されたマルチキャスト／ブロードキャスト・マネージャに送る請求項３７に記載の装置。
【請求項４０】
前記マルチキャスト・ブロードキャスト・マネージャは、前記パケットについての追加宛先のために前記データ・パケットを複製し、前記データ・パケットと複製されたデータ・パケットとについて、それらが前記マルチキャスト／ブロードキャスト・マネージャにより処理されたことを示すように前記パケット制御記述子を変更し、前記データ・パケットと複製されたデータ・パケットとを、それらが前記コンピュータ・システムと前記外部ネットワークとの適切な宛先に送られるように、出力する請求項３９に記載の装置。
【請求項４１】
前記マルチキャスト／ブロードキャスト・マネージャにより受信されたデータ・パケットが前記コンピュータ・システムのオペレーティング・システム・パーティションに送られるべきであるならば、前記マルチキャスト／ブロードキャスト・マネージャは、そのデータ・パケットが送られる特定のオペレーティング・システム・パーティションを示すタグを前記データ・パケットに付け加える請求項４０に記載の装置。
【請求項４２】
前記論理スイッチにより受信された前記データ・パケットがマルチキャスト・パケット又はブロードキャスト・パケットであって前記パケット制御既述子がそのデータ・パケットが前記マルチキャスト／ブロードキャスト・マネージャにより指定された追い出しパケットであることを示すならば、前記データ・パケットは前記外部ネットワーク上の宛先に送られる請求項３９に記載の装置。
【請求項４３】
前記論理スイッチにより受信された前記データ・パケットがマルチキャスト・パケット又はブロードキャスト・パケットであって前記パケット制御既述子がそのデータ・パケットが前記マルチキャスト／ブロードキャスト・マネージャにより指定された再循環パケットであることを示すならば、前記データ・パケットは、前記データ・パケットに関連付けられて前記マルチキャスト／ブロードキャスト・マネージャにより提供されるタグにより示される前記コンピュータ・システムのオペレーティング・システム・パーティションに送られる請求項３９に記載の装置。
【請求項４４】
コンピュータ・システムのためにネットワーク通信を提供するための装置であって、前記装置は、
ネットワークに結合されて前記ネットワークと前記コンピュータ・システムとの間の通信を可能にする少なくとも１つの物理的ポートと、
前記コンピュータ・システムの少なくとも１つのユーザ・スペース内の少なくとも１つのプロセスから送られ又はそれにより受信されるデータ・パケットを格納するための複数の接続キューであって、前記少なくとも１つのプロセスのうちの１つと前記ネットワークとの間の異なるネットワーク接続に各々関連付けられる接続キューと、
前記コンピュータ・システムにより実装されたオペレーティング・システム・パーティションのカーネルから送られ又はそれにより受信されるデータ・パケットを格納するためのデフォルト・オペレーティング・システム・キューと、
を含む装置。
【請求項４５】
前記装置は複数のオペレーティング・システム・パーティションと、前記オペレーティング・システム・パーティションの各々と関連付けられた論理ポートとを更に含んでおり、各論理ポートは関連するデフォルト・オペレーティング・システム・キューを有し、デフォルト・オペレーティング・システム・キューに格納されているデータ・パケットは関連するオペレーティング・システム・パーティションのカーネルから送られ又はそれにより受信されるようになっている請求項４４に記載の装置。
【請求項４６】
前記物理的ポートと前記論理ポートとを選択すると共に前記オペレーティング・システム・パーティション及び前記物理的ポートへの情報の伝達を可能にする前記コンピュータ・システム内に実装された論理スイッチを更に含む請求項４５に記載の装置。
【請求項４７】
前記デフォルト・オペレーティング・システム・キューは、データ・パケットを、そのデータ・パケットのためのネットワーク接続が発見され得ないときに、格納する請求項４４に記載の装置。
【請求項４８】
前記ユーザ・スペース内の少なくとも１つのプロセスは、複数のネットワーク接続を有し、それらのネットワーク接続と関連付けられた前記接続キューによりサービスされる請求項４４に記載の装置。
【請求項４９】
前記接続キューにもデフォルト・オペレーティング・システム・キューにも格納されないデータ・パケットを格納するための特別デフォルト・キューを更に含む請求項４４に記載の装置。
【請求項５０】
マルチキャスト・データ・パケット及びブロードキャスト・データ・パケットを夫々格納するための特別マルチキャスト・デフォルトキュー及び特別ブロードキャスト・デフォルト・キューを更に含む請求項４４に記載の装置。
【請求項５１】
前記マルチキャスト特別デフォルト・キュー及び前記ブロードキャスト特別デフォルト・キュー内のデータ・パケットは前記コンピュータ・システム上に実装されたマルチキャスト／ブロードキャスト・マネージャに提供され、前記マルチキャスト／ブロードキャスト・マネージャは、前記データ・パケットを複製して、複数の宛先に送られる前記データ・パケット及び複製データ・パケットを出力する請求項５０に記載の装置。
【請求項５２】
コンピュータ・システムのためにネットワーク通信を提供する方法であって、前記方法は、
ネットワーク・アダプタでデータ・パケットを受け取ることと、
複数の接続キューのうちの１つに前記データ・パケットを格納することであって、前記接続キューが、関連するネットワーク接続を介して前記コンピュータ・システムの少なくとも１つのユーザ・スペース内の少なくとも１つのプロセスから送られ又はそれにより受信されるデータ・パケットを格納するためのものである前記格納することと、
前記データ・パケットを、もしそのデータ・パケットのためにネットワーク接続が見出され得なければ、デフォルト・オペレーティング・システム・キューに格納することであって、前記デフォルト・オペレーティング・システム・キューが、前記コンピュータ・システムにより実装されたオペレーティング・システム・パーティションのカーネルから送られ又はそれにより受信されるデータ・パケットを格納するためのものである前記格納することと、
を含む方法。
【請求項５３】
前記ネットワーク接続は前記少なくとも１つのプロセスとネットワークとの間に設けられ、前記コンピュータ・システムの少なくとも１つの物理的ポートは前記ネットワークに結合され、前記少なくとも１つの物理的ポートは前記ネットワークと前記コンピュータ・システムとの間の通信を可能にする請求項５２に記載の方法。
【請求項５４】
前記コンピュータ・システムは、複数のオペレーティング・システム・パーティションと、前記オペレーティング・システム・パーティションの各々と関連付けられた論理ポートとを提供し、各論理ポートは関連するデフォルト・オペレーティング・システム・キューを有し、デフォルト・オペレーティング・システム・キューに格納されているデータ・パケットは前記関連するオペレーティング・システム・パーティションのカーネルから送られ又はそれにより受信されるようになっている請求項５２に記載の方法。
【請求項５５】
前記データ・パケットが接続キューにもデフォルト・オペレーティング・システム・キューにも格納され得なければ前記データ・パケットを特別デフォルト・キューに格納することを更に含む請求項５２に記載の方法。
【請求項５６】
前記データ・パケットがマルチキャスト・パケット又はブロードキャスト・パケットであれば前記データ・パケットを特別マルチキャスト・デフォルト・キュー又は特別ブロードキャスト・デフォルト・キューに夫々格納することを更に含む請求項５２に記載の方法。
【請求項５７】
前記マルチキャスト特別デフォルト・キュー及び前記ブロードキャスト特別デフォルト・キュー内のデータ・パケットは前記コンピュータ・システム上に実装されたマルチキャスト／ブロードキャスト・マネージャに提供され、前記マルチキャスト／ブロードキャスト・マネージャは、前記データ・パケットを複製して、複数の宛先に送られる前記データ・パケット及び複製データ・パケットを出力する請求項５６に記載の方法。
【請求項５８】
前記ユーザ・スペース内の少なくとも１つのプロセスは、複数のネットワーク接続を有し、それらのネットワーク接続と関連付けられた前記接続キューによりサービスされる請求項５２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願との相互参照
本出願は、下記の同時係属中の米国特許出願と関連している。
【０００２】
本願と同じ日に出願されて本発明の譲受人に譲渡された“サーバ環境においてオフロードをネットワーク化するためのホスト・イーサネット（登録商標）・アダプタ（Ｈｏｓｔ  Ｅｔｈｅｒｎｅｔ  Ａｄａｐｔｅｒ  ｆｏｒ  Ｎｅｔｗｏｒｋｉｎｇ  Ｏｆｆｌｏａｄ  ｉｎ  Ｓｅｒｖｅｒ  Ｅｎｖｉｒｏｎｍｅｎｔ）”と題された米国特許出願第１１／９７，６０８号（代理人事件整理番号ＲＰＳ９２００５００５９ＵＳ１／３４８５Ｐ）。
【０００３】
本願と同じ日に出願されて本発明の譲受人に譲渡された、“数個のイーサネット（登録商標）・ポートと、簡易化されたフレーム・バイ・フレーム上部構造により処理されるラップ伝送されるフローとに配慮するための方法及びシステム(Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ａｃｃｏｍｍｏｄａｔｉｎｇ  Ｓｅｖｅｒａｌ  Ｅｔｈｅｒｎｅｔ  Ｐｏｒｔｓ  ａｎｄ  ａ  Ｗｒａｐ  Ｔｒａｎｓｍｉｔｔｅｄ  Ｆｌｏｗ  Ｈａｎｄｌｅｄ  ｂｙ  ａ  Ｓｉｍｐｌｉｆｉｅｄ  Ｆｒａｍｅ−Ｂｙ−Ｆｒａｍｅ  Ｕｐｐｅｒ  Ｓｔｒｕｃｔｕｒｅ）”と題された米国特許出願第１１／９６，３６３号(代理人事件整理番号ＲＰＳ９２００５００６０ＵＳ１／３４８６Ｐ）。
【０００４】
本願と同じ日に出願されて本発明の譲受人に譲渡された、“ネットワーク接続テーブルを提供するための方法及び装置(Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｒｏｖｉｄｉｎｇ  ａ  Ｎｅｔｗｏｒｋ  Ｃｏｎｎｅｃｔｉｏｎ  Ｔａｂｌｅ)”と題された米国特許出願第１１／９６，５７１号(代理人事件整理番号ＲＰＳ９２００５００６１ＵＳ１／３４８７Ｐ）。
【０００５】
本願と同じ日に出願されて本発明の譲受人に譲渡された、“ホスト・イーサネット（登録商標）・アダプタのための設定可能なポート(Ｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｏｒｔｓ  ｆｏｒ  ａ  Ｈｏｓｔ  Ｅｔｈｅｒｎｅｔ  Ａｄａｐｔｅｒ）”と題された米国特許出願第１１／９７，６５２号(代理人事件整理番号ＲＰＳ９２００５００７３ＵＳ１／３５０２Ｐ）。
【０００６】
本願と同じ日に出願されて本発明の譲受人に譲渡された、“ホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）においてチェックサムを分解し、フィルタリングし、計算するためのシステム及び方法（Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｐａｒｓｉｎｇ，  Ｆｉｌｔｅｒｉｎｇ，  ａｎｄ  Ｃｏｍｐｕｔｉｎｇ  ｔｈｅ  Ｃｈｅｃｋｓｕｍ  ｉｎ  ａ  Ｈｏｓｔ  Ｅｔｈｅｒｎｅｔ  Ａｄａｐｔｅｒ  （ＨＥＡ））”と題された米国特許出願第１１／９６，３６５号(代理人事件整理番号ＲＰＳ９２００５００７４ＵＳ１／３５０３Ｐ）。
【０００７】
本願と同じ日に出願されて本発明の譲受人に譲渡された、“ホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）において待ち時間を短縮する方法のためのシステム及び方法（Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  ａ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｒｅｄｕｃｉｎｇ  Ｌａｔｅｎｃｙ  ｉｎ  ａ  Ｈｏｓｔ  Ｅｔｈｅｒｎｅｔ  Ａｄａｐｔｅｒ  （ＨＥＡ））”と題された米国特許出願第１１／９６，３５３号(代理人事件整理番号ＲＰＳ９２００５００７５ＵＳ１／３５０４Ｐ）。
【０００８】
本願と同じ日に出願されて本発明の譲受人に譲渡された、“ネットワーク伝送のためのブラインド・チェックサム及び訂正のための方法及び装置(Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｂｌｉｎｄ  Ｃｈｅｃｋｓｕｍ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ  ｆｏｒ  Ｎｅｔｗｏｒｋ  Ｔｒａｎｓｍｉｓｓｉｏｎｓ）”と題された米国特許出願第１１／９７，０５５号(代理人事件整理番号ＲＰＳ９２００５００７６ＵＳ１／３５０５Ｐ）。
【０００９】
本願と同じ日に出願されて本発明の譲受人に譲渡された、“パケット・ヘッダ・ルックアップを実行する方法及びシステム (Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｅｒｆｏｒｍｉｎｇ  ａ  Ｐａｃｋｅｔ  Ｈｅａｄｅｒ  Ｌｏｏｋｕｐ）”と題された米国特許出願第１１／９６，３６２号(代理人事件整理番号ＲＰＳ９２００５００８２ＵＳ１／３５１２Ｐ）。
【００１０】
本願と同じ日に出願されて本発明の譲受人に譲渡された、“ホスト・イーサネット（登録商標）・アダプタ（ＨＥＡ）においてブラインド・チェックサムを計算するシステム及び方法（Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｃｏｍｐｕｔｉｎｇ  ａ  Ｂｌｉｎｄ  Ｃｈｅｃｋｓｕｍ  ｉｎ  ａ  Ｈｏｓｔ  Ｅｔｈｅｒｎｅｔ  Ａｄａｐｔｅｒ（ＨＥＡ））”と題された米国特許出願第１１／９７，４３０号(代理人事件整理番号ＲＰＳ９２００５００８９ＵＳ１／３５１６Ｐ）。
【００１１】
技術分野
本発明は、コンピュータ・ネットワークにおける通信に関し、特にオペレーティング・システム・パーティションとコンピュータ・ネットワークとの間の通信に関する。
【背景技術】
【００１２】
コンピュータ・システムは、イーサネット（登録商標）のような公知標準規格を用いてネットワーク接続を確立し使用することによってネットワークを介して互いに通信する。通例、システム上で動作する複数のエンティティー又はプロセスはネットワークを介して各々独立に通信することができる。システムとの複数の接続を介して効率的に通信することを可能にすることを補助するために、ネットワーク・ポートがシステムの入力及び出力のために設けられる。例えば、システムは、ネットワークへの１つ以上の物理的ポートを含むネットワーク・アダプタ・インターフェース・カードを含むことができる。
【００１３】
或るコンピュータ・システムは、複数のオペレーティング・システム（ＯＳ）が同時に独立に動作することを許す。例えば、ＩＢＭ社の或るサーバ・システムは各オペレーティング・システムをサーバ上のそれ自身のパーティションに設けることによって複数のオペレーティング・システムを動作させる。例えば、リナックス・パーティション、ＡＩＸ（ＩＢＭ社の商標）パーティション、異なるユニックス・パーティションが１つのサーバ上で同時に動作することができる。これらのＯＳパーティションの全てがネットワークを介して通信することを可能にするために、種々の方法が使用され得る。１つの方法では、サーバのＩ／Ｏホスティング・パーティションが、システム上で動作している全てのパーティションの通信ニーズを処理しなければならない。これはＯＳパーティションに対して低速の通信を生じさせる。なぜならば、複数のパーティションが、ネットワークを介するそれらのＩ／Ｏ通信において単一のＩ／Ｏホスティング・パーティションを通して妨げられ、例えば各パーティションは、単一のネットワーク・アダプタに接続されたパケット・フォワーダを含む単一のＩ／Ｏホスティング・パーティションを通してそのデータを送受信しなければならないからである。
【００１４】
他の構成では、高速通信を可能にするために、同じ機械上で各ＯＳパーティションにネットワーク・アダプタと物理的ネットワーク・ポートとを提供することができる。例えば、５つの異なるＯＳパーティションの各々に、物理的ポートと共にそれ専用のネットワーク・アダプタが設けられる。しかし、特に多数のＯＳパーティションが実装されるとき、その様な構成の費用は過大になり得る。
【００１５】
システム上で動作する複数のＯＳパーティションを持つためには、システムにより受信されシステムにより送られる情報が全ての適切なネットワーク宛先に経路指定されること、及び、パーティションが同じサーバ上で動作している他のパーティションと情報をやり取りできることが必要である。他のＯＳパーティションは、データ・パケットについての唯一の宛先として指定され得、或いはパケットについての数個の宛先のグループに含まれ得る。例えば、イーサネット（登録商標）・ネットワーク上のブロードキャスト（ＢＣ）ネットワーク機能及びマルチキャスト（ＭＣ）ネットワーク機能は、特定のシステム又はパーティションにより送られた情報を複数の宛先が受信することを可能にする。もし１つのパーティションがネットワーク上の全ての利用可能な宛先にブロードキャスト情報を送れば、システム上の他のＯＳパーティションの全てはそのブロードキャスト情報を受信しなければならない。
【００１６】
現存するシステムでは、幾つかの利用可能な方法のいずれかを用いて種々のＯＳパーティションへの、またそれらからのネットワーク・トラフィックが提供される。１つの方法ではサーバ・システムの外側のルータを通してレイヤ３経路指定が行われ、全てのデータ・パケットがシステムの外へ送られ、また逆にシステムの適切なＯＳパーティションに送られる。しかし、これは、より長くかかる外部経路に起因して非効率的であり得るし、また、レイヤ２プロトコル・サポートのような所望の機能の全てをサポートしないかもしれない。他の１つの方法では、完全なイーサネット（登録商標）・スイッチをネットワーク・アダプタに埋め込むことができる。そのスイッチは、適切な宛先にパケットを提供するために必要に応じて種々のパーティションを切り替える。しかし、この方法は、イーサネット（登録商標）・スイッチがアダプタ上の現存する回路の外側にあるために高価であり、また、非標準的な特注の特徴及び機能を必要とすることがある。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
サーバ・システムについての他のネットワーク通信問題は、データ・パケットのキューイングに関係する。慣例上、オペレーティング・システムから送出され又はそれにより受け取られるデータ・パケットを格納するために単一のキューが設けられ、そのオペレーティング・システムのカーネルのスタックがそのキュー中のパケットを処理する。他の或るシステムでは、他のタイプのキューイングを用いることができる。しかし、現存するキューイング方法は、複数のパーティションを有するシステムのニーズや、ユーザ・スペース・キュー及びＯＳカーネル・キューの両方を持つ可能性に対処しない。
【００１８】
従って、必要なのは、限られた数の物理的ポート、設定可能な回線速度、リソースを割り当てる効率的方法、及び種々のパケット・キューを有するコンピュータ・システムでの複数のＯＳパーティションの使用を含む、オペレーティング・システム・パーティション及びコンピュータ・ネットワークと効率的に且つ安価に通信するための装置及び方法である。本発明は、このようなニーズに対処する。
【課題を解決するための手段】
【００１９】
本出願の発明は、コンピュータ・ネットワークにおける、またオペレーティング・システム・パーティションとコンピュータ・ネットワークとの間における、通信に関する。本発明の１つの側面において、コンピュータ・システムに設けられた複数のオペレーティング・システム・パーティションにネットワーク通信を分配するための装置はネットワークに結合された少なくとも１つの物理的ポートを含み、その物理的ポートはネットワークとコンピュータ・システムとの間の通信を可能にする。その少なくとも１つの物理的ポートと関連する論理ポートが含まれ、それらの論理ポートの各々はオペレーティング・システム・パーティションの１つと関連付けられる。論理ポートの各々は、関連する物理的ポートと関連するオペレーティング・システム・パーティションとの間での情報の伝達を可能にし、システムのネットワーク・リソースのコンフィギュレーション能力を可能にする。
【００２０】
本発明の他の側面において、コンピュータ・システムに設けられた複数のオペレーティング・システム・パーティションにネットワーク通信を分配する方法は、オペレーティング・システム・パーティションと、そのオペレーティング・システム・パーティションに関連する少なくとも１つの論理ポートとの間で情報を伝達することを含む。複数のオペレーティング・システム・パーティションの各々は、関連する少なくとも１つの論理ポートと通信することができる。この方法は、そのオペレーティング・システム・パーティションと関連する少なくとも１つの論理ポートと、その少なくとも１つの論理ポートと関連する少なくとも１つの物理的ポートとの間で情報を伝達することをも含み、物理的ポートはネットワークに結合される。
【００２１】
本発明の他の側面において、コンピュータ・システムにおいてネットワーク通信を分配する方法は、コンピュータ・システム内の論理スイッチでデータ・パケットを受け取ることを含み、コンピュータ・システムは複数のオペレーティング・システム・パーティションを動作させる。そのデータ・パケットは、そのパケット内の情報がラップ経路を示すときには、コンピュータ・システムの１つのオペレーティング・システム・パーティションからコンピュータ・システム内のハードウェア経路を通ってコンピュータ・システムの他のオペレーティング・システム・パーティションにラッピングされる。データ・パケット内の情報が非ラップ経路を示すときには、データ・パケットは、もしオペレーティング・システム・パーティションから受け取られたならば、外部ネットワークに結合された物理的ポートに送られ、或いは、もし外部ネットワークから受け取られたならば、オペレーティング・システム・パーティションに送られる。
【００２２】
本発明の他の側面において、コンピュータ・システムに設けられた複数のオペレーティング・システム・パーティションにネットワーク通信を分配するための装置は、外部ネットワークに結合された少なくとも１つの物理的ポートを含み、この物理的ポートは外部ネットワークとコンピュータ・システムとの間の通信を可能にする。含まれる論理ポートは、各々、オペレーティング・システム・パーティションの１つと関連付けられる。コンピュータ・システム内に実装された論理スイッチは、物理的ポート及び論理ポートを選択し、オペレーティング・システム・パーティションと物理的ポートとへの情報の伝達を可能にする。
【００２３】
本発明の他の側面において、コンピュータ・システムにネットワーク通信を提供するための装置は、ネットワークに結合された少なくとも１つの物理的ポートを含み、この物理的ポートはネットワークとコンピュータ・システムとの間の通信を可能にする。コンピュータ・システムの少なくとも１つのユーザ・スペース内の少なくとも１つのプロセスから送られ又はそれにより受け取られるべきデータ・パケットを格納するために複数の接続キューが包含され、各接続キューは少なくとも１つのプロセスのうちの１つとネットワークとの間の異なるネットワーク接続と関連付けられる。コンピュータ・システムにより実装されたオペレーティング・システム・パーティションのカーネルから送られ又はそれにより受信されるデータ・パケットを格納するためにデフォルト・オペレーティング・システム・キューも包含される。
【００２４】
本発明の他の側面において、コンピュータ・システムのためにネットワーク通信を提供する方法はネットワーク・アダプタでデータ・パケットを受け取ることを含む。データ・パケットは接続キューに格納され、接続キューは、関連するネットワーク接続を介してコンピュータ・システムの少なくとも１つのユーザ・スペース内の少なくとも１つのプロセスから送られ又はそれにより受け取られるデータ・パケットを格納する。データ・パケットは、もしそのデータ・パケットのためにネットワーク接続が見出され得なければデフォルト・オペレーティング・システム・キューに格納され、デフォルト・オペレーティング・システム・キューは、コンピュータ・システムにより実装されたオペレーティング・システム・パーティションのカーネルから送られ又はそれにより受信されるデータ・パケットを格納する。
【００２５】
本発明は、サーバ・システムに設けられた複数のオペレーティング・システム（ＯＳ）パーティションへの高速で効率的な通信を可能にする。ソフトウェアにとってはトランスペアレントな、本発明のネットワーク・アダプタを用いて、全てのパーティションにアダプタを供給することを必要とせずに、また標準的アダプタ・ハードウェアを用いて、各パーティションがそれ自身の専用イーサネット（登録商標）・アダプタを持っているのと同じような性能を達成することができる。本発明の論理スイッチは、ユニキャスト・パケット、ブロードキャスト・パケット、及びマルチキャスト・パケットを含む全てのタイプのデータ・パケットをネットワーク及びＯＳパーティションに効率的に提供することを可能にし、本発明のパケット・キューは、例えば複数のＯＳパーティションを有するシステムにおいて多様なキューイングをサポートすることを可能にする。本発明は、イーサネット（登録商標）又は類似のネットワークをバーチャル化し、リソースを割り当て、回線速度及び他のリソースを設定する効率的方法を提供する。
【発明を実施するための最良の形態】
【００２６】
本発明は、コンピュータ・ネットワークにおける通信に関し、特にオペレーティング・システム・パーティションとコンピュータ・ネットワークとの間の通信に関する。以下の記述は、当業者が本発明品を製造し使用することを可能にするべく提示され、特許出願及びその要件と関連して提供される。本書に記載されている好ましい実施態様と一般原理と特徴とに対する種々の改変は、当業者にとっては明白であろう。従って、本発明は、示された実施態様に限定されるべく意図されてはおらず、ここに記載されている原理及び特徴と矛盾しない最も広い範囲が与えられるべきである。
【００２７】
本発明は、主として、特定のインプリメンテーションで提供されたシステムに関して記載される。しかし、当業者は、この方法及びシステムが実際上他のインプリメンテーションでも働くであろうことを容易に認めるであろう。例えば、本発明で使用し得るシステム・アーキテクチャ及びネットワーク構成はいろいろな形をとることができる。本発明は、一定のステップを有する特定の方法の文脈においても記載される。しかし、本方法及びシステムは、本発明と矛盾しない異なるステップ又は追加のステップ或いはその両方を有する他の方法に関しても有効に働く。
【００２８】
本発明の特徴をより具体的に記載するために、以下の検討と関連させて図１ないし１０を参照されたい。本発明は、ＩＥＥＥ８０２．３イーサネット（登録商標）・ネットワーク・プロトコル及び伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）クライアント・サーバ・システムと関連して記載される。他のプロトコル（ユーザ・データグラム・プロトコル（ＵＤＰ）など）及び構成も他の実施態様において使用され得る（例えば、ＵＤＰ５タプルをキューにマッピングすることができる）。
【００２９】
図１は、本発明に用いるのに適するシステム１０のブロック図である。システム１０は、サーバ、メインフレーム、デスクトップ・クライアント・コンピュータ、ワークステーション、又は他のコンピュータ又は電子装置のようなコンピュータ・システムである。ここに記載される実施態様では、システム１０は一般的にサーバ・システムと称される。良く知られているように、システム１０には１つ以上のマイクロプロセッサ、メモリ（ＲＡＭ又はＲＯＭ或いはその両方）、及び他のコンポーネントが設けられる。
【００３０】
記載される実施態様では、サーバ・システム１０はネットワーク接続１４を介して他の種々のコンピュータ・システム１２と通信することができる。コンピュータ・システム１２は、サーバ、クライアント・マシン、又は他のコンピュータ又は電子装置であり得る。例えば、サーバ・システム１０は、イーサネット（登録商標）、ＴＣＰ/ＩＰのようなネットワーキング・プロトコル、又は他のタイプのプロトコル、或いはその両方を用いてコンピュータ・システム１２と通信することができる。
【００３１】
ここに記載される実施態様のいくつかについて、サーバ・システム１０は数個のオペレーティング・システム（ＯＳ）パーティション１６を含む。各パーティション１６でオペレーティング・システムは独立に動作することができる。例えば、ユニックス、リナックス、ＩＢＭ社のＡＩＸ（ＩＢＭ社の商標）、マイクロソフト社のウィンドウズ（登録商標）、アップルコンピュータ社のマックＯＳ、又はその他のようなオペレーティング・システムが各々パーティション１６で動作することができ、一定タイプのＯＳの複数のインスタンスが別々のパーティション１６で動作することができる。
【００３２】
ＯＳパーティション１６の各々は、ネットワーク１４を介して情報を送受信することができ、ネットワーク上のデータ・パケットのソース又は宛先或いはその両方として行動することができる。例えば、パーティション１６で動作するＯＳは、例えばウェブ・ページ・データをコンピュータ・システム１２に提供するウェブ・サーバ・アプリケーションなどの、“ユーザ・スペース”内のサーバ・アプリケーション又はプロセスを提供することができ、又は、１つ以上のコンピュータ・システム１２により提出されたデータベース・データ又はプロセス・データを提供し、或いはそれら両方を提供する。
【００３３】
各々のアクティブなパーティション１６は、ネットワーク・アダプタ２０を通してネットワーク１４にデータを送り、ネットワーク１４からデータを受け取る。アダプタ２０は、コンピュータ・システム１２からネットワークを介して受け取られたデータ・パケットの適切なＯＳパーティション１６への提供を処理する。また、ネットワーク・アダプタ２０は、ＯＳパーティション１６からパケットを受け取って、その宛先がネットワーク１４上のコンピュータ・システム１２であっても他のＯＳパーティション１６であっても、その情報の適切な宛先への送信を制御する。ネットワーク・アダプタは、入来データストリームの適切なデータを別々のＯＳパーティションに送る多重分離機能を提供する。ネットワーク・アダプタ２０は、１つ以上の物理的ポート２２をネットワーク１４へのハードウェア接続として提供するハードウェア・インターフェース・アダプタであり得る。アダプタ２０は、以下で詳しく記載される本発明の機能を実行するハードウェア論理、マイクロプロセッサ、メモリ（ＲＡＭ又はＲＯＭ或いはその両方）、他の適切なコンポーネントのいずれか１つ以上を含むことができる。アダプタ２０は、サーバ・システムに差し込まれる取り外し可能な別個のカードとして設けられ得、或いは他のサーバ・システム・コンポーネントに組み込まれ得る。他の実施態様では、アダプタ２０の機能はソフトウェアで、或いはハードウェアとソフトウェアとの組み合わせで実行され得る。
【００３４】
この明細書の全体にわたって記載される本発明の特徴と共に使用され得るシステム・コンポーネントの例が、２００５年４月１日に出願された、“サーバ環境におけるネットワーク化オフロードのためのホスト・イーサネット（登録商標）・アダプタ（Ｈｏｓｔ  Ｅｔｈｅｒｎｅｔ  Ａｄａｐｔｅｒ  ｆｏｒ  ａ  Ｎｅｔｗｏｒｋｉｎｇ  Ｏｆｆｌｏａｄ  ｉｎ  ａ  Ｓｅｒｖｅｒ  Ｅｎｖｉｒｏｎｍｅｎｔ）”と題された関連する多重分離特許出願第１１／９７，６０８号（ＲＰＳ９２００５００５９ＵＳ１／３４８５）に同時係属記載されて見出され得、その全体が参照により本書に組み込まれる。
【００３５】
図２は、図１に示されているアダプタ２０により使用され実装されるように提供された本発明の論理ポート・システム５０の線図である。図１に関して記載されたようにシステム１０においてＯＳパーティション１６が実装される。図２の例では、利用可能な３２個のＯＳパーティションがある。
【００３６】
２グループ５４及び５６の論理ポート５８が図２に示されている。本発明の論理ポート５８は、システム１０のＯＳパーティション１６の、物理的ポート２２へのマッピングである。図２の例では、５個の物理的ポート２２ａ、２２ｂ、２２ｃ、２２ｄ、２２ｅがネットワーク・アダプタ２０上で利用可能である。これらの物理的ポートは、好ましくは、それらの各々にどれだけの量の帯域幅を割り当てられるかに関して設定可能である。図２の例では、４つの物理的ポート２２ａ−ｄに夫々１ギガビット／秒が割り当てられ、物理的ポート２２ｅに１０ギガビット／秒が割り当てられている。他の実施態様では他の割り当てを用いることができ、好ましくは、エンド・ユーザは、ネットワーク・アダプタ２０の物理的限界内で希望に応じて帯域幅割り当てを設定することができる。
【００３７】
論理ポート５８の各々は、関連付けられたＯＳパーティションがその特定の論理ポートを“所有する”ように、物理的ポート２２をＯＳパーティション１６の１つにマッピングする。図示されている例では、論理ポート５８ａはパーティション１６ａ内のＯＳ２を物理的ポート２２ａにマッピングし、論理ポート５８ｂはパーティション１６ｂ内のＯＳ４を物理的ポート２２ａにマッピングする、などである。図示されているように、複数の論理ポート５８が単一のＯＳパーティション１６を１つ又は複数の物理的ポートにマッピングすることができる。合計３個の論理ポート５８がＯＳ４を合計４個の物理的ポート２２にマッピングして示されている。各物理的ポートと、その物理的ポートに割り当てられた論理ポートとは、図３に関して以下で記載される論理スイッチにより選択される。各論理ポートは、論理スイッチ上に１つの独自のポートを持つことができる。
【００３８】
各ＯＳパーティション１６において動作するＯＳの観点からは、そのＯＳは、利用可能な物理的ポート２２の排他的使用権を得る。ＯＳパーティションが論理ポートの仮想化及び構成に気づかないように、すなわち、各ＯＳパーティションがそれに割り当てられた論理ポートを物理的ポートと見るように、論理ポート５８はＯＳパーティションにとってはトランスペアレントであるようにセットアップされる（論理ポートはＯＳにとっては正確に物理的ポート構造のようには見えない）。ＯＳは、例えば、（図９に関して記載されるように）各論理ポートに関連するキューを見、各論理ポートに関連するリソースと影響を及ぼし合う。
【００３９】
論理ポート５８は、ポート・グループ５４及び５６のようなポート・グループに組織され得る。各ポート・グループ内の論理ポートは、自分たちが参照することのできる物理的ポートの特定のセットに割り当てられ、それらの物理的ポートはそのポート・グループ内にあるとも考えられる。例えば、ポート・グループ５４内の論理ポート５８は、物理的ポート２２ｅにではなくて物理的ポート２２ａ−ｄに割り当てられ得る。同様に、ポート・グループ５６内の論理ポート５８は、物理的ポート２２ａ−ｄにではなくて物理的ポート２２ｅに割り当てられ得る。
【００４０】
各ポート・グループ５４又は５６は利用可能なＮ個の論理ポートを持つように指定され、それは、システムが設定されるときにニーズが要求するとおりにシステム・マネージャが割り当てることのできるリソース・プールである。各論理ポートは、そのポート・グループ内のどの物理的ポートにも割り当てられ得る。これは、ユーザ、システム管理機能、又はプログラムが、ポート・グループ内の物理的ポートへの帯域幅の分配、パーティション・アクセスの分配など、各ポート・グループ内でリソースを希望通りに設定することを可能にする。システム制約条件（メモリなど）が各ポート・グループの論理ポートの数を制限し得る。例えば、図２の例では、各ポート・グループは１３論理ポートに制限され得る。
【００４１】
ポート・グループ５４又は５６の使用は、帯域幅などの、ほぼ同じ一定量のリソース使用を各ポート・グループのために割り当てることを可能にする。例えば、４つの１ギガビット物理的ポートを有することのできるポート・グループ５４は、１つの１０ギガビット物理的ポートを有するポート・グループ５６とほぼ同じ帯域幅リソースに制限され得る。（例えば、５つ以上の１ギガビット・ポートなど、より多くの物理的ポートのために必要なＩ／Ｏピンの数などのリソース割り当てを左右する他の要素も作用し始めることができる。）物理的ポートにおけるボトルネックを減少させるために、各々のより狭い帯域幅の物理的ポート（例えば、１ギガビット）におけるネットワーク・スループットは、好ましくは、より大きな帯域幅のポート（例えば、１０ギガビット）におけるスループットと同様には共有されない。図２の例では、各１ギガビット・ポート２２ａ-ｄは、ＯＳ帯域幅使用を４つの物理的ポート２２ａ-ｄの全てに分散させるために５つに及ぶＯＳパーティションを扱うように割り当てられる。対照的に、単一の１０ギガビット物理的ポート２２ｅは、ポート・グループ５６の１３個の論理ポート５８の全てに帯域幅を分配する。
【００４２】
入来パケットを論理ポートに割り当てることができるように、各論理ポート５８に識別値又は名称を割り当てることができる。例えば、一実施態様は、各論理ポート５８に、論理ポートを識別するために異なる媒体アクセス制御（ＭＡＣ）アドレスを割り当てることができる。ＭＡＣアドレスは、ネットワーク内のノードを一意に識別するハードウェア・アドレスである。物理的ポートに到着した各パケットは、そのパケット内の宛先（ＤＡ）ＭＡＣアドレスと一致するＭＡＣアドレスを有する論理ポートに割り当てられる。
【００４３】
各論理ポートは送信及び受信動作のためにデフォルト論理ポート・キュー及びキューイング・プロセスにも関連付けられ得る。このことは、以下で図９及び１０に関して詳しく記載される。
【００４４】
各論理ポート５８は、好ましくは、通常各物理的ポート２２と関連する、関連するリソース及び構成パラメータの自分自身のセットを有する。これらのリソース及び構成パラメータは、各論理ポートがあたかも物理的ポートであるかのように機能を実行することを可能にする。例えば、各論理ポート５８は管理情報ベース（ＭＩＢ）カウンタの自分自身のセットを有することができ、それは、その論理ポートにより送信及び受信されたバイト及びパケットの数、その論理ポートで検出された各タイプのエラーの数、などを数える。各論理ポートは、各論理ポートのために独立の判定基準を用いる、パケット・タイプに基づくパケットのタイプ、又は仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）タイプなどのフィルタリング、又はマルチキャスト・アドレスのフィルタリング、或いはそれらのフィルタリングの両方のようなフィルタリング・プロセスを各論理ポートが独立に実行することを可能にする自分自身のフィルタ・テーブルを有することができる。他のフィルタリング構成は、イーサネット（登録商標）のための“ＳＮＡＰ”フレーム、“ＪＵＭＢＯ”（大型サイズ）フレーム、又はパケットのための他のフレーム・フォーマットをフィルタリングするための判定基準を含む。構成はＶＬＡＮ抽出構成を含むことができ、それは入来パケットのフレームからのＶＬＡＮタグの抽出を可能にする。更に、構成は、パケットの通過を許したり、エラーが発見された場合に許さなかったりするというような、チェックサム・エラーを発見したときにとられ得る処置（例えば、ＩＰ又はＴＣＰプロトコルについて）のためにセットされ得る。また、構成リソースは、パー・コネクション・キューイング(図９に関連して以下で記載される）など、本発明の他の特徴のためのイネーブルメント・セッティングを含むことができる。
【００４５】
論理ポート５８は、単一のネットワーク・アダプタ２０上に設けられ得る物理的ポート２２の単一のセットを複数のＯＳパーティションが共有することを可能にする。本発明では、潜在的に大きな数のＯＳパーティション（例えば、２５）が、全て、遥かに少数の物理的ポート（例えば、５）を使用するときにネットワークへのアクセスを持つことができる。他の利点は、論理ビューやレベル・ビューに影響を及ぼさずに、グループのポートを物理的レベルで例えば１×１０Ｇ又は４×１Ｇ帯域幅にセットできるようなポート・グループのコンフィギュレーション能力である。従って、ポートのＯＳパーティション・ビューは、物理的ポート帯域幅割り当てが変化したとき、変化しなくても良い。更に、より大きな効率及び速度を目的として帯域幅を広げるように分配され得る論理ポートをＯＳパーティションに割り当てることができ、すなわち、各ポート・グループはほぼ同じ総帯域幅に制限され、各ＯＳパーティションのために専用のネットワーク・アダプタ及び物理的ポートを設けることを必要とせずに高速通信を可能にする。
【００４６】
図３は、論理スイッチを含む本発明の通信システム１００のブロック図である。ＯＳパーティション１６がサーバ・システム１０に設けられて、論理ポート５８によってポート・グループ１０２にマッピングされている。物理的ポート２２もポート・グループ１０２に含まれている。
【００４７】
論理ポート５８は、論理スイッチ１０４によって、関連する物理的ポート２２に接続される。これらは、ネットワーク・アダプタ２０において好ましくはハードウェアで実装される論理スイッチであって、ＯＳパーティション１６により送信及び受信されるパケットのための経路を決定する。論理ポートと物理的ポートとは全て論理スイッチに接続された仮想ポートになり、論理スイッチはこれらの仮想ポートのいずれにも切り替わってそのポートを通してデータを送り或いはそのポートからデータを受け取ることができる。
【００４８】
図３に示されているように、論理スイッチ１０４は、ネットワーク・アダプタの各物理的ポート２２のために設けられて、その物理的ポートを、その物理的ポート２２と関連する論理ポート５８に結合させる。物理的ポート１０５は論理スイッチ１０８に関連付けられ、これは論理ポート１０９ａ−ｃ及びパーティション１１２，１１４、及び１１６に接続される。同様に、物理的ポート１０６は論理スイッチ１１０に関連付けられ、これは論理ポート１１１ａ−ｃ及びパーティション１１８，１２０、及び１２２に接続される。
【００４９】
ネットワーク１４と物理的ポートとの間でインターフェースする外部スイッチ１２４を物理的ポート２２に結合させることができる。このスイッチは、通常はネットワーク・アダプタ２０及びシステム１０の外にあるハードウェア・コンポーネントである。例えば、外部スイッチ１２４は、入来するパケットを適切な物理的ポートに経路指定することができ、（例えば、それはポートへの宛先ＭＡＣアドレスのテーブルを維持する）、全ての物理的ポートから出力されるパケットをネットワーク１４に経路指定することができる。外部スイッチ１２４は、レイヤ２又はレイヤ３外部スイッチであり得、或いは両方のレイヤを処理することができる。
【００５０】
論理スイッチ１０４は、入来するパケットを適切なＯＳパーティション１６に送り、またＯＳパーティション１６からの送出パケットを関連する物理的ポートに送ることができるだけではなくて、１つのＯＳパーティション１６からの適切なパケットを同じサーバ・システム１０内の１つ以上の他のＯＳパーティション１６に送ることもできる。パケットが１つのＯＳパーティションから他のＯＳパーティションに内部で送られるべきときには、それは本書では“ラップ”経路と称され、パケットがサーバ内でラッピングされることを示す。“非ラップ”経路は、パケットがＯＳパーティションと外部ネットワーク１４との間で伝達される場合の経路である。論理スイッチ１０４は、経路１２８で示されているようにサーバ・システム１０と外部ネットワークとの間で、経路１３０で示されているように同じ論理スイッチ１０４に存する２つのＯＳパーティションの間で、また、経路１３２により示されているように異なる論理スイッチに存する２つのＯＳパーティション間で、パケットを経路指定することができる。経路１３２は、２つの論理スイッチ１８の間の経路が適切な物理的ポート２２を通り得、また外部スイッチ１２４を通り得ることを示している。
【００５１】
図４は、サーバ・システム上で複数のＯＳパーティションに、また複数のＯＳパーティションから、パケットを送る方法を示す流れ図である。このプロセスは、ＯＳパーティション１６から、物理的ポート２２を通してネットワーク１４から、或いはマルチキャスト／ブロードキャスト・マネージャ（後述する）から情報のパケットを得るときのネットワーク・アダプタ２０の見地からのものである。プロセス２００は、パケットがネットワークに送信されることと、パケットがネットワークから受信されることとを記述する。このプロセスを２つの異なるプロセス、すなわち１つはネットワーク１４へのパケットの送信のためのプロセス、１つはネットワークから、またラップ経路から、パケットを受信するためのプロセス、に分離し得ることを当業者は理解するであろう。この方法は、好ましくは論理回路及びゲート、プロセッサなどのようなハードウェアで実行されるが、ソフトウェアでも、或いはソフトウェアとハードウェアとの組み合わせでも実行され得る。
【００５２】
本方法は２０２から始まり、ステップ２０４で、パケットがネットワーク・アダプタ２０において得られる。１つのシナリオでは、パケットがネットワーク１４を横断して或いは他のＯＳパーティション１６へ送信されるべくＯＳパーティション１６又はサーバ・システムのマルチキャスト／ブロードキャスト・マネージャ（後述する）から得られる。他のシナリオでは、パケットはコンピュータ・システム１２又は他の装置からネットワーク１４からネットワーク・アダプタの物理的ポート２２を通して得られる（受信される）。
【００５３】
ステップ２０６で、プロセスは、受信されたパケットで得られたパケット制御記述子を、そのパケットのステータスを判定するために、チェックする。記述される実施態様では、パケット制御記述子は、そのパケットについての異なるステータスを各々示す３つの可能な値の１つを持つことができる。１つの値は、パケットが“標準の”ステータスを有することを示す、すなわち、それは本発明で用いられるように改変されていないパケットである。このタイプのパケットは、普通は、ＯＳパーティション１６により送出されるか、又はネットワーク１４を介して送信／受信される。第２の値は、パケットが“追い出し（ｆｏｒｃｅ  ｏｕｔ）”ステータスを有することを示す、すなわち、それは本発明で用いられるように改変され（図５に詳しく記載されているように）、ネットワーク・アダプタの物理的ポート２２から自動的に送出されるパケットである。第３の値はパケットが“再循環（ｒｅｃｉｒｃｕｌａｔｅ）”ステータスを有することを示す、すなわち、それはサーバ・システム１０内で自動的にＯＳパーティション１６にラッピングされるように改変されている（図５に詳しく記載されているように）パケットである。
【００５４】
ステップ２０８で、プロセスは、パケットが標準ステータスを有するか非標準ステータスを有するかを判定する。もしそれが標準パケットであれば、プロセスはステップ２１０に続き、ここでプロセスはそのパケットがユニキャスト（ＵＣ）パケットであるか、それともマルチキャスト（ＭＣ）／ブロードキャスト（ＢＣ）パケットであるかを調べる。良く知られているように、ユニキャスト・パケットは単一の指定された宛先を有し、マルチキャスト・パケットは複数の指定された宛先を有し、ブロードキャスト・パケットは全ての使用可能な宛先に送られなければならない。もしそれがＵＣパケットであれば、プロセスはステップ２１２に続き、ここでプロセスは、そのパケットの宛先（ＤＡ）ＭＡＣアドレスがそのパケットがサーバ・システム１０のＯＳパーティション１６のような内部宛先に送られるべきであることを示しているのか、それとも物理的ポート２２を介して外のネットワークに送信されるべきであることを示しているのかをチェックする。パケットの宛先は、このＭＡＣアドレスから判定され得る。システム１０の各論理ポート５８にはＭＡＣアドレスが割り当てられており、物理的ポート２２を介してネットワークからパケットが受信されると、得られたパケットのＤＡ  ＭＡＣは、そのパケットを受信した物理的ポートと関連する論理スイッチの各論理ポートの各ＭＡＣと比較される。
【００５５】
パケットが内部宛先に送られるべきであれば、プロセスはステップ２１４に続き、ここでパケットは、例えば、そのパケットにおいて見出された宛先アドレスＭＡＣを有する論理ポートに存するＯＳパーティション１６に内部で送られる。上で記載されたように、宛先ＭＡＣアドレスは、所望のＯＳパーティションにマッピングされている同じＭＡＣアドレスを有する論理ポート５８を見出すために使用される。パケットがラップ経路上にあるときには、すなわちそれがＯＳパーティション又はＭＣ/ＢＣマネージャから得られて別のＯＳパーティションに送られるのであれば、そのパケットは、あたかもそのパケットがネットワーク及び物理的ポートからのラインで受信されたかのようにネットワーク・アダプタ２０の受信側多重分離論理に注入される。その後、プロセスは２１８で完了する。
【００５６】
パケットがステップ２１２で内部で送られないのであれば、すなわちそのパケットがネットワークで送信されるべきであれば、ステップ２１６において、そのパケットはネットワーク１４を介して宛先に送られるべく適切な物理的ポート２２から出力される。上で記載されたように、パケットは、ステップ２０４でそのパケットがそこから得られたところのＯＳパーティションの論理ポートを含むポート・グループと関連する物理的ポート２２を通して送出される。その後、プロセスは２１８で完了する。
【００５７】
パケットがステップ２１０でマルチキャスト又はブロードキャスト（ＭＣ/ＢＣ）パケットであることが見出されたならば、プロセスはステップ２２０に続き、ここでパケットはネットワーク・アダプタ２０からサーバ・システム１０の内部ＭＣ/ＢＣマネージャに送られる。もしＯＳパーティション１６がステップ２０４でそのパケットを提供したのであれば、そのパケットは、あたかもそのパケットがネットワークからのラインで受信されたかのようにラップ経路でネットワーク・アダプタ２０の受信側多重分離論理へ送られ、ＭＣ/ＢＣマネージャへの多重分離フローに従う。ＭＣ/ＢＣマネージャは、サーバ・システム１０に設けられたソフトウェア・プロセスであり得て、ハードウェアを使用するより低速であっても良いけれども、ＭＣ又はＢＣパケットは通常はネットワーク・トラフィック全体の小さなパーセンテージであるので、これはシステム性能を顕著には低下させない。パケットを受信したときのＭＣ/ＢＣマネージャのプロセスが以下で図５と関連して記載される。
【００５８】
ステップ２０８で、受信されたパケットが標準ステータスを持っていないことが見出されたならば、そのパケットはＭＣ/ＢＣマネージャから得られた。ＭＣ/ＢＣマネージャは、ステップ２２０の前の反復でそれに送られたパケットのステータスを、そのパケット制御記述子を変更することによって、改変しているか、或いは図５に関して以下で記載されるように非標準ステータスを有する複製パケットを作っている。プロセス２００は、受信された非標準パケットが“追い出し”又は“再循環”のステータスを有するか判定するためにステップ２２２でパケット制御記述子をチェックする。もしパケットが追い出しパケットであれば、プロセスはステップ２２４に続き、ここでそのパケットは、そのマルチキャスト／ブロードキャストＭＡＣアドレスにより示される宛先に送信されるべく物理的ポートを介してネットワーク１４へ送出される、すなわちこのパケットはＭＣ/ＢＣマネージャにより外部に送信されるように指定されている。その後、プロセスは２１８で完了する。
【００５９】
もしパケットがステップ２２２で再循環パケットであれば、プロセスはステップ２２６に続き、ここでそのパケットは、パケットに付随する宛先タグ（このタグは好ましくはパケットとは別である）により示される内部論理ポートへ送られる。このタグとパケット制御既述子とは、内部ラップ経路に沿ってラッピングされるパケット共に受信側多重分離論理に渡される。宛先タグは、そのパケットが経路指定されるべき内部論理ポート５８へのポインタを提供するためにＭＣ/ＢＣマネージャによりそのパケットに付け加えられたので、アダプタ２０はこのステップにおいて該パケットのＤＡ  ＭＡＣアドレスを無視して該パケットをそのタグで指定されている論理ポートに存するＯＳパーティションへ経路指定する。その後、プロセスは２１８で完了する。本発明における宛先タグの使用は、パケットのオリジナルＤＡ  ＭＡＣアドレスが改変されずにパケットに存続することを可能にし、これによりパケットのＤＡ  ＭＡＣアドレスがそれを必要とする任意の他の後のネットワーク・プロセスにより使用されることを可能にし、本インプリメンテーションの重要な利点である。
【００６０】
図５は、サーバ・システム１０からの又はその中での配布のためにマルチキャスト又はブロードキャスト・パケットを管理する本発明の方法２５０を示す流れ図である。この方法は、好ましくは、サーバ・システム１０のソフトウェアで実装されてネットワーク・アダプタ２０とインターフェースすることのできるＭＣ/ＢＣマネージャ（図７に示されている）により実行される。
【００６１】
本方法は２５２から開始し、ステップ２５４で、ＭＣ/ＢＣパケットがＭＣ/ＢＣマネージャによりネットワーク・アダプタ２０から受信される。ＭＣ/ＢＣパケットは、図４の方法２００のステップ２２０でアダプタによりマネージャに送信された。マルチキャスト又はブロードキャスト・パケットは、そのパケットについてのこのＭＣ又はＢＣステータスを示すＭＡＣアドレスを有する。ステップ２５６で、プロセスは、ＭＣ/ＢＣマネージャが中に存するシステム１０のＯＳパーティション１６にこのパケットがラッピングされるべきか否か調べる。ＭＣ又はＢＣパケットは複数の宛先に送信されるので、マネージャは全ての宛先をチェックすることができる。この判定において、ＭＣ/ＢＣマネージャは、残っているＯＳパーティションがそのパケットを受信する必要があるのかそれとも初めに受信されたパケットの複製を受信する必要があるのかを調べる。ブロードキャスト・パケットは常にラッピングされる必要があると共に物理的ポートからネットワーク１４上の使用可能な宛先に出力される必要があり、希望に応じてラッピング送信又は外部送信が始めに実行され得る（以下で記載されるように、結局は、複製されたパケットが全ての宛先に送信される）。マルチキャスト・パケットは、マルチキャストＭＡＣにより提供される指定された宛先に依存して（ＭＣ宛先は、特定のＭＣアドレスについて登録されているパーティションの維持されているデータベースを用いて決定される）、１つ以上の内部ＯＳパーティションにラッピングされ又は外部宛先に送信されなければならないことがあり或いはその両方が行われなければならないことがある。
【００６２】
マネージャは、自分が受信したパケットが内部でＯＳパーティション１６から発せられたものであるならば、常にそのパケットをネットワークに送信されるように送出する。アダプタ２０の送信側論理はそのパケットをマネージャに提供する。マネージャは、パケットのソースＭＡＣをシステム１０の内部ＭＡＣと比較して一致を見出すことによって、それが内部で発せられたことを知り、この場合には、マネージャは常にパケットを物理的ポートから送出し、そのパケットの具体的な外部宛先は後に決定される（例えば外部スイッチにより。マネージャはシステム１０の中にあり、どの具体的外部宛先がマルチキャスト・パケットを受信するべきかを知らない）。しかし、もしマネージャがそのパケットのソースＭＡＣをシステム１０の内部ＭＡＣのうちの１つと一致させなければ、それは、それがネットワーク１４からアダプタ２０の受信側多重分離論理を通して受信されたことを知り、外部ネットワークに送信されるべきパケットを送出しない。
【００６３】
パケットのこのコピーについてラッピングが行われないのであれば、プロセスはステップ２５８に続き、ここでマネージャはパケットのパケット制御既述子に適切な値を書き込むことによってパケットのステータスを“追い出し”にセットする。その後、プロセスはステップ２６０に続き、ここでマネージャはパケットをネットワーク・アダプタ２０に送る。ネットワーク・アダプタは、上記のように、方法２００のステップ２０４でパケットを受信し、それを物理的ポート２２から送出する。
【００６４】
このパケットについてラッピングが行われるのであれば、プロセスはステップ２６２に続き、ここでマネージャはパケットのパケット制御既述子に適切な値を書き込むことによってパケットのステータスを“再循環”にセットする。更に、マネージャはパケットに付随する再循環タグを付け加え、そのタグは、そのパケットが送られるべき論理ポートの名称を含む。これは、ネットワーク・アダプタ２０がＭＡＣアドレスとは異なる情報を読むことによって再循環されるパケットを論理ポートへ経路指定することを可能にし、従ってそのパケットのオリジナルのマルチキャストＭＡＣアドレスが改変されずに存続することを可能にする。プロセスはその後ステップ２６０に続き、ここでマネージャはそのパケット（及びタグ）をネットワーク・アダプタ２０に送る。
【００６５】
ステップ２５８又はステップ２６２の後にステップ２６４が実行され、ここでプロセスは送信されるべきパケットの他のコピーがあるか否か調べる。マルチキャスト及びブロードキャスト・パケットは複数の宛先に送られるので、ＭＣ/ＢＣマネージャは、どの宛先が指定されているか判定し、このステップにおいていずれかの宛先にそのパケットの複製がまだ送られていないか調べる。送信されるべき他のパケットがあるならば、ステップ２６６で、マネージャは初めに受信されたパケットを複製し、プロセスはステップ２５６に戻って、その複製されたパケットを、適切な経路指定のためにネットワーク・アダプタ２０に送る前に、適宜に改変する。ステップ２６４で送信されなければならない複製パケットがそれ以上無ければ、プロセスは２６８で完了する。記載されている実施態様では、ネットワーク上の外部宛先に送られるべきパケットを外部スイッチ１２４が複製できるので、ＭＣ/ＢＣマネージャは追い出しパケットを複製しなくても良い。
【００６６】
他の実施態様では、プロセス２５０において、記載されたステップが図示の順序とは異なる順序でも実行され得ることに留意するべきである。例えば、マネージャは、受信されたパケットの複製を作り、全てがステップ２５８又は２６２或いはその両方を介して準備されるまで全ての複製されたパケットをバッファにおいて維持し、その後にそれら全てをステップ２６０と同様のステップで一緒にネットワーク・アダプタに送ることができる。
【００６７】
図６は、本発明のシステム３００のブロック図であり、図４に関して上で記載されたユニキャスト（ＵＣ）パケットの流れを示す。ネットワーク・アダプタ２０は、イーサネット（登録商標）・アダプタとして示されていて、論理ポート３０４ａ−ｃと物理的ポート３０６とを参照する論理スイッチ３０２を含む。ＯＳパーティション３０８，３１０、及び３１２が論理ポート３０４ａ−ｃに結合されている。一例では、パーティション３０８，３１０、及び３１２は、ネットワーク１４上のコンピュータ・システム３２４及び３２６と同じサブネット上に存在し得る。例えば、パーティション３０８は１１というＭＡＣアドレスと９．１.１．１というＴＣＰ/ＩＰアドレスとを持つことができ、パーティション３１０は１２というＭＡＣと９．１.１．２というＴＣＰ/ＩＰアドレスとを持つことができ、パーティション３１２は１３というＭＡＣと９．１.１．３というＴＣＰ/ＩＰアドレスとを持つことができ、コンピュータ・システム３２４は３１というＭＡＣと９．１.１．１３というＴＣＰ/ＩＰアドレスとを持つことができ、コンピュータ・システム３２６は４１というＭＡＣと９．１.１．１４というＴＣＰ/ＩＰアドレスとを持つことができる。
【００６８】
ＯＳパーティションにより送信されたパケットをラッピングする例では、パーティション３０８は経路３１８で標準のユニキャスト・パケットを送信し、そのパケットは、ネットワーク・アダプタ２０の論理スイッチ３０２により受信されるとＵＣ宛先ＭＡＣアドレス・ルックアップ・プロセス２１２ａを受ける。ＵＣ  ＭＡＣルックアップは、上で図４のステップ２１２に記載されている。ＭＡＣルックアップはパケットがラッピングされるべきことを示すので、パケットは論理スイッチにより送られ、続いて経路３１８で宛先へ続き、それは論理ポート３０４ｂを介してＯＳパーティション３１０である。もしパーティション３１０がパーティション３０８という宛先を有する標準のユニキャスト・パケットを発したならば、同様のプロセスが逆方向に行われる。
【００６９】
別の、非ラップのパケット送信又は受信の例では、パーティション３１２は経路３２０で標準ＵＣパケットを送出し、そのパケットは、論理スイッチ３０２により受信されると、同様にＵＣ宛先ＭＡＣアドレス・ルックアップ・プロセス２１２ｂを受ける。そのＭＡＣルックアップはそのパケットが外部に送出されるべきことを示すので、論理スイッチはそのパケットを経路３２０で物理的ポート３０６を通し、外部スイッチ３２２を通して宛先コンピュータ・システム３２４に送る。もしコンピュータ・システム３２４が物理的ポート３０６を通してネットワーク・アダプタ２０により受信された標準ユニキャスト・パケットを発したのであれば、同様のプロセスが逆方向に行われて、パケットは論理スイッチでＤＡ  ＭＡＣルックアップを受けて論理ポートを通してその宛先へ、例えば論理ポート３０４ｃからパーティション３１２へ提供される。
【００７０】
図７は、本発明のシステム３５０のブロック図であり、図４及び５に関して上で記載されたマルチキャスト／ブロードキャスト（ＭＣ/ＢＣ）パケットのアウトバウンドの流れ（送信）を示す。ネットワーク・アダプタ２０は、イーサネット（登録商標）・アダプタとして示されており、論理ポート３０４ａ−ｃと物理的ポート３０６とを参照する論理スイッチ３０２を含む。ＯＳパーティション３０８，３１０、及び３１２が論理ポート３０４ａ−ｃに結合されている。一例では、図６について上で記載されたものと同様に、パーティション３０８，３１０、及び３１２はネットワーク１４上のコンピュータ・システム３２４及び３２６と同じサブネット上に存在し得る。
【００７１】
この例では、パケットのアウトバウンドの流れはＯＳパーティションから他の宛先へ提供される。パーティション３０８は標準のＭＣ又はＢＣパケットを経路３５２に送出し、そのパケットは、上で図４のステップ２１０において記載されたように、論理スイッチ３０２により受信されるとＭＣ宛先ＭＡＣアドレス・チェック２１０ａを受ける。ＭＡＣチェックはそのパケットがＭＣ又はＢＣパケットであることを示すので、パケットはサーバ・システム１０において実装されているＭＣ/ＢＣマネージャ３５４に経路３５２で送られる。
【００７２】
図５に関して上で記載されたように、ＭＣ/ＢＣマネージャ３５４は、パケットの宛先を判定し、複製パケットを作り、パケット記述子を変更し、再循環タグを付け加える。この例では、マネージャ３５４はそれが３つの宛先を有するＭＣであること、また４つのパケットが、２つはＯＳパーティションにラッピングされ、２つは外部宛先に送信されるように、送出されるべきことを判定している。マネージャ３５４は再循環ＭＣパケット及び再循環タグ３５６を経路３５８でアダプタ２０へ送出し、これは、タグ３５６を読んで論理ポート３０４ｃを見出してパケットをパーティション３１２へラッピングする。同様に、マネージャ３５４は再循環ＭＣパケットと再循環タグ３６０とを経路３６２でアダプタ２０へ送出し、これは、タグ３６０を読んで論理ポート３０４ｂを見出してパケットをパーティション３１０へラッピングする。マネージャ３５４は、また、追い出しＭＣパケットを経路３６４でアダプタ２０へ送出し、これは、これらのパケットを物理的ポート３０６から外部スイッチ３２２を通して送出する。外部スイッチ３２２は、ネットワーク１４を横断して１つが外部コンピュータ・システム３２４に提供され、１つが外部コンピュータ・システム３２６に提供されるように、そのパケットを複製する。
【００７３】
図８は、本発明のシステム３７０のブロック図であり、図４及び５に関して上に記載されたマルチキャスト／ブロードキャスト（ＭＣ/ＢＣ）パケットのインバウンドの流れ（受信）を示す。ネットワーク・アダプタ２０は、イーサネット（登録商標）・アダプタとして示され、論理ポート３０４ａ-ｃと物理的ポート３０６とを参照する論理スイッチ３０２を含む。ＯＳパーティション３０８，３１０、及び３１２が論理ポート３０４ａ-ｃに結合されている。上記と同様に、一例では、パーティション３０８，３１０、及び３１２はネットワーク１４上のコンピュータ・システム３２４及び３２６と同じサブネット上に存在し得る。
【００７４】
この例では、コンピュータ・システム３２６のような外部宛先からのパケットのインバウンドの流れが内部ＯＳパーティションに提供される。コンピュータ・システム３２６は標準のＭＣ又はＢＣパケットを経路３７２に送出し、外部スイッチ３２２は、もし適切ならばそのパケットの１コピーをネットワーク１４上の他の宛先に、外部コンピュータ・システム３２４などに、送る。スイッチ３２２は他のパケット・コピーを物理的ポート３０６を通してシステム１０に送り、そのパケットは経路３７４で論理スイッチへ経路指定される。上で図４のステップ２１０において記載されたように、パケットは、論理スイッチ３０２によって受信されると、ＭＣ宛先ＭＡＣアドレス・チェック２１０ａを受ける。ＭＡＣチェックは、そのパケットがＭＣ又はＢＣパケットであることを示すので、そのパケットは経路３７４でＭＣ/ＢＣマネージャ３５４に送られる。
【００７５】
図５に関して上で記載されたように、ＭＣ/ＢＣマネージャ３５４は、パケットの宛先を判定し、複製パケットを作り、パケット記述子を変更し、再循環タグを付け加える。この例では、マネージャ３５４は、それが３つの内部宛先を有するＭＣパケットであること、そして３つのパケットが内部ＯＳパーティションに送られるべきであることを判定している。マネージャ３５４は再循環ＭＣパケット及び再循環タグ３７６を経路３７８でアダプタ２０へ送出し、これは、タグ３７８を読んで論理ポート３０４ｃを見出してパケットをパーティション３１２へラッピングする（マネージャ３５４から内部ＯＳパーティションへの経路は“ラップ”であるとも考えられる）。同様に、マネージャ３５４は、論理ポート３０４ｂ及びパーティション３１０へラッピングされる再循環ＭＣパケット及び再循環タグ３８０を経路３８２で送出し、また、論理ポート３０４ａ及びパーティション３０８へラッピングされる再循環ＭＣパケット及び再循環タグ３８４を経路３８６で送出する。
【００７６】
図９は、ネットワーク・パケットをキューイングするための本発明のキューイング・システム４００の線図である。サーバ・システム１０は、ＯＳパーティション・カーネルにより受信されるか又は各ＯＳパーティションのユーザ・スペースの中のアプリケーション／プロセスにより直接受信されるべきパケットを保持し、また、パーティション又はユーザ・スペース・プロセスによって物理的ポート２２へ送信されるべきパケットを保持するためのキューのセットを含むことができる。以下に記載されるキューは、パケットをキューに格納するためにネットワーク・アダプタ２０によりアクセスされ得ると共にパケットをキューから取り出すためにプロトコル・スタック及びデバイス・ドライバによりアクセスされ得るシステム１０のメイン・メモリにおいて実現され得る。
【００７７】
システム４００に含まれる第１タイプのキューは接続キュー４０２である。これらのキューは、サーバ・システムのユーザ・スペース内のプロセス４０４に送られるパケットのためにバッファを提供し、また、プロセッサ４０４から他のプロセス、ＯＳパーティション、又はネットワークの向こうの外部コンピュータ・システムなどの宛先に送られるパケットのためのバッファである。ユーザ・スペースは、アプリケーションがそこで動作するところのプロセスを提供するＯＳパーティション内のソフトウェア・スペースであり、そのアプリケーションはネットワーク接続によりネットワーク１４と通信する。慣例上ＯＳのカーネルで動作するＴＣＰ/ＩＰスタックの一部又は全部は、各ユーザ・スペースに移され、それ自身の接続キューを持つ。これは、多くのＴＣＰ/ＩＰ送信及び受信操作のためにカーネルが迂回され得るので、効率を与える。ユーザ・スペース内のプロセス／アプリケーション４０４への各ネットワーク接続は、パケットを格納するためのそれ自身の接続キュー４０２を有する。例えば、ＴＣＰ/ＩＰパケットが受信されたとき、ＴＣＰ/ＩＰスタック・プロセスは、受信されたパケットが適切な接続キューに置かれて結局は該スタックにより処理され得るように、接続ダイレクト・テーブル内の接続情報を調べて接続キュー番号を見出すことができる。そのキュー内のパケットから処理された情報がユーザ・スペース内のプロセス（例えば、各プロセス内のアプリケーション）に送られる。受信されたパケットは、ネットワーク・アダプタ２０内のハードウェアにより正しいキューに向けられ（“サーバ環境におけるネットワーク化オフロードのためのホスト・イーサネット（登録商標）・アダプタ（Ｈｏｓｔ  Ｅｔｈｅｒｎｅｔ  Ａｄａｐｔｅｒ  ｆｏｒ  ａ  Ｎｅｔｗｏｒｋｉｎｇ  Ｏｆｆｌｏａｄ  ｉｎ  ａ  Ｓｅｒｖｅｒ  Ｅｎｖｉｒｏｎｍｅｎｔ）”と題された関連特許出願、２００５年４月１日に出願された出願第１１／９７，６０８号（ＲＰＳ９２００５００５９ＵＳ１／３４８５に記載されている）、ユーザ・スペース内のＴＣＰスタックはそのキューへのアクセスの管理を引き継ぐ。
【００７８】
一例では、接続キューは、ＩＰパケットの断片化が予期されなくて短待ち時間が期待される永続的接続のために最善に適合し得る。ユーザ・スペース・アプリケーション又はプロセスは、ネットワーク・アダプタ１０により提供される接続キューイング・メカニズムをサポートするユーザ・スペース・ソケット・ライブラリを利用することができる。
【００７９】
システム４００に含まれる第２のタイプのキューはデフォルト論理ポート（ＬＰ）キュー４０６である。これらのキューは、サーバ・システム１０のＯＳパーティション１６のカーネル４０８に送られるパケットのためのバッファを提供する。各デフォルトＬＰキューが所望のＯＳパーティションと関連付けられた単一の論理ポート５８と関連付けられ得るように、各ＯＳパーティション１６はそれ自身のデフォルトＬＰキュー４０６を備えている。従って、各論理ポートは、それ自身のデフォルト・キューを有する論理イーサネット（登録商標）・インターフェースに対応する。通例、デフォルトＬＰキュー内のパケットは、関連するオペレーティング・システムのカーネル４０８により扱われて処理される、すなわち、オペレーティング・システムのカーネル・ネットワーク化スタックはそのオペレーティング・システムのためのデフォルト・キュー４０６を扱う。本発明では、パケットのＭＡＣアドレスのためにパー・コネクション・ルックアップがイネーブルされていなければ（パー・コネクテッド・ルックアップ・イネーブルメント（ｐｅｒ−ｃｏｎｎｅｃｔｅｄ  ｌｏｏｋｕｐ  ｅｎａｂｌｅｍｅｎｔ）は、システム・マネージャ又はオペレータにより設定され得る論理ポート設定リソースの１つであり得る）、或いは、以下で図１０に関して詳しく記載されるようにパケットが再循環させられるマルチキャスト／ブロードキャスト・パケットであるならば、パケットのために接続キュー４０２が見出され得ないときにはデフォルトＬＰキュー４０６がパケットを格納する。
【００８０】
図２に関して上で記載されたように論理ポート５８に属性が割り当てられ得るのと同様の仕方で、デフォルトＬＰキュー４０６（及び、以下で記載される特別デフォルト・キュー４１０）の各々に属性が割り当てられ得る。例えば、各キューのためのフィルタリングがイネーブル又はディスエーブルされ得る。属性は、容易なパケット管理を可能にするために設定のための同じフォーマットを持つことができる。設定はキュー・タイプ間で同じなので、或るハードウェア論理は共有され得る。
【００８１】
システム４００に含まれる第３のタイプのキューは特別デフォルト・キュー４１０である。これらのキューは、他の利用可能なキューに格納されないパケットを格納するために使われる。本発明では、３つの特別デフォルト・キュー、すなわち、ユニキャスト・デフォルト・キュー４１２と、マルチキャスト・デフォルト・キュー４１４と、ブロードキャスト・デフォルト・キュー４１６と、が設けられる。ユニキャスト・デフォルト・キュー４１２は、パケットのためにデフォルトＬＰキュー４０６が見出され得ないときにパケットを格納する。マルチキャスト・デフォルト・キュー４１４とブロードキャスト・デフォルト・キュー４１６とは、ＭＡＣルックアップ・テーブル（ネットワーク・アダプタ２０内のハードウェアに置かれる）のＭＡＣアドレスの１つと一致しないか又は再循環させられるマルチキャスト・パケット及びブロードキャスト・パケットを夫々格納する。これらは、以下で図１０と関連して詳しく記載される。
【００８２】
上で列挙された各タイプのキューは、好ましくは、ネットワーク・アダプタ２０に設けられている各物理的ポートと関連付けられる。従って、各物理的ポートは、好ましくは、接続キューのセット４０２と、その物理的ポートのための論理ポート５８と関連付けられたデフォルトＬＰキューのセット４０６と、特別デフォルト・キューのセット４１０とを有する。
【００８３】
図１０は、パケット格納のためのキューを選択する本発明の方法４５０を示す流れ図である。この方法は、ネットワーク１４から又はラップ経路で受信されたパケットのためにネットワーク・アダプタ２０においてハードウェアにより実行される。或いは、それはソフトウェアで又はサーバ・システム１０の異なるコンポーネントで或いはその両方で実行され得る。
【００８４】
本方法は４５２から開始し、ステップ４５４で、パケットがネットワーク・アダプタによりネットワーク１４から又は内部ラップ経路を介して受信される。ステップ４５６で、プロセスはそれが再循環させられるパケットであるか否か、すなわち、図４及び５に関して上で記載されたようにＭＣ/ＢＣマネージャ３５４によりラップ経路へ向けて指定されたパケットであるか否か、調べる。再循環させられるパケットはマネージャによって既に処理されているのでそれらの宛先へ送られ得る。従って、もしそれが再循環させられるパケットであれば、プロセスはステップ４７０へ続いて、以下で記載されるようにそのパケットをデフォルトＬＰキューに格納する。もしそれが再循環させられるパケットでなければ、ステップ４５７においてプロセスはそのパケットがユニキャスト（ＵＣ）パケットであるのか或いはマルチキャスト（ＭＣ）／ブロードキャスト（ＢＣ）パケットであるのかを調べる。これは、例えば、パケットのＭＡＣアドレスから判定され得る。もしそれがＭＣ/ＢＣパケットであるならば、ステップ４５８で、プロセスは、そのパケットを受信した物理的ポートと関連付けられている特別デフォルトＭＣキュー４１４又はＢＣキュー４１６にそのパケットを格納する。その後、プロセスは４６０で終了する。図５に関して上で記載されたように、デフォルトＭＣキュー４１４及びデフォルトＢＣキュー４１６内のパケットは、結局は処理を受けるべくＭＣ/ＢＣマネージャ３５４に供給される。単一のＯＳパーティションに専用される物理的ポートにパケットが到着したのであれば、ＭＣ及びＢＣキュー内のパケットは中央ＯＳキュー、例えばそのパーティションのためのデフォルトＬＰキュー４０６、に供給され得る。
【００８５】
パケットがステップ４５７で判定されたＵＣパケットであれば、プロセスはステップ４６２に続き、ここで接続ルックアップが実行される。（１つのインプリメンテーションでは、たとえ接続キューに格納するとしても論理ポートについてのＭＡＣアドレス・ルックアップも実行され得、例えば、６タプル・ルックアップが実行され得、ここで６番目のタプルは論理ポート番号である。これは同じ５タプル接続情報が各論理ポート５８でアピールし、また重なり合わないことを可能にする。）記載されている実施態様では、アダプタ２０上のハードウェアは、パケット内の接続情報の２タプル、３タプル、又は５タプル・パターンをとり、接続が使用可能にされ又は確立されたときにそのパターンを接続テーブルに格納されている接続情報と比較しようと試みる。その様な方法の一実施態様が“ネットワーク接続テーブルを提供するための方法及び装置(Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｐｒｏｖｉｄｉｎｇ  ａ  Ｎｅｔｗｏｒｋ  Ｃｏｎｎｅｃｔｉｏｎ  Ｔａｂｌｅ)”と題された同時係属特許出願（ＲＰＳ９２００５００６１ＵＳ１／３４８７）、すなわち２００５年４月１日に出願された出願第１１／９６，５７１号に記載されており、その全体が参照により本書に組み込まれる。
【００８６】
次のステップ４６４で、プロセスは接続ルックアップについて一致が見出されたか否か、例えば、接続テーブルにおいて接続情報の一致するパターンが見出されたか否か、調べる。もしそうならば、プロセスは、一致する接続と関連付けられた接続キューにパケットを格納する。例えば、所望の接続キューを参照する番号又はポインタが、一致した接続情報と共に接続テーブルに格納され得る。パケットは、結局は接続キューから処理されてユーザ・スペース内の適切なプロセス４０４に提供され得る。その後、プロセスは４６０で終了する。
【００８７】
ステップ４６４でパケットについて一致するパターンが発見されなければ（或いはパケット内のＭＡＣアドレスのためにパー・コネクション・キューイングがイネーブルされなければ）、プロセスはステップ４６８でパケットのためにデフォルトＬＰキューが発見されたか否かを調べる。上記のように、各論理ポート５８は、関連するデフォルトＬＰキュー４０６を有する。デフォルト・キューは、論理ポートＭＡＣアドレスのリスト又はテーブルにおいてパケット内の宛先ＭＡＣアドレスについてルックアップを実行することにより判定される（上記のように、各論理ポート５８にＭＡＣアドレスが割り当てられている）。このステップにおいてもし論理ポートのＭＡＣアドレスがパケット内の宛先ＭＡＣアドレスと一致したならば、プロセスはステップ４７０においてパケットをその論理ポートのデフォルトＬＰキュー４０６に格納し、プロセスは４６０で終了する。デフォルトＬＰキュー４０６内のパケットは、これらのキューと関連付けられたＯＳパーティション１６のカーネル・ネットワーク化スタックへ経路指定される。
【００８８】
パケットのためにデフォルトＬＰキュー４０６が発見されなければ、プロセスはステップ４７２に続いて、（もし特別キュー４１２がイネーブルされているならば）パケットを受信した物理的ポートと関連付けられている特別デフォルトＵＣキュー４１２にそのパケットを格納し、プロセスは４６０で終了する。パケットはＭＡＣアドレス及びシステム１０の論理ポート５８のいずれにも向けられないかもしれないので、そのパケットは設定された論理ポートＭＡＣアドレスのいずれとも一致しなくて、従ってそれはデフォルト・キュー４１２に格納され得る。例えば、これは、もしシステムが“プロミスキャス（ｐｒｏｍｉｓｃｕｏｕｓ）モード”であるか、又は“スニファー（ｓｎｉｆｆｅｒ）”機能を持っているならば起こり得ることであり、この“スニファー”機能では、送信された全てのデータ・パケットが、例えば、システム１０に向けられたパケットと同様に他の宛先へのパケットも分析されるようにネットワーク活動を監視するために、ネットワーク・アダプタにより受信されて読まれ得る。或いは、これは、もしネットワーク・ブリッジング機能がシステム１０によって実装されているならば起こり得ることであり、その場合、ネットワーク１４は他のネットワークに接続され、各パケットは、それがネットワーク１４内の宛先へ渡されるべきであるのか、それとも他の相互接続されているネットワーク上にあると知られている宛先へ転送されるべきであるのかを判定するために、分析される。
【００８９】
デフォルトＵＣキュー４１２はオプションであるので、他の実施態様では、又はもしキュー４１２がディスエーブルされていれば、ステップ４７２は実行されず、むしろ、もしデフォルトＬＰキューがパケットのために発見されなければ、そのパケットは捨てられる。例えば、もし“プロミスキャス（ｐｒｏｍｉｓｃｕｏｕｓ）モード”がディスエーブルされれば特別キュー４１２はディスエーブルされるかもしれない。
【００９０】
本発明の方法４５０は、接続ごとのキューイング（ｑｕｅｕｉｎｇ  ｐｅｒ  ｃｏｎｎｅｃｔｉｏｎ）と論理ポートごとのキューイング（ｑｕｅｕｉｎｇ  ｐｅｒ  ｌｏｇｉｃａｌ  ｐｏｒｔ）（ＯＳキュー）という両極端の間の柔軟性を考慮している。本発明では、両方のモデルが、それら自身のキューイングを有する或る接続及びデフォルト論理ポート・キューでキューイングされる或る接続と共に働くことができる。方法４５０は、複数のＯＳパーティションも考慮しており、また、マルチキャスト／ブロードキャスト・パケットを含む、パーティション間でのイーサネット（登録商標）のレイヤ２スイッチングをサポートする（例えば、ＩＥＥＥ８０２．３）。
【００９１】
本発明は、図示された実施態様に従って記載されたけれども、それらの実施態様の変更があり得ること、それらの変更が本発明の範囲内にあるであろうことを当業者は直ぐに認めるであろう。従って、添付されている請求項の範囲から逸脱すること無く多くの改変が当業者によりなされ得る。
【図面の簡単な説明】
【００９２】
【図１】本発明に用いるのに適するシステムの例のブロック図である。
【図２】図１に示されているアダプタにより使用されるように設けられ実装される本発明の論理ポート・システムの線図である。
【図３】論理スイッチを含む本発明の通信システムのブロック図である。
【図４】コンピュータ・システム上の複数のオペレーティング・システム・パーティションに、またそれらから、パケットを送る方法を示す流れ図である。
【図５】コンピュータ・システムからの又はその中での配布のためにマルチキャスト・パケット又はブロードキャスト・パケットを管理する本発明の方法を示す流れ図である。
【図６】論理スイッチを含む本発明の通信システムのブロック図である。
【図７】論理スイッチを含む本発明の通信システムのブロック図である。
【図８】論理スイッチを含む本発明の通信システムのブロック図である。
【図９】ネットワーク・パケットをキューイングするための本発明のキューイング・システムの線図である。
【図１０】パケット格納のためにキューを選択する本発明の方法を示す流れ図である。
【図１】
2008535342.tif 000003
【図２】
2008535342.tif 000004
【図３】
2008535342.tif 000005
【図４】
2008535342.tif 000006
【図５】
2008535342.tif 000007
【図６】
2008535342.tif 000008
【図７】
2008535342.tif 000009
【図８】
2008535342.tif 000010
【図９】
2008535342.tif 000011
【図１０】
2008535342.tif 000012
【国際調査報告】
2008535342.tif 000013
2008535342.tif 000014
2008535342.tif 000015
2008535342.tif 000016