(57)【要約】  本発明の例示は、パケット伝送方法、ＮＵＭＡノードと機器読み取り可能な記憶媒体を提供する。一例示では、第１ＮＵＭＡノードは、転送すべきパケットの宛先ＩＰアドレスを利用して転送テーブルを照会し、前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースを取得し、前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を取得し、前記第２ＮＵＭＡノードのノード情報と前記第１ＮＵＭＡノードのノード情報とが同じである場合に、当該出力インターフェースが前記第１ＮＵＭＡノードに位置すると特定し、前記少なくとも２つの出力インターフェースのうちの前記第１ＮＵＭＡノードに位置する１つの出力インターフェースを介して前記パケットを送信する。前記第２ＮＵＭＡノードは、前記ネットワーク機器に位置する。
2019536383.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク機器における第１不均一メモリアーキテクチャ（ＮＵＭＡ）ノードが転送すべきパケットの宛先ＩＰアドレスを利用して転送テーブルを照会し、前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースを取得するステップと、
前記第１ＮＵＭＡノードは、前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を取得し、前記第２ＮＵＭＡノードのノード情報と前記第１ＮＵＭＡノードのノード情報とが同じである場合に、当該出力インターフェースが前記第１ＮＵＭＡノードに位置すると特定するステップと、
前記第１ＮＵＭＡノードが前記少なくとも２つの出力インターフェースのうちの前記第１ＮＵＭＡノードに位置する１つの出力インターフェースを介して前記パケットを送信するステップと、を含み、
前記第２ＮＵＭＡノードは、前記ネットワーク機器に位置することを特徴とするパケット伝送方法。
【請求項２】
前記第１ＮＵＭＡノードが前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を特定するステップと、
前記第１ＮＵＭＡノードが前記出力インターフェースと当該出力インターフェースの所属する第２ＮＵＭＡノードに対応するノード情報との対応関係を前記転送テーブルにおける当該出力インターフェースを含むエントリに記録するステップと、を更に含むことを特徴とする請求項１に記載のパケット伝送方法。
【請求項３】
前記第１ＮＵＭＡノードが前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を取得するステップは、
前記第１ＮＵＭＡノードが、前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を前記転送テーブルに記録される前記対応関係から取得することを含むことを特徴とする請求項２に記載のパケット伝送方法。
【請求項４】
前記第１ＮＵＭＡノードに位置する１つの出力インターフェースを介して前記パケットを送信するステップは、
前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する出力インターフェースの数が１つである場合に、前記第１ＮＵＭＡノードが前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する１つの出力インターフェースを介して前記パケットを送信することと、
前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する出力インターフェースの数が少なくとも２つである場合に、前記第１ＮＵＭＡノードが、プリセット負荷分散ポリシーに基づいて、前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースから１つの出力インターフェースを選択し、選択された出力インターフェースを介して前記パケットを送信することと、を含むことを特徴とする請求項１に記載のパケット伝送方法。
【請求項５】
前記宛先ＩＰアドレスに対応する出力インターフェースが何れも前記第１ＮＵＭＡノードに位置しない場合に、前記第１ＮＵＭＡノードが、プリセット負荷分散ポリシーに基づいて、前記少なくとも２つの出力インターフェースから１つの出力インターフェースを選択し、選択された出力インターフェースを介して前記パケットを送信するステップを更に含むことを特徴とする請求項１に記載のパケット伝送方法。
【請求項６】
選択された出力インターフェースを介して前記パケットを送信するステップは、
前記第１ＮＵＭＡノードが、前記選択された出力インターフェースの所属する第２ＮＵＭＡノードとの間の共通システムインターフェース（ＣＳＩ）バスを介して、前記パケットを前記選択された出力インターフェースの所属する第２ＮＵＭＡノードへ転送することにより、選択された出力インターフェースを介して前記第２ＮＵＭＡノードに前記パケットを送信させることを含むことを特徴とする請求項５に記載のパケット伝送方法。
【請求項７】
ネットワーク機器であって、
複数の不均一メモリアーキテクチャ（ＮＵＭＡ）ノードを備え、
その中の第１ＮＵＭＡノードは、
プロセッサと、機器読み取り可能な記憶媒体とを備え、
前記機器読み取り可能な記憶媒体には、前記プロセッサによって実行され得る機器の実行可能な指令が記憶され、
前記プロセッサは、前記機器の実行可能な指令により、
転送すべきパケットの宛先ＩＰアドレスを利用して転送テーブルを照会し、前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースを取得することと、
前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を取得し、前記第２ＮＵＭＡノードのノード情報と前記第１ＮＵＭＡノードのノード情報とが同じである場合に、当該出力インターフェースが前記第１ＮＵＭＡノードに位置すると特定することと、
前記少なくとも２つの出力インターフェースのうちの前記第１ＮＵＭＡノードに位置する１つの出力インターフェースを介して前記パケットを送信することと、を実行させ、
前記第２ＮＵＭＡノードは、前記ネットワーク機器に位置することを特徴とするネットワーク機器。
【請求項８】
前記プロセッサは、更に、前記機器の実行可能な指令により、
前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を特定することと、
前記出力インターフェースと当該出力インターフェースの所属する第２ＮＵＭＡノードに対応するノード情報との対応関係を前記転送テーブルにおける当該出力インターフェースを含むエントリに記録することと、を実行させることを特徴とする請求項７に記載のＮＵＭＡノード。
【請求項９】
前記プロセッサは、前記機器の実行可能な指令により、
前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を前記転送テーブルに記録される前記対応関係から取得することを実行させることを特徴とする請求項８に記載のＮＵＭＡノード。
【請求項１０】
前記プロセッサは、前記機器の実行可能な指令により、
前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する出力インターフェースの数が１つである場合に、前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する１つの出力インターフェースを介して前記パケットを送信することと、
前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する出力インターフェースの数が少なくとも２つである場合に、プリセット負荷分散ポリシーに基づいて、前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースから１つの出力インターフェースを選択し、選択された出力インターフェースを介して前記パケットを送信することと、を実行させることを特徴とする請求項７に記載のＮＵＭＡノード。
【請求項１１】
前記プロセッサは、更に、前記機器の実行可能な指令により、
前記宛先ＩＰアドレスに対応する出力インターフェースが何れも前記第１ＮＵＭＡノードに位置しない場合に、プリセット負荷分散ポリシーに基づいて、前記少なくとも２つの出力インターフェースから１つの出力インターフェースを選択し、選択された出力インターフェースを介して前記パケットを送信することを実行させることを特徴とする請求項７に記載のＮＵＭＡノード。
【請求項１２】
機器の実行可能な指令を記憶する機器読み取り可能な記憶媒体であって、
前記機器の実行可能な指令がネットワーク機器のプロセッサによって呼び出されて実行されるときに、前記プロセッサは、
転送すべきパケットの宛先ＩＰアドレスを利用して転送テーブルを照会し、前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースを取得することと、
前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を取得し、前記第２ＮＵＭＡノードのノード情報と前記第１ＮＵＭＡノードのノード情報とが同じである場合に、当該出力インターフェースが前記第１ＮＵＭＡノードに位置すると特定することと、
前記少なくとも２つの出力インターフェースのうちの前記第１ＮＵＭＡノードに位置する１つの出力インターフェースを介して前記パケットを送信することと、を実行させ、
前記第２ＮＵＭＡノードは、前記ネットワーク機器に位置することを特徴とする機器読み取り可能な記憶媒体。
【請求項１３】
前記機器の実行可能な指令により、前記プロセッサは、更に、
前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を特定することと、
前記出力インターフェースと当該出力インターフェースの所属する第２ＮＵＭＡノードに対応するノード情報との対応関係を前記転送テーブルにおける当該出力インターフェースを含むエントリに記録することと、を実行させることを特徴とする請求項１２に記載の機器読み取り可能な記憶媒体。
【請求項１４】
前記機器の実行可能な指令により、前記プロセッサは、
前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を前記転送テーブルに記録される前記対応関係から取得することを実行させることを特徴とする請求項１３に記載の機器読み取り可能な記憶媒体。
【請求項１５】
前記機器の実行可能な指令により、前記プロセッサは、更に、
前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する出力インターフェースの数が１つである場合に、前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する１つの出力インターフェースを介して前記パケットを送信することと、
前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する出力インターフェースの数が少なくとも２つである場合に、プリセット負荷分散ポリシーに基づいて、前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースから１つの出力インターフェースを選択し、選択された出力インターフェースを介して前記パケットを送信することと、を実行させることを特徴とする請求項１２に記載の機器読み取り可能な記憶媒体。
【発明の詳細な説明】
【関連出願の相互引用】
【０００１】
本願は、出願日が２０１６年１１月３０日であり、出願番号が２０１６１１０８６１５０．４であり、発明名称が「パケット伝送方法および装置」である中国特許出願の優先権を主張し、当該出願の全文が引用により本願に組み込まれる。
【背景技術】
【０００２】
ＳＭＰ(Ｓｙｍｍｅｔｒｉｃ Ｍｕｌｔｉ−Ｐｒｏｃｅｓｓｏｒ、対称型マルチプロセッサ)システムでは、計算機器における複数のプロセッサがメモリサブシステムおよびバス構成を共用するため、稼働負荷を全ての利用可能なプロセッサに均一に分担できる。
【図面の簡単な説明】
【０００３】
【図１】本発明の一実施形態に含まれるＮＵＭＡノードのネットワーキング模式図である。
【０００４】
【図２】本発明の一実施形態におけるパケット伝送方法のフローチャートである。
【０００５】
【図３】本発明の一実施形態におけるネットワーク機器のハードウェア構成図である。
【０００６】
【図４】本発明の一実施形態におけるパケット伝送論理の構成図である。
【発明を実施するための形態】
【０００７】
以下では、本発明の実施例の図面を組み合わせて本発明の実施例における解決手段を明瞭で完全に記述する。明らかに、記述される実施例が単に本発明の一部の実施例に過ぎず、全部の実施例ではない。本発明における実施例に基づいて、当業者が進歩性に値する労働をせずに成した全ての他の実施例は、何れも本発明の保護範囲に含まれる。
【０００８】
図１は、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ Ｍｅｍｏｒｙ Ａｒｃｈｉｔｅｃｔｕｒｅ、不均一メモリアーキテクチャ）のネットワーキング模式図である。ネットワーク機器Ａは、ＮＵＭＡノード１とＮＵＭＡノード２を備え、各ＮＵＭＡノードは、１セットのプロセッサリソース（図におけるＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ、中央処理装置）に含まれる複数のカーネル）、メモリリソースと複数のインターフェースを含み、且つＮＵＭＡノード１とＮＵＭＡノード２とは、ＣＳＩ（Ｃｏｍｍｏｎ Ｓｙｓｔｅｍ Ｉｎｔｅｒｆａｃｅ、共通システムインターフェース）バスを介して接続されている。
【０００９】
一例示では、ネットワーク機器Ｂからネットワーク機器Ａに送信されてから、ネットワーク機器Ａからネットワーク機器Ｃに送信されるパケットについて、ＮＵＭＡノード１は、インターフェース１１１を介して当該パケットを受信した後、負荷分散を実現するために、インターフェース１１２、インターフェース１１３、インターフェース２１１、インターフェース２１２から１つのインターフェースをランダムに選択する。インターフェース２１２が選択されると仮定すれば、ＮＵＭＡノード１は、パケットをＮＵＭＡノード２へ送信する。ＮＵＭＡノード２は、インターフェース２１２を介してパケットをネットワーク機器Ｃへ転送する。
【００１０】
明らかに、上記方式において、ＮＵＭＡノード１がＣＳＩバスを跨いでパケットをＮＵＭＡノード２へ転送する必要があるため、パケット転送効率が低減されるばかりではなく、ＣＳＩバスの帯域幅のオーバーヘッドも無駄になる。
【００１１】
本発明の実施例は、パケット伝送方法を提供する。当該方法は、ネットワーク機器（例えば、ルータ、スイッチ等）に含まれるＮＵＭＡノードに適用し、当該ネットワーク機器は、少なくとも２つのＮＵＭＡノードを備え、各ＮＵＭＡノードは、1セットのプロセッサリソース、メモリリソースと複数のインターフェースを含み、且つＮＵＭＡノード同士は、ＣＳＩバスを介して接続されている。図２は、当該パケット伝送方法のフローチャートである。
【００１２】
ステップ２０１では、ネットワーク機器における第１ＮＵＭＡノードは、転送すべきパケットの宛先ＩＰアドレスを利用して転送テーブルを照会し、前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースを取得する。
【００１３】
一例示では、当該第１ＮＵＭＡノードは、当該第１ＮＵＭＡノードに属する入力インターフェースを介して当該パケットを受信する。例えば、当該第１ＮＵＭＡノードにおけるＣＰＵ中の受信カーネルは、当該入力インターフェースを介して当該パケットを受信する。当該受信カーネルは、当該パケットを第１ＮＵＭＡノードにおける当該ＣＰＵ中の転送カーネルへ送信し、当該転送カーネルは、当該パケットを他のネットワーク機器へ転送する。別の例示では、当該第１ＮＵＭＡノードは、当該パケットを生成する。例えば、当該第１ＮＵＭＡノードにおける当該ＣＰＵ中の制御カーネルは、当該パケットを生成する。当該制御カーネルは、当該パケットを他のネットワーク機器へ転送する。更に例えば、当該転送カーネルは、当該パケットを生成する。当該転送カーネルは、当該パケットを他のネットワーク機器へ転送する。
【００１４】
ステップ２０２では、前記第１ＮＵＭＡノードは、前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を取得し、前記第２ＮＵＭＡノードのノード情報と前記第１ＮＵＭＡノードのノード情報とが同じである場合に、当該出力インターフェースが前記第１ＮＵＭＡノードに位置すると特定する。
【００１５】
前記第２ＮＵＭＡノードは、前記ネットワーク機器に位置する。
【００１６】
一例では、ステップ２０２の前に、前記第１ＮＵＭＡノードは、前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースと、当該少なくとも２つの出力インターフェースのそれぞれ所属する第２ＮＵＭＡノードに対応するノード情報との対応関係を生成する。このように、第１ＮＵＭＡノードは、生成された対応関係に基づいて前記少なくとも２つの出力インターフェースのそれぞれ所属する第２ＮＵＭＡノードのノード情報を容易に特定する。例えば、転送テーブルをメンテナンスする。当該転送テーブルは、ＩＰアドレスと出力インターフェースとの対応関係を記録する。転送テーブルのメンテナンス手順（例えば、第１ＮＵＭＡノードが当該宛先ＩＰアドレスに対応する転送テーブルを生成するとき）について、当該宛先ＩＰアドレスが少なくとも２つの出力インターフェースに対応すると知られた場合、少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を特定し、当該宛先ＩＰアドレスと、当該宛先ＩＰアドレスに対応する各出力インターフェースと、当該出力インターフェースの所属する第２ＮＵＭＡノードに対応するノード情報との対応関係を転送テーブルに記録する。
【００１７】
一例では、当該宛先ＩＰアドレスと、当該宛先ＩＰアドレスに対応する各出力インターフェースと、当該出力インターフェースの所属するＮＵＭＡノードに対応するノード情報との対応関係が転送テーブルに記録されているため、ＮＵＭＡノードは、当該少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードに対応するノード情報を当該転送テーブルから取得できる。
【００１８】
一例示では、出力インターフェースと当該出力インターフェースの所属する第２ＮＵＭＡノードのノード情報との対応関係は、上記転送テーブルに保存されてもよく、別のリストに保存されてもよい。本発明の例示は、それについて限定しない。
【００１９】
ステップ２０３では、前記少なくとも２つの出力インターフェースのうちの前記第１ＮＵＭＡノードに位置する１つの出力インターフェースを介してパケットを送信する。
【００２０】
一例では、ステップ２０３は、第１ＮＵＭＡノードに位置する出力インターフェースの数が１つである場合に、第１ＮＵＭＡノードに位置する１つの出力インターフェースを介して当該パケットを送信すること、または、第１ＮＵＭＡノードに位置する出力インターフェースの数が少なくとも２つである場合に、プリセット負荷分散ポリシーに基づいて、第１ＮＵＭＡノードに位置する少なくとも２つの出力インターフェースから１つの出力インターフェースを選択し、選択された出力インターフェースを介して当該パケットを送信することを含む。
【００２１】
一例では、少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報（即ち、ステップ２０２）を転送テーブルから特定し、各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報が何れも第１ＮＵＭＡノードのノード情報と異なる場合に、この少なくとも２つの出力インターフェースの何れも第１ＮＵＭＡノードに位置しないと特定する。第１ＮＵＭＡノードは、プリセット負荷分散ポリシーに基づいて、この少なくとも２つの出力インターフェースから１つの出力インターフェースを選択し、選択された出力インターフェースを介して当該パケットを送信する。
【００２２】
上記技術案を基に、本発明の実施例において、第１ＮＵＭＡノードは、転送すべきパケットの宛先ＩＰアドレスを利用して転送テーブルを照会し、前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースを取得し、前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノードのノード情報を取得し、前記第２ＮＵＭＡノードのノード情報と前記第１ＮＵＭＡノードのノード情報とが同じである場合に、当該出力インターフェースが前記第１ＮＵＭＡノードに位置すると特定し（ここでは、前記第２ＮＵＭＡノードは、前記ネットワーク機器に位置する）、前記少なくとも２つの出力インターフェースのうちの前記第１ＮＵＭＡノードに位置する１つの出力インターフェースを介して前記パケットを送信する。このように、当該パケットを、別のＮＵＭＡノードに位置する出力インターフェースを介して送信することではなく、当該パケットの所在する第１ＮＵＭＡノードにおける出力インターフェースを介して送信するため、ＮＵＭＡノードを跨ぐパケット転送の状況が減少し、パケット転送効率が向上し、ＮＵＭＡノード間のＣＳＩバスの帯域幅オーバーヘッドも低減され、ネットワーク機器全体のスループット能力も高められる。
【００２３】
以下では、図１に示す応用場面を組み合わせ、本発明の実施例の技術案を詳細に説明する。本応用場面では、ネットワーク機器Ａとネットワーク機器Ｃの間に４本のリンクが配置され、これら４本のリンクは、ＥＣＭＰ（Ｅｑｕａｌ−Ｃｏｓｔ ＭｕｌｔｉＰａｔｈ、等コストマルチパス）を形成する。全てのリンクが正常であるとき、全てのリンクの間でパケットの負荷分散を行い、伝送性能が向上する。リンク障害が発生したとき、障害が発生していないリンクを介してパケットを送信するため、安定性と信頼性も向上する。
【００２４】
一例示では、ＥＣＭＰの出力インターフェースが複数のＮＵＭＡノードに位置するとき、パケットを受信する入力インターフェースとパケットを送信する出力インターフェースとが異なるＮＵＭＡノードに位置する場合には、パケットがＮＵＭＡノードを跨いで転送される必要があるため、ネットワーク機器の転送性能が影響され、パケット転送効率が低下してしまう。その一方、本発明の実施例では、ＥＣＭＰの出力インターフェースが複数のＮＵＭＡノードに位置するとき、出力インターフェースとＮＵＭＡノードとの対応関係に基づいて、パケットを送信する出力インターフェースをできるだけ当該パケットを得るＮＵＭＡノードに位置させることが可能であるため、パケットのＮＵＭＡノードを跨ぐ転送が回避され、ネットワーク機器の転送性能が向上し、パケット転送効率が高められる。
【００２５】
一例では、ネットワーク機器Ｂ下のホストＤ（図１では図示せず）がネットワーク機器Ａを介してネットワーク機器Ｃ下のホストＥ（図１では図示せず）へパケットを送信することを例とし、ホストＥのＩＰアドレスを１００．１００．１００．１００とすれば、ネットワーク機器Ｃは、４本のリンクによってＩＰアドレス１００．１００．１００．１００を付加するルートを配布可能であり、且つネットワーク機器Ａは、インターフェース１１２、インターフェース１１３、インターフェース２１１およびインターフェース２１２からこのルートを受信し、ＩＰアドレス１００．１００．１００．１００とインターフェースとの対応関係を転送テーブル（即ち、ルーティングテーブル）に記録する。表１は、転送テーブルの１つの例示である。
【表１】
2019536383.tif 000003
【００２６】
表１とは異なり、本発明の実施例において、ネットワーク機器Ａは、ＩＰアドレス１００．１００．１００．１００に対応する転送テーブルを生成する際、ＩＰアドレス１００．１００．１００．１００と、これらの４つの出力インターフェースと、これら４つの出力インターフェースのそれぞれ所属するＮＵＭＡノードに対応するノード情報との対応関係を転送テーブルに記録する。表２は、１つの例示を示す。
【表２】
2019536383.tif 000004
【００２７】
一例では、ネットワーク機器Ａの全てのカーネルから制御カーネルを特定する。例えば、ＮＵＭＡノード１のカーネル１２０は、制御カーネルとして特定される。インターフェース１１２、インターフェース１１３、インターフェース２１２およびインターフェース２１３から受信されたルートは、何れも制御カーネル１２０へ送信される。制御カーネル１２０は、これらのルートを受信した場合に、表２に示す転送テーブルを生成し、当該転送テーブルをメモリ１３に記憶する。後続過程において、全てのＮＵＭＡノード内のカーネルは、何れもメモリ１３における転送テーブルへアクセスできる。
【００２８】
一例では、表２に示す転送テーブルを生成するために、各インターフェースと当該インターフェースの所属するＮＵＭＡノードのノード情報との対応関係、例えば、インターフェース１１１とＮＵＭＡノード１のノード情報との対応関係、インターフェース１１２とＮＵＭＡノード１のノード情報との対応関係、インターフェース１１３とＮＵＭＡノード１のインターフェース情報との対応関係、インターフェース２１１とＮＵＭＡノード２のノード情報との対応関係、インターフェース２１２とＮＵＭＡノード２のノード情報との対応関係、インターフェース２１３とＮＵＭＡノード２のノード情報との対応関係は、ネットワーク機器Ａに予め配置される。これを基に、制御カーネルは、転送テーブル１を生成し、当該対応関係を検索することで、インターフェース１１２の所属するＮＵＭＡノード１のノード情報、インターフェース１１３の所属するＮＵＭＡノード１に対応するノード情報、インターフェース２１１の所属するＮＵＭＡノード２に対応するノード情報、インターフェース２１２の所属するＮＵＭＡノード３に対応するノード情報を取得し、更に表２を生成する。
【００２９】
上記応用場面に、本発明の実施例に係るパケット伝送方法は、以下のステップを含む。
【００３０】
ステップ１では、ＮＵＭＡノード１は、パケットを取得する。当該パケットの宛先ＩＰアドレスは、１００．１００．１００．１００である。
【００３１】
ステップ２では、ＮＵＭＡノード１は、当該宛先ＩＰアドレス１００．１００．１００．１００に基づいて表２に示す転送テーブルを照会し、当該宛先ＩＰアドレスにマッチングする出力インターフェースがインターフェース１１２、インターフェース１１３、インターフェース２１１およびインターフェース２１２であることを把握する。
【００３２】
ステップ３では、ＮＵＭＡノード１は、表２に示す転送テーブルから、各出力インターフェースの所属するＮＵＭＡノードのノード情報を取得する。例えば、ＮＵＭＡノード１は、インターフェース１１２の所属するＮＵＭＡノード１のノード情報、インターフェース１１３の所属するＮＵＭＡノード１のノード情報、インターフェース２１１の所属するＮＵＭＡノード２のノード情報、インターフェース２１２の所属するＮＵＭＡノード２のノード情報を取得する。
【００３３】
ステップ４では、ＮＵＭＡノード１は、各出力インターフェースの所属するＮＵＭＡノードのノード情報に基づいて、宛先ＩＰアドレス１００．１００．１００．１００に対応するインターフェースのうち、ＮＵＭＡノード１に位置する出力インターフェースがインターフェース１１２およびインターフェース１１３であることを特定する。
【００３４】
方式一では、ＮＵＭＡノード１は、当該パケットを受信したときに、受信されたパケットの入力インターフェースをインターフェース１１１として特定し、ネットワーク機器Ａに予め配置された各インターフェースと当該インターフェースの所属するＮＵＭＡノードに対応するノード情報との対応関係に基づいて、インターフェース１１１の所属するＮＵＭＡノード１のノード情報を特定する。これを基に、インターフェース１１２、インターフェース１１３の所属するＮＵＭＡノードのノード情報がそれぞれインターフェース１１１の所属するＮＵＭＡノード１のノード情報とが同じであるため、ＮＵＭＡノード１は、インターフェース１１２、インターフェース１１３がＮＵＭＡノード１に位置する出力インターフェースであることを特定可能である。インターフェース２１１、インターフェース２１２の所属するＮＵＭＡノード２のノード情報とインターフェース１の所属するＮＵＭＡノード１のノード情報とが異なるため、ＮＵＭＡノード１は、インターフェース２１１、インターフェース２１２がＮＵＭＡノード１に位置する出力インターフェースではないと特定可能である。
【００３５】
方式二では、ＮＵＭＡノード１は、当該パケットを受信または生成したときに、ＮＵＭＡノード１のノード情報を特定する。インターフェース１１２、インターフェース１１３の所属するＮＵＭＡノードのノード情報とＮＵＭＡノード１のノード情報とが同じであるため、ＮＵＭＡノード１は、インターフェース１１２、インターフェース１１３がＮＵＭＡノード１に位置する出力インターフェースであると特定する。インターフェース２１１、インターフェース２１２の所属するＮＵＭＡノード２のノード情報とＮＵＭＡノード１のノード情報とが異なるため、ＮＵＭＡノード１は、インターフェース２１１、インターフェース２１２がＮＵＭＡノード１に位置する出力インターフェースではないと特定する。
【００３６】
一例示では、各ＮＵＭＡノード内は、何れも受信カーネル（他のネットワーク機器から送信されたパケットを受信）と転送カーネル（他のネットワーク機器へパケットを送信）を含む。図１に示すように、ＣＰＵ１２内のカーネル１２０が制御カーネルであり、カーネル１２１が受信カーネルであり、カーネル１２２−カーネル１２ｎが転送カーネルであり、ＣＰＵ２２内のカーネル２２０が受信カーネルであり、カーネル２２１−カーネル２２ｎが転送カーネルである。
【００３７】
一例示では、ＣＰＵ１２内の受信カーネルは、パケットを受信した後、パケットを当該受信カーネルの所在するＮＵＭＡノード１内の転送カーネルへ渡す。当該転送カーネルがパケットを受信した後、当該ＮＵＭＡノード１が当該パケットに対応する、本ＮＵＭＡノードに位置する出力インターフェースを特定する手順は、上記方式一または方式二で処理される。ＣＰＵ２２内の受信カーネルは、パケットを受信した後、パケットを当該受信カーネルの所在するＮＵＭＡノード２内の転送カーネルのみへ渡す。当該転送カーネルがパケットを受信した後、当該ＮＵＭＡノード２が当該パケットに対応する、本ＮＵＭＡノードに位置する出力インターフェースを特定する手順は、上記方式一または方式二で処理される。
【００３８】
ステップ５では、ＮＵＭＡノード１は、ＮＵＭＡノード１に位置する、ＩＰアドレス１００．１００．１００．１００に対応する出力インターフェースを介して、パケットを送信する。
【００３９】
一例では、ＮＵＭＡノード１に位置する、ＩＰアドレス１００．１００．１００．１００に対応する出力インターフェースの数が１つである場合に、ＮＵＭＡノード１は、ＮＵＭＡノード１に位置するＩＰアドレス１００．１００．１００．１００に対応する１つの出力インターフェースを介して当該パケットを送信する。ＮＵＭＡノード１に位置するＩＰアドレス１００．１００．１００．１００に対応する出力インターフェースの数が少なくとも２つである場合に、ＮＵＭＡノード１は、プリセット負荷分散ポリシー（例えば、ポーリングポリシーまたはｈａｓｈポリシー等）に基づいて、ＮＵＭＡノード１に位置するこれらの少なくとも２つの出力インターフェースから１つの出力インターフェースを選択し、選択された出力インターフェースを介して当該パケットを送信する。
【００４０】
例えば、インターフェース１１２、インターフェース１１３が本ＮＵＭＡノードに位置する出力インターフェースであるため、ＮＵＭＡノード１は、プリセット負荷分散ポリシー（例えば、ポーリングポリシーまたはｈａｓｈポリシー等）に基づいて、インターフェース１１２とインターフェース１１３から１つの出力インターフェースを選択し、選択された出力インターフェースを介して当該パケットを送信してもよい。
【００４１】
一例では、プリセット負荷分散ポリシーがポーリングポリシーであるとき、出力インターフェースを選択するフローは、下記のようになる。ネットワーク機器Ｂ下のホストＤからネットワーク機器Ａ下のホストＥへ送信された１番目のパケットについて、ＮＵＭＡノード１は、インターフェース１１２を先に選択する。インターフェース１１２がＮＵＭＡノード１に位置する出力インターフェースであるため、ＮＵＭＡノード１は、インターフェース１１２を介して１番目のパケットを送信する。ホストＤからホストＥへ送信された２番目のパケットについて、ＮＵＭＡノード１は、インターフェース１１３を選択する。インターフェース１１３がＮＵＭＡノード１に位置する出力インターフェースであるため、ＮＵＭＡノード１は、インターフェース１１３を介して２番目のパケットを送信する。ホストＤからホストＥへ送信された３番目のパケットについて、ＮＵＭＡノード１は、インターフェース２１１を選択する。インターフェース２１１がＮＵＭＡノード１に位置する出力インターフェースではないため、ＮＵＭＡノード１は、次のインターフェース２１２を選択する。インターフェース２１２がＮＵＭＡノード１に位置する出力インターフェースではないため、ＮＵＭＡノード１は、次のインターフェース１１２を選択する。インターフェース１１２がＮＵＭＡノード１に位置する出力インターフェースであるため、ＮＵＭＡノード１は、インターフェース１１２を介して３番目のパケットを送信する。これに準じて類推する。
【００４２】
一例では、プリセット負荷分散ポリシーがｈａｓｈポリシーであるとき、出力インターフェースを選択するフローは、下記のようになる。ネットワーク機器Ｂ下のホストＤからネットワーク機器Ａ下のホストＥへ送信された１番目のパケットについて、パケットのソースＩＰアドレスと宛先ＩＰアドレスとに基づいて１つのハッシュ値をランダムに生成し（具体的な生成方式は説明しない）、その後、ハッシュ値に対して数２（即ち、本ＮＵＭＡノードに位置するＩＰアドレス１００．１００．１００．１００に対応する出力インターフェースの数）の剰余を取る。剰余が０である場合に、ＮＵＭＡノード１は、インターフェース１１２を介して１番目のパケットを送信し、剰余が１である場合に、ＮＵＭＡノード１は、インターフェース１１３を介して１番目のパケットを送信する。これに準じて類推し、ホストＤからホストＥへ送信されたパケットのそれぞれについて、上記方式で処理を行う。
【００４３】
上記手順は、本ＮＵＭＡノード１に位置するＩＰアドレス１００．１００．１００．１００に対応する出力インターフェースを例として説明した。別の例では、宛先ＩＰアドレスに対応する全ての出力インターフェースが何れも本ＮＵＭＡノード１に位置する出力インターフェースではない場合に、ＮＵＭＡノード１は、更に、プリセット負荷分散ポリシー（例えば、ポーリングポリシーまたはｈａｓｈポリシー等）に基づいて、宛先ＩＰアドレスに対応する全ての出力インターフェース（即ち、他のＮＵＭＡノードに位置する出力インターフェース）から１つの出力インターフェースを選択し、選択された出力インターフェースを介して当該パケットを送信する。具体的な選択手順は、再び説明しない。
【００４４】
一例では、上記パケット伝送方法は、ＮＵＭＡノード１における、当該パケットを取得した制御カーネルまたは転送カーネルによって実行される。
【００４５】
上記技術案を基に、本発明の実施例において、ＮＵＭＡノード１は、転送すべきパケットの宛先ＩＰアドレスを利用して転送テーブルを照会し、前記宛先ＩＰアドレスに対応する出力インターフェースを取得し、出力インターフェースのうちの各出力インターフェースの所属するＮＵＭＡノードのノード情報を取得し、前記ＮＵＭＡノードのノード情報とＮＵＭＡノード１のノード情報とが同じである場合に、当該出力インターフェースが当該ＮＵＭＡノード１に位置すると特定し（ここでは、前記第２ＮＵＭＡノードは、前記ネットワーク機器に位置する）、前記少なくとも２つの出力インターフェースのうちのＮＵＭＡノード１に位置する１つの出力インターフェースを介して前記パケットを送信する。このため、当該パケットを、別のＮＵＭＡノードに位置する出力インターフェースを介して送信することではなく、当該パケットの所在する当該ＮＵＭＡノード１における出力インターフェースを介して送信可能であるため、ＮＵＭＡノードを跨ぐパケット転送の状況が減少し、パケット転送効率が向上し、ＮＵＭＡノード間のＣＳＩバスの帯域幅オーバーヘッドも低減され、ネットワーク機器全体のスループット能力も高められる。
【００４６】
上記方法と同様な技術思想に基づき、本発明の実施例は、ＮＵＭＡノードを更に提供する。
【００４７】
図３を参照すると、図３は、本発明の幾つかの実施例に供されるネットワーク機器のハードウェア構成図である。当該ネットワーク機器３００は、複数のＮＵＭＡノードを備える。第１ＮＵＭＡノード３１０は、プロセッサ３１１および機器読み取り可能な記憶媒体３１２を備える。プロセッサ３１１と機器読み取り可能な記憶媒体３１２とは、システムバス３１３を介して通信する。また、プロセッサ３１１は、機器読み取り可能な記憶媒体３１２に記憶されるパケット伝送論理４０に対応する機器の実行可能な指令を読み取って実行することにより、上述したパケット伝送方法を実行する。一例示では、プロセッサ３１１は、複数のカーネルを備える。当該複数のカーネルのうちの１つのカーネルは、機器読み取り可能な記憶媒体３１２に記憶されるパケット伝送論理４０に対応する機器の実行可能な指令を読み取って実行する。例えば、当該第１ＮＵＭＡノードの制御カーネルは、当該パケットを生成し、当該制御カーネルは、機器読み取り可能な記憶媒体３２に記憶されるパケット伝送論理４０に対応する機器の実行可能な指令を読み取って実行する。更に、当該第１ＮＵＭＡノードの受信カーネルは、当該パケットを受信して当該パケットを当該第１ＮＵＭＡノードにおける転送カーネルへ送信し、当該転送カーネルは、機器読み取り可能な記憶媒体３１２に記憶されるパケット伝送論理４０に対応する機器の実行可能な指令を読み取って実行する。
【００４８】
本文で言及される機器読み取り可能な記憶媒体３１２は、如何なる電気的なもの、磁気的なもの、光学的なものまたは他の物理的記憶装置であってもよく、情報（例えば、実行可能な指令、データ等）を含むか記憶可能である。例えば、前記機器読み取り可能な記憶媒体３１２は、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ、ランダムアクセスメモリ）、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、記憶ドライバ（例えば、ハードディスクドライバ）、ソリッド・ステート・ディスク、如何なるタイプの記憶ディスク（例えば、光ディスク、ＤＶＤ等）、または類似する記憶媒体、または、それらの組み合わせであってもよい。
【００４９】
図４に示すように、機能上で区分すると、前記パケット伝送論理は、下記のモジュールを備える。
【００５０】
照会モジュール１１は、転送すべきパケットの宛先ＩＰアドレスを利用して転送テーブルを照会し、前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースを取得する。
【００５１】
取得モジュール１２は、前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノード３２０のノード情報を取得する。ただし、前記第２ＮＵＭＡノード３２０は、前記ネットワーク機器に位置する。
【００５２】
特定モジュール１３は、前記第２ＮＵＭＡノード３２０のノード情報と前記第１ＮＵＭＡノードのノード情報とが同じである場合に、当該出力インターフェースが前記第１ＮＵＭＡノードに位置すると特定する。ただし、前記第２ＮＵＭＡノード３２０は、前記ネットワーク機器に位置する。
【００５３】
送信モジュール１４は、前記少なくとも２つの出力インターフェースのうちの前記第１ＮＵＭＡノードに位置する１つの出力インターフェースを介して前記パケットを送信する。
【００５４】
一例では、前記装置は、記録モジュール（図示せず）を更に備える。当該記録モジュールは、前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノード３２０のノード情報を特定し、前記出力インターフェースと当該出力インターフェースの所属する第２ＮＵＭＡノード３２０に対応するノード情報との対応関係を前記転送テーブルにおける当該出力インターフェースを含むエントリに記録する。
【００５５】
一例では、取得モジュール１２は、具体的に、前記少なくとも２つの出力インターフェースのうちの各出力インターフェースの所属する第２ＮＵＭＡノード３２０のノード情報を前記転送テーブルに記録される前記対応関係から取得する。
【００５６】
一例では、前記送信モジュール１４は、具体的に、前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する出力インターフェースの数が１つである場合に、前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する１つの出力インターフェースを介して前記パケットを送信し、前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する出力インターフェースの数が少なくとも２つである場合に、プリセット負荷分散ポリシーに基づいて、前記第１ＮＵＭＡノードに位置する前記宛先ＩＰアドレスに対応する少なくとも２つの出力インターフェースから１つの出力インターフェースを選択し、選択された出力インターフェースを介して前記パケットを送信する。
【００５７】
１つの例示では、前記送信モジュール１４は、更に、前記宛先ＩＰアドレスに対応する出力インターフェースが何れも前記第１ＮＵＭＡノードに位置しない場合に、プリセット負荷分散ポリシーに基づいて、前記少なくとも２つの出力インターフェースから１つの出力インターフェースを選択し、選択された出力インターフェースを介して前記パケットを送信する。
【００５８】
装置実施例は、方法実施例に基本的に対応するため、その関連箇所が方法実施例部分の説明を参照すればよい。上述した装置実施例は、単に例示であり、その中、分離部品として説明される手段が物理的に分離されるものであってもよくでなくてもよい。また、手段として表示される部品は、物理手段であってもでなくてもよい。更に、それらの手段は、１箇所に位置してもよく、複数のネットワークセルに分散してもよい。実際の需要に応じてその中の一部または全部のモジュールを選択して本実施例の目的を果たすことが可能である。当業者は、進歩性に値する労働をせずに、理解して実施可能である。
【００５９】
説明すべきことは、本文に、第１と第２等のような関係用語は、単に１つの実体や操作を別の実体や操作と区分させるために用いられ、これらの実体や操作の間になんらかの実際的な関係や順序が存在するとは必ずしも要求やヒントすることではない。用語「含む」、「備える」またはほかの何れかの同義語が非排他的含有をカバーすることを狙う。このように、一シリーズの要素を有する手順、方法、物品または機器は、それらの要素を有するだけではなく、明確に挙げられていない他の要素も有し、またはこのような手順、方法、物品または機器に固有の要素も有する。更なる制限がない限り、語句「１つの…を含む」で限定される要素は、前記要素を有する手順、方法、物品または機器に他の同じ要素を更に有することをあえて排除しない。
【００６０】
以上では、本発明の実施例に供される方法と装置を詳細に説明した。本文では、具体的な例を用いて本発明の原理及び実施形態を説明したが、以上の実施例の説明が単に本発明の方法およびその要旨を容易に理解するために用いられる。それとともに、当業者であれば、本発明の思想に基づいて具体的な実施形態及び応用範囲を変更可能である。したがって、本明細書の内容は、本発明に対する制限として理解されるべきではない。
【図１】
2019536383.tif 000005
【図２】
2019536383.tif 000006
【図３】
2019536383.tif 000007
【図４】
2019536383.tif 000008
【国際調査報告】
2019536383.tif 000009
2019536383.tif 000010
2019536383.tif 000011
2019536383.tif 000012