(57)【特許請求の範囲】
【請求項１】
第１装置が送信元である送信待ちのパケットと、前記第１装置とは異なる第２装置が送信元である送信待ちのパケットとを保持する記憶部と、
前記第１装置が送信元である送信待ちのパケット、または前記第２装置が送信元である送信待ちのパケットを、所定割合にしたがって送信する通信部と、
前記第２装置が送信元である送信待ちのいずれかのパケットについて前記記憶部における滞在時間を計測し、ホップ数が大きいほど滞在時間に関する閾値が大きくなるようにホップ数と滞在時間に関する閾値との対応関係を示す対応情報を参照して、計測した前記滞在時間が、前記第２装置から自装置までのホップ数に対応する閾値以上であるか否かを判定し、前記閾値以上であると判定した場合に前記いずれかのパケットを識別可能な情報を出力する、制御部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記制御部は、
前記閾値以上であると判定した場合に、前記いずれかのパケットの送信元および宛先のうちの少なくともいずれかに、前記いずれかのパケットを識別可能な情報を送信する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、
前記閾値以上であると判定した場合に、前記いずれかのパケットの送信元からの要求に応じて、前記いずれかのパケットを識別可能な情報を当該送信元に送信する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記対応情報は、ホップ数と、前記第１装置または前記第２装置が送信元である送信待ちパケットを送信する割合と、滞在時間に関する閾値との対応関係を示す情報であって、
前記制御部は、
前記対応情報を参照して、計測した前記滞在時間が、算出した前記ホップ数と前記所定割合との組み合わせに対応する閾値以上であるか否かを判定する、ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記制御部は、
前記第２装置が送信元であるパケット群のうちの同一ジョブにより生成された一連のパケットのいずれかのパケットについて前記記憶部における滞在時間を計測する、ことを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
前記制御部は、
前記閾値以上であると判定した場合に、前記いずれかのパケットを識別可能な情報と、計測した前記滞在時間とを対応付けて出力する、ことを特徴とする請求項１〜５のいずれか一つに記載の情報処理装置。
【請求項７】
コンピュータが、
第１装置が送信元である送信待ちのパケットと、前記第１装置とは異なる第２装置が送信元である送信待ちのパケットとを保持する記憶部に保持された、前記第１装置が送信元である送信待ちのパケット、または前記第２装置が送信元である送信待ちのパケットを、所定割合にしたがって送信し、
前記第２装置が送信元である送信待ちのいずれかのパケットについて前記記憶部における滞在時間を計測し、
ホップ数が大きいほど滞在時間に関する閾値が大きくなるようにホップ数と滞在時間に関する閾値との対応関係を示す対応情報を参照して、計測した前記滞在時間が、前記第２装置から自装置までのホップ数に対応する閾値以上であるか否かを判定し、
前記閾値以上であると判定した場合に前記いずれかのパケットを識別可能な情報を出力する、
処理を実行することを特徴とする通信パケット滞留通知方法。
【請求項８】
コンピュータに、
第１装置が送信元である送信待ちのパケットと、前記第１装置とは異なる第２装置が送信元である送信待ちのパケットとを保持する記憶部に保持された、前記第１装置が送信元である送信待ちのパケット、または前記第２装置が送信元である送信待ちのパケットを、所定割合にしたがって送信し、
前記第２装置が送信元である送信待ちのいずれかのパケットについて前記記憶部における滞在時間を計測し、
ホップ数が大きいほど滞在時間に関する閾値が大きくなるようにホップ数と滞在時間に関する閾値との対応関係を示す対応情報を参照して、計測した前記滞在時間が、前記第２装置から自装置までのホップ数に対応する閾値以上であるか否かを判定し、
前記閾値以上であると判定した場合に前記いずれかのパケットを識別可能な情報を出力する、
処理を実行させることを特徴とする通信パケット滞留通知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、通信パケット滞留通知方法、および通信パケット滞留通知プログラムに関する。
【背景技術】
【０００２】
従来、複数のノードを、Ｔｏｒｕｓ網、Ｍｅｓｈ網、Ｒｉｎｇ網などのネットワークトポロジで接続し、マルチホップ通信によってノード間でのパケットの送受信が行われる計算機システムがある。関連する先行技術としては、例えば、トランスペアレントクロックベースの同期アーキテクチャを含む通信ネットワークの複数のノードにわたる滞留時間を監視するものがある。また、例えば、送信バッファに送信すべきデータが存在する移動局の数を算出し、移動局の数に基づいて新規の呼の受付を行う技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１４−５０７８９６号公報
【特許文献２】国際公開第２００８／０８７８４６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、ノードにおけるパケットの滞留を検出することが難しい。例えば、通信経路の長さによって許容できるパケットの滞在時間が異なるため、滞在時間の長さからパケットの滞留を検出することが難しく、適切なタイミングでパケットの滞留を検出して監視サーバなどに通知することができない。
【０００５】
１つの側面では、本発明は、適切なタイミングでパケットの滞留を検出して通知可能にする情報処理装置、通信パケット滞留通知方法、および通信パケット滞留通知プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、第１装置が送信元である送信待ちのパケットと、前記第１装置とは異なる第２装置が送信元である送信待ちのパケットとを保持する記憶部に保持された、前記第１装置が送信元である送信待ちのパケット、または前記第２装置が送信元である送信待ちのパケットを、所定割合にしたがって送信し、前記第２装置が送信元である送信待ちのいずれかのパケットについて前記記憶部における滞在時間を計測し、ホップ数と滞在時間に関する閾値との対応関係を示す対応情報を参照して、計測した前記滞在時間が、前記第２装置から自装置までのホップ数に対応する閾値以上であるか否かを判定し、前記閾値以上であると判定した場合に前記いずれかのパケットを識別可能な情報を出力する情報処理装置、通信パケット滞留通知方法、および通信パケット滞留通知プログラムが提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、適切なタイミングでパケットの滞留を検出して通知可能にすることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかる通信パケット滞留通知方法の一実施例を示す説明図である。
【図２】図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、接続装置２０３のハードウェア構成例を示すブロック図である。
【図４】図４は、ホップ数算出回路３３３のハードウェア構成例を示すブロック図である。
【図５】図５は、計算機システム５００の一例を示す説明図である。
【図６】図６は、情報処理装置１００の機能的構成例を示すブロック図である。
【図７】図７は、計算機システム５００の実施例を示す説明図である。
【図８】図８は、パケット８００のデータ構造を示す説明図である。
【図９】図９は、対応情報テーブル９００の記憶内容の第１の例を示す説明図である。
【図１０】図１０は、対応情報テーブル９００の記憶内容の第２の例を示す説明図である。
【図１１】図１１は、対応情報テーブル９００の記憶内容の第３の例を示す説明図である。
【図１２】図１２は、パケット８００の滞在時間を閾値と比較する一例を示す説明図である。
【図１３】図１３は、通知パケット１３００のデータ構造を示す説明図である。
【図１４】図１４は、接続装置２０３の別の例を示す説明図である。
【図１５】図１５は、計算機システム５００の別の例を示す説明図である。
【図１６】図１６は、計算機システム５００の別の例における通知パケット１３００のデータ構造の一例を示す説明図である。
【図１７】図１７は、通知処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、図面を参照して、本発明にかかる情報処理装置、通信パケット滞留通知方法、および通信パケット滞留通知プログラムの実施の形態を詳細に説明する。
【００１０】
（実施の形態にかかる通信パケット滞留通知方法の一実施例）
図１は、実施の形態にかかる通信パケット滞留通知方法の一実施例を示す説明図である。図１において、情報処理装置１００は、適切なタイミングでパケットの滞留を検出するコンピュータである。以下の説明では、情報処理装置１００が複数ある場合に、それぞれの情報処理装置１００を区別する場合には「情報処理装置１００＃ｉ」と表記する場合がある。ｉは自然数である。
【００１１】
ここで、複数のノードをＴｏｒｕｓ網、Ｍｅｓｈ網、Ｒｉｎｇ網などのネットワークトポロジで接続した計算機システムにおいて、複数のノードを用いてジョブを実行した際にジョブの処理が遅延してしまうことがある。例えば、ジョブを実行するノード間の通信経路上の中継ノードでパケットの輻輳などが発生して、中継ノードでパケットが滞留してしまうことがある。このとき、ジョブを実行するノード間のパケットの送受信にかかる通信時間が増大して、ジョブの処理が遅延してしまう。
【００１２】
しかしながら、ジョブの実行が終了した後では、ジョブの処理が遅延した状況を再現することができず、ジョブを実行するノード間の通信経路上の中継ノードでパケットの輻輳などが発生してパケットが滞留したのか否かを判定することが難しい場合がある。例えば、同じジョブを同じノードに再び実行させても、ジョブを実行するノード間の通信経路上の中継ノードの使用状況が変わり、中継ノードで輻輳が発生せずパケットの滞留が起こらなくなれば、ジョブの処理が遅延した状況が再現されなくなる。
【００１３】
一方で、中継ノードでのパケットの滞在時間を絶対評価しても、中継ノードでパケットが滞留したことを検出することが難しい場合がある。例えば、パケットが複数の中継ノードを経由した場合、中継ノードを経由するごとに中継ノードで送信の待ち合わせをする他のパケットが多くなる可能性が高く、パケットの滞留がなくても通信経路が長くなるほど中継ノードごとの滞在時間が長くなる傾向がある。換言すれば、通信経路の長さによって許容できる滞在時間が異なるため、滞在時間を絶対評価してもパケットの滞留を検出することが難しい。例えば、パケットの滞留を検出する際に用いる滞在時間の閾値を、通信経路が最短の場合に応じた低い値に設定した場合には、パケットの滞留がない場合であっても、パケットの滞留があると検出されてしまうことがある。
【００１４】
このように、適切なタイミングでパケットの滞留を検出することが難しい。そして、パケットの滞留がないにも関わらず、監視サーバなどにパケットの滞留が通知されてしまい、パケットが滞留した原因などの解析にかかる負荷の増大化、またはネットワークの通信量の増大化などを招いてしまうことがある。そこで、本実施の形態では、適切なタイミングでパケットの滞留を検出して通知可能にすることができる通信パケット滞留通知方法について説明する。
【００１５】
情報処理装置１００は、上述した計算機システムに含まれる複数のノードのいずれかとして動作し、マルチホップ通信により、他の情報処理装置１００に対してデータを送受信する。情報処理装置１００は、例えば、第１装置が送信元である送信待ちのパケットと、第１装置とは異なる第２装置が送信元である送信待ちのパケットとを保持する記憶部１０１を有する。第１装置および第２装置とは、計算機システムに含まれるノードのいずれかである。
【００１６】
第１装置は、例えば、自装置である。第１装置は、自装置とは異なる他の情報処理装置１００であってもよい。送信待ちのパケットとは、他の情報処理装置１００を宛先とするパケットである。第１装置が送信元である送信待ちのパケットは、例えば、第１装置が自装置であれば、自装置が実行するジョブによって生成された送信待ちのパケットである。第２装置は、例えば、自装置とは異なる他の情報処理装置１００のそれぞれである。第２装置が送信元である送信待ちのパケットは、例えば、第２装置となる他の情報処理装置１００が実行するジョブによって生成された送信待ちのパケットである。
【００１７】
また、情報処理装置１００は、第１装置が送信元である送信待ちのパケット、または第２装置が送信元である送信待ちのパケットを、所定割合にしたがって送信する通信部１０２を有する。所定割合は、例えば、自装置が送信元である送信待ちのパケットと、他の情報処理装置１００が送信元である送信待ちのパケットとのうち、どちらのパケットをどのくらい優先して送信するかを示す割合である。
【００１８】
通信部１０２は、例えば、所定割合が「１：１」であって、記憶部１０１に第１装置または第２装置が送信元である送信待ちのパケットがあれば、第１装置または第２装置が送信元である送信待ちのパケットを交互に送信する。通信部１０２は、記憶部１０１に第１装置が送信元である送信待ちのパケットがなくなれば、第２装置が送信元である送信待ちのパケットを連続して送信してもよい。通信部１０２は、記憶部１０１に第２装置が送信元である送信待ちのパケットがなくなれば、第１装置が送信元である送信待ちのパケットを連続して送信してもよい。
【００１９】
また、情報処理装置１００は、第２装置が送信元である送信待ちのいずれかのパケットについて記憶部１０１における滞在時間を計測する。滞在時間は、例えば、第２装置が送信元である送信待ちのパケットが、記憶部１０１によって保持されてから通信部１０２によって送信されるまでの経過時間である。
【００２０】
また、情報処理装置１００は、対応情報１０３を参照して、いずれかのパケットについて計測した滞在時間が、第２装置から自装置までのホップ数に対応する閾値以上であるか否かを判定する。閾値は、自装置でパケットの輻輳などが発生してパケットが滞留したか否かを判定する基準値である。対応情報１０３は、ホップ数と滞在時間に関する閾値との対応関係を示す情報である。
【００２１】
ここで、パケットのホップ数が多くなるほど、送信の待ち合わせをする他のパケットが多くなる可能性が高く、パケットのスループットが悪化し、パケットの滞在時間が増大しやすくなる。スループットは、例えば、あるパケットについての単位時間当たりの転送量である。このため、対応情報１０３には、スループットの悪化によるパケットの滞在時間の増大を考慮した上で、自装置でパケットが滞留したか否かを判定可能なように、ホップ数が多いほど、大きい閾値が対応付けて設定される。
【００２２】
そして、情報処理装置１００は、閾値以上であると判定した場合には、閾値以上であると判定したパケットを識別可能な情報を、自装置で滞留した可能性があるパケットを示す情報として出力する。パケットを識別可能な情報は、例えば、パケットの識別情報、パケットの送信元または宛先の識別情報、パケットを生成したジョブの識別情報などである。
【００２３】
図１の例では、（１）情報処理装置１００＃３は、他の情報処理装置１００＃２から自装置までの通信経路上を１ホップして自装置に到達した第１パケット１１１を記憶部１０１に記憶する。（２）情報処理装置１００＃３は、第１パケット１１１が記憶部１０１に記憶されてから通信部１０２に送信されるまでの記憶部１０１における第１パケット１１１の滞在時間「３ｓ」を計測する。
【００２４】
（３）情報処理装置１００＃３は、対応情報１０３を参照して、第１パケット１１１のホップ数「１」に対応する閾値「２ｓ」を取得し、第１パケット１１１の滞在時間「３ｓ」が閾値以上であるか否かを判定する。ここでは、情報処理装置１００は、閾値以上であると判定する。
【００２５】
（４）情報処理装置１００＃３は、第１パケット１１１について閾値以上であると判定したため、第１パケット１１１の送受信の際に自装置に通信の輻輳などが発生した可能性があるとして、第１パケット１１１を識別可能な情報を出力する。換言すれば、情報処理装置１００＃３は、第１パケット１１１について、滞在時間が増大しており、滞留した可能性があると判定し、第１パケット１１１を識別可能な情報を出力する。
【００２６】
（５）情報処理装置１００＃３は、他の情報処理装置１００＃１から自装置までの通信経路上を２ホップして自装置に到達した第２パケット１１２を記憶部１０１に記憶する。（６）情報処理装置１００＃３は、第２パケット１１２が記憶部１０１に記憶されてから通信部１０２に送信されるまでの記憶部１０１における第２パケット１１２の滞在時間「３ｓ」を計測する。
【００２７】
（７）情報処理装置１００＃３は、対応情報１０３を参照して、第２パケット１１２のホップ数「２」に対応する閾値「４ｓ」を取得し、第２パケット１１２の滞在時間「３ｓ」が閾値以上であるか否かを判定する。ここでは、情報処理装置１００は、閾値以上ではないと判定する。
【００２８】
（８）情報処理装置１００＃３は、第２パケット１１２について閾値以上ではないと判定したため、第２パケット１１２を識別可能な情報を出力しないようにする。換言すれば、情報処理装置１００＃３は、第２パケット１１２について、滞在時間が増大しても、滞留していないと判定し、第２パケット１１２を識別可能な情報を出力しないようにする。
【００２９】
このように、情報処理装置１００によれば、滞在時間が同じパケットであってもホップ数に応じて異なる閾値と比較することができ、閾値以上であれば自装置でパケットの輻輳などがあり、パケットが滞留した可能性があると判定することができる。これにより、情報処理装置１００は、ホップ数の増大によって滞在時間が増大したにも関わらず、パケットが滞留した可能性があると判定してしまうことを抑制することができる。
【００３０】
一方で、情報処理装置１００は、滞在時間が所定値よりも大きいパケットが複数あっても、自装置で滞留した可能性があるパケットと、ホップ数の増大によって滞在時間が増大したパケットとを判別することができる。そして、情報処理装置１００は、自装置でパケットの輻輳などが発生して、滞留した可能性があるパケットを識別可能な情報を出力することができる。
【００３１】
また、情報処理装置１００は、滞留がないパケットを識別可能な情報を出力することを抑制するため、滞留した可能性があるパケットを記憶するメモリサイズの増大化を低減したり、計算機システムにおける通信量の増大化を抑制することができる。また、情報処理装置１００は、滞留がないパケットを識別可能な情報を出力することを抑制するため、パケットが滞留した原因などを解析する際の負荷の増大化を抑制することができる。
【００３２】
また、計算機システムの利用者は、情報処理装置１００によって出力された、滞在時間が閾値以上であると判定されたパケットを識別可能な情報を参照することができる。そして、利用者は、情報処理装置１００によって出力された情報によって識別されるパケットの送受信の際に、情報処理装置１００に輻輳などが発生しており、パケットが滞留した可能性があることを把握することができる。利用者は、例えば、パケットが滞留した可能性がある連続した複数の情報処理装置１００があれば、最も後段の情報処理装置１００が原因となってパケットが滞留した可能性があると解析することができる。
【００３３】
ここでは、情報処理装置１００が、第１装置が自装置であり、自装置または他の情報処理装置１００が送信元である送信待ちのパケットを、所定割合にしたがって送信する場合について説明したが、これに限らない。例えば、情報処理装置１００は、自装置でパケットを生成せず、２つの他の情報処理装置１００のうちの一方が送信元である送信待ちのパケットと、他方が送信元である送信待ちのパケットとを、所定割合にしたがって送信する装置であってもよい。
【００３４】
ここでは、情報処理装置１００が、第１装置または第２装置が送信元である送信待ちのパケットを所定割合にしたがって送信する場合について説明したが、これに限らない。例えば、情報処理装置１００は、３以上の装置のそれぞれが送信元である送信待ちのパケットを所定割合にしたがって送信する装置であってもよい。
【００３５】
ここで、上述した情報処理装置１００の動作は、電気回路を用いてハードウェア的に実現することができる。また、上述した情報処理装置１００の動作は、プロセッサとメモリとを用いてソフトウェア的に実現することもできる。以下、上述した情報処理装置１００の動作を、電気回路を用いてハードウェア的に実現する場合について説明する。
【００３６】
（情報処理装置１００のハードウェア構成例）
次に、図２を用いて、図１に示した情報処理装置１００のハードウェア構成例について説明する。
【００３７】
図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。図２において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、接続装置２０３と、ディスクドライブ２０４と、ディスク２０５とを有する。また、ＣＰＵ２０１と、メモリ２０２と、接続装置２０３と、ディスクドライブ２０４とは、バス２００によってそれぞれ接続される。
【００３８】
ここで、ＣＰＵ２０１は、情報処理装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。
【００３９】
接続装置２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータ（例えば、他の情報処理装置１００）に接続される。そして、接続装置２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。接続装置２０３のハードウェア構成例は、例えば、図３を用いて後述する。また、接続装置２０３は、情報処理装置１００の動作をソフトウェア的に実現する場合には、モデムやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アダプタなどであってもよい。
【００４０】
ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがってディスク２０５に対するデータのリード／ライトを制御する。ディスクドライブ２０４は、例えば、磁気ディスクドライブである。ディスク２０５は、ディスクドライブ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。ディスク２０５は、例えば、磁気ディスク、光ディスクなどである。
【００４１】
情報処理装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイなどを有することにしてもよい。また、情報処理装置１００は、ディスクドライブ２０４およびディスク２０５の代わりに、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）および半導体メモリなどを有していてもよい。
【００４２】
（接続装置２０３のハードウェア構成例）
次に、図３を用いて、図２に示した接続装置２０３のハードウェア構成例について説明する。
【００４３】
図３は、接続装置２０３のハードウェア構成例を示すブロック図である。図３において、接続装置２０３は、受信バッファ３１０＃１〜３１０＃ｎを有する。また、接続装置２０３は、受信側の座標用レジスタ３２１＃１〜３２１＃ｎと、受信側のカウンタ用レジスタ３２２＃１〜３２２＃ｎと、受信側のパケットＩＤ用レジスタ３２３＃１〜３２３＃ｎと、受信側の滞在時間通知回路３３０とを有する。ｎは、自然数である。
【００４４】
また、接続装置２０３は、送信バッファ３４０＃１〜３４０＃ｎを有する。また、接続装置２０３は、送信側の座標用レジスタ３５１＃１〜３５１＃ｎと、送信側のカウンタ用レジスタ３５２＃１〜３５２＃ｎと、送信側のパケットＩＤ用レジスタ３５３＃１〜３５３＃ｎと、送信側の滞在時間通知回路３６０とを有する。また、受信バッファ３１０と送信バッファ３４０との段数は異なってもよい。また、接続装置２０３は、調停回路３７０と、送信回路３８０とを有する。
【００４５】
受信バッファ３１０＃１〜３１０＃ｎは、ネットワーク２１０に接続され、他の情報処理装置１００が送信元である送信待ちのパケットを、ネットワーク２１０から入力されて保持する。受信バッファ３１０＃１〜３１０＃ｎは、自装置のバスに接続され、保持したパケットが、自装置が宛先である送信待ちのパケットであれば、自装置のバスに出力する。受信バッファ３１０＃１〜３１０＃ｎは、送信回路３８０に接続され、保持したパケットが、他の情報処理装置１００が宛先である送信待ちのパケットであれば、送信回路３８０に出力する。
【００４６】
受信側の座標用レジスタ３２１＃１〜３２１＃ｎは、それぞれの受信バッファ３１０＃１〜３１０＃ｎに対応する。受信側の座標用レジスタ３２１＃１〜３２１＃ｎは、ネットワーク２１０に接続され、それぞれの受信バッファ３１０＃１〜３１０＃ｎに保持された送信待ちのパケットの送信元座標および宛先座標を、ネットワーク２１０から入力されて保持する。受信側の座標用レジスタ３２１＃１〜３２１＃ｎは、受信側の滞在時間通知回路３３０に接続され、保持した送信元座標および宛先座標を、受信側の滞在時間通知回路３３０に出力する。
【００４７】
受信側のカウンタ用レジスタ３２２＃１〜３２２＃ｎは、それぞれの受信バッファ３１０＃１〜３１０＃ｎに対応する。受信側のカウンタ用レジスタ３２２＃１〜３２２＃ｎは、それぞれの受信バッファ３１０＃１〜３１０＃ｎに保持された送信待ちのパケットの滞在時間を示すカウンタ値を保持し、一定時間ごとにカウンタ値をカウントアップする。受信側のカウンタ用レジスタ３２２＃１〜３２２＃ｎは、受信側の滞在時間通知回路３３０に接続され、保持した滞在時間を示すカウンタ値を、受信側の滞在時間通知回路３３０に出力する。
【００４８】
受信側のパケットＩＤ用レジスタ３２３＃１〜３２３＃ｎは、それぞれの受信バッファ３１０＃１〜３１０＃ｎに対応する。受信側のパケットＩＤ用レジスタ３２３＃１〜３２３＃ｎは、ネットワーク２１０に接続され、それぞれの受信バッファ３１０＃１〜３１０＃ｎに保持された送信待ちのパケットの識別情報を、ネットワーク２１０から入力されて保持する。受信側のパケットＩＤ用レジスタ３２３＃１〜３２３＃ｎは、受信側の滞在時間通知回路３３０に接続され、保持した識別情報を、受信側の滞在時間通知回路３３０に出力する。
【００４９】
接続装置２０３は、それぞれの受信バッファ３１０＃１〜３１０＃ｎに保持された送信待ちのパケットから、当該パケットの送信元座標および宛先座標を出力可能な場合には、受信側の座標用レジスタ３２１＃１〜３２１＃ｎを有していなくてもよい。また、接続装置２０３は、それぞれの受信バッファ３１０＃１〜３１０＃ｎに保持された送信待ちのパケットから、当該パケットの識別情報を出力可能な場合には、受信側のパケットＩＤ用レジスタ３２３＃１〜３２３＃ｎを有していなくてもよい。
【００５０】
受信側の滞在時間通知回路３３０は、自座標保持回路３３１と、閾値保持回路３３２と、ホップ数算出回路３３３と、閾値選択回路３３４と、比較回路３３５と、生成回路３３６とを有する。自座標保持回路３３１は、自座標を保持する記憶回路である。自座標保持回路３３１は、ホップ数算出回路３３３に接続され、保持した自座標を、ホップ数算出回路３３３に出力する。
【００５１】
ホップ数算出回路３３３は、自座標保持回路３３１に接続され、自座標保持回路３３１から自座標を入力される。ホップ数算出回路３３３は、受信側の座標用レジスタ３２１＃１〜３２１＃ｎに接続され、受信側の座標用レジスタ３２１＃１〜３２１＃ｎから送信元座標を入力される。ホップ数算出回路３３３は、入力された自座標と送信元座標とを比較することにより、送信待ちパケットのホップ数を算出する。ホップ数算出回路３３３は、閾値選択回路３３４に接続され、算出したホップ数を、閾値選択回路３３４に出力する。
【００５２】
ホップ数算出回路３３３のハードウェア構成例は、例えば、図４を用いて後述する。ホップ数算出回路３３３は、例えば、送信元座標＜自座標である場合には、自座標−送信元座標をホップ数として算出する。また、ホップ数算出回路３３３は、送信元座標＜自座標ではない場合には、自座標−送信元座標＋計算機システムにおける最大ホップ数を、ホップ数として算出する。
【００５３】
閾値保持回路３３２は、複数のホップ数のそれぞれのホップ数に対応する閾値を保持する。閾値保持回路３３２は、閾値選択回路３３４に接続され、保持した閾値を、閾値選択回路３３４に出力する。閾値選択回路３３４は、ホップ数算出回路３３３に接続され、ホップ数を入力される。閾値選択回路３３４は、閾値保持回路３３２に接続され、複数の閾値を入力される。閾値選択回路３３４は、入力された複数の閾値のうち、入力されたホップ数に対応する閾値を選択する。閾値選択回路３３４は、比較回路３３５に接続され、選択した閾値を、比較回路３３５に出力する。
【００５４】
比較回路３３５は、受信側のカウンタ用レジスタ３２２＃１〜３２２＃ｎに接続され、滞在時間を入力される。比較回路３３５は、閾値選択回路３３４に接続され、閾値を入力される。比較回路３３５は、入力された滞在時間と、入力された閾値とを比較する。比較回路３３５は、生成回路３３６に接続され、滞在時間と閾値とを比較した結果を、生成回路３３６に出力する。
【００５５】
生成回路３３６は、比較回路３３５に接続され、滞在時間と閾値とを比較した結果を入力される。生成回路３３６は、受信側のパケットＩＤ用レジスタ３２３＃１〜３２３＃ｎに接続され、識別情報を入力される。生成回路３３６は、入力された滞在時間と閾値とを比較した結果に基づいて、滞在時間が閾値以上であれば、入力された識別情報を含む通知パケットを生成する。生成回路３３６は、送信回路３８０に接続され、生成した通知パケットを、送信回路３８０に出力する。生成回路３３６は、自装置のバス２００に接続され、生成した通知パケットを、自装置のバス２００に出力する。
【００５６】
送信バッファ３４０＃１〜３４０＃ｎは、自装置のバス２００に接続され、自装置のバス２００から自装置が送信元である送信待ちのバッファを入力されて保持する。送信バッファ３４０＃１〜３４０＃ｎは、送信回路３８０に接続され、保持したパケットが、他の情報処理装置１００が宛先である送信待ちのパケットであれば、送信回路３８０に出力する。
【００５７】
送信側の座標用レジスタ３５１＃１〜３５１＃ｎは、それぞれの送信バッファ３４０＃１〜３４０＃ｎに対応する。送信側の座標用レジスタ３５１＃１〜３５１＃ｎは、自装置のバス２００に接続され、それぞれの送信バッファ３４０＃１〜３４０＃ｎに保持された送信待ちのパケットの送信元座標および宛先座標を、自装置のバス２００から入力されて保持する。送信側の座標用レジスタ３５１＃１〜３５１＃ｎは、送信側の滞在時間通知回路３６０に接続され、保持した送信元座標および宛先座標を、送信側の滞在時間通知回路３６０に出力する。
【００５８】
送信側のカウンタ用レジスタ３５２＃１〜３５２＃ｎは、それぞれの送信バッファ３４０＃１〜３４０＃ｎに対応する。送信側のカウンタ用レジスタ３５２＃１〜３５２＃ｎは、それぞれの送信バッファ３４０＃１〜３４０＃ｎに保持された送信待ちのパケットの滞在時間を示すカウンタ値を保持し、一定時間ごとにカウンタ値をカウントアップする。送信側のカウンタ用レジスタ３５２＃１〜３５２＃ｎは、送信側の滞在時間通知回路３６０に接続され、保持した滞在時間を示すカウンタ値を、送信側の滞在時間通知回路３６０に出力する。
【００５９】
送信側のパケットＩＤ用レジスタ３５３＃１〜３５３＃ｎは、それぞれの送信バッファ３４０＃１〜３４０＃ｎに対応する。送信側のパケットＩＤ用レジスタ３５３＃１〜３５３＃ｎは、自装置のバス２００に接続され、それぞれの送信バッファ３４０＃１〜３４０＃ｎに保持された送信待ちのパケットの識別情報を、自装置のバス２００から入力されて保持する。送信側のパケットＩＤ用レジスタ３５３＃１〜３５３＃ｎは、送信側の滞在時間通知回路３６０に接続され、保持した識別情報を、送信側の滞在時間通知回路３６０に出力する。
【００６０】
接続装置２０３は、それぞれの送信バッファ３４０＃１〜３４０＃ｎに保持された送信待ちのパケットから、当該パケットの送信元座標および宛先座標を出力可能な場合には、送信側の座標用レジスタ３５１＃１〜３５１＃ｎを有していなくてもよい。また、接続装置２０３は、それぞれの送信バッファ３４０＃１〜３４０＃ｎに保持された送信待ちのパケットから、当該パケットの識別情報を出力可能な場合には、送信側のパケットＩＤ用レジスタ３５３＃１〜３５３＃ｎを有していなくてもよい。
【００６１】
送信側の滞在時間通知回路３６０は、受信側の滞在時間通知回路３３０と同様に動作するため、説明を省略する。送信側の滞在時間通知回路３６０は、通知パケットを生成し、生成した通知パケットを、送信回路３８０、または自装置のバス２００に出力する。
【００６２】
調停回路３７０は、所定割合にしたがって、受信バッファ３１０＃１〜３１０＃ｎ、および送信バッファ３４０＃１〜３４０＃ｎに保持された送信待ちのパケットのいずれを送信するかを決定する。調停回路３７０は、受信バッファ３１０＃１〜３１０＃ｎに保持された送信待ちのパケットを送信する場合には、受信側の滞在時間通知回路３３０を動作開始させる。また、調停回路３７０は、送信バッファ３４０＃１〜３４０＃ｎに保持された送信待ちのパケットを送信する場合には、送信側の滞在時間通知回路３６０を動作開始させる。調停回路３７０は、受信側の滞在時間通知回路３３０、または送信側の滞在時間通知回路３６０を動作開始させた結果、通知パケットが生成された場合には、送信待ちのパケットと、通知パケットとのいずれを送信するかを決定する。
【００６３】
送信回路３８０は、受信バッファ３１０＃１〜３１０＃ｎに接続され、他の情報処理装置１００が送信元である送信待ちのパケットを、受信バッファ３１０＃１〜３１０＃ｎから入力される。送信回路３８０は、送信バッファ３４０＃１〜３４０＃ｎに接続され、自装置が送信元である送信待ちのパケットを、送信バッファ３４０＃１〜３４０＃ｎから入力される。送信回路３８０は、受信側の滞在時間通知回路３３０に接続され、通知パケットを、受信側の滞在時間通知回路３３０から入力される。送信回路３８０は、送信側の滞在時間通知回路３６０に接続され、通知パケットを、送信側の滞在時間通知回路３６０から入力される。
【００６４】
送信回路３８０は、調停回路３７０に接続され、調停回路３７０の決定にしたがって、受信バッファ３１０＃１〜３１０＃ｎ、および送信バッファ３４０＃１〜３４０＃ｎのいずれかに保持された送信待ちのパケットを、ネットワーク２１０に出力する。また、送信回路３８０は、調停回路３７０に接続され、調停回路３７０の決定にしたがって、受信側の滞在時間通知回路３３０、または送信側の滞在時間通知回路３６０に生成された通知パケットを、ネットワーク２１０に出力する。
【００６５】
（ホップ数算出回路３３３のハードウェア構成例）
次に、図４を用いて、図３に示したホップ数算出回路３３３のハードウェア構成例について説明する。
【００６６】
図４は、ホップ数算出回路３３３のハードウェア構成例を示すブロック図である。図４において、ホップ数算出回路３３３は、補数生成器４０１と、第１加算器４０２と、比較回路４０３と、選択回路４０４と、第２加算器４０５とを有する。
【００６７】
補数生成器４０１は、受信側の座標用レジスタ３２１＃１〜３２１＃ｎに接続され、受信側の座標用レジスタ３２１＃１〜３２１＃ｎから送信元座標を入力され、送信元座標の２の補数を算出する。補数生成器４０１は、第１加算器４０２に接続され、算出した送信元座標の２の補数を第１加算器４０２に出力する。第１加算器４０２は、自座標保持回路３３１に接続され、自座標を入力され、補数生成器４０１に接続され、送信元座標について２の補数を入力される。第１加算器４０２は、入力された自座標と、送信元座標の２の補数に基づいて、自座標から送信元座標までの差分「自座標−送信元座標」を算出する。第１加算器４０２は、第２加算器４０５に接続され、第２加算器４０５に算出した差分「自座標−送信元座標」を出力する。
【００６８】
比較回路４０３は、受信側の座標用レジスタ３２１＃１〜３２１＃ｎに接続され、受信側の座標用レジスタ３２１＃１〜３２１＃ｎから送信元座標を入力される。比較回路４０３は、自座標保持回路３３１に接続され、自座標を入力される。比較回路４０３は、入力された自座標と、入力された送信元座標とを比較する。比較回路４０３は、選択回路４０４に接続され、自座標と送信元座標とを比較した結果を、選択回路４０４に出力する。
【００６９】
選択回路４０４は、比較回路４０３に接続され、自座標と送信元座標とを比較した結果を入力される。選択回路４０４は、入力された自座標と送信元座標とを比較した結果に基づいて、０または最大ホップ数を選択する。選択回路４０４は、例えば、比較した結果が、送信元座標＜自座標ではない場合には、第２加算器４０５が「自座標−送信元座標＋最大ホップ数」を算出する際に、最大ホップ数が使用されるため、最大ホップ数を選択する。一方で、選択回路４０４は、比較した結果が、送信元座標＜自座標である場合には、第２加算器４０５が「自座標−送信元座標」を算出する際に、最大ホップ数が使用されないため、形式的に０を選択する。選択回路４０４は、第２加算器４０５に接続され、選択した０または最大ホップ数を第２加算器４０５に出力する。
【００７０】
第２加算器４０５は、第１加算器４０２に接続され、自座標から送信元座標までの差分「自座標−送信元座標」を入力される。第２加算器４０５は、選択回路４０４に接続され、選択した０または最大ホップ数を入力される。第２加算器４０５は、入力された差分「自座標−送信元座標」と、入力された０または最大ホップ数とを加算し、「自座標−送信元座標＋最大ホップ数」または「自座標−送信元座標」を算出する。第２加算器４０５は、選択回路４０４に接続され、算出した「自座標−送信元座標＋計算機システムにおける最大ホップ数」または「自座標−送信元座標」を出力する。
【００７１】
ここでは、選択回路４０４の選択結果に応じて、第２加算器４０５において、第１加算器４０２から入力された差分に、０を加算するか、最大ホップ数を加算するかが決定される場合について説明したが、これに限らない。例えば、第１加算器４０２にオーバーフロービットがあれば、第１加算器４０２においてオーバーフローが発生した場合に、第２加算器４０５において最大ホップ数が加算されるようにしてもよい。
【００７２】
（計算機システム５００の一例）
次に、図５を用いて、図２に示した情報処理装置１００を複数接続した計算機システム５００の一例について説明する。
【００７３】
図５は、計算機システム５００の一例を示す説明図である。図５において、計算機システム５００は、ｘ台の情報処理装置１００をＲｉｎｇ網で接続したシステムである。図５の例では、ｘは６である。ここでは、先頭の１段目の情報処理装置１００＃１と、末尾の６段目の情報処理装置１００＃６とが接続され、Ｒｉｎｇ網を実現する。このため、先頭の１段目の情報処理装置１００＃１は、末尾の６段目の情報処理装置１００＃６にとっては後段の情報処理装置１００となる。また、末尾の６段目の情報処理装置１００＃６は、先頭の１段目の情報処理装置１００＃１にとっての前段の情報処理装置１００となる。
【００７４】
計算機システム５００において、情報処理装置１００は、前段の情報処理装置１００からパケットを受信して、受信した送信待ちのパケットを受信バッファ３１０に保持する。情報処理装置１００は、自装置において生成された送信待ちのパケットを、送信バッファ３４０に保持する。情報処理装置１００は、送信バッファ３４０に保持された送信待ちのパケット、または受信バッファ３１０に保持された送信待ちのパケットを、所定割合にしたがって後段の情報処理装置１００に送信する。
【００７５】
これにより、計算機システム５００において、パケットはネットワーク２１０上を一方向に送信される。例えば、情報処理装置１００＃１から、情報処理装置１００＃６に送信されるパケットは、情報処理装置１００＃２〜＃５によって中継されてから、情報処理装置１００＃６に到達することになる。
【００７６】
（情報処理装置１００の機能的構成例）
次に、図６を用いて、情報処理装置１００の機能的構成例について説明する。
【００７７】
図６は、情報処理装置１００の機能的構成例を示すブロック図である。図６において、情報処理装置１００は、保持部６０１と、記憶部６０２と、通信部６０３と、計測部６０４と、判定部６０５と、出力部６０６とを含む。
【００７８】
記憶部６０２と、保持部６０１と、通信部６０３とは、例えば、図３に示した接続装置２０３により、その機能を実現する。計測部６０４と判定部６０５と出力部６０６とは、制御部となる機能であり、例えば、図３に示した接続装置２０３により、その機能を実現する。
【００７９】
記憶部６０２は、第１装置が送信元である送信待ちのパケットと、第１装置とは異なる第２装置が送信元である送信待ちのパケットとを保持する。第１装置は、例えば、自装置である。第２装置は、例えば、自装置とは異なる１以上の情報処理装置１００のそれぞれである。
【００８０】
記憶部６０２は、例えば、第１装置が送信元である送信待ちのパケットを保持する第１バッファと、第２装置が送信元である送信待ちのパケットを保持する第２バッファとを有する。第１バッファは、例えば、送信バッファ３４０である。第２バッファは、例えば、受信バッファ３１０である。これにより、記憶部６０２は、通信部６０３によって受信され、または自装置によって生成されてから、通信部６０３によって送信されるまでの間、送信待ちのパケットを保持しておくことができる。
【００８１】
保持部６０１は、対応情報１０３を記憶する。対応情報１０３は、ホップ数と滞在時間に関する閾値との対応関係を示す情報である。保持部６０１は、例えば、図９に後述する対応情報テーブル９００を記憶する。これにより、保持部６０１は、判定部６０５によって用いられる対応情報１０３を記憶しておくことができる。
【００８２】
また、対応情報１０３は、ホップ数と、第１装置または第２装置が送信元である送信待ちパケットを送信する割合と、滞在時間に関する閾値との対応関係を示す情報であってもよい。保持部６０１は、例えば、図１０に後述する対応情報テーブル９００を記憶する。これにより、保持部６０１は、判定部６０５によって用いられる、第１装置または第２装置が送信元である送信待ちパケットを送信する割合に応じた対応情報１０３を記憶しておくことができる。
【００８３】
また、対応情報１０３は、ホップ数の範囲と滞在時間に関する閾値とを対応付けた情報であってもよい。保持部６０１は、例えば、図１１に後述する対応情報テーブル９００を記憶する。これにより、保持部６０１は、判定部６０５によって用いられる対応情報１０３のメモリサイズを低減することができる。
【００８４】
通信部６０３は、例えば、第１装置または第２装置が送信元である送信待ちパケットを受信し、記憶部６０２に入力する。通信部６０３は、具体的には、自装置のバス２００から、自装置が送信元であるパケットを受信し、自装置が送信元である送信待ちのパケットとして送信バッファ３４０に入力する。また、通信部６０３は、ネットワーク２１０から、他の情報処理装置１００が送信元であるパケットを受信し、他の情報処理装置１００が送信元である送信待ちのパケットとして、受信バッファ３１０に入力する。これにより、通信部６０３は、他の情報処理装置１００とのパケットの送受信を制御することができる。
【００８５】
また、通信部６０３は、記憶部６０２に記憶された、第１装置が送信元である送信待ちのパケット、または第２装置が送信元である送信待ちのパケットを、所定割合にしたがって、他の情報処理装置１００または自装置のバス２００に送信する。通信部６０３は、例えば、送信バッファ３４０に保持された自装置が送信元である送信待ちのパケットと、受信バッファ３１０に保持された他の情報処理装置１００が送信元である送信待ちのパケットとを、所定割合「１：１」で送信する。これにより、通信部６０３は、他の情報処理装置１００とのパケットの送受信を制御することができる。
【００８６】
計測部６０４は、第２装置が送信元である送信待ちのいずれかのパケットについて記憶部６０２における滞在時間を計測する。計測部６０４は、例えば、他の情報処理装置１００が送信元である送信待ちのパケットが受信バッファ３１０に入力されると、パケットの滞在時間を示すカウンタ値のカウントアップを開始する。これにより、計測部６０４は、判定部６０５によって、自装置でパケットの輻輳などが発生して、パケットが滞留したか否かを判定する際に用いられるパケットの滞在時間を取得することができる。
【００８７】
計測部６０４は、記憶部６０２に保持された第２装置が送信元である送信待ちのパケット群のうちの１以上のパケットのそれぞれについて計測した滞在時間についての最小値、最大値、および平均値の少なくともいずれかを算出してもよい。これにより、計測部６０４は、計算機システム５００の利用者によって、パケットが滞留した原因などを解析する際に参照されるパラメータを取得することができる。
【００８８】
計測部６０４は、第２装置が送信元である送信待ちのパケットに、第２装置から自装置の前段の情報処理装置１００までの当該パケットのホップ数が含まれていれば、当該ホップ数を取得してもよい。そして、計測部６０４は、取得したホップ数をインクリメントして得られた値を、第２装置から自装置までのホップ数として算出し、当該パケットに含まれるホップ数を更新する。
【００８９】
判定部６０５は、対応情報１０３を参照して、計測部６０４が計測した滞在時間が、第２装置から自装置までのホップ数に対応する閾値以上であるか否かを判定する。判定部６０５は、例えば、パケットの滞在時間が、パケットのホップ数に対応する閾値以上であるか否かを判定する。判定部６０５は、閾値以上であれば、自装置でパケットが滞留した可能性があると判定する。これにより、判定部６０５は、パケットのホップ数に応じたスループットの悪化によるパケットの滞在時間の増大を考慮した上で、自装置でパケットが滞留した可能性があるか否かを判定することができる。
【００９０】
判定部６０５は、対応情報１０３を参照して、計測した滞在時間が、算出したホップ数と、通信部６０３の送信に関する所定割合との組み合わせに対応する閾値以上であるか否かを判定する。例えば、対応情報１０３がホップ数と第１装置または第２装置が送信元である送信待ちパケットを送信する割合と滞在時間に関する閾値との対応関係を示す情報である場合がある。この場合、判定部６０５は、パケットの滞在時間が、パケットのホップ数と通信部６０３の送信に関する所定割合に対応する閾値以上であるか否かを判定する。
【００９１】
これにより、判定部６０５は、通信部６０３の送信に関する所定割合が「１：１」ではない場合にも、パケットのホップ数と通信部６０３の送信に関する所定割合との組み合わせに応じたスループットの悪化による滞在時間の増大を考慮することができる。そして、判定部６０５は、スループットの悪化によるパケットの滞在時間の増大を考慮した上で、自装置でパケットが滞留した可能性があるか否かを判定することができる。
【００９２】
判定部６０５は、対応情報１０３を参照して、計測した滞在時間が、第２装置から自装置までのホップ数を含む範囲に対応する閾値以上であるか否かを判定する。判定部６０５は、例えば、対応情報１０３がホップ数の範囲と滞在時間に関する閾値とを対応付けた情報であれば、パケットの滞在時間がパケットのホップ数が含まれる範囲に対応する閾値以上であるか否かを判定する。これにより、判定部６０５は、対応情報１０３のメモリサイズを低減しても、自装置でパケットが滞留した可能性があるか否かを判定することができる。
【００９３】
出力部６０６は、判定部６０５がいずれかのパケットについて閾値以上であると判定した場合に、いずれかのパケットかを識別可能な情報を出力する。パケットを識別可能な情報は、例えば、パケットの識別情報、パケットの送信元または宛先の識別情報、パケットを生成したジョブの識別情報などである。出力部６０６は、例えば、パケットを識別可能な情報を、他の情報処理装置１００に送信し、ディスプレイに表示し、プリンタに印刷出力し、またはメモリ２０２などの記憶領域に記憶する。
【００９４】
出力部６０６は、具体的には、判定部６０５がいずれかのパケットについて閾値以上であると判定した場合に、いずれかのパケットの送信元および宛先のうちの少なくともいずれかに、いずれかのパケットを識別可能な情報を送信する。これにより、出力部６０６は、計算機システム５００の利用者に、自装置で滞留した可能性があるパケットを識別可能な情報を通知することができる。
【００９５】
また、出力部６０６は、いずれかのパケットの送信元に、いずれかのパケットを識別可能な情報を送信するため、いずれかのパケットの生成元であるジョブを実行した情報処理装置１００に送信することができる。そして、いずれかのパケットの生成元であるジョブを情報処理装置１００に実行させた計算機システム５００の利用者は、どのジョブを実行した際にどの情報処理装置１００でどのパケットが滞留した可能性があるのかを把握することができる。
【００９６】
出力部６０６は、具体的には、判定部６０５がいずれかのパケットについて閾値以上であると判定した場合に、いずれかのパケットの送信元からの要求に応じて、いずれかのパケットを識別可能な情報を当該送信元に送信する。これにより、出力部６０６は、閾値以上であると判定されるごとに送信処理を行わなくてもよいため、計算機システム５００における通信量の増大化を抑制することができる。
【００９７】
出力部６０６は、例えば、判定部６０５がいずれかのパケットについて閾値以上であると判定した場合に、いずれかのパケットを識別可能な情報と、計測した滞在時間とを対応付けて出力してもよい。出力部６０６は、具体的には、図１３に後述する通知パケットを、閾値以上であると判定したパケットの送信元または宛先となる他の情報処理装置１００に送信する。これにより、出力部６０６は、パケットが滞留した原因などを解析する際に計算機システム５００の利用者に参照されるパラメータを通知することができる。
【００９８】
出力部６０６は、計測部６０４が算出した結果を出力してもよい。出力部６０６は、例えば、判定部６０５がいずれかのパケットについて閾値以上であると判定した場合に、いずれかのパケットを識別可能な情報に、計測部６０４が算出した結果を付与した通知パケットを生成する。そして、出力部６０６は、生成した通知パケットを、いずれかのパケットの送信元または宛先となる他の情報処理装置１００に送信する。これにより、出力部６０６は、パケットが滞留した原因などを解析する際に計算機システム５００の利用者に参照されるパラメータを通知することができる。
【００９９】
出力部６０６は、判定部６０５が、１つのジョブによって生成された一連のパケットのうち、いずれかのパケットについて閾値以上であると判定した場合、通信部６０３が一連のパケットを送信してから、いずれかのパケットを識別可能な情報を出力する。これにより、出力部６０６は、ジョブごとに一度にまとめて、ジョブによって生成された一連のパケットが滞留した可能性があるか否かを示す情報を送信するため、計算機システム５００における通信量の増大化を抑制することができる。
【０１００】
保持部６０１と記憶部６０２とは、例えば、上述した動作がソフトウェア的に実現される場合、図２に示したメモリ２０２などの記憶領域によって実現されてもよい。通信部６０３は、例えば、情報処理装置１００の動作がソフトウェア的に実現される場合には、図２に示したメモリ２０２などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、接続装置２０３により、その機能を実現してもよい。
【０１０１】
計測部６０４〜出力部６０６は、例えば、上述した動作がソフトウェア的に実現される場合、図２に示したメモリ２０２などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、接続装置２０３により、その機能を実現してもよい。各機能部の処理結果は、例えば、情報処理装置１００の動作がソフトウェア的に実現される場合には、図２に示したメモリ２０２などの記憶領域に記憶される。
【０１０２】
（計算機システム５００の実施例）
次に、図７を用いて、計算機システム５００の実施例について説明する。
【０１０３】
図７は、計算機システム５００の実施例を示す説明図である。図７において、情報処理装置１００は、前段の情報処理装置１００からパケットを受信する都度、受信されたパケットを、いずれかの受信バッファ３１０に入力し、保持させる。また、情報処理装置１００は、パケットを保持した受信バッファ３１０に対応する受信側の座標用レジスタ３２１と、受信側のカウンタ用レジスタ３２２と、受信側のパケットＩＤ用レジスタ３２３とを更新する。
【０１０４】
これにより、情報処理装置１００は、他の情報処理装置１００が送信元である送信待ちのパケットを保持することができる。また、情報処理装置１００は、他の情報処理装置１００が送信元である送信待ちのパケットの識別情報、送信元座標および宛先座標を保持することができる。また、情報処理装置１００は、他の情報処理装置１００が送信元である送信待ちのパケットの滞在時間を示すカウンタ値のカウントアップを開始することができる。
【０１０５】
また、情報処理装置１００は、自装置においてパケットを生成する都度、生成されたパケットを、いずれかの送信バッファ３４０に入力し、保持させる。また、情報処理装置１００は、パケットを保持した受信バッファ３１０に対応する送信側の座標用レジスタ３５１と、送信側のカウンタ用レジスタ３５２と、送信側のパケットＩＤ用レジスタ３５３とを更新する。
【０１０６】
これにより、情報処理装置１００は、自装置が送信元である送信待ちのパケットを保持することができる。また、情報処理装置１００は、自装置が送信元である送信待ちのパケットの識別情報、送信元座標および宛先座標を保持することができる。また、情報処理装置１００は、自装置が送信元である送信待ちのパケットの滞在時間を示すカウンタ値のカウントアップを開始することができる。ここで、図８の説明に移行し、パケットのデータ構造について説明する。
【０１０７】
（パケット８００のデータ構造）
図８は、パケット８００のデータ構造を示す説明図である。図８において、パケット８００は、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）と、転送データと、ＩＤと、送信元座標と、宛先座標とを含む。ＣＲＣは、パケット８００のフッタ部分に含まれる。ＣＲＣは、パケット８００の誤り検出に用いられる符号である。転送データは、パケット８００の本体部分に含まれる。転送データは、パケット８００の内容である。ＩＤは、パケット８００のヘッダ部分に含まれる。ＩＤは、パケット８００の識別情報である。
【０１０８】
送信元座標は、パケット８００のヘッダ部分に含まれる。送信元座標は、パケット８００の送信元が存在する計算機システム５００上の座標である。送信元座標は、例えば、送信元となる情報処理装置１００の識別情報である。宛先座標は、パケット８００のヘッダ部分に含まれる。宛先座標は、パケット８００の宛先が存在する計算機システム５００上の座標である。宛先座標は、例えば、宛先となる情報処理装置１００の識別情報である。
【０１０９】
また、パケット８００は、ＩＤに対応付けてフラグＴを有してもよい。フラグＴは、パケット８００が、あるデータを分割した一連のパケット８００の末尾のパケット８００であるか否かを示す情報である。また、パケット８００は、送信元座標に対応付けてフラグＲを有してもよい。フラグＲは、閾値以上であると判定されたパケット８００を識別可能な情報を、送信元座標に送信することを要求する情報である。
【０１１０】
また、パケット８００は、パケット８００自体のホップ数（不図示）を有してもよい。ホップ数は、例えば、パケット８００が情報処理装置１００を経由する都度、経由した情報処理装置１００によってインクリメントされる。これにより、情報処理装置１００は、自座標と送信元座標とに基づいて、ホップ数を算出しなくてもよい。
【０１１１】
図７の説明に戻り、情報処理装置１００は、受信バッファ３１０に保持された送信待ちのパケット８００と送信バッファ３４０に保持された送信待ちのパケット８００とを、所定割合にしたがって、自装置のバス２００または後段の情報処理装置１００に送信する。所定割合は、例えば、「１：１」である。
【０１１２】
情報処理装置１００は、例えば、受信バッファ３１０に保持された送信待ちのパケット８００と送信バッファ３４０に保持された送信待ちのパケット８００とを、所定割合にしたがって読み出し、読み出した送信待ちのパケット８００の宛先を取得する。ここで、情報処理装置１００は、宛先が自装置であれば、読み出した送信待ちのパケット８００を、自装置のバス２００に送信する。一方で、情報処理装置１００は、宛先が他の情報処理装置１００であれば、読み出した送信待ちのパケット８００を後段の情報処理装置１００に送信する。
【０１１３】
ここで、情報処理装置１００＃１を送信元とする送信待ちのパケット８００についてのそれぞれの情報処理装置１００＃１〜＃３でのスループットについて説明する。まず、情報処理装置１００＃１を送信元とする送信待ちのパケット８００が、情報処理装置１００＃１の送信バッファ３４０に対して入力され、出力される際のスループットを「１（基準値）」とする。
【０１１４】
このとき、情報処理装置１００＃１では、送信バッファ３４０および受信バッファ３１０に保持された送信待ちのパケット８００が、所定割合「１：１」にしたがって送信されることになる。換言すれば、情報処理装置１００＃１を送信元とする送信待ちのパケット８００は、情報処理装置１００＃１で、他の情報処理装置１００を送信元とする送信待ちのパケット８００と待ち合わせて送信されることになる。このため、情報処理装置１００＃１を送信元とする送信待ちのパケット８００が、情報処理装置１００＃１から情報処理装置１００＃２に送信される際のスループットは、半分になり「１／２」になる。
【０１１５】
さらに、情報処理装置１００＃１を送信元とする送信待ちのパケット８００は、情報処理装置１００＃２でも、情報処理装置１００＃２を送信元とする送信待ちのパケット８００と待ち合わせて送信されることになる。このため、情報処理装置１００＃１を送信元とする送信待ちのパケット８００が、情報処理装置１００＃２に中継されて情報処理装置１００＃３に送信される際のスループットは、さらに半分になり「１／４」になる。
【０１１６】
さらに、情報処理装置１００＃１を送信元とする送信待ちのパケット８００は、情報処理装置１００＃３でも、情報処理装置１００＃３を送信元とする送信待ちのパケット８００と待ち合わせて送信されることになる。このため、情報処理装置１００＃１を送信元とする送信待ちのパケット８００が、情報処理装置１００＃２および情報処理装置１００＃３に中継されて情報処理装置１００＃４に送信される際のスループットは、さらに半分になり「１／８」になる。
【０１１７】
このように、パケット８００について、ホップ数が増大するほど、スループットが低下することになり、情報処理装置１００における滞在時間の増大化を招く。そこで、情報処理装置１００は、図９に後述する対応情報テーブル９００に基づき、パケット８００のホップ数に応じて異なる閾値を用いて、パケット８００の滞在時間と閾値とを比較する。
【０１１８】
また、所定割合が「１：１」ではない場合には、ホップ数の増大によるスループットの低下度合いが異なる。そこで、情報処理装置１００は、所定割合が「１：１」ではない場合には、図１０に後述する所定割合に応じた対応情報テーブル９００に基づいてホップ数に応じて異なる閾値を用いてもよい。また、情報処理装置１００は、図１１に後述する対応情報テーブル９００に基づいてホップ数の範囲に応じて異なる閾値を用いてもよい。
【０１１９】
ここで、図９〜図１１を用いて、対応情報テーブル９００の記憶内容について説明する。対応情報テーブル９００は、例えば、閾値保持回路３３２によって実現される。また、対応情報テーブル９００は、情報処理装置１００の動作がソフトウェア的に実現される場合には、図２に示したメモリ２０２などの記憶領域によって実現されてもよい。
【０１２０】
（対応情報テーブル９００の記憶内容の第１の例）
図９は、対応情報テーブル９００の記憶内容の第１の例を示す説明図である。図９に示す対応情報テーブル９００は、所定割合が「１：１」である場合に用いられる対応情報テーブル９００の記憶内容の一例である。
【０１２１】
図９に示すように、対応情報テーブル９００は、ＩＤのフィールドに対応付けて、ホップ数と、閾値とのフィールドを有する。対応情報テーブル９００は、ホップ数ごとに各フィールドに情報を設定することにより、対応情報１０３がレコード９００−ａとして記憶される。ａは、自然数である。図９の例では、ａは、１〜ｍの自然数である。ｍは、計算機システム５００における最大ホップ数である。
【０１２２】
ＩＤとは、対応情報１０３の識別情報である。ホップ数とは、パケット８００のホップ数である。閾値とは、パケット８００のホップ数に対応する閾値である。例えば、レコード９００−ａは、ホップ数「ａ」に、閾値「２＾ａ」を対応付けた対応情報１０３である。
【０１２３】
これにより、情報処理装置１００は、パケット８００の滞在時間が、ホップ数に応じたスループットのときの滞在時間か、自装置でパケットが滞留したときの滞在時間かを判別可能になる。また、情報処理装置１００は、送信バッファ３４０が複数段あれば、ホップ数に対応する閾値に段数を乗算した値を、パケット８００の滞在時間と比較する閾値として用いてもよい。
【０１２４】
（対応情報テーブル９００の記憶内容の第２の例）
図１０は、対応情報テーブル９００の記憶内容の第２の例を示す説明図である。図１０に示す対応情報テーブル９００は、所定割合が「１：１」ではない場合に用いられる対応情報テーブル９００の記憶内容の一例である。具体的には、図１０に示す対応情報テーブル９００は、所定割合が「２：１」である場合に用いられる対応情報テーブル９００の記憶内容の一例である。
【０１２５】
図１０に示すように、対応情報テーブル９００は、ＩＤのフィールドに対応付けて、ホップ数と、閾値とのフィールドを有する。対応情報テーブル９００は、ホップ数ごとに各フィールドに情報を設定することにより、対応情報１０３がレコード９００−ａとして記憶される。ａは、自然数である。図１０の例では、ａは、１〜ｍの自然数である。ｍは、計算機システム５００における最大ホップ数である。
【０１２６】
ＩＤとは、対応情報１０３の識別情報である。ホップ数とは、パケット８００のホップ数である。閾値とは、パケット８００のホップ数に対応する閾値である。例えば、レコード９００−ａは、ホップ数「ａ」に、閾値「３＾ａ／２」を対応付けた対応情報１０３である。
【０１２７】
これにより、情報処理装置１００は、送信バッファ３４０および受信バッファ３１０について所定割合が「２：１」である場合に対して適用可能な対応情報１０３を記憶することができる。換言すれば、情報処理装置１００は、ホップ数の増加に応じて、スループットが「１／３」ずつ悪化していく場合に対して適用可能な対応情報１０３を記憶することができる。
【０１２８】
そして、情報処理装置１００は、パケット８００の滞在時間が、ホップ数に応じたスループットのときの滞在時間か、自装置でパケットが滞留したときの滞在時間かを判別可能になる。また、情報処理装置１００は、送信バッファ３４０が複数段あれば、ホップ数に対応する閾値に段数を乗算した値を、パケット８００の滞在時間と比較する閾値として用いてもよい。
【０１２９】
（対応情報テーブル９００の記憶内容の第３の例）
図１１は、対応情報テーブル９００の記憶内容の第３の例を示す説明図である。図１１に示す対応情報テーブル９００は、ホップ数の範囲ごとに閾値を対応付けた対応情報テーブル９００の記憶内容の一例である。
【０１３０】
図１１に示すように、対応情報テーブル９００は、ＩＤのフィールドに対応付けて、ホップ数グループと、閾値とのフィールドを有する。対応情報テーブル９００は、ホップ数グループごとに各フィールドに情報を設定することにより、対応情報１０３がレコード９００−ａとして記憶される。ａは、自然数である。図１１の例では、ａは、１〜ｍの自然数である。ｍは、計算機システム５００における最大ホップ数である。
【０１３１】
ＩＤとは、対応情報１０３の識別情報である。ホップ数グループとは、パケット８００のホップ数を複数含むグループである。閾値とは、パケット８００のホップ数グループに対応する閾値である。例えば、レコード９００−ａは、ホップ数「（３×ａ−２）〜（３×ａ）」のホップ数グループ「＃ａ」に、閾値「２＾（３×ａ）」を対応付けた対応情報１０３である。これにより、情報処理装置１００は、ホップ数の一つ一つに対して閾値を記憶しなくてもよいため、対応情報テーブル９００のメモリサイズを低減することができる。
【０１３２】
図７の説明に戻り、情報処理装置１００が、８段の受信バッファ３１０と、８段の送信バッファ３４０とを有する場合を例に挙げて、情報処理装置１００＃１が送信元であるパケット８００の滞在時間を閾値と比較する流れについて説明する。受信バッファ３１０と、送信バッファ３４０とは、各段、１ＫＢ（Ｋｉｌｏ  Ｂｙｔｅ）分のバッファである。
【０１３３】
ここでは、情報処理装置１００＃１は、５ＫＢのデータを、１ＫＢずつ分割して得られた、情報処理装置１００＃１を送信元とするパケット８００を、情報処理装置１００＃２を介して情報処理装置１００＃３に送信する。また、情報処理装置１００＃２は、同様に、５ＫＢのデータを、１ＫＢずつ分割して得られた、情報処理装置１００＃２を送信元とするパケット８００を、情報処理装置１００＃４に送信する。
【０１３４】
この場合、情報処理装置１００＃２において、情報処理装置１００＃１を送信元とするパケット８００は、情報処理装置１００＃２を送信元とするパケット８００と交互に、情報処理装置１００＃３に送信される。また、情報処理装置１００＃１を送信元とするパケット８００の滞在時間は、ホップ数「１」に対応する閾値と比較される。
【０１３５】
また、情報処理装置１００＃１を送信元とするパケット８００の滞在時間が閾値以上であれば、情報処理装置１００＃１を送信元とするパケット８００を識別可能な情報を含む通知パケットが生成される。そして、通知パケットは、情報処理装置１００＃２から、閾値以上であると判定したパケット８００の送信元である情報処理装置１００＃１、または宛先である情報処理装置１００＃３に送信される。
【０１３６】
この場合、情報処理装置１００＃３において、情報処理装置１００＃１を送信元とするパケット８００は、情報処理装置１００＃２を送信元とするパケット８００と交互に、情報処理装置１００＃３のバス２００、または情報処理装置１００＃４に送信される。また、情報処理装置１００＃１を送信元とするパケット８００の滞在時間は、ホップ数「２」に対応する閾値と比較される。
【０１３７】
また、情報処理装置１００＃１を送信元とするパケット８００の滞在時間が閾値以上であれば、情報処理装置１００＃１を送信元とするパケット８００を識別可能な情報を含む通知パケットが生成される。そして、通知パケットは、情報処理装置１００＃３から、閾値以上であると判定したパケット８００の送信元である情報処理装置１００＃１、または宛先である情報処理装置１００＃３のバス２００に送信される。ここで、図１２の説明に移行し、パケット８００の滞在時間を閾値と比較する一例について説明する。
【０１３８】
（パケット８００の滞在時間を閾値と比較する一例）
図１２は、パケット８００の滞在時間を閾値と比較する一例を示す説明図である。図１２において、情報処理装置１００＃２における滞在時間を閾値と比較する一例について説明し、情報処理装置１００＃３における滞在時間を閾値と比較する一例については説明を省略する。
【０１３９】
１サイクル目では、情報処理装置１００＃１は、５ＫＢのデータから先頭１ＫＢのデータを分割して、パケットＩＤ「＃ａ−１」が付与されたパケット８００を生成する。
【０１４０】
２サイクル目では、情報処理装置１００＃１は、５ＫＢのデータから２番目の１ＫＢのデータを分割して、パケットＩＤ「＃ａ−２」が付与されたパケット８００を生成する。また、情報処理装置１００＃１は、パケットＩＤ「＃ａ−１」が付与されたパケット８００を、送信バッファ３４０＃０に入力する。
【０１４１】
３サイクル目では、情報処理装置１００＃１は、５ＫＢのデータから３番目の１ＫＢのデータを分割して、パケットＩＤ「＃ａ−３」が付与されたパケット８００を生成する。また、情報処理装置１００＃１は、パケットＩＤ「＃ａ−２」が付与されたパケット８００を、送信バッファ３４０＃１に入力する。また、情報処理装置１００＃１は、パケットＩＤ「＃ａ−１」が付与されたパケット８００を、情報処理装置１００＃２への伝送路に出力する。情報処理装置１００＃２は、５ＫＢのデータから先頭１ＫＢのデータを分割して、パケットＩＤ「＃ｂ−１」が付与されたパケット８００を生成する。
【０１４２】
４サイクル目では、情報処理装置１００＃１は、５ＫＢのデータから４番目の１ＫＢのデータを分割して、パケットＩＤ「＃ａ−４」が付与されたパケット８００を生成する。また、情報処理装置１００＃１は、パケットＩＤ「＃ａ−３」が付与されたパケット８００を、送信バッファ３４０＃２に入力する。また、情報処理装置１００＃１は、パケットＩＤ「＃ａ−２」が付与されたパケット８００を、情報処理装置１００＃２への伝送路に出力する。
【０１４３】
情報処理装置１００＃２は、パケットＩＤ「＃ａ−１」が付与されたパケット８００を、受信バッファ３１０＃０に入力する。また、情報処理装置１００＃２は、５ＫＢのデータから２番目の１ＫＢのデータを分割して、パケットＩＤ「＃ｂ−２」が付与されたパケット８００を生成する。また、情報処理装置１００＃２は、パケットＩＤ「＃ｂ−１」が付与されたパケット８００を、送信バッファ３４０＃０に入力する。
【０１４４】
５サイクル目では、情報処理装置１００＃１は、５ＫＢのデータから５番目の１ＫＢのデータを分割して、パケットＩＤ「＃ａ−５」が付与されたパケット８００を生成する。また、情報処理装置１００＃１は、パケットＩＤ「＃ａ−４」が付与されたパケット８００を、送信バッファ３４０＃３に入力する。また、情報処理装置１００＃１は、パケットＩＤ「＃ａ−３」が付与されたパケット８００を、情報処理装置１００＃２への伝送路に出力する。
【０１４５】
情報処理装置１００＃２は、パケットＩＤ「＃ａ−２」が付与されたパケット８００を、受信バッファ３１０＃１に入力する。また、情報処理装置１００＃２は、受信バッファ３１０＃０に対応する受信側のカウンタ用レジスタ３２２＃０のカウンタ値を「１」にカウントアップする。
【０１４６】
また、情報処理装置１００＃２は、５ＫＢのデータから３番目の１ＫＢのデータを分割して、パケットＩＤ「＃ｂ−３」が付与されたパケット８００を生成する。また、情報処理装置１００＃２は、パケットＩＤ「＃ｂ−２」が付与されたパケット８００を、送信バッファ３４０＃１に入力する。また、情報処理装置１００＃２は、パケットＩＤ「＃ａ−１」が付与されたパケット８００を、情報処理装置１００＃３への伝送路に出力する。
【０１４７】
ここで、情報処理装置１００＃２は、出力したパケットＩＤ「＃ａ−１」が付与されたパケット８００に対応する受信側のカウンタ用レジスタ３２２＃０のカウンタ値が閾値以上であるか否かを判定する。情報処理装置１００＃２は、閾値以上であれば、対応する送信側の座標用レジスタ３５１＃０と、送信側のパケットＩＤ用レジスタ３５３＃０とに基づいて、通知パケットを生成する。
【０１４８】
ここでは、情報処理装置１００＃２は、通信量の低減のため、パケットＩＤ「＃ａ−１」〜「＃ａ−５」を送信してから、通知パケットを送信する。情報処理装置１００＃２は、通知パケットを生成する都度、通知パケットを送信してもよい。通知パケットのデータ構造については図１３に後述する。
【０１４９】
６サイクル目では、情報処理装置１００＃１は、パケットＩＤ「＃ａ−５」が付与されたパケット８００を、送信バッファ３４０＃４に入力する。また、情報処理装置１００＃１は、パケットＩＤ「＃ａ−４」が付与されたパケット８００を、情報処理装置１００＃２への伝送路に出力する。
【０１５０】
情報処理装置１００＃２は、パケットＩＤ「＃ａ−３」が付与されたパケット８００を、受信バッファ３１０＃２に入力する。また、情報処理装置１００＃２は、受信バッファ３１０＃１に対応する受信側のカウンタ用レジスタ３２２＃１のカウンタ値を「１」にカウントアップする。
【０１５１】
また、情報処理装置１００＃２は、５ＫＢのデータから４番目の１ＫＢのデータを分割して、パケットＩＤ「＃ｂ−４」が付与されたパケット８００を生成する。また、情報処理装置１００＃２は、パケットＩＤ「＃ｂ−３」が付与されたパケット８００を、送信バッファ３４０＃２に入力する。また、情報処理装置１００＃２は、パケットＩＤ「＃ｂ−１」が付与されたパケット８００を、情報処理装置１００＃３への伝送路に出力する。これにより、パケットＩＤ「＃ａ−２」が付与されたパケット８００は、滞在時間が増大することになる。
【０１５２】
情報処理装置１００＃３は、パケットＩＤ「＃ａ−１」が付与されたパケット８００を、受信バッファ３１０＃０に入力する。
【０１５３】
７サイクル目では、情報処理装置１００＃１は、パケットＩＤ「＃ａ−５」が付与されたパケット８００を、情報処理装置１００＃２への伝送路に出力する。
【０１５４】
情報処理装置１００＃２は、パケットＩＤ「＃ａ−４」が付与されたパケット８００を、受信バッファ３１０＃３に入力する。また、情報処理装置１００＃２は、受信バッファ３１０＃２に対応する受信側のカウンタ用レジスタ３２２＃２のカウンタ値を「１」にカウントアップする。また、情報処理装置１００＃２は、受信バッファ３１０＃１に対応する受信側のカウンタ用レジスタ３２２＃１のカウンタ値を「２」にカウントアップする。
【０１５５】
ここで、情報処理装置１００＃２は、受信側のカウンタ用レジスタ３２２＃１のカウンタ値が閾値以上であれば、対応する送信側の座標用レジスタ３５１＃１と、送信側のパケットＩＤ用レジスタ３５３＃１とに基づいて、通知パケットを生成する。
【０１５６】
また、情報処理装置１００＃２は、５ＫＢのデータから５番目の１ＫＢのデータを分割して、パケットＩＤ「＃ｂ−５」が付与されたパケット８００を生成する。また、情報処理装置１００＃２は、パケットＩＤ「＃ｂ−４」が付与されたパケット８００を、送信バッファ３４０＃３に入力する。また、情報処理装置１００＃２は、パケットＩＤ「＃ａ−２」が付与されたパケット８００を、情報処理装置１００＃３への伝送路に出力する。
【０１５７】
ここで、情報処理装置１００＃２は、出力したパケットＩＤ「＃ａ−２」が付与されたパケット８００に対応する受信側のカウンタ用レジスタ３２２＃１のカウンタ値が閾値以上であるか否かを判定する。情報処理装置１００＃２は、閾値以上であれば、対応する送信側の座標用レジスタ３５１＃１と、送信側のパケットＩＤ用レジスタ３５３＃１とに基づいて、通知パケットを生成する。
【０１５８】
情報処理装置１００＃３は、パケットＩＤ「＃ｂ−１」が付与されたパケット８００を、受信バッファ３１０＃１に入力する。また、情報処理装置１００＃３は、パケットＩＤ「＃ａ−１」が付与されたパケット８００を、自装置のバス２００に出力する。
【０１５９】
８サイクル目では、情報処理装置１００＃２は、パケットＩＤ「＃ａ−５」が付与されたパケット８００を、受信バッファ３１０＃４に入力する。また、情報処理装置１００＃２は、受信バッファ３１０＃３に対応する受信側のカウンタ用レジスタ３２２＃３のカウンタ値を「１」にカウントアップする。また、情報処理装置１００＃２は、受信バッファ３１０＃２に対応する受信側のカウンタ用レジスタ３２２＃２のカウンタ値を「２」にカウントアップする。
【０１６０】
また、情報処理装置１００＃２は、パケットＩＤ「＃ｂ−５」が付与されたパケット８００を、送信バッファ３４０＃４に入力する。また、情報処理装置１００＃２は、パケットＩＤ「＃ｂ−２」が付与されたパケット８００を、情報処理装置１００＃３への伝送路に出力する。
【０１６１】
情報処理装置１００＃３は、パケットＩＤ「＃ａ−２」が付与されたパケット８００を、受信バッファ３１０＃０に入力する。また、情報処理装置１００＃３は、パケットＩＤ「＃ｂ−１」が付与されたパケット８００を、情報処理装置１００＃４への伝送路に出力する。
【０１６２】
９サイクル目では、情報処理装置１００＃２は、受信バッファ３１０＃４に対応する受信側のカウンタ用レジスタ３２２＃４のカウンタ値を「１」にカウントアップする。また、情報処理装置１００＃２は、受信バッファ３１０＃３に対応する受信側のカウンタ用レジスタ３２２＃３のカウンタ値を「２」にカウントアップする。また、情報処理装置１００＃２は、受信バッファ３１０＃２に対応する受信側のカウンタ用レジスタ３２２＃２のカウンタ値を「３」にカウントアップする。また、情報処理装置１００＃２は、パケットＩＤ「＃ａ−３」が付与されたパケット８００を、情報処理装置１００＃３への伝送路に出力する。
【０１６３】
ここで、情報処理装置１００＃２は、出力したパケットＩＤ「＃ａ−２」が付与されたパケット８００に対応する受信側のカウンタ用レジスタ３２２＃２のカウンタ値が閾値以上であるか否かを判定する。情報処理装置１００＃２は、閾値以上であれば、対応する送信側の座標用レジスタ３５１＃２と、送信側のパケットＩＤ用レジスタ３５３＃２とに基づいて、通知パケットを生成する。
【０１６４】
情報処理装置１００＃３は、パケットＩＤ「＃ｂ−２」が付与されたパケット８００を、受信バッファ３１０＃３に入力する。また、情報処理装置１００＃３は、パケットＩＤ「＃ａ−２」が付与されたパケット８００を、自装置のバス２００に出力する。
【０１６５】
１０サイクル目では、情報処理装置１００＃２は、受信バッファ３１０＃４に対応する受信側のカウンタ用レジスタ３２２＃４のカウンタ値を「２」にカウントアップする。また、情報処理装置１００＃２は、受信バッファ３１０＃３に対応する受信側のカウンタ用レジスタ３２２＃３のカウンタ値を「３」にカウントアップする。また、情報処理装置１００＃２は、パケットＩＤ「＃ｂ−３」が付与されたパケット８００を、情報処理装置１００＃３への伝送路に出力する。
【０１６６】
情報処理装置１００＃３は、パケットＩＤ「＃ａ−３」が付与されたパケット８００を、受信バッファ３１０＃４に入力する。また、情報処理装置１００＃３は、パケットＩＤ「＃ｂ−２」が付与されたパケット８００を、情報処理装置１００＃４への伝送路に出力する。
【０１６７】
１１サイクル目では、情報処理装置１００＃２は、受信バッファ３１０＃４に対応する受信側のカウンタ用レジスタ３２２＃４のカウンタ値を「３」にカウントアップする。また、情報処理装置１００＃２は、受信バッファ３１０＃３に対応する受信側のカウンタ用レジスタ３２２＃３のカウンタ値を「４」にカウントアップする。また、情報処理装置１００＃２は、パケットＩＤ「＃ａ−４」が付与されたパケット８００を、情報処理装置１００＃３への伝送路に出力する。
【０１６８】
ここで、情報処理装置１００＃２は、出力したパケットＩＤ「＃ａ−２」が付与されたパケット８００に対応する受信側のカウンタ用レジスタ３２２＃３のカウンタ値が閾値以上であるか否かを判定する。情報処理装置１００＃２は、閾値以上であれば、対応する送信側の座標用レジスタ３５１＃３と、送信側のパケットＩＤ用レジスタ３５３＃３とに基づいて、通知パケットを生成する。
【０１６９】
情報処理装置１００＃３は、パケットＩＤ「＃ｂ−３」が付与されたパケット８００を、受信バッファ３１０＃５に入力する。また、情報処理装置１００＃３は、パケットＩＤ「＃ａ−３」が付与されたパケット８００を、自装置のバス２００に出力する。
【０１７０】
１２サイクル目では、情報処理装置１００＃２は、受信バッファ３１０＃４に対応する受信側のカウンタ用レジスタ３２２＃４のカウンタ値を「４」にカウントアップする。また、情報処理装置１００＃２は、パケットＩＤ「＃ｂ−４」が付与されたパケット８００を、情報処理装置１００＃３への伝送路に出力する。
【０１７１】
情報処理装置１００＃３は、パケットＩＤ「＃ａ−４」が付与されたパケット８００を、受信バッファ３１０＃６に入力する。また、情報処理装置１００＃３は、パケットＩＤ「＃ｂ−３」が付与されたパケット８００を、情報処理装置１００＃４への伝送路に出力する。
【０１７２】
１３サイクル目では、情報処理装置１００＃２は、受信バッファ３１０＃４に対応する受信側のカウンタ用レジスタ３２２＃４のカウンタ値を「５」にカウントアップする。また、情報処理装置１００＃２は、パケットＩＤ「＃ａ−５」が付与されたパケット８００を、情報処理装置１００＃３への伝送路に出力する。
【０１７３】
ここで、情報処理装置１００＃２は、出力したパケットＩＤ「＃ａ−２」が付与されたパケット８００に対応する受信側のカウンタ用レジスタ３２２＃４のカウンタ値が閾値以上であるか否かを判定する。情報処理装置１００＃２は、閾値以上であれば、対応する送信側の座標用レジスタ３５１＃４と、送信側のパケットＩＤ用レジスタ３５３＃４とに基づいて、通知パケットを生成する。
【０１７４】
情報処理装置１００＃３は、パケットＩＤ「＃ｂ−４」が付与されたパケット８００を、受信バッファ３１０＃７に入力する。また、情報処理装置１００＃３は、パケットＩＤ「＃ａ−４」が付与されたパケット８００を、自装置のバス２００に出力する。
【０１７５】
１４サイクル目では、情報処理装置１００＃２は、パケットＩＤ「＃ｂ−５」が付与されたパケット８００を、情報処理装置１００＃３への伝送路に出力する。また、情報処理装置１００＃２は、通知パケットが生成されていれば、生成した通知パケットを情報処理装置１００＃１に送信する。
【０１７６】
情報処理装置１００＃３は、パケットＩＤ「＃ａ−５」が付与されたパケット８００を、受信バッファ３１０＃０に入力する。また、情報処理装置１００＃３は、パケットＩＤ「＃ｂ−４」が付与されたパケット８００を、情報処理装置１００＃４への伝送路に出力する。
【０１７７】
１５サイクル目では、情報処理装置１００＃３は、パケットＩＤ「＃ｂ−５」が付与されたパケット８００を、受信バッファ３１０＃１に入力する。また、情報処理装置１００＃３は、パケットＩＤ「＃ａ−５」が付与されたパケット８００を、自装置のバス２００に出力する。
【０１７８】
１６サイクル目では、情報処理装置１００＃３は、パケットＩＤ「＃ｂ−５」が付与されたパケット８００を、情報処理装置１００＃４への伝送路に出力する。ここで、図１３の説明に移行し、通知パケットのデータ構造について説明する。
【０１７９】
（通知パケット１３００のデータ構造）
図１３は、通知パケット１３００のデータ構造を示す説明図である。図１３において、通知パケット１３００は、ＣＲＣと、カウンタ値と、ＩＤと、送信元座標と、宛先座標とを含む。
【０１８０】
ＣＲＣは、通知パケット１３００のフッタ部分に含まれる。ＣＲＣは、通知パケット１３００の誤り検出に用いられる符号である。カウンタ値は、通知パケット１３００の本体部分に含まれる。カウンタ値は、閾値以上であると判定した計測時間である。ＩＤは、通知パケット１３００のヘッダ部分に含まれる。ＩＤは、通知パケット１３００の識別情報である。
【０１８１】
送信元座標は、通知パケット１３００のヘッダ部分に含まれる。送信元座標は、通知パケット１３００の送信元が存在する計算機システム５００上の座標である。送信元座標は、例えば、送信元となる自装置の識別情報である。宛先座標は、通知パケット１３００のヘッダ部分に含まれる。宛先座標は、通知パケット１３００の宛先が存在する計算機システム５００上の座標である。宛先座標は、例えば、宛先となる情報処理装置１００の識別情報であって、閾値以上であると判定したパケット８００の送信元となる情報処理装置１００の識別情報である。
【０１８２】
また、パケット８００は、カウンタ値に対応付けてフラグＶを有してもよい。フラグＶは、パケット８００に、カウンタ値が設定済みであるか否かを示す情報である。また、パケット８００は、宛先座標に対応付けてフラグＪを有してもよい。フラグＪは、通知パケット１３００であることを示す情報である。
【０１８３】
（接続装置２０３の別の例）
次に、図１４を用いて、接続装置２０３の別の例について説明する。
【０１８４】
図１４は、接続装置２０３の別の例を示す説明図である。図１４において、接続装置２０３は、図３と同様に、受信バッファ３１０＃１〜３１０＃ｎを有する。また、接続装置２０３は、図３と同様に、受信側の座標用レジスタ３２１＃１〜３２１＃ｎと、受信側のカウンタ用レジスタ３２２＃１〜３２２＃ｎと、受信側のパケットＩＤ用レジスタ３２３＃１〜３２３＃ｎとを有する。また、接続装置２０３は、図３と同様に、受信側の滞在時間通知回路３３０を有する。
【０１８５】
また、接続装置２０３は、図示は省略するが、図３と同様に、送信バッファ３４０＃１〜３４０＃ｎを有する。また、接続装置２０３は、図示は省略するが、図３と同様に、送信側の座標用レジスタ３５１＃１〜３５１＃ｎと、送信側のカウンタ用レジスタ３５２＃１〜３５２＃ｎと、送信側のパケットＩＤ用レジスタ３５３＃１〜３５３＃ｎとを有する。また、接続装置２０３は、図示は省略するが、図３と同様に、送信側の滞在時間通知回路３６０を有する。また、接続装置２０３は、調停回路３７０と、送信回路３８０とを有する。
【０１８６】
図１４の例では、接続装置２０３は、さらに、要求用レジスタ１４０１と、要求ＩＤ用レジスタ１４０２とを有する。要求用レジスタ１４０１は、滞在時間の通知要求を保持するレジスタである。要求ＩＤ用レジスタ１４０２は、滞在時間の通知要求がされたパケット８００の識別情報を保持するレジスタである。
【０１８７】
受信側の滞在時間通知回路３３０は、図３と同様に、自座標保持回路３３１と、閾値保持回路３３２と、ホップ数算出回路３３３と、閾値選択回路３３４と、比較回路３３５と、生成回路３３６とを有する。図１４の例では、生成回路３３６は、メモリとＯＲ回路とを有する。生成回路３３６は、ＯＲ回路によって、比較回路３３５が比較した結果と、メモリの内容と結合して、結合した結果でメモリの内容を上書きする。これにより、生成回路３３６は、比較回路３３５から入力された比較結果をメモリに蓄積することができる。
【０１８８】
生成回路３３６は、要求用レジスタ１４０１から通知要求が入力された場合に、メモリに蓄積した比較結果のうち、要求ＩＤ用レジスタ１４０２から入力された識別情報が示すパケット８００についての比較結果に基づいて、通知パケット１３００を生成する。生成回路３３６は、通知パケット１３００を生成すると、通知パケット１３００を送信回路３８０に出力して、他の情報処理装置１００に送信させる。
【０１８９】
このように、接続装置２０３は、滞在時間の通知要求が入力されてから通知パケット１３００を生成して送信し、滞在時間の通知要求が入力されなければ通知パケット１３００を生成しない。これにより、接続装置２０３は、通信量を低減し、ネットワーク２１０の輻輳を抑制することができる。
【０１９０】
（計算機システム５００の別の例）
次に、図１５を用いて、計算機システム５００の別の例について説明する。
【０１９１】
図１５は、計算機システム５００の別の例を示す説明図である。図１５に示すように、計算機システム５００の別の例は、ｘ台の情報処理装置１００をＲｉｎｇ網で、双方向に通信可能に接続したシステムである。図１５の例では、ｘは６である。
【０１９２】
計算機システム５００の別の例において、情報処理装置１００は、送信バッファ３４０および受信バッファ３１０に加えて、送信待ちの通知パケット１３００を保持する通知用送信バッファ１５２０および通知用受信バッファ１５１０を有する。ここで、情報処理装置１００は、パケット８００とは逆方法に通知パケット１３００を送信する。
【０１９３】
計算機システム５００の別の例において、情報処理装置１００は、前段の情報処理装置１００からパケット８００を受信して、受信した送信待ちのパケット８００を受信バッファ３１０に保持する。情報処理装置１００は、自装置において生成された送信待ちのパケット８００を、送信バッファ３４０に保持する。情報処理装置１００は、送信バッファ３４０に保持された送信待ちのパケット８００、または受信バッファ３１０に保持された送信待ちのパケット８００を、所定割合にしたがって自装置のバス２００または後段の情報処理装置１００に送信する。
【０１９４】
また、情報処理装置１００は、後段の情報処理装置１００から通知パケット１３００を受信して、受信した送信待ちの通知パケット１３００を通知用受信バッファ１５１０に保持する。情報処理装置１００は、自装置において生成された送信待ちの通知パケット１３００を、通知用送信バッファ１５２０に保持する。情報処理装置１００は、通知用送信バッファ１５２０に保持された送信待ちの通知パケット１３００、または通知用受信バッファ１５１０に保持された送信待ちの通知パケット１３００を、所定割合にしたがって読み出す。そして、情報処理装置１００は、読み出した通知パケット１３００を、自装置のバス２００または後段の情報処理装置１００に送信する。
【０１９５】
計算機システム５００の別の例によれば、パケット８００と、通知パケット１３００との経路が異なるため、通知パケット１３００を送信することによって、パケット８００の送受信が輻輳してしまうことを防止することができる。
【０１９６】
（計算機システム５００の別の例における通知パケット１３００のデータ構造）
次に、図１６を用いて、図１５に示した計算機システム５００の別の例における通知パケット１３００のデータ構造の一例について説明する。
【０１９７】
図１６は、計算機システム５００の別の例における通知パケット１３００のデータ構造の一例を示す説明図である。図１６において、通知パケット１３００は、ＣＲＣと、情報処理装置１００ごとのカウンタ値と、ＩＤと、送信元座標と、宛先座標とを含む。
【０１９８】
ＣＲＣは、通知パケット１３００のフッタ部分に含まれる。ＣＲＣは、通知パケット１３００の誤り検出に用いられる符号である。カウンタ値は、通知パケット１３００の本体部分に含まれる。カウンタ値は、情報処理装置１００の識別情報ごとに設定される。カウンタ値は、例えば、情報処理装置１００の座標ごとに設定される。情報処理装置１００ごとのカウンタ値は、情報処理装置１００ごとに計測した計測時間である。ＩＤは、通知パケット１３００のヘッダ部分に含まれる。ＩＤは、通知パケット１３００の識別情報である。
【０１９９】
送信元座標は、通知パケット１３００のヘッダ部分に含まれる。送信元座標は、通知パケット１３００の送信元が存在する計算機システム５００上の座標である。送信元座標は、例えば、送信元となる自装置の識別情報である。宛先座標は、通知パケット１３００のヘッダ部分に含まれる。宛先座標は、通知パケット１３００の宛先が存在する計算機システム５００上の座標である。宛先座標は、例えば、宛先となる情報処理装置１００の識別情報であって、閾値以上であると判定したパケット８００の送信元となる情報処理装置１００の識別情報である。
【０２００】
また、パケット８００は、カウンタ値に対応付けてフラグＶを有してもよい。フラグＶは、パケット８００に、カウンタ値が設定済みであるか否かを示す情報である。また、パケット８００は、宛先座標に対応付けてフラグＪを有してもよい。フラグＪは、通知パケット１３００であることを示す情報である。
【０２０１】
別の計算システムにおいて、図１６に示した通知パケット１３００を用いて、通知パケット１３００を転送する情報処理装置１００が、通知パケット１３００に対して自装置での滞在時間を設定してから転送するようにすることができる。これにより、計算機システム５００の別の例の利用者は、通知パケット１３００の転送経路上の情報処理装置１００でのパケット８００の滞在時間を把握することができる。
【０２０２】
このとき、情報処理装置１００は、Ｖフラグを参照して、設定済みの滞在時間を上書きしないようにする。また、情報処理装置１００は、滞在時間を設定した際には、ＣＲＣを再計算して、ＣＲＣを上書きする。
【０２０３】
（通知処理手順）
次に、図１７を用いて、通知処理手順の一例について説明する。情報処理装置１００は、図１７に示すような通知処理を、ＣＰＵ２０１とメモリ２０２とを用いてソフトウェア的に実現してもよい。
【０２０４】
図１７は、通知処理手順の一例を示すフローチャートである。図１７において、情報処理装置１００は、送信バッファ３４０または受信バッファ３１０に対するパケット８００の入力を受け付ける（ステップＳ１７０１）。
【０２０５】
次に、情報処理装置１００は、送信バッファ３４０または受信バッファ３１０に対するパケット８００の入力に応じて、パケット８００の滞在時間を示すカウンタ値についてカウントアップを開始する（ステップＳ１７０２）。そして、情報処理装置１００は、送信バッファ３４０および受信バッファ３１０に保持されたパケット８００を調停し、パケット８００が読み出し可能になり、送信されることを検出する（ステップＳ１７０３）。
【０２０６】
次に、情報処理装置１００は、カウンタのカウントアップを停止する（ステップＳ１７０４）。そして、情報処理装置１００は、自座標と送信元座標とを比較して、読み出したパケット８００のホップ数を算出し、複数の閾値のうちのホップ数に対応する閾値を読み出す（ステップＳ１７０５）。
【０２０７】
次に、情報処理装置１００は、カウンタ値が閾値以上であるか否かを判定する（ステップＳ１７０６）。ここで、カウンタ値が閾値未満である場合（ステップＳ１７０６：Ｎｏ）、情報処理装置１００は、通知処理を終了する。
【０２０８】
一方で、カウンタ値が閾値以上である場合（ステップＳ１７０６：Ｙｅｓ）、情報処理装置１００は、読み出したパケット８００の識別情報を付与した通信路上の問題発生の通知パケット１３００を、パケット８００の送信元に送信する（ステップＳ１７０７）。そして、情報処理装置１００は、通知処理を終了する。これにより、情報処理装置１００は、自装置が輻輳して滞在時間を増大させた可能性があるパケット８００を識別可能な情報を、当該パケット８００の送信元に送信することができる。
【０２０９】
以上説明したように、情報処理装置１００によれば、第２装置が送信元である送信待ちのいずれかのパケット８００について記憶部６０２における滞在時間を計測することができる。そして、情報処理装置１００によれば、計測した滞在時間が、第２装置から自装置までのホップ数に対応する閾値以上であるか否かを判定し、閾値以上であると判定した場合にいずれかのパケット８００を識別可能な情報を出力することができる。
【０２１０】
これにより、情報処理装置１００は、ホップ数が増大したことに起因して滞在時間が増大したにも関わらず、自装置で滞留した可能性があると判定してしまうことを抑制することができる。一方で、情報処理装置１００は、滞在時間が所定値よりも大きいパケット８００が複数あっても、自装置で滞留した可能性があるパケット８００と、ホップ数の増大によって滞在時間の増大を招いたパケット８００とを判別することができる。そして、情報処理装置１００は、自装置で滞留した可能性があるパケット８００を識別可能な情報を出力することができる。
【０２１１】
また、情報処理装置１００によれば、閾値以上であると判定した場合に、いずれかのパケット８００の送信元および宛先のうちの少なくともいずれかに、いずれかのパケット８００を識別可能な情報を送信することができる。これにより、情報処理装置１００は、計算機システム５００の利用者に、自装置でパケット８００が滞留した可能性があることを通知することができる。
【０２１２】
また、情報処理装置１００によれば、閾値以上であると判定した場合に、いずれかのパケット８００の送信元からの要求に応じて、いずれかのパケット８００を識別可能な情報を当該送信元に送信することができる。これにより、情報処理装置１００は、閾値以上であると判定するごとに送信処理を行わなくてもよいため、計算機システム５００における通信量の増大化を抑制することができる。
【０２１３】
また、情報処理装置１００によれば、対応情報１０３として、ホップ数と、第１装置または第２装置が送信元である送信待ちパケット８００を送信する割合と、滞在時間に関する閾値との対応関係を示す情報を用いることができる。そして、情報処理装置１００によれば、対応情報１０３を参照して、計測した滞在時間が、算出したホップ数と所定割合との組み合わせに対応する閾値以上であるか否かを判定することができる。これにより、情報処理装置１００は、パケット８００の滞在時間が、パケット８００のホップ数に応じたスループットのときの滞在時間か、自装置でパケット８００が滞留したときの滞在時間かを判別可能になる。
【０２１４】
また、情報処理装置１００によれば、第２装置が送信元であるパケット８００群のうちの同一ジョブにより生成された一連のパケット８００のいずれかのパケット８００について記憶部６０２における滞在時間を計測することができる。そして、情報処理装置１００によれば、計測した滞在時間が閾値以上であると判定した場合、一連のパケット８００が送信されてから、いずれかのパケット８００を識別可能な情報を出力する。これにより、情報処理装置１００は、ジョブごとに一度にまとめて、ジョブによって生成された一連のパケット８００が滞留した可能性があるか否かを示す情報を送信するため、計算機システム５００における通信量の増大化を抑制することができる。
【０２１５】
また、情報処理装置１００によれば、閾値以上であると判定した場合に、いずれかのパケット８００を識別可能な情報と、計測した滞在時間とを対応付けて出力することができる。これにより、計測部６０４は、パケット８００が滞留した原因などを解析する際に計算機システム５００の利用者に参照されるパラメータを取得することができる。
【０２１６】
また、情報処理装置１００によれば、対応情報１０３として、ホップ数の範囲と滞在時間に関する閾値とを対応付けた情報を用いることができる。そして、情報処理装置１００によれば、対応情報１０３を参照して、計測した滞在時間が、第２装置から自装置までのホップ数を含む範囲に対応する閾値以上であるか否かを判定することができる。これにより、情報処理装置１００は、ホップ数の一つ一つに対して閾値を記憶しなくてもよいため、対応情報テーブル９００のメモリサイズを低減することができる。
【０２１７】
また、情報処理装置１００によれば、滞在時間についての最小値、最大値、および平均値の少なくともいずれかを算出し、算出した結果を出力することができる。これにより、計測部６０４は、パケット８００が滞留した原因などを解析する際に計算機システム５００の利用者に参照されるパラメータを取得することができる。
【０２１８】
また、情報処理装置１００によれば、第１装置として、自装置を採用し、第２装置として、情報処理装置１００とは異なる１以上の装置のそれぞれを採用することができる。これにより、情報処理装置１００は、自装置が送信元である送信待ちのパケット８００と、他の情報処理装置１００が送信元である送信待ちのパケット８００とを所定の割合で送信する場合に適応することができる。
【０２１９】
また、情報処理装置１００によれば、第１装置が送信元である送信待ちのパケット８００を保持する第１バッファと、第２装置が送信元である送信待ちのパケット８００を保持する第２バッファとを用いることができる。これにより、情報処理装置１００は、第１装置が送信元である送信待ちのパケット８００と、第２装置が送信元である送信待ちのパケット８００とをハードウェア的に分類して処理することができる。
【０２２０】
なお、本実施の形態で説明した通信パケット滞留通知方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信パケット滞留通知プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信パケット滞留通知プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２２１】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２２２】
（付記１）第１装置が送信元である送信待ちのパケットと、前記第１装置とは異なる第２装置が送信元である送信待ちのパケットとを保持する記憶部と、
前記第１装置が送信元である送信待ちのパケット、または前記第２装置が送信元である送信待ちのパケットを、所定割合にしたがって送信する通信部と、
前記第２装置が送信元である送信待ちのいずれかのパケットについて前記記憶部における滞在時間を計測し、ホップ数と滞在時間に関する閾値との対応関係を示す対応情報を参照して、計測した前記滞在時間が、前記第２装置から自装置までのホップ数に対応する閾値以上であるか否かを判定し、前記閾値以上であると判定した場合に前記いずれかのパケットを識別可能な情報を出力する、制御部と、
を有することを特徴とする情報処理装置。
【０２２３】
（付記２）前記制御部は、
前記閾値以上であると判定した場合に、前記いずれかのパケットの送信元および宛先のうちの少なくともいずれかに、前記いずれかのパケットを識別可能な情報を送信する、ことを特徴とする付記１に記載の情報処理装置。
【０２２４】
（付記３）前記制御部は、
前記閾値以上であると判定した場合に、前記いずれかのパケットの送信元からの要求に応じて、前記いずれかのパケットを識別可能な情報を当該送信元に送信する、ことを特徴とする付記１に記載の情報処理装置。
【０２２５】
（付記４）前記対応情報は、ホップ数と、前記第１装置または前記第２装置が送信元である送信待ちパケットを送信する割合と、滞在時間に関する閾値との対応関係を示す情報であって、
前記制御部は、
前記対応情報を参照して、計測した前記滞在時間が、算出した前記ホップ数と前記所定割合との組み合わせに対応する閾値以上であるか否かを判定する、ことを特徴とする付記１〜３のいずれか一つに記載の情報処理装置。
【０２２６】
（付記５）前記制御部は、
前記第２装置が送信元であるパケット群のうちの同一ジョブにより生成された一連のパケットのいずれかのパケットについて前記記憶部における滞在時間を計測する、ことを特徴とする付記１〜４のいずれか一つに記載の情報処理装置。
【０２２７】
（付記６）前記制御部は、
前記閾値以上であると判定した場合に、前記いずれかのパケットを識別可能な情報と、計測した前記滞在時間とを対応付けて出力する、ことを特徴とする付記１〜５のいずれか一つに記載の情報処理装置。
【０２２８】
（付記７）前記対応情報は、ホップ数の範囲と滞在時間に関する閾値とを対応付けた情報であって、
前記制御部は、
前記対応情報を参照して、計測した前記滞在時間が、前記第２装置から自装置までのホップ数を含む範囲に対応する閾値以上であるか否かを判定する、ことを特徴とする付記１〜６のいずれか一つに記載の情報処理装置。
【０２２９】
（付記８）前記制御部は、
前記記憶部に保持された前記第２装置が送信元である送信待ちのパケット群のうちの１以上のパケットのそれぞれについて計測した滞在時間についての最小値、最大値、および平均値の少なくともいずれかを算出し、算出した結果を出力する、ことを特徴とする付記１〜７のいずれか一つに記載の情報処理装置。
【０２３０】
（付記９）前記第１装置は、前記情報処理装置であって、
前記第２装置は、前記情報処理装置とは異なる１以上の装置のそれぞれである、ことを特徴とする付記１〜８のいずれか一つに記載の情報処理装置。
【０２３１】
（付記１０）前記記憶部は、
前記第１装置が送信元である送信待ちのパケットを保持する第１バッファと、前記第２装置が送信元である送信待ちのパケットを保持する第２バッファとを有する、ことを特徴とする付記１〜９のいずれか一つに記載の情報処理装置。
【０２３２】
（付記１１）コンピュータが、
第１装置が送信元である送信待ちのパケットと、前記第１装置とは異なる第２装置が送信元である送信待ちのパケットとを保持する記憶部に保持された、前記第１装置が送信元である送信待ちのパケット、または前記第２装置が送信元である送信待ちのパケットを、所定割合にしたがって送信し、
前記第２装置が送信元である送信待ちのいずれかのパケットについて前記記憶部における滞在時間を計測し、
ホップ数と滞在時間に関する閾値との対応関係を示す対応情報を参照して、計測した前記滞在時間が、前記第２装置から自装置までのホップ数に対応する閾値以上であるか否かを判定し、
前記閾値以上であると判定した場合に前記いずれかのパケットを識別可能な情報を出力する、
処理を実行することを特徴とする通信パケット滞留通知方法。
【０２３３】
（付記１２）コンピュータに、
第１装置が送信元である送信待ちのパケットと、前記第１装置とは異なる第２装置が送信元である送信待ちのパケットとを保持する記憶部に保持された、前記第１装置が送信元である送信待ちのパケット、または前記第２装置が送信元である送信待ちのパケットを、所定割合にしたがって送信し、
前記第２装置が送信元である送信待ちのいずれかのパケットについて前記記憶部における滞在時間を計測し、
ホップ数と滞在時間に関する閾値との対応関係を示す対応情報を参照して、計測した前記滞在時間が、前記第２装置から自装置までのホップ数に対応する閾値以上であるか否かを判定し、
前記閾値以上であると判定した場合に前記いずれかのパケットを識別可能な情報を出力する、
処理を実行させることを特徴とする通信パケット滞留通知プログラム。
【符号の説明】
【０２３４】
１００  情報処理装置
１０１，６０２  記憶部
１０２，６０３  通信部
１０３  対応情報
１１１  第１パケット
１１２  第２パケット
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  接続装置
２０４  ディスクドライブ
２０５  ディスク
２１０  ネットワーク
３１０  受信バッファ
３２１，３５１  座標用レジスタ
３２２，３５２  カウンタ用レジスタ
３２３，３５３  パケットＩＤ用レジスタ
３３０，３６０  滞在時間通知回路
３３１  自座標保持回路
３３２  閾値保持回路
３３３  ホップ数算出回路
３３４  閾値選択回路
３３５，４０３  比較回路
３３６  生成回路
３４０  送信バッファ
３７０  調停回路
３８０  送信回路
４０１  補数生成器
４０２  第１加算器
４０４  選択回路
４０５  第２加算器
５００  計算機システム
６０１  保持部
６０４  計測部
６０５  判定部
６０６  出力部
８００  パケット
９００  対応情報テーブル
１３００  通知パケット
１４０１  要求用レジスタ
１４０２  要求ＩＤ用レジスタ
１５１０  通知用受信バッファ
１５２０  通知用送信バッファ
【図１】
0006531512.tif 000002
【図２】
0006531512.tif 000003
【図３】
0006531512.tif 000004
【図４】
0006531512.tif 000005
【図５】
0006531512.tif 000006
【図６】
0006531512.tif 000007
【図７】
0006531512.tif 000008
【図８】
0006531512.tif 000009
【図９】
0006531512.tif 000010
【図１０】
0006531512.tif 000011
【図１１】
0006531512.tif 000012
【図１２】
0006531512.tif 000013
【図１３】
0006531512.tif 000014
【図１４】
0006531512.tif 000015
【図１５】
0006531512.tif 000016
【図１６】
0006531512.tif 000017
【図１７】
0006531512.tif 000018