"複数の送信元と通信する通信装置であって、前記複数の送信元のうちいずれかの送信元から、前記いずれかの送信元から前記通信装置への送信を許可する送信権について、前記通信装置を宛先にする送信対象データのデータ量を特定する情報を含む要求通知を受信する受信手段と、前記受信手段によって受信された要求通知に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定する判定手段と、前記判定手段によって前記送信権を付与すると判定された前記いずれかの送信元に前記送信権を送信する送信手段と、を備えることを特徴とする通信装置。前記判定手段は、前記要求通知に含まれる前記通信装置を宛先にする送信対象データのデータ量を特定する情報と、他の送信元における前記通信装置を宛先にする送信対象データのデータ量を特定する情報と、に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定することを特徴とする請求項1に記載の通信装置。前記受信手段によって受信された要求通知は、前記通信装置とは異なる他の通信装置を宛先にする送信対象データのデータ量を特定する情報を含み、前記判定手段は、前記要求通知に含まれる前記通信装置を宛先にする送信対象データのデータ量を特定する情報と、前記要求通知に含まれる前記他の通信装置を宛先にする送信対象データのデータ量を特定する情報と、に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定することを特徴とする請求項1または2に記載の通信装置。前記受信手段によって受信された要求通知は、前記いずれかの送信元における前記通信装置を宛先にする送信対象データの送信期限に関する情報を含み、前記判定手段は、前記要求通知に含まれる送信期限に関する情報と、他の送信元における前記通信装置を宛先にする送信対象データの送信期限に関する情報と、に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定することを特徴とする請求項1~3のいずれか一つに記載の通信装置。前記受信手段によって受信された要求通知に基づいて、前記判定手段によって前記送信権を付与すると判定された前記いずれかの送信元が送信する送信対象データの許容データ量を決定する決定手段を備え、前記送信手段は、前記判定手段によって前記送信権を付与すると判定された前記いずれかの送信元に前記決定手段によって決定された許容データ量を含む前記送信権を送信することを特徴とする請求項1~4のいずれか一つに記載の通信装置。複数の宛先と通信する通信装置であって、前記複数の宛先のうちいずれかの宛先への送信対象データのデータ量に基づいて、前記いずれかの宛先に、前記通信装置から前記いずれかの宛先への送信を許可する送信権を要求するか否かを判定する判定手段と、前記判定手段によって前記送信権を要求すると判定された場合、前記いずれかの宛先への送信対象データのデータ量を特定する情報を含む前記要求通知を、前記いずれかの宛先に通知する通知手段と、前記通知手段によって前記要求通知が通知された結果、前記いずれかの宛先から前記送信権を受信する受信手段と、前記受信手段によって前記送信権が受信された場合、前記いずれかの宛先への送信対象データを前記いずれかの宛先に送信する送信手段と、を備えることを特徴とする通信装置。前記判定手段は、前記いずれかの宛先への送信対象データのデータ量が閾値以上である場合、前記いずれかの宛先に送信権を要求すると判定することを特徴とする請求項6に記載の通信装置。前記いずれかの宛先への送信対象データを生成したときからの経過時間を計測する計測手段を備え、前記通知手段は、前記計測手段によって計測された経過時間が、前記いずれかの宛先への送信対象データの送信期限に基づく閾値以上である場合、前記要求通知を前記いずれかの宛先に通知することを特徴とする請求項6または7に記載の通信装置。前記送信権は送信する送信対象データの許容データ量を含み、前記送信手段は、前記いずれかの宛先への送信対象データのうち、前記許容データ量以下の送信対象データを、前記いずれかの宛先に送信することを特徴とする請求項6~8のいずれか一つに記載の通信装置。複数の送信元と通信する通信装置が、前記複数の送信元のうちいずれかの送信元から、前記いずれかの送信元から前記通信装置への送信を許可する送信権について、前記通信装置を宛先にする送信対象データのデータ量を特定する情報を含む要求通知を受信し、受信された要求通知に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定し、前記送信権を付与すると判定された前記いずれかの送信元に前記送信権を送信する、ことを特徴とする通信方法。複数の宛先と通信する通信装置が、前記複数の宛先のうちいずれかの宛先への送信対象データのデータ量に基づいて、前記いずれかの宛先に、前記通信装置から前記いずれかの宛先への送信を許可する送信権を要求するか否かを判定し、前記送信権を要求すると判定された場合、前記いずれかの宛先への送信対象データのデータ量を特定する情報を含む前記要求通知を、前記いずれかの宛先に通知し、前記要求通知が通知された結果、前記いずれかの宛先から前記送信権を受信し、前記送信権が受信された場合、前記いずれかの宛先への送信対象データを前記いずれかの宛先に送信する、ことを特徴とする通信方法。複数の送信元と通信する通信装置に、前記複数の送信元のうちいずれかの送信元から、前記いずれかの送信元から前記通信装置への送信を許可する送信権について、前記通信装置を宛先にする送信対象データのデータ量を特定する情報を含む要求通知を受信し、受信された要求通知に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定し、前記送信権を付与すると判定された前記いずれかの送信元に前記送信権を送信する、処理を実行させることを特徴とする通信プログラム。複数の宛先と通信する通信装置に、前記複数の宛先のうちいずれかの宛先への送信対象データのデータ量に基づいて、前記いずれかの宛先に、前記通信装置から前記いずれかの宛先への送信を許可する送信権を要求するか否かを判定し、前記送信権を要求すると判定された場合、前記いずれかの宛先への送信対象データのデータ量を特定する情報を含む前記要求通知を、前記いずれかの宛先に通知し、前記要求通知が通知された結果、前記いずれかの宛先から前記送信権を受信し、前記送信権が受信された場合、前記いずれかの宛先への送信対象データを前記いずれかの宛先に送信する、処理を実行させることを特徴とする通信プログラム。しかしながら、上述した従来技術は、送信元と宛先との1対1の関係に基づいて送信権を与えるか否かを判断しており、複数の送信元と宛先との多対1の関係が考慮されていない。そのため、未送信のメッセージの量が多いために優先して送信をおこなわせるべき送信元よりも先に、未送信のメッセージの量がまだ少ない他の送信元に送信権を与えてしまうことがある。この場合、送信元において、未送信のメッセージが格納されたバッファにメモリ不足が生じてしまう。また、送信権の受信の待ち時間の長い送信元よりも先に、待ち時間の短い送信元に送信権を与えてしまうことがある。この場合、送信元において、メッセージの送信期限を守れず、処理の遅延や処理エラーを生じてしまう。本発明は、1つの側面では、ネットワークの状況により送信権を効率的に与えることができる通信装置、通信方法、および通信プログラムを提供することを目的とする。上述した課題を解決し、目的を達成するため、本発明の一側面によれば、複数の送信元のうちいずれかの送信元から、いずれかの送信元から自通信装置への送信を許可する送信権について、自通信装置を宛先にする送信対象データのデータ量を特定する情報を含む要求通知を受信し、受信された要求通知に基づいて、いずれかの送信元に送信権を付与するか否かを判定し、送信権を付与すると判定されたいずれかの送信元に送信権を送信する通信装置、通信方法、および通信プログラムが提案される。また、本発明の一側面によれば、複数の宛先のうちいずれかの宛先への送信対象データのデータ量に基づいて、いずれかの宛先に、自通信装置からいずれかの宛先への送信を許可する送信権を要求するか否かを判定し、送信権を要求すると判定された場合、いずれかの宛先への送信対象データのデータ量を特定する情報を含む要求通知を、いずれかの宛先に通知し、要求通知が通知された結果、いずれかの宛先から送信権を受信し、送信権が受信された場合、いずれかの宛先への送信対象データをいずれかの宛先に送信する通信装置、通信方法、および通信プログラムが提案される。本発明の一側面によれば、ネットワークの状況により送信権を効率的に与えることができるという効果を奏する。以下に添付図面を参照して、この発明にかかる通信装置、通信方法、および通信プログラムの実施の形態を詳細に説明する。この発明にかかる通信装置は、宛先ごとに、送信するデータをバッファリングしている。ここで、ネットワーク上のデータ量を制御し輻輳を抑制するために、送信側の通信装置は、バッファリング中のデータの宛先となる受信側の通信装置に、バッファリングされているデータ量を特定する情報を含む送信権の要求を通知する。送信権の要求を通知した後、送信側の通信装置は、受信側の通信装置から送信権を得るまでは、バッファリング中のデータを送信しない。一方、受信側の通信装置では、自装置宛にデータを送信する送信側の通信装置群から、各通信装置でバッファリングされているデータ量を特定する情報を含む送信権の要求を受信する。そして、受信側の通信装置は、バッファが最も逼迫している送信装置に送信権を与える。このように、この発明にかかる通信装置、通信方法、および通信プログラムによれば、送信権を与えることにより、ネットワーク上に送信されるデータ量を制御して、衝突を回避し、ネットワークの輻輳を抑制することができる。また、受信側の通信装置において、複数の送信側の通信装置のそれぞれでバッファリングされているデータ量を参照して、送信権を与える送信側の通信装置を決定する。そのため、1対1の通信装置間のスループットのみではなく、ネットワーク全体のスループットを向上させるように、送信権を与えることができる。また、この発明にかかる通信装置、通信方法、および通信プログラムによれば、宛先ごとに送信するデータをバッファリングして、スループットを向上させることができる。通信装置による通信の内容図1および図2は、通信装置による通信の内容を示す説明図である。ここで、図1および図2に示す通信システムは、複数の通信装置N図1および図2では、例えば、3台の通信装置N1~N3がネットワークを介して接続され、メッセージMの送受信をおこなうシステムである。また、通信システムは、ネットワークにおいて中継をおこなう機器であるスイッチングハブSHを含む。各通信装置Nは、宛先となる通信装置Nごとに送信するメッセージMデータをバッファリングするバッファBを有する。なお、メッセージMは、各通信装置Nが実行するアプリケーションによって生成される。例えば、通信装置N1は、通信装置N2宛のメッセージMをバッファリングするバッファB1t2と、通信装置N3宛のメッセージMをバッファリングするバッファB1t3と、を有している。また、通信装置N2は、通信装置N1宛のメッセージMをバッファリングするバッファB2t1と、通信装置N3宛のメッセージMをバッファリングするバッファB2t3と、を有している。そして、通信装置N3は、通信装置N1宛のメッセージMをバッファリングするバッファB3t1と、通信装置N2宛のメッセージMをバッファリングするバッファB3t2と、を有している。ここで、通信装置N1,N3がそれぞれ通信装置N2にメッセージMを送信する場合を例に挙げて、通信装置Nによる通信の内容について説明する。図1において、1通信装置N1は、通信装置N2宛のメッセージMが生成されるごとに、生成されたメッセージMをバッファB1t2に格納していく。また、同様に、通信装置N3でも、通信装置N2宛のメッセージMがバッファB3t2に格納されている。2通信装置N1は、バッファB1t2に格納されたメッセージMを、通信装置N2に送信するために、通信装置N2に、通信装置N2への送信を許可する送信権について要求通知以下、要求トークンというを送信する。そして、通信装置N1は、通信装置N2からの通信装置N2への送信を許可する送信権以下、許可トークンというの受信を待つ。ここで、要求トークンには、メッセージMの送信元となる通信装置N1の識別子と、バッファB1t2に格納されているメッセージ量と、を含ませておく。バッファB1t2に格納されているメッセージ量は、バッファB1t2の逼迫具合の指標となる情報である。3同様に、通信装置N3は、バッファB3t2に格納されたメッセージMを、通信装置N2に送信するために、通信装置N2に要求トークンを送信する。そして、通信装置N3は、通信装置N2からの許可トークンの受信を待つ。ここで、要求トークンには、メッセージMの送信元となる通信装置N3の識別子と、バッファB3t2に格納されているメッセージ量と、を含ませておく。バッファB3t2に格納されているメッセージ量は、バッファB3t2の逼迫具合の指標となる情報である。4通信装置N1,N3からそれぞれ要求トークンを受信した通信装置N2は、要求トークンに含まれるそれぞれの通信装置N1,N3でのバッファBのメッセージ量を参照して、送信権を付与する送信元の通信装置N1,N3を選択する。ここでは、通信装置N2は、バッファBへ格納されているメッセージ量が多い通信装置N3にバッファBがあふれる前にメッセージMを送信させるべきであると判定して、通信装置N3に送信権を付与する。5ここで、通信装置N2は、ネットワークのスループットを参照して、ネットワークを輻輳させない範囲で、選択した通信装置N3に送信させるメッセージMの許容データ量を決定する。そして、通信装置N2は、選択した通信装置N3に、許容データ量を含む許可トークンを送信する。そのため、図2に示すように、通信装置N1には、まだ許可トークンが受信されない。一方、通信装置N3には、許容データ量を含む許可トークンが受信される。図2において、1許可トークンを受信した通信装置N3は、バッファB3t2に格納されているメッセージMのうち、許可トークンに含まれる許容データ量のメッセージMをまとめて通信装置N2に送信する。2一方、通信装置N1は、まだ許可トークンを受信していないため、バッファB1t2に格納されているメッセージMを送信しない。3これにより、ネットワークに流れるメッセージ量を制御して、メッセージMの衝突を回避することができる。そのため、メッセージMの衝突に起因する輻輳を抑制することができる。そして、輻輳を抑制することができるため、輻輳に起因する通信時間の増加を回避することができ、ネットワーク全体の通信フェーズを短縮することができる。また、バッファリングにより、ネットワークのスループットを向上させることができる。そして、受信側の通信装置Nが、送信側の通信装置N群のバッファBに格納されているメッセージ量に基づいて、バッファBが逼迫しないように、送信権を与えてメッセージMを送信させる。そのため、ネットワークを効率よく使用でき、ネットワーク全体のスループットを向上させることができる。通信装置Nのハードウェア構成例図3は、実施の形態にかかる通信装置Nのハードウェア構成例を示すブロック図である。図3において、通信装置Nは、CPUCentralProcessingUnit301と、ROMRead‐OnlyMemory302と、RAMRandomAccessMemory303と、I/FInterface304と、ディスプレイ305と、キーボード306と、アプリケーションI/F307と、を備えている。また、各構成部はバス310によってそれぞれ接続されている。ここで、CPU301は、通信装置Nの全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。また、RAM303は、宛先ごとのバッファBの領域として使用される。RAM303は、送信長履歴と、送信依頼履歴と、要求トークンレイテンシ履歴と、を記憶している。また、RAM303は、送信スループット履歴と、受信スループット履歴と、許可トークン発行数情報と、許可トークン発行履歴と、を記憶している。また、RAM303は、通信相手リストと、要求トークンリストと、許可トークンリストと、を記憶している。インターフェース以下、I/Fと略する。304は、通信回線を通じてLANLocalAreaNetwork、WANWideAreaNetwork、インターネットなどのネットワーク320に接続され、このネットワーク320を介して他の装置に接続される。そして、I/F304は、ネットワーク320と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F304には、例えばモデムやLANアダプタなどを採用することができる。ディスプレイ305は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ305は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。キーボード306は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。アプリケーションI/F307は、アプリケーションからのデータの入出力を制御する。例えば、アプリケーションI/F307は、アプリケーションが生成したデータをRAM303のバッファBに格納したり、I/F304に外部装置から入力されたデータをアプリケーションに引き渡したりする。送信長履歴の内容次に、図4を用いて、図3に示したRAM303に記憶されている送信長履歴の内容について、説明する。図4は、図3に示したRAM303に記憶されている送信長履歴の内容を示す説明図である。送信長履歴400は、時刻項目のそれぞれに対応付けてノード項目と、送信長項目と、を有し、メッセージMを送信するごとにレコードを構成する。時刻項目には、メッセージMを送信した時刻秒が記憶されている。ノード項目には、メッセージMの宛先になる通信装置Nの識別子が記憶されている。送信長項目には、送信したメッセージMのデータ量Byteが記憶されている。送信依頼履歴の内容次に、図5を用いて、図3に示したRAM303に記憶されている送信依頼履歴の内容について、説明する。図5は、図3に示したRAM303に記憶されている送信依頼履歴の内容を示す説明図である。送信依頼履歴500は、時刻項目のそれぞれに対応付けてノード項目と、スループット項目と、を有し、アプリケーションからメッセージMの送信が依頼されるごとにレコードを構成する。時刻項目には、メッセージMの送信が依頼された時刻秒が記憶されている。ノード項目には、送信が依頼されたメッセージMの宛先になる通信装置Nの識別子が記憶されている。スループット項目には、単位時間に送信依頼されたメッセージMのデータ量Byte/秒が記憶されている。要求トークンレイテンシ履歴の内容次に、図6を用いて、図3に示したRAM303に記憶されている要求トークンレイテンシ履歴の内容について、説明する。図6は、図3に示したRAM303に記憶されている要求トークンレイテンシ履歴の内容を示す説明図である。要求トークンレイテンシ履歴600は、時刻項目のそれぞれに対応付けてノード項目と、レイテンシ項目と、を有する。要求トークンレイテンシ履歴600は、要求トークンを送信するごとにレコードを構成し、許可トークンを受信するごとにレコードを更新する。時刻項目には、要求トークンを送信した時刻秒が記憶されている。ノード項目には、要求トークンの宛先になる通信装置Nの識別子が記憶されている。レイテンシ項目には、要求トークンを送信してから許可トークンを受信するまでの時間秒が記憶されている。送信スループット履歴の内容次に、図7を用いて、図3に示したRAM303に記憶されている送信スループット履歴の内容について、説明する。図7は、図3に示したRAM303に記憶されている送信スループット履歴の内容を示す説明図である。送信スループット履歴700は、時刻項目のそれぞれに対応付けてスループット項目を有し、メッセージMを送信するごとにレコードを構成する。時刻項目には、メッセージMの送信が依頼された時刻秒が記憶されている。スループット項目には、単位時間に送信されたメッセージMのデータ量Byte/秒が記憶されている。具体的には、送信したデータ量/今回の送信時刻-前回の送信時刻で算出できる。受信スループット履歴の内容次に、図8を用いて、図3に示したRAM303に記憶されている受信スループット履歴の内容について、説明する。図8は、図3に示したRAM303に記憶されている受信スループット履歴の内容を示す説明図である。受信スループット履歴800は、時刻項目のそれぞれに対応付けてスループット項目を有し、メッセージMを受信するごとにレコードを構成する。時刻項目には、メッセージMの送信が依頼された時刻秒が記憶されている。スループット項目には、単位時間に受信されたメッセージMのデータ量Byte/秒が記憶されている。具体的には、受信したデータ量/今回の受信時刻-前回の受信時刻で算出できる。許可トークン発行数情報の内容次に、図9を用いて、図3に示したRAM303に記憶されている許可トークン発行数情報の内容について、説明する。図9は、図3に示したRAM303に記憶されている許可トークン発行数情報の内容を示す説明図である。許可トークン発行数情報900は、発行可能数項目に対応付けて許可トークン発行数項目を有し、許可トークンを発行するごとにレコードを更新する。発行可能数項目には、許可トークンを発行可能な数が記憶されている。許可トークン発行数項目には、発行されている許可トークンの数が記憶されている。許可トークン発行履歴の内容次に、図10を用いて、図3に示したRAM303に記憶されている許可トークン発行履歴の内容について、説明する。図10は、図3に示したRAM303に記憶されている許可トークン発行履歴の内容を示す説明図である。許可トークン発行履歴1000は、時刻項目のそれぞれに対応付けてノード項目を有し、許可トークンを発行するごとにレコードを構成する。時刻項目には、許可トークンが発行された時刻秒が記憶されている。ノード項目には、許可トークンの宛先になる通信装置Nの識別子が記憶されている。通信相手リストの内容次に、図11を用いて、図3に示したRAM303に記憶されている通信相手リストの内容について、説明する。図11は、図3に示したRAM303に記憶されている通信相手リストの内容を示す説明図である。通信相手リスト1100は、ノード項目のそれぞれに対応付けてIPアドレス項目を有し、通信相手のノードごとにレコードを構成する。ノード項目には、通信相手になる通信装置Nの識別子が記憶されている。IPアドレス項目には、ノードを特定するIPアドレスが記憶されている。要求トークンリストの内容次に、図12を用いて、図3に示したRAM303に記憶されている要求トークンリストの内容について、説明する。図12は、図3に示したRAM303に記憶されている要求トークンリストの内容を示す説明図である。要求トークンリスト1200は、ノード項目のそれぞれに対応付けて時刻項目と、バッファ項目と、他バッファ項目と、残り時間項目と、を有し、要求トークンを受信するごとにレコードを構成する。ノード項目には、要求トークンの送信元になる通信装置Nの識別子が記憶されている。時刻項目には、要求トークンを受信した時刻秒が記憶されている。バッファ項目には、要求トークンの送信元における要求トークンの宛先へのメッセージMが格納されるバッファBに格納されているデータ量Byteが記憶されている。他バッファ項目には、要求トークンの宛先へのメッセージMが格納されるバッファBとは異なる他のバッファに格納されているデータ量Byteが記憶されている。残り時間項目には、要求トークンの送信元におけるメッセージMの送信期限までの残り時間が記憶されている。許可トークンリストの内容次に、図13を用いて、図3に示したRAM303に記憶されている許可トークンリストの内容について、説明する。図13は、図3に示したRAM303に記憶されている許可トークンリストの内容を示す説明図である。許可トークンリスト1300は、ノード項目のそれぞれに対応付けて時刻項目と、送信許可長項目と、を有し、許可トークンを受信するごとにレコードを構成する。ノード項目には、許可トークンの送信元になる通信装置Nの識別子が記憶されている。時刻項目には、許可トークンを受信した時刻秒が記憶されている。送信許可長項目には、許可トークンの送信元になるノードから許可された送信するデータの最大データ量Byteが記憶されている。通信装置Nの機能的構成例次に、図14および図15を用いて、通信装置Nの機能的構成例について説明する。ここでは、簡単のため、メッセージMの受信側としての通信装置Nの機能と、メッセージMの送信側としての通信装置Nの機能と、を分けて説明している。ただし、通信装置Nは、メッセージMの受信側としての機能と、メッセージMの送信側としての機能と、を併せて有してよい。図14は、メッセージMの受信側としての通信装置Nの機能的構成を示すブロック図である。通信装置Nは、受信部1401と、判定部1402と、送信部1403と、決定部1404と、を含む構成である。この制御部となる機能受信部1401~決定部1404は、具体的には、例えば、図3に示したROM302、RAM303などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F304により、その機能を実現する。受信部1401は、複数の送信元のうちいずれかの送信元から、いずれかの送信元から自通信装置Nへの送信を許可する送信権について、自通信装置Nを宛先にする送信対象データのデータ量を特定する情報を含む要求通知を受信する機能を有する。ここで、要求通知とは、上述した要求トークンである。送信権とは、上述した許可トークンである。送信対象データとは、上述したメッセージMである。データ量を特定する情報とは、自通信装置Nを宛先にするメッセージMが格納されるバッファB以下、自通信装置N宛のバッファBというに格納されているメッセージ量以下、自通信装置N宛のバッファリング量というを特定する情報である。例えば、データ量を特定する情報は、送信元での自通信装置N宛のバッファリング量の即値であり、さらに、送信元での自通信装置N宛のバッファBの容量を含んでもよい。また、送信元での自通信装置N宛のバッファBの容量と、自通信装置N宛のバッファリング量と、の比率であってもよい。なお、受信された要求トークンは、RAM303の要求トークンリスト1200に記憶される。具体的には、例えば、受信部1401は、送信元の識別子と、送信元での自通信装置N宛のバッファリング量と、を含む要求トークンを受信する。これにより、受信部1401は、送信権を付与する送信元を選択するための指標になる情報を受信できる。また、受信部1401によって受信された要求通知は、自通信装置Nとは異なる他の通信装置Nを宛先にする送信対象データのデータ量を特定する情報を含んでもよい。具体的には、例えば、要求トークンは、送信元での自通信装置Nとは異なる他の通信装置N宛のメッセージMが格納されるバッファB以下、他の通信装置N宛のバッファBというに格納されているメッセージ量以下、他の通信装置N宛のバッファリング量というを含む。これにより、受信部1401は、送信権を付与する送信元を選択するための指標になる情報を受信できる。また、受信部1401によって受信された要求通知は、いずれかの送信元における自通信装置Nを宛先にする送信対象データの送信期限に関する情報を含んでもよい。具体的には、例えば、要求トークンは、送信元での自通信装置N宛のメッセージMの送信期限までの残り時間を含む。これにより、受信部1401は、送信権を付与する送信元を選択するための指標になる情報を受信できる。判定部1402は、受信部1401によって受信された要求通知に基づいて、いずれかの送信元に送信権を付与するか否かを判定する機能を有する。なお、判定結果は、RAM303などの記憶領域に記憶される。具体的には、例えば、判定部1402は、要求通知に含まれる自通信装置Nを宛先にする送信対象データのデータ量を特定する情報と、他の送信元における自通信装置Nを宛先にする送信対象データ量を特定する情報と、を参照する。そして、判定部1402は、参照した情報に基づいて、いずれかの送信元に送信権を付与するか否かを判定する。より具体的には、例えば、判定部1402は、複数の送信元から受信した要求トークンに含まれる各送信元での自通信装置N宛のバッファリング量に基づいて、各送信元での自通信装置N宛のバッファBの逼迫具合を算出する。そして、判定部1402は、いずれかの送信元が他の送信元よりも逼迫具合が大きい場合には、いずれかの送信元に送信権を付与すると判定する。これにより、自通信装置N宛のバッファBがより逼迫している送信元に送信権を付与して、バッファBがあふれることを防止することができる。また、具体的には、例えば、判定部1402は、要求通知に含まれる自通信装置Nを宛先にする送信対象データのデータ量を特定する情報と、要求通知に含まれる他の通信装置Nを宛先にする送信対象データのデータ量を特定する情報と、を参照する。そして、判定部1402は、参照した情報に基づいて、いずれかの送信元に送信権を付与するか否かを判定する。より具体的には、例えば、判定部1402は、要求トークンに含まれる自通信装置N宛のバッファリング量より、他の通信装置宛のバッファリング量の方が多い場合、送信権を付与しない。これにより、判定部1402は、送信元において、自通信装置Nよりも優先してメッセージMを送信するべき他の通信装置Nがある場合は、送信権を付与せず、ネットワーク全体での効率化を図ることができる。また、具体的には、例えば、判定部1402は、送信権が付与されている送信元の数が閾値以上である場合、いずれかの送信元に送信権を付与しないと判定する。より具体的には、例えば、判定部1402は、許可トークンの発行数が、許可トークンの発行可能数である場合、送信権を付与しないと判定する。これにより、ネットワークのスループットを管理し、輻輳を抑制する。また、具体的には、例えば、判定部1402は、要求通知に含まれる送信期限に関する情報と、他の送信元における通信装置Nを宛先にする送信対象データの送信期限に関する情報と、に基づいて、いずれかの送信元に送信権を付与するか否かを判定する。より具体的には、例えば、判定部1402は、要求トークンに含まれる各送信元での自通信装置N宛のメッセージMの送信期限までの残り時間を参照する。そして、判定部1402は、参照した残り時間に基づいて、いずれかの送信元が他の送信元よりも送信期限までの残り時間が短い場合には、いずれかの送信元に送信権を付与すると判定する。これにより、より送信期限に切迫している送信元に送信権を付与して、送信期限までにメッセージMを送信できるようにする。送信部1403は、判定部1402によって送信権を付与すると判定されたいずれかの送信元に送信権を送信する機能を有する。ここで、送信権とは、上述した許可トークンである。具体的には、例えば、送信部1403は、自通信装置Nの識別子を含む許可トークンを、送信権を付与すると判定した送信元に送信する。これにより、送信部1403は、送信元に許可トークンを送信して、送信元にメッセージMの送信を開始させることができる。また、送信部1403は、判定部1402によって送信権を付与すると判定されたいずれかの送信元に決定部1404によって決定された許容データ量を含む送信権を送信する機能を有する。許容データ量とは、ネットワークが輻輳しないように、後述する決定部1404によって決定された送信権を付与した送信元が送信するメッセージ量の最大値である。具体的には、例えば、送信部1403は、自通信装置Nを示す識別子と、後述する決定部1404によって決定された許容データ量と、を含む許可トークンを送信する。これにより、ネットワークのスループットを考慮して決定された許容データ量を、通知するため、ネットワークの輻輳を抑制できる。決定部1404は、受信部1401によって受信された要求通知に基づいて、判定部1402によって送信権を付与すると判定されたいずれかの送信元が送信する送信対象データの許容データ量を決定する機能を有する。具体的には、例えば、決定部1404は、ネットワークのスループットや、要求トークンに含まれる自通信装置N宛のバッファリング量に基づいて、ネットワークを輻輳させない範囲で、送信元が送信するメッセージ量の最大値を決定する。また、決定された許容データ量は、RAM303などの記憶領域に記憶される。これにより、決定部1404は、ネットワークの輻輳を抑制するための、許容データ量を決定することができる。図15は、メッセージMの送信側としての通信装置Nの機能的構成を示すブロック図である。通信装置Nは、判定部1501と、通知部1502と、受信部1503と、送信部1504と、計測部1505を含む構成である。この制御部となる機能判定部1501~計測部1505は、具体的には、例えば、図3に示したROM302、RAM303などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F304により、その機能を実現する。判定部1501は、複数の宛先のうちいずれかの宛先への送信対象データのデータ量に基づいて、いずれかの宛先に、前記通信装置から前記いずれかの宛先への送信を許可する送信権を要求するか否かを判定する機能を有する。ここで、送信権とは、上述した許可トークンである。送信対象データとは、上述したメッセージMである。いずれかの宛先への送信対象データのデータ量とは、宛先となる通信装置N宛のメッセージMが格納されるバッファBに格納されているメッセージ量である。具体的には、例えば、判定部1501は、いずれかの宛先への送信対象データのデータ量が閾値以上である場合、いずれかの宛先に送信権を要求すると判定する。ここで、閾値とは、後述する目標バッファリング量であり、バッファBがあふれないように、バッファBがあふれる前にメッセージMを送信するための指標となる値である。例えば、閾値は、バッファBの容量×安全係数例えば、0.6である。また、例えば、閾値は、バッファBの容量-平均の送信スループット×平均の要求トークンのレイテンシである。これにより、判定部1501は、バッファBがあふれる前に、要求トークンを送信するトリガを発生させることができる。通知部1502は、判定部1501によって送信権を要求すると判定された場合、いずれかの宛先への送信対象データのデータ量を特定する情報を含む要求通知を、いずれかの宛先に通知する機能を有する。ここで、要求通知とは、上述した要求トークンである。具体的には、例えば、通知部1502は、送信権を要求すると判定された宛先へ、要求トークンを送信する。これにより、自通信装置Nに送信権を付与させるためのトリガとなる要求トークンを、メッセージMの宛先に送信することができる。また、通知部1502は、計測部1505によって計測された経過時間が、いずれかの宛先への送信対象データの送信期限に基づく閾値以上である場合、要求通知をいずれかの宛先に通知する機能を有する。ここで、送信期限とは、アプリケーションが許容できるメッセージMのレイテンシ送信依頼から送信までの時間の最大値以下、最大許容レイテンシである。送信期限に基づく閾値とは、後述するデッドラインであり、送信期限の前にメッセージMを送信するための指標となる値である。例えば、送信期限に基づく閾値は、最大許容レイテンシ×安全係数例えば、0.6である。また、例えば、送信期限に基づく閾値は、最大許容レイテンシ-平均の要求トークンのレイテンシである。具体的には、例えば、通知部1502は、後述する計測部1505によってメッセージMが生成されてからの経過時間を測定し、経過時間が送信期限に基づく閾値以上になったとき、要求トークンを通知する。これにより、判定部1501は、送信期限を経過する前に、自通信装置Nに送信権を付与させるためのトリガとなる要求トークンを、メッセージMの宛先に送信することができる。また、要求通知は、いずれかの宛先への送信対象データの送信期限に関する情報を含んでもよい。送信期限に関する情報とは、例えば、メッセージMの生成からの経過時間である。また、送信期限に関する情報とは、例えば、送信期限までの残り時間でもよい。これにより、宛先において送信権を付与するか否かを判定するための指標となる情報になる送信期限に関する情報を、宛先に提供することができる。要求通知は、いずれかの宛先とは異なる他の宛先への送信対象データのデータ量を示す情報を含んでもよい。ここで、他の宛先への送信対象データのデータ量を示す情報とは、例えば、他の宛先へのメッセージMが格納されるバッファBに格納されているメッセージ量である。これにより、宛先において送信権を付与するか否かを判定するための指標となる情報になる他の宛先へのメッセージMが格納されるバッファBに格納されているメッセージ量を、宛先に提供することができる。受信部1503は、通知部1502によって要求通知が通知された結果、いずれかの宛先から送信権を受信する機能を有する。ここで、送信権とは、上述した許可トークンである。具体的には、例えば、受信部1503は、要求トークンを通知した宛先から、宛先の識別子を含む許可トークンを受信する。また、送信権は送信する送信対象データの許容データ量を含んでもよい。これにより、受信部1503は、送信権を得ることができる。また、これにより、受信部1503は、送信するメッセージ量の最大値を受信することができる。なお、受信された許可トークンは、RAM303の許可トークンリスト1300に記憶される。送信部1504は、受信部1503によって送信権が受信された場合、いずれかの宛先への送信対象データをいずれかの宛先に送信する機能を有する。具体的には、送信部1504は、許可トークンが受信された場合、バッファに格納されているメッセージMを宛先に送信する。これにより、送信部1504は、許可トークンを受信してからメッセージMを送信するため、ネットワークでのメッセージMの衝突を回避することができる。また、送信部1504は、いずれかの宛先への送信対象データのうち、許容データ量以下の送信対象データを、いずれかの宛先に送信する機能を有する。具体的には、送信部1504は、許可トークンが受信された場合、バッファに格納されているメッセージMから、許容データ量以下のメッセージMを取り出して宛先に送信する。これにより、送信部1504は、許可トークンを受信してから許容データ量以下のメッセージMを送信するため、ネットワークでのメッセージMの衝突を回避し、輻輳を抑制することができる。計測部1505は、いずれかの宛先への送信対象データを生成したときからの経過時間を計測する機能を有する。具体的には、計測部1505は、アプリケーションがメッセージMを生成したときに計時を開始して、経過時間を計測する。これにより、計測部1505は、メッセージMの送信期限までの時間を把握できる。通信の準備次に、図16および図17を用いて、通信装置Nが通信の準備としておこなう処理について説明する。初期化処理の詳細まず、図16を用いて、通信装置Nが通信をはじめる前におこなう初期化処理の詳細について説明する。図16は、初期化処理の詳細を示すフローチャートである。まず、CPU301は、アプリケーションI/F307を初期化するステップS1601。アプリケーションI/F307の初期化において、後述するアプリケーション利用登録処理がおこなわれる。次に、CPU301は、バッファBを初期化するステップS1602。また、CPU301は、統計情報送信長履歴400、送信スループット履歴700、受信スループット履歴800を初期化するステップS1603。そして、CPU301は、通信相手リスト1100を作成するステップS1604。次に、CPU301は、要求トークンを初期化してステップS1605、初期化処理を終了する。これにより、通信装置Nは、通信をはじめることができるようになる。アプリケーション利用登録処理の詳細次に、図17を用いて、通信装置Nが、受信したメッセージMをアプリケーションへ引き渡すためにおこなうアプリケーション利用登録処理の詳細について説明する。図17は、アプリケーション利用登録処理の詳細を示すフローチャートである。まず、CPU301は、受信関数を登録するステップS1701。次に、CPU301は、受信バッファを登録するステップS1702。そして、CPU301は、最大許容レイテンシを登録しステップS1703、アプリケーション利用登録処理を終了する。これにより、通信装置Nは、受信したメッセージMをアプリケーションに引き渡すことができるようになる。メッセージMを送信する側の通信装置Nの処理次に、図18~図20を用いて、メッセージMを送信する側の通信装置Nの処理について説明する。具体的には、例えば、図1に示した通信装置N1,N3の処理である。要求トークンの送信の内容まず、図18を用いて、メッセージMを送信する側の通信装置Nによる要求トークンの送信の内容について説明する。図18は、要求トークンの送信の内容を示す説明図である。通信装置Nは、バッファBがあふれないように、バッファBがあふれる前にメッセージMを送信するための指標となる目標バッファリング量を算出しておく。ここで、通信装置Nは、送信スループット履歴700から、平均の送信スループットを算出しておく。また、通信装置Nは、要求トークンレイテンシ履歴600から、平均の要求トークンのレイテンシを算出しておく。そして、通信装置Nは、目標バッファリング量として、例えば、バッファBの容量-平均の送信スループット×平均の要求トークンのレイテンシを算出しておく。ただし、通信装置Nは、送信長履歴400や送信依頼履歴500を参照して、目標バッファリング量をさらに調整してもよい。例えば、通信装置Nは、送信長履歴400を参照して、過去に頻繁に少量のメッセージMを送信している場合には、要求トークンの送信をより頻繁におこなうために、目標バッファリング量を低く調整してもよい。また、通信装置Nは、送信依頼履歴500を参照して、過去にアプリケーションから大量のメッセージMが送信依頼されたことがある場合は、目標バッファリング量を低く調整してもよい。1そして、通信装置Nは、算出した目標バッファリング量より、バッファBのバッファリング量が多くなったとき、要求トークンを送信する。これにより、通信装置Nは、バッファBがあふれる前に、要求トークンを送信するトリガを発生させることができる。また、通信装置Nは、送信期限の前にメッセージMを送信するための指標となるデッドラインを算出しておく。送信期限とは、アプリケーションが許容できるメッセージMのレイテンシ送信依頼から送信までの時間の最大値以下、最大許容レイテンシである。通信装置Nは、例えば、デッドラインとして、最大許容レイテンシ-平均の要求トークンのレイテンシを算出しておく。2そして、通信装置Nは、メッセージMが生成されてからの経過時間を測定し、経過時間が算出したデッドラインを超えた場合に、要求トークンを送信する。これにより、通信装置Nは、送信期限を経過する前に、自通信装置Nに送信権を付与させるためのトリガとなる要求トークンを、メッセージMの宛先に送信することができる。バッファ管理処理の詳細次に、図19を用いて、図18に示した要求トークンを送信する通信装置Nによるバッファ管理処理の詳細について説明する。図19は、バッファ管理処理の詳細を示すフローチャートである。まず、CPU301は、サイズが小さいか否かを判定するステップS1901。ここで、サイズが小さい場合ステップS1901:Yes、CPU301は、データをバッファBにコピーしてステップS1902、ステップS1904に移行する。一方で、サイズが大きい場合ステップS1901:No、CPU301は、データをバッファBに連結してステップS1903、ステップS1904に移行する。次に、CPU301は、バッファリング量を更新してステップS1904、バッファリング量が目標バッファリング量以上か否かを判定するステップS1905。ここで、目標バッファリング量以上である場合ステップS1905:Yes、CPU301は、要求トークン送信処理ステップS1907に移行する。一方、目標バッファリング量より小さい場合ステップS1905:No、CPU301は、送信依頼からの経過時間がデッドラインを超えているか否かを判定するステップS1906。ここで、デッドラインを超えている場合ステップS1906:Yes、CPU301は、要求トークン送信処理ステップS1907に移行する。一方、デッドラインを超えていない場合ステップS1906:No、CPU301は、バッファ管理処理を終了する。これにより、バッファBの容量が枯渇する前に要求トークンを送信することができる。要求トークン送信処理の詳細次に、図20を用いて、図19に示した要求トークン送信処理の詳細について説明する。要求トークンには、送信元を示す識別子と、宛先になる通信装置N宛のバッファリング量と、が含まれる。図20は、要求トークン送信処理の詳細を示すフローチャートである。まず、CPU301は、要求トークンを生成するステップS2001。次に、CPU301は、生成した要求トークンを送信しステップS2002、要求トークン送信処理を終了する。これにより、通信装置Nは、要求トークンを送信することができる。ここで、生成される要求トークンには、例えば、送信元の通信装置Nの識別子と、要求トークンの宛先の通信装置N宛のメッセージMが格納されるバッファBへ格納されているメッセージ量と、が含まれている。また、要求トークンには、要求トークンの宛先とは異なる他のバッファBへ格納されているメッセージ量を含んでもよい。また、要求トークンには、要求トークンの宛先の通信装置N宛のメッセージMの送信期限に関する情報例えば、送信期限までの残り時間を含んでもよい。メッセージMを受信する側の通信装置Nの処理次に、図21~図23を用いて、メッセージMを受信する側の通信装置Nの処理について説明する。許可トークンの送信の内容まず、図21を用いて、要求トークンを受信した通信装置Nによる許可トークンの送信の内容について説明する。なお、通信装置Nは、受信した要求トークンから、要求トークンリスト1200を生成している。図21は、許可トークンの送信の内容を示す説明図である。ここで、通信装置は、要求トークンリスト1200の各レコードを参照して、許可トークンの送信対象になりうる通信装置Nを決定する。1例えば、通信装置Nは、自通信装置N宛のバッファBのメッセージ量が多い、通信装置N2を許可トークンの送信対象にする。2また、例えば、通信装置Nは、自通信装置N宛のバッファBとは異なる他のバッファBが逼迫している通信装置N3は、許可トークンの送信対象にしない。3また、例えば、通信装置Nは、残り時間が少ない通信装置N4を許可トークンの送信対象にする。4また、例えば、通信装置Nは、自通信装置N宛のバッファBのメッセージ量が多い、通信装置N5を許可トークンの送信対象にする。5そして、通信装置Nは、送信対象にした複数の通信装置Nの数に応じて、許可トークンの発行可能数を増やす。そして、通信装置Nは、増やした発行可能数以内で、送信対象にした通信装置Nに送信する許可トークンの数を決定する。なお、ここでは、送信対象になった通信装置Nの数に応じて、許可トークンの発行可能数を動的に増やしているが、発行可能数は固定値であってもよい。発行可能数が固定値である場合は、通信装置Nは、固定値以内で、送信する許可トークンの数を決定する。6さらに、通信装置Nは、決定した送信する許可トークンの数と、ネットワークのスループットに基づいて、ネットワークが輻輳しない範囲で、送信元の通信装置Nが送信する許容データ量を決定する。例えば、送信する許可トークンの数が多い場合は、各通信装置Nが送信する許容データ量を少なくする。具体的には、ネットワークのスループット/送信する許可トークンの数で算出できる。7そして、通信装置Nは、決定した許容データ量を含む許可トークンを送信対象にした通信装置Nに送信する。これにより、ネットワークを輻輳させない範囲で、複数の通信装置Nに、メッセージMを送信させることができる。他の宛先へのバッファリング量を含む要求トークンに基づく許可トークンの送信また、図22を用いて、他の宛先へのバッファリング量を含む要求トークンを受信した通信装置Nがおこなう許可トークンの送信について説明する。具体的には、図21の2に示した処理の内容である。図22は、他の宛先へのバッファリング量を含む要求トークンに基づく許可トークンの送信の内容を示す説明図である。ここで、図22に示す通信システムは、図1と同様に、複数の通信装置N図22では、例えば、3台の通信装置N1~N3がネットワークを介して接続され、メッセージMの送受信をおこなうシステムである。また、通信システムは、ネットワークにおいて中継をおこなう機器であるスイッチングハブSHを含む。また、各通信装置Nは、図1と同様にそれぞれバッファBを有している。ここで、通信装置N1が通信装置N2,N3のそれぞれにメッセージMを送信する場合を例に挙げて、通信装置Nによる通信の内容について説明する。図22において、1通信装置N1は、通信装置N2宛のメッセージMがバッファB1t2に格納されているため、通信装置N2に要求トークンを送信する。そして、通信装置N1は、通信装置N2からの許可トークンの受信を待つ。2また、通信装置N1は、通信装置N3宛のメッセージMがバッファB1t3に格納されているため、通信装置N3に要求トークンを送信する。そして、通信装置N1は、通信装置N3からの許可トークンの受信を待つ。ここで、それぞれの要求トークンには、メッセージMの送信元となる通信装置N1の識別子と、バッファB1t2に格納されているメッセージ量と、バッファB1t3に格納されているメッセージ量と、を含ませておく。格納されているメッセージ量は、それぞれのバッファBの逼迫具合の指標となる情報である。3通信装置N1から要求トークンを受信した通信装置N2は、要求トークンに含まれるバッファB1t2へ格納されているメッセージ量と、バッファB1t3に格納されているメッセージ量と、を参照して、通信装置N1に送信権を付与するか否かを判定する。ここでは、バッファB1t3へ格納されているメッセージ量は、バッファB1t2へ格納されているメッセージ量より多い。そのため、通信装置N2は、通信装置N1には通信装置N2宛のバッファB1t2よりも通信装置N3宛のバッファB1t3に格納されたメッセージMの送信を優先させるべきであると判定する。そして、通信装置N2は通信装置N1に送信権を付与しない。4一方、通信装置N1から要求トークンを受信した通信装置N3は、要求トークンに含まれるバッファB1t2へ格納されているメッセージ量と、バッファB1t3に格納されているメッセージ量と、を参照する。そして、通信装置N3は、参照したメッセージ量に基づいて、通信装置N1に送信権を付与するか否かを判定する。5ここでは、バッファB1t3へ格納されているメッセージ量は、バッファB1t2へ格納されているメッセージ量より多い。そのため、通信装置N3は、通信装置N1に通信装置N2宛のバッファB1t2よりも通信装置N3宛のバッファB1t3に格納されたメッセージMの送信を優先させるべきであると判定する。そして、通信装置N3は、通信装置N1に通信装置N3宛のバッファB1t3があふれる前にメッセージMを送信させるべきであると判定して、通信装置N1に送信権を付与する。このように、送信元での複数のバッファBの逼迫具合に基づいて、送信権を付与するかを決定するため、1対1の通信装置N間の効率化ではなく、ネットワーク全体での効率化を図ることができる。また、これにより、送信側の通信装置Nでより逼迫しているバッファBに格納されているメッセージMの送信を優先させて、バッファBの容量の枯渇を回避することができる。許可トークン送信処理次に、図23を用いて、要求トークンを受信した通信装置Nがおこなう許可トークン送信処理について説明する。具体的には、例えば、図1に示した通信装置N2がおこなう処理である。図23は、許可トークン送信処理の詳細を示すフローチャートである。まず、CPU301は、要求トークンを受信したか否かを判定するステップS2301。ここで、要求トークンを受信していない場合ステップS2301:No、CPU301は、ステップS2301に戻り、要求トークンの受信を待つ。一方、要求トークンを受信した場合ステップS2301:Yes、CPU301は、統計情報を更新するステップS2302。次に、受信スループットに余裕がある場合には、CPU301は、許可トークンを送信する要求トークンの個数が、上限値を超えているか否かを判定するステップS2303。ここで、上限値を超えている場合ステップS2303:Yes、CPU301は、許可トークンの発行可能数を増加させてステップS2304、ステップS2307に移行する。一方、上限値を超えていない場合ステップS2303:Noで、受信スループットに余裕がない場合には、CPU301は、許可トークンを送信する要求トークンの個数が、下限値を下回っているか否かを判定するステップS2305。ここで、下限値を下回っている場合ステップS2305:Yes、CPU301は、許可トークンの発行可能数を減少させてステップS2306、ステップS2307に移行する。ステップS2307では、CPU301は、許容データ量を発行可能数に応じて調整してステップS2307、ステップS2308に移行する。一方、下限値を下回らない場合ステップS2305:No、CPU301は、ステップS2308に移行する。そして、CPU301は、受信スループットが上限値より大きいか否かを判定するステップS2308。ここで、上限値より大きい場合ステップS2308:Yes、CPU301は、許容データ量を短くしてステップS2309、ステップS2312に移行する。一方、上限値以下の場合ステップS2308:No、CPU301は、受信スループットが下限値より小さいか否かを判定するステップS2310。ここで、下限値より小さい場合ステップS2310:Yes、CPU301は、許容データ量を長くしてステップS2311、ステップS2312に移行する。一方、下限値以上の場合ステップS2310:No、CPU301は、ステップS2312に移行する。ステップS2312では、CPU301は、許容データ量を含む許可トークンを送信しステップS2312、許可トークン送信処理を終了する。これにより、通信装置Nは、許可トークンを送信することができる。また、通信装置Nは、要求トークンの数に応じて、許可トークンを送信する数を動的に変更することができる。また、通信装置Nは、送信元が送信する許容データ量を算出することができる。メッセージ送信処理の詳細次に、図24を用いて、許可トークンを受信した通信装置Nがおこなうメッセージ送信処理の詳細について説明する。具体的には、例えば、図1に示した通信装置N3がおこなう処理である。図24は、メッセージ送信処理の詳細を示すフローチャートである。まず、CPU301は、許可トークンを受信したか否かを判定するステップS2401。ここで、許可トークンを受信していない場合ステップS2401:No、CPU301は、ステップS2401に戻り、許可トークンの受信を待つ。一方、許可トークンを受信した場合ステップS2401:Yes、CPU301は、要求トークン実績情報送信長履歴400、要求トークンレイテンシ履歴600、許可トークンリスト1300を更新するステップS2402。次に、CPU301は、送信すべき状況であるか否かを判定するステップS2403。ここで、送信すべき状況ではない場合ステップS2403:No、CPU301は、ステップS2405に移行する。一方、送信すべき状況である場合ステップS2403:Yes、CPU301は、メッセージMを送信するステップS2404。ただし、許可トークンに許容データ量が含まれている場合、CPU301は、許容データ量以下のメッセージMを送信する。次に、CPU301は、通信終了通知を送信しステップS2405、許可トークンを削除してステップS2406、メッセージ送信処理を終了する。これにより、通信装置Nは、許可トークンの受信を待ってから、メッセージMを送信することができる。そのため、ネットワークでのメッセージMの衝突を回避できる。メッセージ受信処理の詳細次に、図25を用いて、メッセージMを受信した通信装置Nがおこなうメッセージ受信処理の詳細について説明する。具体的には、例えば、図1に示した通信装置N2がおこなう処理である。図25は、メッセージ受信処理の詳細を示すフローチャートである。まず、CPU301は、メッセージMを受信したか否かを判定するステップS2501。ここで、メッセージMを受信していない場合ステップS2501:No、CPU301は、ステップS2501に戻り、メッセージMの受信を待つ。一方、メッセージMを受信した場合ステップS2501:Yes、CPU301は、メッセージMをアプリケーションに引き渡すステップS2502。そして、CPU301は、統計情報を更新してステップS2503、メッセージ受信処理を終了する。これにより、通信装置Nは、アプリケーションにメッセージMを引き渡して処理をさせることができる。以上説明したように、通信装置、通信方法、および通信プログラムによれば、複数の送信元から受信した要求トークンに含まれる各送信元でのバッファリング量に基づいて、よりバッファBが逼迫している送信元に送信権を与える。また、送信元では、送信権を受信するまで、メッセージMの送信をおこなわない。これにより、各送信元でのバッファBがあふれないようにすると共に、ネットワークに送信されるメッセージ量を管理して、メッセージMの衝突を回避し、輻輳を抑制できる。そして、輻輳を抑制できるため、輻輳に起因する通信時間の増加を回避することができ、ネットワーク全体の通信フェーズを短縮することができる。また、要求トークンに、送信元での複数のバッファBのバッファリング量を含めることにより、送信元で最も逼迫しているバッファのメッセージMを優先して送信させるようにして、バッファBがあふれないようにすることができる。また、送信元での複数のバッファBのバッファリング量に基づいて、送信権を付与するかを決定するため、1対1の通信装置N間の効率化ではなく、ネットワーク全体での効率化を図ることができる。また、通信装置Nは、一度に送信権を与える送信元の数を閾値以下にして、ネットワークに送信されるメッセージ量を管理して、メッセージMの衝突を回避し、輻輳を抑制できる。また、要求トークンに、送信元でのメッセージMの送信期限に関する情報を含めることにより、送信期限が迫っている送信元に優先して送信権を与えるため、送信元では、メッセージMを送信期限までに送信することができる。また、通信装置Nは、送信元が送信するメッセージ量の上限を定め、送信元では、定められた上限以下のメッセージMを送信する。これにより、ネットワークに送信されるメッセージ量を管理して、メッセージMの衝突を回避し、輻輳を抑制できる。送信元では、バッファBのバッファリング量に基づいて、要求トークンを送信するか否かを判定する。これにより、バッファBがあふれる前に、要求トークンを送信して、送信権を受け取ることができる。また、送信元では、メッセージMの送信期限に基づいて、要求トークンを送信するか否かを判定する。これにより、送信期限より前に、要求トークンを送信して、メッセージMを送信期限までに送信することができる。ここで、クラスタなどの分散並列計算機を使った処理の分野には、処理過程での演算結果に依存して通信相手が決定され、予め通信相手がどの通信装置になるかを予測することが困難な種類の処理がある。例えば、MapReduceのshuffle、Key-ValueStorageシステム、または分散ComplexEventProcessingなどでの処理である。このような予め通信相手が予測困難な処理に対しては、アルゴリズムと、通信装置の物理的配置および時間的配置と、を工夫しておくことにより、メッセージ通信を予めスケジューリングして、衝突を回避し輻輳を抑制することができないという問題がある。しかしながら、本実施の形態にかかる通信装置、通信方法、および通信プログラムは、このような予め通信相手が予測困難な処理に対しても適用可能であり、メッセージMの衝突を回避し輻輳を抑制することができる。また、メッセージMが衝突した場合、輻輳を抑制する技術には、TCP/IPTransmissionControlProtocol/InternetProtocolのフロー制御やEthernet登録商標のパケット衝突回避技術がある。しかし、TCP/IPのフロー制御やEthernet登録商標のパケット衝突回避技術では、メッセージMの衝突があってから輻輳を抑制する効果があらわれるまでに、ネットワーク上においてパケットロスが発生するという問題がある。また、Ethernet登録商標スイッチでの制御切替のためにオーバヘッドが生じるという問題がある。また、受信データ量の過多により、受信側の通信装置で、キャッシュミスヒットやメモリ不足が生じるという問題がある。しかしながら、本実施の形態にかかる通信装置、通信方法、および通信プログラムは、TCP/IPのフロー制御やEthernet登録商標のパケット衝突回避技術のようにパケットロスやキャッシュミスヒットやメモリ不足を生じることなく、メッセージMの衝突を回避し輻輳を抑制することができる。なお、本実施の形態で説明した通信方法は、予め用意された通信プログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信プログラムは、インターネット等のネットワークを介して配布してもよい。上述した実施の形態に関し、さらに以下の付記を開示する。付記1複数の送信元と通信する通信装置であって、前記複数の送信元のうちいずれかの送信元から、前記いずれかの送信元から前記通信装置への送信を許可する送信権について、前記通信装置を宛先にする送信対象データのデータ量を特定する情報を含む要求通知を受信する受信手段と、前記受信手段によって受信された要求通知に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定する判定手段と、前記判定手段によって前記送信権を付与すると判定された前記いずれかの送信元に前記送信権を送信する送信手段と、を備えることを特徴とする通信装置。付記2前記判定手段は、前記要求通知に含まれる前記通信装置を宛先にする送信対象データのデータ量を特定する情報と、他の送信元における前記通信装置を宛先にする送信対象データのデータ量を特定する情報と、に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定することを特徴とする付記1に記載の通信装置。付記3前記受信手段によって受信された要求通知は、前記通信装置とは異なる他の通信装置を宛先にする送信対象データのデータ量を特定する情報を含み、前記判定手段は、前記要求通知に含まれる前記通信装置を宛先にする送信対象データのデータ量を特定する情報と、前記要求通知に含まれる前記他の通信装置を宛先にする送信対象データのデータ量を特定する情報と、に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定することを特徴とする付記1または2に記載の通信装置。付記4前記判定手段は、前記送信権が付与されている送信元の数が閾値以上である場合、前記いずれかの送信元に前記送信権を付与しないと判定することを特徴とする付記1~3のいずれか一つに記載の通信装置。付記5前記受信手段によって受信された要求通知は、前記いずれかの送信元における前記通信装置を宛先にする送信対象データの送信期限に関する情報を含み、前記判定手段は、前記要求通知に含まれる送信期限に関する情報と、他の送信元における前記通信装置を宛先にする送信対象データの送信期限に関する情報と、に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定することを特徴とする付記1~4のいずれか一つに記載の通信装置。付記6前記受信手段によって受信された要求通知に基づいて、前記判定手段によって前記送信権を付与すると判定された前記いずれかの送信元が送信する送信対象データの許容データ量を決定する決定手段を備え、前記送信手段は、前記判定手段によって前記送信権を付与すると判定された前記いずれかの送信元に前記決定手段によって決定された許容データ量を含む前記送信権を送信することを特徴とする付記1~5のいずれか一つに記載の通信装置。付記7複数の宛先と通信する通信装置であって、前記複数の宛先のうちいずれかの宛先への送信対象データのデータ量に基づいて、前記いずれかの宛先に、前記通信装置から前記いずれかの宛先への送信を許可する送信権を要求するか否かを判定する判定手段と、前記判定手段によって前記送信権を要求すると判定された場合、前記いずれかの宛先への送信対象データのデータ量を特定する情報を含む前記要求通知を、前記いずれかの宛先に通知する通知手段と、前記通知手段によって前記要求通知が通知された結果、前記いずれかの宛先から前記送信権を受信する受信手段と、前記受信手段によって前記送信権が受信された場合、前記いずれかの宛先への送信対象データを前記いずれかの宛先に送信する送信手段と、を備えることを特徴とする通信装置。付記8前記判定手段は、前記いずれかの宛先への送信対象データのデータ量が閾値以上である場合、前記いずれかの宛先に送信権を要求すると判定することを特徴とする付記7に記載の通信装置。付記9前記いずれかの宛先への送信対象データを生成したときからの経過時間を計測する計測手段を備え、前記通知手段は、前記計測手段によって計測された経過時間が、前記いずれかの宛先への送信対象データの送信期限に基づく閾値以上である場合、前記要求通知を前記いずれかの宛先に通知することを特徴とする付記7または8に記載の通信装置。付記10前記要求通知は、前記いずれかの宛先への送信対象データの送信期限に関する情報を含むことを特徴とする付記7~9のいずれか一つに記載の通信装置。付記11前記要求通知は、前記いずれかの宛先とは異なる他の宛先への送信対象データのデータ量を示す情報を含むことを特徴とする付記7~10のいずれか一つに記載の通信装置。付記12前記送信権は送信する送信対象データの許容データ量を含み、前記送信手段は、前記いずれかの宛先への送信対象データのうち、前記許容データ量以下の送信対象データを、前記いずれかの宛先に送信することを特徴とする付記7~11のいずれか一つに記載の通信装置。付記13複数の送信元と通信する通信装置が、前記複数の送信元のうちいずれかの送信元から、前記いずれかの送信元から前記通信装置への送信を許可する送信権について、前記通信装置を宛先にする送信対象データのデータ量を特定する情報を含む要求通知を受信し、受信された要求通知に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定し、前記送信権を付与すると判定された前記いずれかの送信元に前記送信権を送信する、ことを特徴とする通信方法。付記14複数の宛先と通信する通信装置が、前記複数の宛先のうちいずれかの宛先への送信対象データのデータ量に基づいて、前記いずれかの宛先に、前記通信装置から前記いずれかの宛先への送信を許可する送信権を要求するか否かを判定し、前記送信権を要求すると判定された場合、前記いずれかの宛先への送信対象データのデータ量を特定する情報を含む前記要求通知を、前記いずれかの宛先に通知し、前記要求通知が通知された結果、前記いずれかの宛先から前記送信権を受信し、前記送信権が受信された場合、前記いずれかの宛先への送信対象データを前記いずれかの宛先に送信する、ことを特徴とする通信方法。付記15複数の送信元と通信する通信装置に、前記複数の送信元のうちいずれかの送信元から、前記いずれかの送信元から前記通信装置への送信を許可する送信権について、前記通信装置を宛先にする送信対象データのデータ量を特定する情報を含む要求通知を受信し、受信された要求通知に基づいて、前記いずれかの送信元に前記送信権を付与するか否かを判定し、前記送信権を付与すると判定された前記いずれかの送信元に前記送信権を送信する、処理を実行させることを特徴とする通信プログラム。付記16複数の宛先と通信する通信装置に、前記複数の宛先のうちいずれかの宛先への送信対象データのデータ量に基づいて、前記いずれかの宛先に、前記通信装置から前記いずれかの宛先への送信を許可する送信権を要求するか否かを判定し、前記送信権を要求すると判定された場合、前記いずれかの宛先への送信対象データのデータ量を特定する情報を含む前記要求通知を、前記いずれかの宛先に通知し、前記要求通知が通知された結果、前記いずれかの宛先から前記送信権を受信し、前記送信権が受信された場合、前記いずれかの宛先への送信対象データを前記いずれかの宛先に送信する、処理を実行させることを特徴とする通信プログラム。"