(57)【特許請求の範囲】
【請求項１】
端末に設けられたネットワークインターフェースカード（ＮＩＣ：Network Interface Card）が前記ＮＩＣに含まれる複数のレート制御手段にパケットを振り分けるために用いられ、前記複数のレート制御手段のいずれかにパケットを対応付ける所定のルールを決定するルール決定手段と、
決定した所定のルールを前記端末に送出するルール送出手段と、を備える、
管理ノード。
【請求項２】
前記ルール決定手段は、パケットを宛先端末に応じて前記複数のレート制御手段のいずれかに対応付ける所定のルールを、前記複数のレート制御手段の個数に基づいて決定する、
請求項１に記載の管理ノード。
【請求項３】
前記ルール決定手段は、前記ＮＩＣに接続されるネットワークのトポロジに基づいて、前記所定のルールを決定し、
前記ネットワークのトポロジは、前記端末から宛先端末へパケットを送信する際に通過するリンクに関する情報を含む、
請求項２に記載の管理ノード。
【請求項４】
前記ルール決定手段は、前記端末が送出するパケットのフロー情報に基づいて、前記所定のルールを決定し、
前記フロー情報は、前記端末から宛先端末へのパケットの送信可能帯域に関する情報を含む、
請求項２または３に記載の管理ノード。
【請求項５】
前記ルール決定手段は、前記送信可能帯域に応じて宛先端末を複数のグループに分類し、前記所定のルールとして、各グループを前記複数のレート制御手段のいずれかに対応付けるルールを決定する、
請求項４に記載の管理ノード。
【請求項６】
前記ルール決定手段は、各レート制御手段に対応するグループに含まれる宛先端末への前記送信可能帯域の最小値に基づいて、該グループに含まれる宛先端末へのパケットの送信レートを制御するように各レート制御手段に指示する、
請求項５に記載の管理ノード。
【請求項７】
ネットワークを介して管理ノードに接続されるネットワークインターフェースカード（ＮＩＣ：Network Interface Card）を備える端末であって、
前記ＮＩＣは、パケットの送信レートを制御する複数のレート制御手段と、
前記管理ノードにより決定された、前記複数のレート制御手段にパケットを振り分けるために用いられ、前記複数のレート制御手段のいずれかにパケットを対応付ける所定のルールを前記管理ノードから受信し、前記所定のルールに従って前記複数のレート制御手段にパケットを振り分ける宛先振分手段と、を有する、
端末。
【請求項８】
ネットワークインターフェースカード（ＮＩＣ：Network Interface Card）を有する端末と、
ネットワークを介して前記ＮＩＣに接続され、前記ＮＩＣに含まれる複数のレート制御手段にパケットを振り分けるために用いられ、前記複数のレート制御手段のいずれかにパケットを対応付ける所定のルールを決定し、決定した前記所定のルールを前記ＮＩＣに送出する管理ノードと、を備え、
前記ＮＩＣは、パケットの送信レートを制御する複数のレート制御手段と、
前記管理ノードにより決定された前記所定のルールを前記管理ノードから受信し、前記所定のルールに従って前記複数のレート制御手段にパケットを振り分ける宛先振分手段と、を有する、
通信システム。
【請求項９】
管理ノードが、端末に設けられたネットワークインターフェースカード（ＮＩＣ：Network Interface Card）が前記ＮＩＣに含まれる複数のレート制御手段にパケットを振り分けるために用いられ、前記複数のレート制御手段のいずれかにパケットを対応付ける所定のルールを決定し、
決定した所定のルールを前記端末に送出する、
通信方法。
【請求項１０】
端末に設けられたネットワークインターフェースカード（ＮＩＣ：Network Interface Card）が前記ＮＩＣに含まれる複数のレート制御手段にパケットを振り分けるために用いられ、前記複数のレート制御手段のいずれかにパケットを対応付ける所定のルールを決定する処理と、
決定した所定のルールを前記端末に送出する処理と、を前記端末の管理ノードに設けられたコンピュータに実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理ノード、端末、通信システム、通信方法、および、プログラム等に関する。特に、本発明は、ネットワークインターフェースカード（ＮＩＣ：Network Interface Card）を備えた端末、該端末を管理する管理ノード、該端末および該管理ノードを備えた通信システム、通信方法、ならびに、プログラム等に関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）の負荷をオフロードする目的や、データ送受信を高精度に制御する目的で、ネットワークインターフェースカード（ＮＩＣ：Network Interface Card）のハードウェア（ＨＷ：Hardware）にネットワークの輻輳制御機能を搭載するデバイスが出現している。かかる機能を備えたＮＩＣによると、デバイスの省電力化に伴うＣＰＵ性能の低減を補うことができ、データセンタのような広帯域かつ低遅延なＬＡＮ（Local Area Network）内で、データ送受信を高精度に制御することができる。【０００３】
これらのＮＩＣは、元来、オペレーティングシステム（ＯＳ：Operating System）のソフトウェアスタック（主に、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）層）で行われていたフロー毎のエンドツーエンド（End-to-End）の輻輳制御の機能や、レートシェーピング等の機能を、ハードウエア機能として提供する。【０００４】
図１６、図１７、および、図１８は、関連技術に係る通信システム、端末、および、端末に設けられたＮＩＣの構成を示すブロック図である。図１６を参照すると、通信システムは、端末１０１−１〜１０１−Ｎとネットワーク２を備えている。以下の説明において、各回路系およびソフトウェアの符号の添え字「−１」〜「−N」あるいは「−１」〜「−（N−１）」は省略されることもある。【０００５】
図１７を参照すると、端末１０１は、ソフトウェア（ＳＷ：Software）構成として、データを送受信するためのアプリケーション４と、デバイスを動作させるデバイスドライバ６を備えている。さらに、端末１０１は、ハードウェア（ＨＷ：Hardware）構成として、ＣＰＵ７と、メモリ８と、ルートコンプレックス９と、データを送受信するためのＮＩＣ１０５を備えている。【０００６】
図４を参照すると、デバイスドライバ６は、メモリ領域（ＭＥＭ（Memory）領域）１０と、ＤＭＡＣＴＬ（DMA（Direct Memory Access）Control、ＤＭＡ制御）部１１を備えている。ＭＥＭ領域１０は、アプリケーション４から到来したデータを宛先ＩＤ（Identifier）毎に保持する。ＤＭＡＣＴＬ部１１は、ＮＩＣ１０５内のＤＭＡ部１１２を制御する。【０００７】
図１８を参照すると、ＮＩＣ１０５は、ＤＭＡ（Direct Memory Access）部１１２と、レート制御部１１４−１〜１１４−（Ｎ−１）と、ネットワークインターフェース（ＮＷ  Ｉ／Ｆ：Network Interface）１１５とを備えている。ＤＭＡ部１１２は、端末１０１のメモリ８から所望のデータを引き取る。レート制御部１１４−１〜１１４−（Ｎ−１）は、宛先ＩＤ毎にネットワークへ送出する送信レートを制御する。ネットワークインターフェース１１５は、ネットワーク２へ接続するためのインターフェースである。また、各レート制御部１１４は、データ送信機会が来るまでデータを滞留させるためのバッファ１１７と、データ送信機会を制御するレート制御タイマ１１８を備えている。【０００８】
かかる構成を有する関連技術の通信システムは、次のように動作する。【０００９】
端末１０１内のアプリケーション４は、各宛先ＩＤに対して送信したいデータをデバイスドライバ６に送信する。次に、デバイスドライバ６は、受信したデータを宛先ＩＤ毎にメモリ領域１０に保存する。【００１０】
ＮＩＣ１０５内のＤＭＡ部１１２は、レート制御部１１４−１〜１１４−（Ｎ−１）内のバッファ１１７−１〜１１７−（Ｎ−１）のいずれか（例えば、バッファ１１７−１）に空きが発生すると、デバイスドライバ６内のメモリ領域１０のうちの、バッファ１１７−１に対応する宛先ＩＤのメモリ領域１０に対してＤＭＡリクエスト要求を出す。デバイスドライバ６は、ＤＭＡリクエスト要求に対するコンプリーションに対して、要求のあったバッファ１１７−１に対して宛先ＩＤに相当するメモリ領域１０内のデータを送信する。【００１１】
さらに、レート制御部１１４−１〜１１４−（Ｎ−１）内のレート制御タイマ１１８―１〜１１８−（Ｎ−１）は、タイマ切れが発生すると、自身に接続されるバッファ１１７−１〜１１７−（Ｎ−１）からデータを抜き出してＮＷ  Ｉ／Ｆ１１５を介してネットワーク２へ送信する。その後、レート制御部１１４−１〜１１４−（Ｎ−１）内のレート制御タイマ１１８−１〜１１８−（Ｎ−１）は、自身に設定されている送信レートに基づき、レート制御タイマを起動させる。【００１２】
このように，レート制御機能をＨＷで提供するＮＩＣ１０５は、内部に宛先ＩＤ毎のバッファ１１７とレート制御タイマ１１８を有することで、宛先の端末毎にレート制御を行うことができる。これにより、ＣＰＵ７で行われる制御と比較して高精度な制御を可能とし、併せてＣＰＵ７の負荷の低減を実現している。【００１３】
このような機能を有するＨＷは、例えば、特許文献１および特許文献２に開示されている。特許文献１には、構成を単純化するため、宛先ＩＤ毎にすべて同一のＦＩＦＯ（First In First Out）キューにデータを滞留させ、ネットワークへ送信する技術が記載されている。特許文献２には、宛先ＩＤ毎にそれぞれのＦＩＦＯキューへデータを滞留し、さらに、レート制御タイマを、宛先ＩＤ別に分けたクラス毎に制御する技術が記載されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００２−１８５４５９号公報
【特許文献２】特開２００４−２６６３８９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上記特許文献１、２に開示されている技術の課題は、次のとおりである。以下の分析は、本発明者によってなされたものである。【００１６】
特許文献１に記載された構成では、ＦＩＦＯキューが単一であるため、ある宛先ＩＤへの送信が行われないことにより、他の宛先ＩＤへの送信が滞留してしまうHead of Line Blocking（以下「HoL Blocking」という。）が発生する。HoL Blockingが発生すると、一般に通信帯域を有効に利用できなくなる。【００１７】
一方、特許文献２では、上述の構成と同様に、宛先ＩＤ毎にＦＩＦＯキューへ滞留し、レート制御タイマを宛先ＩＤ別に分けたクラス毎に制御することで、特許文献１における上記の問題を解決している。しかしながら、特許文献２のような構成を採用した場合、ＮＩＣ内のＨＷ実装を行う際に、宛先ＩＤ毎にバッファを設ける必要がある。バッファには、少なくとも１送信単位（例えば、イーサネット（登録商標）では１イーサネットフレーム分）の容量が必要とされる。よって、宛先ＩＤが増加するとＨＷ実装が困難になるという問題がある。【００１８】
以上より、特許文献１に記載された端末のように、宛先ＩＤで同一のＦＩＦＯキューを用いた場合、ネットワークの利用率が低くなるという問題がある。なぜなら、宛先ＩＤで同一のＦＩＦＯキューを用いた場合、HoL Blockingが発生し、本来送信可能なはずの宛先ＩＤに対するデータが送信できなくなるケースが発生するからである。【００１９】
また、特許文献２に記載された端末によると、宛先ＩＤに比例して実装規模が増大するため、ＨＷ実装が困難になるという問題がある。なぜなら、宛先ＩＤ毎にレート制御部およびその内部のバッファとレート制御タイマを設ける必要があるため、ＨＷ実装する際にバッファのためのメモリや、レート制御タイマのための制御クロックを、宛先ＩＤの数だけ保持する必要があるからである。【００２０】
そこで、ＮＩＣの実装規模の増大を防ぎつつ複数の宛先端末に効率良くパケットを送出できるようにすることが課題となる。本発明の目的は、かかる課題解決に寄与する管理ノード、端末、通信システム、通信方法、および、プログラム記録媒体を提供することにある。
【課題を解決するための手段】
【００２１】
本発明の第１の態様によると、端末に設けられたネットワークインターフェースカード（ＮＩＣ：Network Interface Card）に含まれる複数のレート制御手段にパケットを振り分けるための所定のルールを決定するルール決定手段を備える管理ノードが提供される。また、前記管理ノードは、決定した所定のルールを前記端末に送出するルール送出手段を備える。【００２２】
本発明の第２の態様によると、ネットワークインターフェースカード（ＮＩＣ：Network Interface Card）を備える端末が提供される。また、前記ＮＩＣは、パケットの送信レートを制御する複数のレート制御手段を有する。さらに、前記ＮＩＣは、管理ノードにより決定された所定のルールに従って前記複数のレート制御手段にパケットを振り分ける宛先振分手段を有する。【００２３】
本発明の第３の態様によると、ネットワークインターフェースカード（ＮＩＣ：Network Interface Card）を有する端末と、前記ＮＩＣを制御する管理ノードと、を備えた通信システムが提供される。前記ＮＩＣは、パケットの送信レートを制御する複数のレート制御手段を有する。また、前記ＮＩＣは、前記管理ノードにより決定された所定のルールに従って前記複数のレート制御手段にパケットを振り分ける宛先振分手段を有する。【００２４】
本発明の第４の態様によると、管理ノードによる通信方法が提供される。前記通信方法は、前記管理ノードが、端末に設けられたネットワークインターフェースカード（ＮＩＣ）に含まれる複数のレート制御手段にパケットを振り分けるための所定のルールを決定する。また、前記通信方法は、前記管理ノードが、決定した所定のルールを前記端末に送出する。【００２５】
本発明の第５の態様によると、端末の管理ノードに設けられたコンピュータに実行させるプログラムが記録された非一時的なコンピュータ可読記録媒体（non-transitory computer-readable storage medium）が提供される。前記プログラム記録媒体は、前記端末に設けられたネットワークインターフェースカード（ＮＩＣ：Network Interface Card）に含まれる複数のレート制御手段にパケットを振り分けるための所定のルールを決定する処理を前記コンピュータに実行させるプログラムを記録する。また、前記プログラム記録媒体は、決定した所定のルールを前記端末に送出する処理を、前記コンピュータに実行させるプログラムを記録する。【００２６】
なお、同目的は、上記の各構成を有する通信方法を、コンピュータによって実現するコンピュータ・プログラムによっても達成される。
【発明の効果】
【００２７】
本発明に係る管理ノード、端末、通信システム、通信方法、および、プログラム記録媒体によると、ＮＩＣの実装規模の増大を防ぎつつ複数の宛先端末に効率良くパケットを送出することが可能となる。
【図面の簡単な説明】
【００２８】
【図１】一実施形態に係る管理ノードの構成を例示するブロック図である。
【図２】第１の実施形態に係る通信システムの構成を例示するブロック図である。
【図３】第１の実施形態に係る通信システムにおける端末の構成を例示するブロック図である。
【図４】関連技術および本発明の通信システムを実施するためのデバイスドライバの構成を示すブロック図である。
【図５】第１の実施形態に係る通信システムにおけるネットワークインターフェースカード（ＮＩＣ）の構成を例示するブロック図である。
【図６】第１の実施形態に係る通信システムにおける管理ノードに対する入力情報の構成を例示する表である。
【図７】第１の実施形態に係る通信システムにおける管理ノードから出力される振分ルールの構成を例示する表である。
【図８】第１の実施形態に係る通信システムにおけるデバイスドライバの動作を例示するフローチャートである。
【図９】第１の実施形態に係る通信システムにおけるレート制御部の動作を例示するフローチャートである。
【図１０】第１の実施形態に係る通信システムにおける宛先振分部のデータ送信時の動作を例示するフローチャートである。
【図１１】第１の実施形態に係る通信システムにおける管理ノードの動作を例示するフローチャートである。
【図１２】第１の実施形態に係る通信システムにおけるネットワークのトポロジを例示する図である。
【図１３】第１の実施形態に係る通信システムにおける入力情報および振分ルールの作成フローを例示する図である。
【図１４】第１の実施形態に係る通信システムにおける宛先振分部の振分ルール入力時の動作を例示するフローチャートである。
【図１５】上記実施形態に係る管理ノードのハードウエア構成を例示する図である。
【図１６】関連技術の通信システムを実施するための全体図を示すブロック図である。
【図１７】関連技術の通信システムにおける端末の構成を示すブロック図である。
【図１８】関連技術の通信システムにおけるネットワークインターフェースカード（ＮＩＣ）の構成を示すブロック図である。
【発明を実施するための形態】
【００２９】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００３０】
図１は、一実施形態に係る管理ノード３の構成を例示するブロック図である。図１を参照すると、管理ノード３は、ルール決定部２０と、ルール送出部２１とを備えている。ルール決定部２０は、端末に設けられたネットワークインターフェースカード（ＮＩＣ：Network Interface Card）に含まれる複数のレート制御部にパケットを振り分けるための所定のルールを決定する。ルール送出部２１は、決定した所定のルールを前記端末に送出する。
【００３１】
図２は、管理ノード３を備えた通信システムの構成を例示するブロック図である。図２において、管理ノード３は、図１に示す管理ノード３と異なり、パラメータ入力部１９が付加されている。また、図５は、図２の端末１に設けられたＮＩＣ５の構成を例示するブロック図である。ルール決定部２０は、パケットを宛先端末に応じて複数のレート制御部１４−１〜１４−Ｍのいずれかに対応付ける所定のルールを、複数のレート制御部１４−１〜１４−Ｍの個数（図５においては、Ｍ個）に基づいて決定してもよい。また、ルール決定部２０は、ＮＩＣ５に接続されるネットワーク２のトポロジに基づいて、所定のルールを決定してもよい。ここで、ネットワークトポロジは、端末（例えば、端末１−１）から宛先端末（例えば、端末１−Ｎ）へパケットを送信する際に通過するリンクに関する情報を含んでいてもよい。さらに、ルール決定部２０は、端末１が送出するパケットのフロー情報に基づいて、所定のルールを決定してもよい。ここで、フロー情報は、端末（例えば、端末１−１）から宛先端末（例えば、端末１−Ｎ）へのパケットの送信可能帯域に関する情報を含んでいてもよい。
【００３２】
かかる管理ノード３によると、ＮＩＣ５の実装規模の増大を防ぎつつ、複数の宛先端末に効率良くパケットを送出することが可能となる。なぜなら、複数の宛先端末に対するデータ送信についてレート制御部１４を共有することができ、宛先端末ごとにレート制御部１４を設ける必要がなくなるからである。また、ＮＩＣ５が複数のレート制御部１４を有することで、HoL Blockingが発生しにくくなるからである。
【００３３】
次に、一実施形態について、図面を参照しつつさらに説明する。以下の説明において、各回路系およびソフトウェアの符号の添え字「−１」〜「−Ｎ」および「−１」〜「−Ｍ」は省略されることもある。図５を参照すると、端末１に設けられたＮＩＣ５は、複数のレート制御部１４（１４−１〜１４−Ｍ）と、宛先振分部１３と、ＤＭＡ部１２と、ＮＷ  Ｉ／Ｆ１５とを有する。レート制御部１４−１〜１４−Ｍは、それぞれ、複数の宛先ＩＤのデータをまとめてレート制御する。宛先振分部１３は、複数の宛先ＩＤのデータをどのレート制御部１４に渡すかを選択する。また、図２を参照すると、管理ノード３は、宛先振分部１３に対する振分ルールを決定するルール決定部２０を有する。
【００３４】
ここで、レート制御部１４−１は、複数の宛先ＩＤに対するデータを単一のバッファ１７−１に保持し、レート制御タイマ１８−１をルール決定部２０から通知された送信レートに従って動作させる。他のレート制御部１４−２〜１４−Ｍについても同様である。また、レート制御部１４は、宛先ＩＤの数よりも少ない個数（Ｍ）が実装される。宛先振分部１３は、自身に振分ルールを保持し、ＤＭＡ部１２から到着したデータの宛先ＩＤを参照して、どのレート制御部１４に振り分けるかを決定する。また、宛先振分部１３は、ルール決定部２０から通知される振分ルールを反映し、反映した旨をルール決定部２０に通知する。さらに、ルール決定部２０は、自身に入力されるネットワークトポロジ、各端末１で発生させるフロー情報、各端末１のＮＩＣ５が保持するレート制御部１４の個数等に関する情報を、パラメータ入力部１９から受信する。また、ルール決定部２０は、パラメータ入力部１９からの情報を用いて、振分ルールを決定し、ルール送出部２１を介して宛先振分部１３へ決定した振分ルールを通知する。
【００３５】
かかる通信システムによると、端末１が発生させるデータの宛先ＩＤ別にレート制御部１４を保持する必要がなくなるため、ＮＩＣ５のＨＷ規模の増大を防ぐことができる。なぜなら、複数の宛先ＩＤに対するデータに対して、宛先振分部１３がどのレート制御部１４を用いるかを決定して振り分けるので、複数の宛先ＩＤに対するデータで単一のレート制御部を共有することができるからである。
【００３６】
また、かかる通信システムによると、端末１内のHoL Blockingが発生しにくくなるという効果がもたらされる。なぜなら、単一のレート制御部１４ではなく、複数のレート制御部１４を用いるため、HoL Blockingの機会を減らすような実装が可能となるからである。
さらに、ルール決定部２０により、例えば、送信可能レートが近い宛先ＩＤへのデータを同一のレート制御部１４に割り当てることで、限られたレート制御部の実装の中でHoL Blockingが生じる機会を最小化することが可能となるからである。
【００３７】
＜実施形態１＞
[構成]
次に、第１の実施形態に係る通信システムついて、図面を参照して詳細に説明する。
【００３８】
図２は、本実施形態の通信システムの構成を例示するブロック図である。図２を参照すると、本実施形態の通信システムは、ネットワーク２を介して接続された、端末１−１〜１−Ｎと、管理ノード３を備えている。
【００３９】
端末１−１〜１−Ｎは、それぞれ、他の端末１へ送信するデータを発生させるアプリケーション４−１〜４−Ｎと、データをネットワーク２へ送信するためのインターフェースであるネットワークインターフェースカード（ＮＩＣ：Network Interface Card）５−１〜５−Ｎを備えている。ＮＩＣ５−１〜５−Ｎは、ネットワーク２を介して接続される。
【００４０】
管理ノード３は、各端末１のＮＩＣ５のパラメータを変更・制御する。管理ノード３は、パラメータ入力部１９、ルール決定部２０、および、ルール送出部２１を備えている。
パラメータ入力部１９は、管理ノード３に対してパラメータを入力する。ルール決定部２０は、管理ノード３のパラメータ入力部１９からのデータに基づいて、振分ルールを決定する。ルール送出部２１は、ルール決定部２０が決定した振分ルールを端末１−１〜１−Ｎに送出する。
【００４１】
図３は、本実施形態における端末１の構成を例示するブロック図である。図３を参照すると、端末１は、アプリケーション４と、ＮＩＣ５を制御するデバイスドライバ６と、ＣＰＵ７と、メモリ８と、ルートコンプレックス９と、ＮＩＣ５を備えている。
【００４２】
図４は、端末１が有するデバイスドライバ６の構成を例示するブロック図である。図４を参照すると、デバイスドライバ６は、メモリ（ＭＥＭ：Memory）領域１０と、ＤＭＡＣＴＬ（DMA（Direct Memory Access） Control）部１１を備えている。メモリ領域１０は、アプリケーション４が発生させるデータの宛先毎にデータを滞留するための領域である。ＤＭＡＣＴＬ部１１は、ＮＩＣ５内のＤＭＡ部１２を制御する。
【００４３】
図５は、本実施形態におけるＮＩＣ５の構成を例示するブロック図である。図５を参照すると、ＮＩＣ５は、ＤＭＡ部１２、宛先振分部１３、レート制御部１４−１〜１４−Ｍ、および、ネットワークインターフェース（ＮＷ  Ｉ／Ｆ：Network Interface）１５を備えている。
【００４４】
ＤＭＡ部１２は、端末１のメモリ８からＮＩＣ５へデータを引き抜く。宛先振分部１３は、ＮＩＣ５へ到着したパケットの宛先を参照して、どのレート制御部１４へ到着パケットを振り分けるかを決定する。レート制御部１４−１〜１４−Ｍは、ネットワーク２へパケットを出力する際の送信レートを制御する。ＮＷ  Ｉ／Ｆ１５は、ネットワーク２へデータを送信するためのインターフェースである。
【００４５】
また、宛先振分部１３は、宛先振分のルールを保持する振分ルールテーブル１６を備えている。さらに、レート制御部１４は、送信機会を得るまでパケットの待ち合わせを行うためのバッファ１７と、送信機会のタイミングを制御するレート制御タイマ１８を備えている。
【００４６】
図６は、図２に示した管理ノード３のパラメータ入力部１９が受け付けるパラメータを例示する表である。図６を参照すると、管理ノード３へ入力する入力情報には、各ノードの宛先ＩＤと、その宛先ＩＤへ送信する際に通過するリンクと、その宛先ＩＤへ送信する際に送信可能な送信レートと、各端末１のＮＩＣ５に設けられたレート制御部１４の個数等を含む。その他の情報として、入力情報は、ネットワークトポロジの情報等を含んでいてもよい。なお、入力情報には、管理ノード３に対して端末１が発生させるパケットの送信情報と、トポロジ情報等を通知するための情報に加え、レート制御部１４の個数を含んでいることが好ましい。
【００４７】
図７は、管理ノード３から出力され、図５に示したＮＩＣ５の振分ルールテーブル１６へ格納される振分ルールを例示する表である。図７を参照すると、管理ノード３から出力される振分ルールには、レート制御部１４の識別子（例えば、番号）と、そのレート制御部１４に設定する送信レートと、そのレート制御部１４に割り当てる宛先ＩＤのグループ（group）とを含む。宛先振分部１３は、このグループ情報と宛先振分部１３に到着したパケットの宛先ＩＤを参照し、どのレート制御部１４に到着パケットを振り分けるかを決定する。
【００４８】
[動作]
次に、図８ないし図１１、および、図１４に示すフローチャートと、図１２に示すネットワークトポロジの例と、図１３に例示する入力情報から振分ルールを作成するプロセスとを参照して、本実施形態の端末１の動作および管理ノード３の動作について、詳細に説明する。
【００４９】
まず、端末１がパケットを送信する際の動作について説明する。
【００５０】
図８を参照すると、デバイスドライバ６は、アプリケーション（ＡＰＰ：Application）４からパケットを受け取ると（ステップＡ１）、受け取ったパケットの宛先ＩＤ毎にデバイスドライバ６内のＭＥＭ領域１０の該当バッファへパケットをキューイングする（ステップＡ２）。
【００５１】
図９を参照すると、ＮＩＣ５内のいずれかのレート制御部１４（例えば、レート制御部１４−Ｋ）のバッファ１７（例えば、バッファ１７−Ｋ）に空きが発生した場合（ステップＢ１）、バッファ１７―Ｋの空き情報を宛先振分部１３へ通知する（ステップＢ２）。
【００５２】
バッファ１７―Ｋの空き情報を受信した宛先振分部１３は、振分ルールテーブル１６を参照し、空きが発生したレート制御部１４―Ｋに対する宛先ＩＤのパケットを特定し、この宛先ＩＤのパケットをＤＭＡ部１２へ通知する（ステップＢ３）。このとき、振分ルールテーブル１６の宛先ＩＤが複数の宛先ＩＤを選択していた場合、宛先振分部１３は複数の宛先ＩＤの中から順番にＩＤを選択する。
【００５３】
次に、通知を受けたＤＭＡ部１２は、デバイスドライバ６に対して宛先振分部１３から通知を受けた宛先ＩＤのパケットを要求するためのＤＭＡリクエストメッセージを送信する（ステップＢ４）。
【００５４】
ＤＭＡリクエストメッセージを受けたデバイスドライバ６は、このリクエストメッセージに対して、該当の宛先ＩＤのパケットを乗せたＤＭＡコンプリーションメッセージをＤＭＡ部１２へ送信する。さらに、このＤＭＡコンプリーションメッセージを受信したＤＭＡ部１２は、メッセージ内のデータを、空きが発生しているバッファ１７―Ｋへ送信し、ＦＩＦＯ（First In First Out）で詰める（ステップＢ５）。
【００５５】
図１０を参照すると、レート制御部１４は、レート制御タイマ１８が送信機会を得ると、パケットの送信を開始する（ステップＣ１）。すなわち、レート制御部１４は、該当レート制御部内のバッファ１７からパケットを抜き出し、抜き出したパケットをネットワーク２へ送信する（ステップＣ２）。
【００５６】
さらに、レート制御タイマ１８は、次回のパケット送信時間を登録する（ステップＣ３）。このとき、レート制御タイマ１８は、次回の送信時間を、「送信したパケットサイズ」を「レート制御部１４に設定された帯域」で除することによって計算する。
【００５７】
次に、管理ノード３が端末１内のＮＩＣ５の振分ルールテーブル１６の設定を変更する動作について説明する。
【００５８】
図１１を参照すると、管理ノード３のパラメータ入力部１９は、ネットワークトポロジや端末１が発生させる通信等を含んだ宛先情報を受け付ける（ステップＤ１）。ここでの入力方法として、例えば、ユーザが直接管理ノード３へ入力する方法や、各端末１が制御情報として管理ノード３へ情報を送信する方法等が考えられる。
【００５９】
ここで、一例として、図１２に示すネットワークトポロジを考える。図１２には、スイッチ（Ｓｗｉｔｃｈ）を介して端末１−１〜１−１０が通信可能に接続されているネットワークトポロジが示される。図１２の各リンクに付した数値は、端末１−１から見た、端末１−２〜１−１０へ送信する際に通過する共有フローの数を表す。例えば、端末１−１から端末１−２に対してパケットを送信する際には、パケットは共有フロー数が２のリンクを通過することになる。
【００６０】
図１２のようなトポロジと共有フロー数が把握できている場合、管理ノード３に入力する入力情報は、図１３の入力情報のようになる。ここでは、端末１−１のＮＩＣ５のレート制御部１４の個数が３個（Ｍ＝３）であり、入力情報として送信可能レートのみを入力する場合を考える。
【００６１】
次に、管理ノード３のルール決定部２０は、入力された情報に基づいて、各レート制御部１４に対する宛先毎の振分ルールを作成する（ステップＤ２）。
【００６２】
図１３の例で説明すると、ルール決定部２０は、まず、入力情報に含まれる送信可能レートを降順にソートする。次に、レート制御部１４の個数が３個である（Ｍ＝３）ため、ルール決定部２０は、各レート制御部１４に対して同じ個数の宛先ＩＤが割り当てられるように、昇順に３ノード毎にグルーピングする。図１３の例では、レート制御部１４−１には宛先ＩＤ｛２，６，８｝が振り分けられ、レート制御部１４−２には宛先ＩＤ｛３，４，１０｝が振り分けられ、レート制御部１４−３には宛先ＩＤ｛５，７，９｝が振り分けられる。また、ルール決定部２０は、各レート制御部１４の送信レートとして、各グループの宛先ＩＤに送信することができるレートの最小値を設定する。
【００６３】
各レート制御部１４の送信レートを各グループの宛先に送信することができるレートの最小値とすることで、どの宛先にパケットを送信するときにもＮＩＣ５中のバッファ溢れが発生しないようにすることができる。
【００６４】
本実施形態では、管理ノード３のルール決定部２０が他の端末１への送信可能レートに基づいて宛先ＩＤのグルーピングを行うものとしたが、ルール決定部２０は上記以外のアルゴリズムに従って宛先ＩＤのグルーピングを行ってもよい。
【００６５】
このように振分ルールを作成した後、管理ノード３のルール送出部２１は各端末１のＮＩＣ５内の振分ルールテーブル１６へ振分ルールを出力する（ステップＤ３）。
【００６６】
図１４を参照すると、端末１のＮＩＣ５内の宛先振分部１３へ振分ルールが入力されると（ステップＥ１）、ＤＭＡ部１２は変更が行われたレート制御部１４のバッファ１７が空になるまでデータの引き抜きを停止する（ステップＥ２）。
【００６７】
その後、バッファ１７が空になった時点で、宛先振分部１３は振分ルールをＮＩＣ５内の振分ルールテーブル１６に反映し、宛先振分部１３を介してＤＭＡ動作を開始する（ステップＥ３）。
【００６８】
振分ルールの振分ルールテーブル１６への反映が完了すると、宛先振分部１３は完了した旨を管理ノード３へ通知する（ステップＥ４）。
【００６９】
[効果]
次に、本実施形態に係る通信システムの効果について説明する
【００７０】
本実施形態の通信システムによると、レート制御部１４を端末１が発生させるデータの宛先ＩＤ別に保持する必要がなくなるため、ハードウェア（ＨＷ：Hardware）規模を削減することが可能となる。この理由は、複数の宛先ＩＤに対するデータに対して、宛先振分部１３がどのレート制御部１４を用いるかを振り分けるため、複数の宛先ＩＤに対するデータで単一のレート制御部１４を共有できるからである。
【００７１】
さらに、本実施形態の通信システムによると、端末１内のHoL Blockingが発生しにくくなることにある。この理由は、単一のレート制御部１４ではなく、複数のレート制御部１４を用いるため、HoL Blockingの機会を減らすような実装が可能となるからである。また、ルール決定部２０により、送信可能レートが近い宛先ＩＤへのデータを同一のレート制御部１４に割り当てることで、限られたレート制御部１４の実装の中でHoL Blockingの機会を最小化することが可能となるからである。
[ハードウェア構成例]
上述した実施形態において図２等に示した各部は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、少なくとも、パラメータ入力部１９、ルール決定部２０、ルール送出部２１は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図１５を参照して説明する。
【００７２】
図１５は、本発明の模範的な実施形態に係る管理ノードを実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図１５は、図２等に示した管理ノードを実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。なお、図１５における矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【００７３】
図１５に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク９０４（記憶装置）、
・外部装置との通信インタフェース９０５（Ｉｎｔｅｒｆａｃｅ：以降、「Ｉ／Ｆ」と称する）、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記憶媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・入出力インタフェース９０９、
情報処理装置９００は、これらの構成がバス９０６（通信線）を介して接続された一般的なコンピュータである。
【００７４】
そして、上述した実施形態を例に説明した本発明は、図１５に示した情報処理装置９００に対して、パラメータ入力部１９、ルール決定部２０、ルール送出部２１を実現可能なコンピュータプログラムを供給する。本発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性の記憶メモリ（ＲＡＭ９０３）またはハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００７５】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記憶媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記憶媒体９０７によって構成されると捉えることができる。
【００７６】
なお、本発明において、下記の形態が可能である。
［形態１］
上記第１の態様に係る管理ノードのとおりである。
［形態２］
前記ルール決定部は、パケットを宛先端末に応じて前記複数のレート制御部のいずれかに対応付ける所定のルールを、前記複数のレート制御部の個数に基づいて決定してもよい。
［形態３］
前記ルール決定部は、端末に設けられたＮＩＣに接続されるネットワークのトポロジに基づいて、前記所定のルールを決定し、前記ネットワークトポロジは、前記端末から宛先端末へパケットを送信する際に通過するリンクに関する情報を含んでいてもよい。
［形態４］
前記ルール決定部は、前記端末が送出するパケットのフロー情報に基づいて、前記所定のルールを決定し、前記フロー情報は、前記端末から宛先端末へのパケットの送信可能帯域に関する情報を含んでいてもよい。
［形態５］
前記ルール決定部は、前記送信可能帯域に応じて宛先端末を複数のグループに分類し、前記所定のルールとして、各グループを前記複数のレート制御部のいずれかに対応付けるルールを決定してもよい。
［形態６］
前記ルール決定部は、各レート制御部に対応するグループに含まれる宛先端末への送信可能帯域の最小値に基づいて、該グループに含まれる宛先端末へのパケットの送信レートを制御するように各レート制御部に指示してもよい。
［形態７］
上記第２の態様に係る端末のとおりである。
［形態８］
上記第３の態様に係る通信システムのとおりである。
［形態９］
前記通信システムにおいて、管理ノードは、パケットを宛先端末に応じて前記複数のレート制御部のいずれかに対応付ける所定のルールを、前記複数のレート制御部の個数に基づいて決定してもよい。
［形態１０］
前記通信システムにおいて、前記管理ノードは、端末に設けられたＮＩＣに接続されるネットワークのトポロジに基づいて、前記所定のルールを決定し、前記ネットワークトポロジは、前記端末から宛先端末へパケットを送信する際に通過するリンクに関する情報を含んでいてもよい。
［形態１１］
前記通信システムにおいて、前記管理ノードは、前記端末が送出するパケットのフロー情報に基づいて、前記所定のルールを決定し、前記フロー情報は、前記端末から宛先端末へのパケットの送信可能帯域に関する情報を含んでいてもよい。
［形態１２］
前記通信システムにおいて、前記管理ノードは、前記送信可能帯域に応じて宛先端末を複数のグループに分類し、前記所定のルールとして、各グループを前記複数のレート制御部のいずれかに対応付けるルールを決定してもよい。
［形態１３］
前記通信システムにおいて、前記複数のレート制御部は、対応するグループに含まれる宛先端末への送信可能帯域の最小値に基づいて、該グループに含まれる宛先端末へのパケットの送信レートを制御してもよい。
［形態１４］
上記第４の態様に係る通信方法のとおりである。
［形態１５］
前記通信方法において、管理ノードは、パケットを宛先端末に応じて前記複数のレート制御部のいずれかに対応付ける所定のルールを、前記複数のレート制御部の個数に基づいて決定してもよい。
［形態１６］
前記通信方法において、前記管理ノードは、端末に設けられたＮＩＣに接続されるネットワークのトポロジに基づいて、前記所定のルールを決定し、前記ネットワークトポロジは、前記端末から宛先端末へパケットを送信する際に通過するリンクに関する情報を含んでいてもよい。
［形態１７］
前記通信方法において、前記管理ノードは、前記端末が送出するパケットのフロー情報に基づいて、前記所定のルールを決定し、前記フロー情報は、前記端末から宛先端末へのパケットの送信可能帯域に関する情報を含んでいてもよい。
［形態１８］
前記通信方法は、前記管理ノードが、前記送信可能帯域に応じて宛先端末を複数のグループに分類するステップを含み、前記所定のルールとして、各グループを前記複数のレート制御部のいずれかに対応付けるルールを決定してもよい。
［形態１９］
前記通信方法は、前記管理ノードが、各レート制御部に対応するグループに含まれる宛先端末への送信可能帯域の最小値に基づいて、該グループに含まれる宛先端末へのパケットの送信レートを制御するように各レート制御部に指示するステップを含んでいてもよい。
［形態２０］
パケットの送信レートを制御する複数のレート制御部を有するネットワークインターフェースカード（ＮＩＣ：Network Interface Card）を備えた端末が、管理ノードにより決定された所定のルールを受信するステップと、前記受信した所定のルールに従って前記複数のレート制御部のうちのいずれかに対してパケットを振り分けるステップと、を含む通信方法が提供される。
［形態２１］
上記第５の態様に係るプログラム記録媒体のとおりである。
［形態２２］
前記プログラム記録媒体は、パケットを宛先端末に応じて前記複数のレート制御部のいずれかに対応付ける所定ルールを、前記複数のレート制御部の個数に基づいて決定する処理を、前記コンピュータに実行させるプログラムを記録してもよい。
［形態２３］
前記プログラム記録媒体は、端末に設けられたＮＩＣに接続されるネットワークのトポロジに基づいて、前記所定のルールを決定する処理を、前記コンピュータに実行させるプログラムを記録し、前記ネットワークトポロジは、前記端末から宛先端末へパケットを送信する際に通過するリンクに関する情報を含んでいてもよい。
［形態２４］
前記プログラム記録媒体は、前記端末が送出するパケットのフロー情報に基づいて、前記所定のルールを決定する処理を、前記コンピュータに実行させるプログラムを記録し、前記フロー情報は、前記端末から宛先端末へのパケットの送信可能帯域に関する情報を含んでいてもよい。
［形態２５］
前記プログラム記録媒体は、前記送信可能帯域に応じて宛先端末を複数のグループに分類する処理と、前記所定のルールとして、各グループを前記複数のレート制御部のいずれかに対応付けるルールを決定する処理と、を前記コンピュータに実行させるプログラムを記録してもよい。
［形態２６］
前記プログラム記録媒体は、各レート制御部に対応するグループに含まれる宛先端末への送信可能帯域の最小値に基づいて、該グループに含まれる宛先端末へのパケットの送信レートを制御するように各レート制御部に指示する処理を、前記コンピュータに実行させるプログラムを記録してもよい。
［形態２７］
パケットの送信レートを制御する複数のレート制御部を有するネットワークインターフェースカード（ＮＩＣ）を備えた端末に設けられたコンピュータに対して、管理ノードにより決定された所定のルールを受信する処理と、前記受信した所定のルールに従って前記複数のレート制御部のうちのいずれかに対してパケットを振り分ける処理と、を実行させるプログラムを記録するプログラム記録媒体が提供される。
【００７７】
なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【００７８】
この出願は、２０１４年１２月５日に出願された日本出願特願２０１４−２４６５０５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００７９】
本発明は、例えば、ＮＩＣを備えた端末にパケットを振り分ける管理ノード等に適用できる。
【符号の説明】
【００８０】
１、１−１〜１−Ｎ、１０１、１０１−１〜１０１−Ｎ    端末
２    ネットワーク
３    管理ノード
４、４−１〜４−Ｎ    アプリケーション
５、５−１〜５−Ｎ、１０５、１０５−１〜１０５−Ｎ    ＮＩＣ
６    デバイスドライバ
７    ＣＰＵ
８    メモリ
９    ルートコンプレックス
１０    ＭＥＭ領域
１１    ＤＭＡＣＴＬ部
１２、１１２    ＤＭＡ部
１３    宛先振分部
１４、１４−１〜１４−Ｍ、１１４−１〜１１４−（Ｎ−１）    レート制御部
１５、１１５    ＮＷ  Ｉ／Ｆ
１６    振分ルールテーブル
１７、１７−１〜１７−Ｍ、１１７−１〜１１７−（Ｎ−１）    バッファ１〜Ｎ
１８、１８−１〜１８−Ｍ、１１８−１〜１１８−（Ｎ−１）    レート制御タイマ
１９    パラメータ入力部
２０    ルール決定部
２１    ルール送出部
【図１】
0006620760.tif 000002
【図２】
0006620760.tif 000003
【図３】
0006620760.tif 000004
【図４】
0006620760.tif 000005
【図５】
0006620760.tif 000006
【図６】
0006620760.tif 000007
【図７】
0006620760.tif 000008
【図８】
0006620760.tif 000009
【図９】
0006620760.tif 000010
【図１０】
0006620760.tif 000011
【図１１】
0006620760.tif 000012
【図１２】
0006620760.tif 000013
【図１３】
0006620760.tif 000014
【図１４】
0006620760.tif 000015
【図１５】
0006620760.tif 000016
【図１６】
0006620760.tif 000017
【図１７】
0006620760.tif 000018
【図１８】
0006620760.tif 000019