JP2008052340A - オーバーレイネットワークでピア・ツー・ピアのファイル送受信を行うコンピュータプログラム - Google Patents

オーバーレイネットワークでピア・ツー・ピアのファイル送受信を行うコンピュータプログラム Download PDF

Info

Publication number
JP2008052340A
JP2008052340A JP2006225268A JP2006225268A JP2008052340A JP 2008052340 A JP2008052340 A JP 2008052340A JP 2006225268 A JP2006225268 A JP 2006225268A JP 2006225268 A JP2006225268 A JP 2006225268A JP 2008052340 A JP2008052340 A JP 2008052340A
Authority
JP
Japan
Prior art keywords
node
file
computer
relay node
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006225268A
Other languages
English (en)
Other versions
JP4915848B2 (ja
Inventor
Hiromi Uwada
弘美 宇和田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2006225268A priority Critical patent/JP4915848B2/ja
Publication of JP2008052340A publication Critical patent/JP2008052340A/ja
Application granted granted Critical
Publication of JP4915848B2 publication Critical patent/JP4915848B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ネットワークの状態に関わらずにP2Pでのファイル送受信を成功させられるようにする。
【解決手段】要求ノードと提供ノードとの間の経路にボトルネックが発生した場合、提供ノードによって、そのボトルネック部分よりも提供ノード側にあるP2Pノードが中継ノードとして決定される。提供ノードは、中継ノードにファイルを送信し、ファイル送信に成功したならば、その中継ノードに、要求ノードへのファイル送信を依頼する。中継ノードは、受信したファイルを一時格納し、提供ノードからファイル送信の依頼を受けたならば、ボトルネックが解消された場合に、その一時格納したファイルを要求ノードに送信する。
【選択図】図5

Description

本発明は、ピア・ツー・ピアのファイル送受信の技術に関する。
例えば、非特許文献1に開示されているような、IPマルチキャストによるデータ配信技術が知られている。IPマルチキャストは、テレビ放送のように多くの端末に一斉にデータを配信することが可能である。しかし、その反面、端末間で自由に大きなデータを交換する使い方には向いていない。なぜなら、IPマルチキャストでは、送信と受信の同時性が要求され、且つ、データを中継するルータには、データキャッシュ用のメモリ(一次記憶装置)があるものの大サイズのデータを記憶できるような二次記憶装置(例えばハードディスク)がないため、大きなデータを長時間保存することができないためである。
そこで、端末間で自由に大きなデータを交換するための方法として、ピア・ツー・ピア(以下、「P2P」と表記)でファイルを送受信する方法が考えられる。P2Pでのファイル送受信は、例えば非特許文献2に開示されているオーバーレイネットワークで行われる。オーバーレイネットワークという言葉は、一般に、下位レイヤを隠蔽するためにレイヤを重ねる操作、または、重なった場合の上位レイヤを指すが、本明細書では、後者の意味で用いることにする。オーバーレイネットワーク(以下、P2Pネットワーク)でのP2Pのファイル送受信であれば、
下位レイヤのネットワークを意識せずに(例えば、IPネットワークに存在するセグメントを意識せずに)、ユーザは、アップロードやダウンロードの相手方を自由に取捨選択できる。
http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/bidirectional_video/18_2.htm http://japan.internet.com/column/webtech/20050303/8.html
しかし、一般に、P2Pのファイル送受信を行う端末には、経路についての具体的な情報が保持されない。また、P2Pネットワークの各端末(以下、P2Pノード)は常に電源オン状態になっているとは限らないので、所定の応答を返さなくなったP2PノードをそのP2Pネットワークから直ちに排除するのが一般的である。
また、P2Pでのファイル送受信を行うための条件の一つとして、IPマルチキャスト等のように、或る程度以上の密度でP2Pノードが存在することが必要である。密度が小さいと、問合せに対する応答が得られにくく、そのため、ファイルを入手できる可能性が低くなるためである。具体的には、下位レイヤのネットワークでは、TTL(Time To Live)を含めた問合せ(例えばpingの送信)が行われ、或る程度以上の密度が無いと、そのTTLが所定値(典型的にはゼロ)に減るまでに受信できるP2Pノードの数が少なくなってしまうためである。
さらに、P2Pノードの密度が或る程度以上に高くても、ネットワークの状態が不安定であると(例えば、帯域が不十分であると)、その密度が低いのと同じ状態になる。具体的には、遠方のP2Pノードとは、ネットワーク帯域を継続して確保できないことがあり、そのために、ファイルの送受信に失敗することがある。
以上のように、従来のP2Pは、通信経路を維持する仕組みが脆弱なので、恒常的な通信に向いていない。
従って、本発明の目的は、ネットワークの状態に関わらずにP2Pでのファイル送受信を成功させられるようにすることにある。
本発明に従うコンピュータプログラムは、下位レイヤのネットワークでの通信を制御する下位レイヤ通信プログラムが実行されるコンピュータに、前記下位レイヤのネットワークの上位に重ねられたオーバーレイネットワークでP2Pのファイル送受信を実行させるコンピュータプログラムである。このコンピュータプログラムは、前記オーバーレイネットワークでの前記ファイル送受信において、前記コンピュータを、以下の(1)乃至(3)のノード、
(1)ファイルを要求する要求ノード、
(2)ファイルを提供する提供ノード、
(3)提供ノードから要求ノードへのファイル送信を中継する中継ノード、
のいずれのノードとしても機能させることができるように構成されている。具体的には、以下の通りである。
(A)このコンピュータプログラムは、ユーザ所望のファイルの指定を受けた場合、
(a1)該ユーザ所望のファイルを保持しているP2Pノードに、該ユーザ所望のファイルを送信することのファイル送信要求を送信するステップと、
(a2)前記ファイル送信要求に対応した前記ユーザ所望のファイルを受信するステップと
を前記コンピュータに実行させる。具体的には、例えば、ユーザ所望のファイルを保持しているか否かのファイル有無問合せを送信するステップと、前記ファイル有無問合せを受信した複数のP2Pノードから、それぞれ、前記ユーザ所望のファイルの有無を含んだ複数のファイル有無応答を受信するステップと、前記ユーザ所望のファイルを保持しているP2Pノードを前記複数のファイル有無応答から特定し、該特定したP2Pノードに、前記ファイル送信要求を送信するステップとを前記コンピュータに実行させることができる。
(B)また、このコンピュータプログラムは、ファイルを要求するP2Pノードである第一の他のコンピュータから、ファイル送信要求を受信した場合、
(b1)前記オーバーレイネットワークで前記コンピュータとP2Pの通信が可能な複数のP2Pノードの中から、前記下位レイヤ通信プログラムとの対話により、前記下位レイヤネットワークでの自ノード(前記コンピュータ)と前記第一の他のコンピュータとの間の経路におけるボトルネック部分よりも自ノード側に存在するP2Pノードを特定し、該特定したP2Pノードを、自ノードから前記第一の他のコンピュータへのファイル送信を中継する中継ノードに決定するステップと、
(b2)前記決定した中継ノードである第二の他のコンピュータに、前記受信したファイル送信要求に対応したファイルを送信するステップと、
(b3)前記第一の他のコンピュータを表す要求ノード情報を、前記第二の他のコンピュータに通知するステップと
を前記コンピュータに実行させる。前記下位レイヤ通信プログラムとの対話では、例えば、前記複数のP2Pノードにそれぞれ対応した複数の識別子(例えばホスト名)を前記下位レイヤ通信プログラムに通知し、該複数のP2Pノードのうち、前記ボトルネック部分よりも自ノード側に存在するP2Pノードを前記下位レイヤ通信プログラムに調べさせ、該調べた結果として、自ノード側に存在するP2Pノードの識別子を受けることにより、前記ボトルネック部分よりも自ノード側に存在するP2Pノードを特定することができる。この方法に代えて、他の方法により、該P2Pノードの特定が行われても良い。例えば、前記下位レイヤ通信プログラムから、前記ボトルネック部分よりも自ノード側に存在する全てのノードにそれぞれ対応した全ての識別子を取得し、取得した全ての識別子のうち、前記複数のP2Pノードのそれぞれの識別子に対応する識別子を特定することにより、前記ボトルネック部分よりも自ノード側に存在するP2Pノードを特定してもよい。
(C)また、このコンピュータプログラムは、或るファイルを指定したファイル送信要求を送信してない場合、
(c1)P2Pノードである第三の他のコンピュータから前記或るファイルを受信するステップと、
(c2)前記受信した或るファイルを前記コンピュータの記憶資源に格納するステップと、
(c3)前記第三の他のコンピュータから、前記或るファイルを要求したP2Pノードを表す要求ノード情報を受信するステップと、
(c4)前記要求ノード情報が表すP2Pノードである第四の他のコンピュータと自ノードとの間のボトルネックが解消された場合に、前記格納した或るファイルを、前記第四の他のコンピュータに送信するステップと
を前記コンピュータに実行させる。P2Pノードは、WEBサーバ等と違って、ユーザによって電源が落とされる可能性があるので、例えば、このコンピュータプログラムは、自分の周辺のP2Pノードが稼動しているか否かを確認するために、定期的に又は不定期的に、問い合わせ(例えばping)を発行することができる。その問い合わせに対する応答(例えばpong)が返って来ない場合(例えば、応答が全く返って来ない場合、或いは、返って来たものの一定時間内に返って来なかった場合)、応答が返って来ない経路は、ボトルネックということになる。しかし、応答が返って来れば(例えば、全く返って来なかった応答がやっと返って来れば、或いは、問い合わせを送信してから一定時間内に応答が返って来るようになれば)、ボトルネックが解消されたということになる。従って、ここで、例えば、前記「ボトルネックが解消された場合」とは、定期的に又は不定期的に前記第四の他のコンピュータに送信した問い合わせに対する応答を前記第四の他のコンピュータから受信した場合(例えば問い合わせを送信してから一定時間内に受信した場合)である。送信する問い合わせは、P2Pに従う問い合わせであっても良いし、下位レイヤの通信プロトコルに従う問い合わせであってもよい。
このコンピュータプログラムによれば、P2Pでのファイル送受信において、このコンピュータプログラムでは認識されていない下位レイヤネットワークでボトルネックが生じた場合、そのボトルネック部分よりも提供ノード(ファイルを提供するP2Pノード)側に存在するP2Pノードが特定され、そのP2Pノードを、中継ノードとして、その提供ノードから中継ノードにファイルが送信され一時格納される。そして、そのボトルネックが解消した場合に、その中継ノードから要求ノード(ファイルを要求したP2Pノード)に、その一時格納されたファイルが送信される。これにより、ネットワークの状態に関わらずに、P2Pでのファイル送受信を成功させることができる。
なお、前記(c1)及び(c2)と前記(c3)とは、どちらが先であっても良い。
第一の実施態様では、前記(b1)では、前記オーバーレイネットワークでP2Pに従う第一の問合せを送信し、該第一の問合せに対する第一の応答を受信し、該第一の応答の返信元のP2Pノードに対して、前記下位レイヤの通信プロトコルに従う第二の問合せを前記下位レイヤ通信プログラムに送信させ、該第二の問合せに対する第二の応答を受信した前記下位レイヤ通信プログラムから該第二の応答に関する情報を取得し、該情報が所定の条件を満たす場合に、前記第二の応答を返信したP2Pノードを中継ノード候補に決定し、該決定した中継ノード候補の中から、前記中継ノードを決定する。
第二の実施態様では、前記オーバーレイネットワークに参加した場合に、前記オーバーレイネットワークでP2Pに従う第一の問合せを送信し、該第一の問合せに対する第一の応答を受信し、該第一の応答の返信元のP2Pノードに対して、前記下位レイヤの通信プロトコルに従う第二の問合せを前記下位レイヤ通信プログラムに送信させ、該第二の問合せに対する第二の応答を受信した前記下位レイヤ通信プログラムから該第二の応答に関する情報を取得し、該情報が所定の条件を満たす場合に、前記第二の応答を返信したP2Pノードを中継ノード候補に決定し、該決定した中継ノード候補に関する情報(例えば各中継ノード候補の識別子)を記録したリストを、前記コンピュータの記憶資源に格納する。前記(b1)において、新たに中継ノード候補が決定された場合、該リストに記録されている情報が、該新たな中継ノード候補に関する情報に更新されてもよい。
第三の実施態様では、前記第一の実施態様において、前記第二の応答に関する情報として、例えば、該第二の応答の返信元と前記コンピュータとの前記下位レイヤネットワークでの経路の距離、該経路での帯域、前記第二の問合せが送信されてから前記第二の応答を受信するまでの応答時間長のうちの少なくとも一つを取得することができる。
第四の実施態様では、前記第一の実施態様において、前記第一の応答には、該第一の応答を返信したP2Pノードの能力に関する能力情報が含まれている。前記(b1)では、P2Pノードの能力情報と、前記ボトルネック部分と各中継ノード候補との間の余剰帯域とのうちの少なくとも一つに基づいて、前記中継ノードを決定する。
第五の実施態様では、前記第四の実施態様において、前記能力情報には、該能力情報を送信したP2PノードのCPU使用率と空き記憶容量とが含まれている。前記(b1)では、前記CPU使用率が第一の値以下で前記空き記憶容量が第二の値以上の中継ノード候補を前記中継ノードに決定する。
第六の実施態様では、前記第四又は第五の実施態様において、前記(b1)では、前記CPU使用率が高く前記空き記憶容量が多い第一の中継ノード候補と、該第一の中継ノード候補に比して前記CPU使用率が低く前記空き記憶容量が少ない第二の中継ノード候補とのうち、前記第一の中継ノード候補を前記中継ノードに決定する。
第七の実施態様では、新たなステップ(c5)として、前記送信したファイルを前記コンピュータの記憶資源から削除するステップを前記コンピュータに更に実行させる。
第八の実施態様では、前記受信したファイル送信要求に応答して前記第一の他のコンピュータにファイルを送信するのに失敗した場合に、前記(b1)を実行する。ここで、ファイルを送信するのに失敗した場合とは、例えば、ファイル送信を開始してから一定時間内に所定の応答を受信しない場合である。
以下、図面を参照して、本発明の一実施形態について説明する。以下の説明では、下位レイヤのネットワークは、IPネットワークであり、オーバーレイネットワーク(上位レイヤのネットワーク)は、P2Pのネットワークである。
図1は、本発明の一実施形態の概要の説明図である。
本実施形態では、図1Aに示すように、P2Pネットワークに、「中継ノード」という新たな概念が導入される。中継ノード(A)とは、P2Pノードの一種であり、提供ノード(Y)からのファイルを一時的に預かり、その一時的に預かったファイルを、要求ノード(X)に送信するノードである。別の言い方をすれば、中継ノード(A)は、提供ノード(Y)に対して、一時的に要求ノードとなり、一時的に預かったファイルを送信する場合、要求ノード(X)に対して、一時的に提供ノードとなる。
具体的には、例えば、回線輻輳、回線切断、端末障害などの原因により、要求ノード(X)と提供ノード(Y)との間の経路にボトルネックが発生した場合、提供ノード(Y)によって、IPネットワークのトポロジーを考慮して、そのボトルネック部分(ボトルネック・パス)の近傍且つそのボトルネック部分よりも提供ノード(Y)側にあるP2Pノードが中継ノード(A)として決定される。
この場合、提供ノード(Y)において、P2Pネットワークでの通信を制御するコンピュータプログラム(以下、「P2Pアプリケーションプログラム」と言う)からは、送信されたファイルが、中継ノード(A)に届くように見える。一方、IPネットワークでの通信を制御するコンピュータプログラム(以下、「下位レイヤ通信プログラム」と言う)からは、図1Bに示すように、中継ノード(A)まで見えるわけではなく、IPネットワークにおける直近のネットワーク中継器、例えばルータまでしか見えない。IPネットワークでは、各ネットワーク中継器によって、提供ノード(Y)から送信されたファイルが中継ノード(A)に届けられる。
提供ノード(Y)は、ファイル送信に成功したならば、中継ノード(A)に、要求ノード(X)へのファイル送信を依頼する。
中継ノード(A)は、受信したファイルを、自分が有する記憶資源(例えば二次記憶装置)に格納する。そして、中継ノード(A)は、提供ノード(Y)からファイル送信の依頼を受けたならば、上記ボトルネックが解消された場合に、その格納したファイルを要求ノード(X)に送信する。中継ノード(A)は、送信し終えたならば、そのファイルを記憶資源から消去する。
以上の一連の処理により、ネットワークの状態に関わらずにP2Pのファイル送受信を成功させることができる。
以下、本実施形態について詳細に説明する。
図2は、P2Pノードのハードウェア構成例を示す。
P2Pノードは、IPネットワークにあるようなルータと異なり、計算機の一種である。P2Pノードは、例えば、CPU103、入力装置(例えばキーボードやマウス)105、表示装置(例えば液晶ディスプレイ)106、LAN等の通信ネットワークに接続される通信インターフェース装置(I/F)109、一次記憶装置108、及び二次記憶装置107を備える。一次記憶装置108は、典型的には、メモリであり、CPU103のワーク領域や送受信されるデータを一時的に記憶するキャッシュ領域が設けられる。それに対し、二次記憶装置107は、一次記憶装置108よりも多くの記憶容量を有する記憶装置(例えばハードディスク)であり、例えば、CPU103で実行されるコンピュータプログラムや、送受信され得る多数のファイルを記憶することができる。
二次記憶装置107から一次記憶装置108にロードされてCPU103で実行されるコンピュータプログラムとして、前述したP2Pアプリケーションプログラム111や下位レイヤ通信プログラム113がある。本実施形態では、P2Pアプリケーションプログラム111が、中継ノードの候補を決定し、決定した中継ノード候補の中から中継ノードを決定することができるように構成されている。
本実施形態における流れは、例えば、以下の3ステップ、
(1)P2Pネットワークへの参加、
(2)ファイル送信の要求、
(3)中継ノードの選定、
に大別することができる。(1)の時に、中継ノード候補が決定される。(2)の時にも、中継ノード候補が決定され、(3)で、その中継ノード候補の中から中継ノードが選定される。以下、具体的に説明する。
図3は、計算機がP2Pネットワークに参加する時に行われる処理の流れの一例を示す。
図3Aに示すように、起動したP2Pアプリケーションプログラム111が、自分の近くにいるP2Pノードを探す。具体的には、そのP2Pアプリケーションプログラム111は、P2Pプロトコルに従うPing(以下、P2P Ping)を生成して送信する(ステップS11)。そのP2P Pingには、ファイル探索の際に含められるファイル識別子(例えばファイル名)のような引数は含められない。そのP2P Pingは、下位レイヤ通信プログラム113によってTTLが付加されて、IPネットワークに出力される。
その後、P2Pアプリケーションプログラム111は、一定時間待つ(S12)。その時間内に、P2P Pingに対する返信(以下、P2P Pong)を受信すれば、自分の近くにP2Pノードが存在することになる。
P2Pアプリケーションプログラム111は、一定時間内に各P2P Pongを受信した場合、各返信元(ピア)と連携する(セッションを確立する)(S13)。
続いて、P2Pアプリケーションプログラム111は、各P2P Pongの各返信元に対して、図3Bに示す処理を行う。
すなわち、P2Pアプリケーションプログラム111は、下位レイヤ通信プログラム113に、IP(インターネットプロトコル)に従うPing(以下、IP Ping)を送信させる(S21)。IP Pingは、前述したP2P Pingよりも高度であり、例えば、IP Pingに対する返信(以下、IP Pong)から、返信元からのルータのホップ数(以下、ルータ間距離)、どれぐらいの帯域があるか等がわかる。また、このS21では、IP Pingの送信先としてIPアドレスが指定されるが、指定されるIPアドレスは、P2P Pongに含まれているIPアドレス、或いは、P2P Pongに含まれているホスト名からDNS(ドメイン・ネーム・サービス)等により特定されたIPアドレスである。
S21の後、P2Pアプリケーションプログラム111は、一定時間待つ(S22)。
P2Pアプリケーションプログラム111は、下位レイヤ通信プログラム113がIP Pongを受信した場合、所定種類の情報を下位レイヤ通信プログラム113から取得する(S23)。具体的には、ルータ間距離、返信元との間の経路における帯域、IP Pongの応答時間(IP Pingを送信してからIP Pongを受信するまでの時間長)を取得する。
P2Pアプリケーションプログラム111は、取得したルータ間距離、帯域及び応答時間長が所定の条件を満たさない場合に、そのIP Pongの返信元を中継ノード候補としないが、その所定の条件を満たせば、そのIP Pongの返信元を中継ノード候補に決定する(S24)。P2Pアプリケーションプログラム111は、中継ノード候補とした各ノードの識別子(例えばホスト名)を記載したリストを、一次記憶装置108或いは二次記憶装置107に保存しておくことができる。
この図3の流れを、図4のネットワーク関係図を用いて具体的に説明する。
図4において、上位にあるのが、P2Pネットワークであり、下位にあるのが、IPネットワークである。IPネットワークの図において、●は、何らかのネットワーク中継器(例えば、ルータ、プロキシサーバ或いはファイアウォール)を表しており、楕円は、サブネットワークを表す。
この図4において、例えば、図3Aで、Yが、P2Pネットワークに参加した計算機(P2Pノード)であって、一定時間内に受信したP2P Pongの返信元が、A、B、C及びXの4つであったとする。この場合、P2Pアプリケーションプログラム111は、Yに、4つのP2PノードA、B、C及びXが隣接していると特定することができる。そのため、IP Pingは、それら4つのP2PノードA、B、C及びXに送信される。
図4の下位に示すIPネットワークによれば、それら4つのP2Pノードのうち、A,B及びCが、Yと同じサブネットワーク内に存在するが、Xは、異なるサブネットワークに存在する。このため、それら4つのP2Pノードのうち、XからのIP Pongのみが、一定時間内に戻って来ないことがある。この場合、図3BのS24において、P2Pアプリケーションプログラム111は、P2PノードXを、中継ノード候補とせず、他のP2PノードA,B及びCを、中継ノード候補に決定する。
さて、P2Pネットワークに参加した計算機(P2Pノード)は、ユーザ所望のファイルを要求する(つまり、ユーザ所望のファイルの送信先になる)要求ノードになることもあれば、そのユーザ所望のファイルを提供する提供ノードになることもあり、或いは、その提供ノードから要求ノードへのファイル送信を中継する中継ノードになることもある。以下、P2Pネットワークに参加した上記計算機が、提供ノードYとなり、提供ノードYの中継ノード候補とされなかったノードXが要求ノードXとなる場合を例に採り、ファイル送信の要求が行われる場合に実行される処理について説明する。
図5は、提供ノードYから要求ノードXにファイルが送信される場合に実行される処理の概要を示す。以下、この図5を参照した説明では、送受信されるファイルを、便宜上、「ファイルA」と言う。
図5Aに示すように、提供ノードYと要求ノードXとの間の経路にボトルネックが生じた場合、提供ノードYが、そのボトルネック・パスよりも提供ノードY側に存在する中継ノード候補の中から中継ノードを決定し、決定した中継ノードに、要求ノードXから指定されたファイルAを送信する。なお、中継ノード候補は、そのファイル送信の前に、そのファイル送信における転送経路を基に決定されている。
中継ノードは、ファイルAを要求していないにも関わらず、ファイルAを受信することになる。この場合、中継ノードは、提供ノードYから受信したファイルA(すなわち、要求していないにも関わらずに受信したファイルA)を、一時的に二次記憶装置に格納する(ファイルAのファイルサイズが小さい等の場合には、一次記憶装置に格納しても良い)。提供ノードYは、中継ノードへのファイル送信が成功した場合(例えば、中継ノードから所定の応答を受けた場合)、該中継ノードに、「要求ノードXへの送信」を依頼する。
その後、図5Bに示すように、ボトルネックが解消された場合(例えば余剰帯域が所定値まで回復した場合)、その依頼に従って、中継ノードは、格納したファイルAを、要求ノードXに送信する。つまり、提供ノードYからのファイルAの再送信が実行される。なお、ここでは、例えば、中継ノードが、定期的に、要求ノードXに、P2P Pingを送信し、要求ノードXからP2P Pongを受信した場合に(例えば、P2P Pingを送信してから一定時間内にP2P Pongを受信した場合に)、ボトルネックが解消されたと判断して、上記格納したファイルAを要求ノードXに送信することができる。
これにより、提供ノードYと要求ノードXとの間の経路にボトルネックが生じても、提供ノードYのファイルAを要求ノードXに送信することを成功させることができる。
以下、詳細に説明する。なお、以下の説明では、P2Pノードを要求ノードとして実行させる場合のP2Pアプリケーションプログラムを、「要求P2Pアプリ」と称し、P2Pノードを提供ノードとして実行させる場合のP2Pアプリケーションプログラムを、「提供P2Pアプリ」と称し、P2Pノードを中継ノードとして実行させる場合のP2Pアプリケーションプログラムを「中継P2Pアプリ」と称する。
図6は、ファイル送信の要求が行われる場合に実行される処理の流れの一例を示す。
図6Aに示すように、要求P2Pアプリ111が、ファイル保有端末を探索する(S31)。具体的には、例えば、ユーザから指定されたユーザ所望のファイルの識別子(例えばファイル名)を引数にしたP2P Pingを送信する。すなわち、本実施例では、P2Pアプリ111は、ファイルを所望するユーザからユーザ所望のファイルを指定された場合に、要求P2Pアプリとしての動作を実行することができる。
そのP2P Pingを受信した各P2PノードのP2Pアプリ111は、図6Bに示すように、そのP2P Pingに対するP2P Pongを返信する(S41)。返信するP2P Pongには、受信したP2P Pingで引数となっているファイルを有するか否かが含められる。更に、そのファイルを有するか否かに関わらず、そのP2P Pongには、そのP2Pノードの能力に関する情報(例えば、P2Pノードの仕様や余剰能力、以下、「能力情報」と言う)が含められる。余剰能力としては、例えば、二次記憶装置の空き記憶容量や、CPU使用率などである。
要求P2Pアプリ111は、P2P Pingを受信した複数のP2PノードからそれぞれP2P Pongを受信し、それぞれのP2P Pongの中から、ファイル有りの応答があるか否かを判断する(S32)。ファイル有りの応答があれば、一以上のファイル有りのP2P Pongの返信元の中から一つの返信元を選択し、選択した返信元に、ファイル送信要求を送信する(S33)。
P2P Pongを返信した各P2PノードのP2Pアプリ111は、ファイル送信要求を受信した場合には、自分のP2Pノードを提供ノードとして動作させることになり(S43)、ファイル送信要求を受信しない間は、自分のP2Pノードを第三のノードとして動作させることになる(S44)。ここで、「第三のノード」とは、要求ノードでも提供ノードでもないノードである。第三のノードは、中継ノード候補になり得る。
図7Aは、提供ノードとしての処理の流れの一例を示す。
提供P2Pアプリ111は、要求P2Pアプリからのファイル送信要求に応答して、図6AのS31で問い合わせされたファイルの送信を開始する(S61)。
そのファイルの送信中に、ボトルネックが発生しなければ(S62でNO)、ファイルは、最低限の転送速度以上の速度で要求ノードに送信される。この場合、例えば、ファイル送信してから応答を受けるまでの時間長(以下、応答時間長)が、許容時間長(例えば、転送するファイルのサイズと最低限の転送速度とにより求まる値)以下に収まる。提供P2Pアプリ111は、許容時間長以内に所定の応答を受けた場合には(S62でNO)、送信の成功と判断し、処理を終了する。なお、「最低限の転送速度」とは、例えば、図6AのS31のP2P Pingで規定された転送速度である。すなわち、要求P2Pアプリは、ファイル識別子を引数にしたP2P Pingに、最低限の転送速度を規定して(ここでのPingは、「Query」と呼ばれることもある)送信することができる。
ファイルの送信中に、ボトルネックが発生すると、上記規定された最低限の転送速度以上の転送速度でファイルを送信することができない場合がある。この場合、例えば、前述した応答時間長が、許容時間長よりも長くかかってしまう。提供P2Pアプリ111は、許容時間長を超えても応答を受けない等、ボトルネックに関わる状況を検出した場合には(S62でYES)、要求ノードとの接続を切断し、特定中継ノード候補探索処理を実行する(S63)。この特定中継ノード候補探索処理では、中継ノード候補の探索と絞り込みとが行われる。つまり、特定中継ノードとは、絞り込まれた中継ノード候補である。
中継ノード候補の探索としては、具体的には、例えば、図3A及び図3Bに示す処理を実行する。その際、P2Pネットワークへの参加の際に生成されたリストを、今回の中継ノード候補探索により作成されたリストに更新することができる。この場合、既存のリストを、履歴として残しても良いし、既存のリストに今回のリストを上書きしても良い。前者の場合、各時点で生成されたリストから、中継ノード候補の統計をとることができる。
また、中継ノード候補の絞込みでは、以下の処理が行われる。すなわち、まず、提供P2Pアプリ111が、下位レイヤ通信プログラム113に、要求ノードXとの間で経路探索処理を実行させる。この経路探索処理は、例えば、RIP(Routing Information Protocol)或いはOSPF(Open Shortest Path First)に従って実行される。この経路探索処理によって、提供ノードYと要求ノードXとの経路が探索される。そして、その後、ネットワーク利用可能性の評価が行われる。具体的には、(1)探索された経路の距離(ルータ間距離)の推定、(2)ボトルネック・パスの検出、及び(3)所定条件に合う中継ノード候補の有無の判断、が行われる。これらについては後に詳述する。
S63の結果、特定中継ノード候補がある場合(S64でYES)、提供P2Pアプリ111は、経路探索処理で決定された経路に近接する端末の評価を行うことにより、一以上の特定中継ノード候補の中から中継ノードを選定する(S65)。提供P2Pアプリ111は、選定した中継ノードにファイルを送信する(S66)。そして、その送信に成功したならば、そのファイルを要求ノードXに送信することの送信依頼(例えば、要求ノードXを表す要求ノード情報(例えば、要求ノードの識別子)を含んだ送信コマンド)を中継ノードに送信する(S67)。それに代えて、単に要求ノード情報を通知するのであってもよい。
一方、S63の結果、特定中継ノード候補が無い場合(S64でNO)、提供P2Pアプリ111は、所定処理を実行する(S68)。所定処理としては、例えば、要求ノードXとの接続を切断する処理であっても良いし、直ちに或いは一定時間経った後にファイルを要求ノードXに送信する処理であっても良い。
以上が、提供P2Pアプリ111の処理の流れである。
図7Bは、第三のノードとしての処理の流れの一例を示す。
第三のノードとして実行させるP2Pアプリ(以下、第三P2Pアプリ)111は、例えば、何らかの問合せ(具体的には、例えば、提供ノードYによる中継ノード候補探索でのP2P Ping)を受信した場合には(S51でYES)、応答を返すことができる(S52)。
第三P2Pアプリ111は、提供ノードYによって中継ノードとして選定された場合(S53)、ファイルを提供ノードYから受信する(S54)。中継P2Pアプリ(中継ノードとして実行する第三P2Pアプリ)111は、受信したファイルを、二次記憶装置107に一時格納する(S55)。
その後、その中継P2Pアプリ111は、提供P2Pアプリ111から送信依頼を受信した後(S56)、ボトルネックが解消されたことを検出したならば(例えば、帯域が所定値まで回復したことを検出したならば)(S57)、一時格納したファイルを要求ノードXに送信する(S58)。ボトルネックが解消したか否かは、例えば、中継P2Pアプリが、定期的に又は不定期的に、問合せ(例えばP2P Ping)を送信し、それに対する応答(例えばP2P Pong)を受けるまでの時間長から、特定しても良い。或いは、例えば、中継P2Pアプリ111が、下位レイヤ通信プログラム113に、定期的に又は不定期的に、問合せ(例えばIP Ping)を送信させ、それに対する応答(例えばIP Pong)を受けるまでの時間長から、特定しても良い。また、送信依頼に代えて、要求ノード情報を受信した場合には、ボトルネックの解消を検出したなら、能動的に、一時格納したファイルを、その要求ノード情報から特定される要求ノードに送信してもよい。
S58の後、中継P2Pアプリ111は、送信したファイルを、二次記憶装置107から消去する。これにより、一時格納したファイルをいつまでも二次記憶装置107に残さないようにすることができる。
以下、図7AのS63(ネットワーク利用可能性の評価)と、図7AのS67(経路に近接する端末の評価)について詳細に説明する。
図8Aは、ネットワーク利用可能性の評価の説明図である。
図8Aにおいて、ルータα、β、γ、σは、図4の●α、β、γ、σに対応している。また、ノードX、Y、A、B、C及びKも、図4に対応している。
まず、ルータ間距離の推定が行われる。具体的には、例えば、図示しないルーティング表に基づいて、要求ノードXまでのルータ間距離が推定される。本実施形態で言うルータ間距離とは、提供ノードYが属するルータγから、要求ノードXが属するルータαまでのホップ数である。
次に、ボトルネック・パスの検出が行われる。具体的には、例えば、ルータ間距離を計算する場合に用いられた経路において、パスの余剰帯域を計算し、単位時間あたりのデータ転送量が最も低くなるパスの発見が行われる。図8Aの例では、ルータαとルータβとの間のパス(経路部分)が、ボトルネック・パスと検出される。なお、この計算方法としては、公知の方法を利用することができる。
最後に、提供ノードYで認識されている中継ノード候補に、検出されたボトルネック・パスよりも提供ノードY側に存在する中継ノード候補があるか否かが判断される。具体的には、例えば、提供P2Pアプリ111が、自分が認識している全ての中継ノード候補の識別子を下位レイヤ通信プログラム113に通知し、それらの中継ノード候補のうち、ボトルネック・パスよりも提供ノードY側にある中継ノード候補を問い合わせることにより、上記判断を行うことができる(この場合、下位レイヤ通信プログラム113は、通知された各識別子に対応する各IPアドレスをDNS等により得ることができる)。このようにして判断するのは、提供P2Pアプリ111は、IPネットワークのトポロジーを把握していないためである。図8Aの例では、P2PノードA、B及びCが、中継ノード候補として決定される。
この処理によって、提供P2Pアプリ111が認識している中継ノード候補が、特定中継ノード候補、すなわち、ボトルネック・パスよりも提供ノードY側に存在する中継ノード候補に絞り込まれる。ボトルネック・パスよりも提供ノードY側に存在する中継ノード候補があると判断された場合、中継ノードの選定、すなわち、経路に近接する端末の評価が行われる。
図8Bは、経路に近接する端末の評価の説明図である。
この評価では、図8Aにより決定された中継ノード候補の中から、ファイルの一時格納先となる中継ノードが選定される。
具体的には、例えば、提供P2Pアプリ111が、上記決定された中継ノード候補の各能力情報を解析する。この能力情報は、中継ノード候補の探索(図7AのS63)において、P2P Pongに含められている情報である。提供P2Pアプリ111は、例えば、CPU使用率が所定値以下であり、一次記憶装置及び二次記憶装置のそれぞれの又は合計の空き記憶容量が所定値以上の中継ノード候補を、中継ノードに選定する。そのような中継ノード候補が複数個ある場合には、例えば、CPU使用率に関わらず、一次記憶装置及び二次記憶装置のそれぞれの又は合計の空き記憶容量が最も大きい中継ノード候補を中継ノードに選定する。
また、中継ノードの選定の際、ボトルネック・パスの境界であるルータβから中継ノード候補との間の距離も考慮することができる。例えば、ルータβに属するノードA及びBのいずれも、CPU使用率が所定値を超えていて空き記憶容量が所定値未満ならば、ルータβとのパスの距離がホップ数1であり、且つ、そのパスの余剰帯域が所定値以上である(つまりデータ転送量が低すぎない)ノードCを、中継ノードに選定することができる。なお、特に、このように、ボトルネック・パスの境界にあるルータから離れたルータに属するノードを中継ノードとする場合、ファイル送信の際に付加されたTTLが余分に減ることになる。しかし、TTLは、上位レイヤでパケットが再構成される際にリセットされる(つまり増加される)ので、要求ノードXに到達する前にTTLがゼロになってしまって途中で破棄されてしまうといった問題は生じない。つまり、中継ノードで一時格納されてP2Pアプリ111によって要求ノードXに再送信される際に、リセットされたTTLが付加されるので、上記のような問題は生じない。
また、中継ノードの選定の際、下位レイヤ通信プログラム113とのやり取りにより、IPネットワークの通信効率を評価し、トンネリングなど非効率な仕組みで繋がっていないかどうかも考慮することができる。
また、選定する中継ノードの数は、一つに限らない。例えば、常に、或いは、所定の状況の場合に、複数の中継ノードを選定しても良い。所定の状況としては、例えば、ダウンする可能性が高いと考えられる(例えばCPU使用率が所定値付近である)中継ノード候補しか無い場合、或いは、ボトルネック・パスの境界となるルータβに属する中継ノード候補が無い場合など、種々の状況が考えられる。複数の中継ノードを選定した場合、提供P2Pアプリ111は、それら複数の中継ノードにファイルを送信する。要求ノードXにファイルを送信することの送信依頼の送信先は、一つの中継ノードであっても複数の中継ノードであっても良い。送信依頼を受けなかった中継ノードのP2Pアプリは、ファイルを一時格納してから一定時間経過した場合に、その一時格納したファイルを消去しても良い。
以上が、本実施形態についての説明である。
P2Pの通信では、提供ノードYと要求ノードXとの間の経路でボトルネックが生じている等の理由により、最低限のスピードで通信できないと、接続が強制的に切断される措置が採られることがある。本実施形態によれば、そのような措置が採られるようになっていても、切断されることなく通信を行うことができる。すなわち、本実施形態によれば、ボトルネックが生じている場合、そのボトルネック・パスよりも提供ノード側にあるノードを中継ノードとし、ファイルが一時そこに送信されて格納され、ボトルネックが解消した場合に、その中継ノードから要求ノードXに再送される。つまり、このP2Pのファイル送受信によれば、ボトルネックが生じているパスにファイルを通過させないようにすることができるので、大容量のファイルを送受信する際に、送信の途中で接続が切断されてしまうといったようなことを防ぐことができる。
このことに鑑みれば、本実施形態は、様々な用途に活用することができる。
例えば、不安定な通信インフラストラクチャに頼っている、天候によって無線通信が不安定になるなど、ネットワーク帯域が大きく変化する環境において、本実施形態は有用であると考えられる。
また、例えば、医療設備の整った病院での検査データを、患者のかかりつけの病院に転送するといった用途にも有用であると考えられる。緊急時を除いて、検査データの転送は、即時に行われる必要はないし、CTスキャンやX線画像などの大容量の検査データであっても、ネットワークがすいている間に転送することが期待できるためである。
また、いわゆる分散方式でのWEBコンテンツの検索にも有用であると考えられる。この場合、例えば、複数のノードに検索用のインデックスを分散させておき、検索のときに、ノード間でインデックスをP2Pで交換する方法が考えられる。この方法によれば、いわゆる集中方式のように、中央のノードにいくほど帯域が不足するといったことを生じさせないようにできる。
以上、本発明の一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、図7BのS58の間、要求ノードXにファイルを送信している中継P2Pアプリ111は、ファイル送信の最中にボトルネックが生じた場合、そのボトルネック・パスよりも自分寄りにある、自分にとっての特定中継ノード候補を探索させ、探索された特定中継ノード候補から中継ノードを選定し、その中継ノードに、ファイルを一時格納してもよい。すなわち、提供ノードYから要求ノードXへの中継は、1回に限らず、複数回行われても良い。
図1は、本発明の一実施形態の概要の説明図である。 図2は、P2Pノードのハードウェア構成例を示す。 図3は、計算機がP2Pネットワークに参加する時に行われる処理の流れの一例を示す。 図4は、上位レイヤと下位レイヤのネットワーク関係を示す図である。 図5は、提供ノードYから要求ノードXにファイルが送信される場合に実行される処理の概要を示す。 図6は、ファイル送信の要求が行われる場合に実行される処理の流れの一例を示す。 図7Aは、提供ノードとしての処理の流れの一例を示す。図7Bは、第三のノードとしての処理の流れの一例を示す。 図8Aは、ネットワーク利用可能性の評価の説明図である。図8Bは、経路に近接する端末の評価の説明図である。
符号の説明
101…P2Pノード 107…二次記憶装置 108…一次記憶装置108…P2Pアプリケーションプログラム 113…下位レイヤ通信プログラム

Claims (10)

  1. 下位レイヤのネットワークでの通信を制御する下位レイヤ通信プログラムが実行されるコンピュータに、前記下位レイヤのネットワークの上位に重ねられたオーバーレイネットワークでP2Pのファイル送受信を実行させるコンピュータプログラムであって、
    (A)ユーザ所望のファイルの指定を受けた場合、
    (a1)該ユーザ所望のファイルを保持しているP2Pノードに、該ユーザ所望のファイルを送信することのファイル送信要求を送信するステップと、
    (a2)前記ファイル送信要求に対応した前記ユーザ所望のファイルを受信するステップと、
    (B)ファイルを要求するP2Pノードである第一の他のコンピュータから、ファイル送信要求を受信した場合、
    (b1)前記オーバーレイネットワークで前記コンピュータとP2Pの通信が可能な複数のP2Pノードの中から、前記下位レイヤ通信プログラムとの対話により、前記下位レイヤネットワークでの自ノードと前記第一の他のコンピュータとの間の経路におけるボトルネック部分よりも自ノード側に存在するP2Pノードを特定し、該特定したP2Pノードを、自ノードから前記第一の他のコンピュータへのファイル送信を中継する中継ノードに決定するステップと、
    (b2)前記決定された中継ノードである第二の他のコンピュータに、前記受信したファイル送信要求に対応したファイルを送信するステップと、
    (b3)前記第一の他のコンピュータを表す要求ノード情報を、前記第二の他のコンピュータに通知するステップと、
    (C)或るファイルを指定したファイル送信要求を送信してない場合、
    (c1)P2Pノードである第三の他のコンピュータから前記或るファイルを受信するステップと、
    (c2)前記受信した或るファイルを前記コンピュータの記憶資源に格納するステップと、
    (c3)前記第三の他のコンピュータから、前記或るファイルを要求したP2Pノードを表す要求ノード情報を受信するステップと、
    (c4)前記要求ノード情報が表すP2Pノードである第四の他のコンピュータと自ノードとの間のボトルネックが解消された場合に、前記格納した或るファイルを、前記第四の他のコンピュータに送信するステップと
    を前記コンピュータに実行させる、
    コンピュータプログラム。
  2. 前記(b1)では、前記オーバーレイネットワークでP2Pに従う第一の問合せを送信し、該第一の問合せに対する第一の応答を受信し、該第一の応答の返信元のP2Pノードに対して、前記下位レイヤの通信プロトコルに従う第二の問合せを前記下位レイヤ通信プログラムに送信させ、該第二の問合せに対する第二の応答を受信した前記下位レイヤ通信プログラムから該第二の応答に関する情報を取得し、該情報が所定の条件を満たす場合に、前記第二の応答を返信したP2Pノードを中継ノード候補に決定し、該決定した中継ノード候補の中から、前記中継ノードを決定する、
    請求項1記載のコンピュータプログラム。
  3. 前記オーバーレイネットワークに参加した場合に、前記オーバーレイネットワークでP2Pに従う第一の問合せを送信し、該第一の問合せに対する第一の応答を受信し、該第一の応答の返信元のP2Pノードに対して、前記下位レイヤの通信プロトコルに従う第二の問合せを前記下位レイヤ通信プログラムに送信させ、該第二の問合せに対する第二の応答を受信した前記下位レイヤ通信プログラムから該第二の応答に関する情報を取得し、該情報が所定の条件を満たす場合に、前記第二の応答を返信したP2Pノードを中継ノード候補に決定し、該決定した中継ノード候補に関する情報を記録したリストを、前記コンピュータの記憶資源に格納するステップ、
    を更に前記コンピュータに実行させる請求項1記載のコンピュータプログラム。
  4. 前記(b1)では、前記第二の応答に関する情報として、該第二の応答の返信元と自ノードとの前記下位レイヤネットワークでの経路の距離、該経路での帯域、前記第二の問合せが送信されてから前記第二の応答を受信するまでの応答時間長のうちの少なくとも一つを取得する、
    請求項2記載のコンピュータプログラム。
  5. 前記第一の応答には、該第一の応答を返信したP2Pノードの能力に関する能力情報が含まれており、
    前記(b1)では、P2Pノードの能力情報と、前記ボトルネック部分と各中継ノード候補との間の余剰帯域とのうちの少なくとも一つに基づいて、前記中継ノードを決定する、
    請求項2記載のコンピュータプログラム。
  6. 前記能力情報には、該能力情報を送信したP2PノードのCPU使用率と空き記憶容量とが含まれており、
    前記(b1)では、前記CPU使用率が第一の値以下で前記空き記憶容量が第二の値以上の中継ノード候補を前記中継ノードに決定する、
    請求項5記載のコンピュータプログラム。
  7. 前記(b1)では、前記CPU使用率が高く前記空き記憶容量が多い第一の中継ノード候補と、該第一の中継ノード候補に比して前記CPU使用率が低く前記空き記憶容量が少ない第二の中継ノード候補とのうち、前記第一の中継ノード候補を前記中継ノードに決定する、
    請求項5又は6記載のコンピュータプログラム。
  8. 新たなステップ(c5)として、前記送信したファイルを前記コンピュータの記憶資源から削除するステップを前記コンピュータに更に実行させる、
    請求項1記載のコンピュータプログラム。
  9. 前記受信したファイル送信要求に応答して前記第一の他のコンピュータにファイルを送信するのに失敗した場合に、前記(b1)を実行する、
    請求項1記載のコンピュータプログラム。
  10. 下位レイヤのネットワークの上位に重ねられたオーバーレイネットワークでのP2Pのファイル送受信方法において、
    ファイルを要求する要求ノードが、該要求ノードのユーザ所望のファイルを保持しているP2Pノードに、該ユーザ所望のファイルを送信することのファイル送信要求を送信するステップと、
    前記ファイル送信要求を受信したP2Pノードである提供ノードが、前記下位レイヤネットワークでの該提供ノードと前記要求ノードとの間の経路におけるボトルネック部分よりも前記提供ノード側に存在するP2Pノードを特定し、該特定したP2Pノードを中継ノードに決定するステップと、
    前記提供ノードが、前記中継ノードに前記ユーザ所望のファイルを送信するステップと、
    前記提供ノードが、前記要求ノードを表す要求ノード情報を前記中継ノードに通知するステップと、
    前記中継ノードが、前記提供ノードから前記ユーザ所望のファイルを受信するステップと、
    前記中継ノードが、前記受信した所望のファイルを該中継ノードの記憶資源に格納するステップと、
    前記中継ノードが、該中継ノードと前記要求ノードとの間のボトルネックが解消された場合に、前記格納した前記ユーザ所望のファイルを、前記提供ノードから通知された前記要求ノード情報が表す前記要求ノードに送信するステップと、
    前記要求ノードが、前記中継ノードから前記ユーザ所望のファイルを受信するステップと
    を有するファイル送受信方法。
JP2006225268A 2006-08-22 2006-08-22 オーバーレイネットワークでピア・ツー・ピアのファイル送受信を行うコンピュータプログラム Expired - Fee Related JP4915848B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006225268A JP4915848B2 (ja) 2006-08-22 2006-08-22 オーバーレイネットワークでピア・ツー・ピアのファイル送受信を行うコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006225268A JP4915848B2 (ja) 2006-08-22 2006-08-22 オーバーレイネットワークでピア・ツー・ピアのファイル送受信を行うコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2008052340A true JP2008052340A (ja) 2008-03-06
JP4915848B2 JP4915848B2 (ja) 2012-04-11

Family

ID=39236373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006225268A Expired - Fee Related JP4915848B2 (ja) 2006-08-22 2006-08-22 オーバーレイネットワークでピア・ツー・ピアのファイル送受信を行うコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP4915848B2 (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009238065A (ja) * 2008-03-28 2009-10-15 Fujitsu Ltd 通信検知装置、通信検知方法、及び通信検知プログラム
JP2009246419A (ja) * 2008-03-28 2009-10-22 Kyocera Corp 携帯無線端末装置
JP2011519097A (ja) * 2008-04-25 2011-06-30 タジツ トランスファー リミテッド ライアビリティ カンパニー データ転送フレームワークによるリアルタイム通信
JP2011528141A (ja) * 2008-07-10 2011-11-10 タジツ トランスファー リミテッド ライアビリティ カンパニー 広告転送用記憶および検索ネットワーク
US8352635B2 (en) 2008-09-29 2013-01-08 Tajitshu Transfer Limited Liability Company Geolocation assisted data forwarding storage
US8356078B2 (en) 2008-08-01 2013-01-15 Tajitshu Transfer Limited Liability Company Multi-homed data forwarding storage
US8370446B2 (en) 2008-07-10 2013-02-05 Tajitshu Transfer Limited Liability Company Advertisement forwarding storage and retrieval network
US8386585B2 (en) 2008-04-25 2013-02-26 Tajitshu Transfer Limited Liability Company Real-time communications over data forwarding framework
JP2013088998A (ja) * 2011-10-18 2013-05-13 Buffalo Inc ネットワークストレージシステム、ネットワークストレージシステムにおけるデータ操作方法、記憶装置、クライアントデバイスを制御するためのコンピュータプログラム
US8452844B2 (en) 2008-05-07 2013-05-28 Tajitshu Transfer Limited Liability Company Deletion in data file forwarding framework
US8458285B2 (en) 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US8478823B2 (en) 2008-09-29 2013-07-02 Tajitshu Transfer Limited Liability Company Selective data forwarding storage
US8489687B2 (en) 2008-09-29 2013-07-16 Tajitshu Transfer Limited Liability Company Rotating encryption in data forwarding storage
US8554866B2 (en) 2008-09-29 2013-10-08 Tajitshu Transfer Limited Liability Company Measurement in data forwarding storage
US8599678B2 (en) 2008-07-10 2013-12-03 Tajitshu Transfer Limited Liability Company Media delivery in data forwarding storage network
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002152258A (ja) * 2000-11-10 2002-05-24 Nec Corp データ取得システム及びデータ取得方法
JP2006141007A (ja) * 2005-11-04 2006-06-01 Nec Corp 経路計算システム、ネットワークシステム,キャッシュサーバ,経路計算方法、キャッシュサーバ制御方法及び記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002152258A (ja) * 2000-11-10 2002-05-24 Nec Corp データ取得システム及びデータ取得方法
JP2006141007A (ja) * 2005-11-04 2006-06-01 Nec Corp 経路計算システム、ネットワークシステム,キャッシュサーバ,経路計算方法、キャッシュサーバ制御方法及び記録媒体

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9961144B2 (en) 2008-03-20 2018-05-01 Callahan Cellular L.L.C. Data storage and retrieval
US8909738B2 (en) 2008-03-20 2014-12-09 Tajitshu Transfer Limited Liability Company Redundant data forwarding storage
US8458285B2 (en) 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval
JP2009246419A (ja) * 2008-03-28 2009-10-22 Kyocera Corp 携帯無線端末装置
JP2009238065A (ja) * 2008-03-28 2009-10-15 Fujitsu Ltd 通信検知装置、通信検知方法、及び通信検知プログラム
JP2011519097A (ja) * 2008-04-25 2011-06-30 タジツ トランスファー リミテッド ライアビリティ カンパニー データ転送フレームワークによるリアルタイム通信
US8386585B2 (en) 2008-04-25 2013-02-26 Tajitshu Transfer Limited Liability Company Real-time communications over data forwarding framework
US8452844B2 (en) 2008-05-07 2013-05-28 Tajitshu Transfer Limited Liability Company Deletion in data file forwarding framework
JP2011528141A (ja) * 2008-07-10 2011-11-10 タジツ トランスファー リミテッド ライアビリティ カンパニー 広告転送用記憶および検索ネットワーク
US8370446B2 (en) 2008-07-10 2013-02-05 Tajitshu Transfer Limited Liability Company Advertisement forwarding storage and retrieval network
US8599678B2 (en) 2008-07-10 2013-12-03 Tajitshu Transfer Limited Liability Company Media delivery in data forwarding storage network
US8356078B2 (en) 2008-08-01 2013-01-15 Tajitshu Transfer Limited Liability Company Multi-homed data forwarding storage
US8489687B2 (en) 2008-09-29 2013-07-16 Tajitshu Transfer Limited Liability Company Rotating encryption in data forwarding storage
US8554866B2 (en) 2008-09-29 2013-10-08 Tajitshu Transfer Limited Liability Company Measurement in data forwarding storage
US8478823B2 (en) 2008-09-29 2013-07-02 Tajitshu Transfer Limited Liability Company Selective data forwarding storage
US8352635B2 (en) 2008-09-29 2013-01-08 Tajitshu Transfer Limited Liability Company Geolocation assisted data forwarding storage
JP2013088998A (ja) * 2011-10-18 2013-05-13 Buffalo Inc ネットワークストレージシステム、ネットワークストレージシステムにおけるデータ操作方法、記憶装置、クライアントデバイスを制御するためのコンピュータプログラム

Also Published As

Publication number Publication date
JP4915848B2 (ja) 2012-04-11

Similar Documents

Publication Publication Date Title
JP4915848B2 (ja) オーバーレイネットワークでピア・ツー・ピアのファイル送受信を行うコンピュータプログラム
US7652998B2 (en) Multicast communication path calculation method and multicast communication path calculation apparatus
US8358652B2 (en) Apparatus, system and method for reliable, fast, and scalable multicast message delivery in service overlay networks
US8972585B2 (en) Method for splitting a load of monitoring a peer to peer network
JP4598789B2 (ja) 経路計算制御方法、経路計算制御プログラムおよび経路計算制御装置
US20140247827A1 (en) Path Computation Element Protocol Support for Large-Scale Concurrent Path Computation
TW201543365A (zh) 在一服務導向架構(soa)網路中尋求服務之技術
JP4671972B2 (ja) ピアツーピア・ネットワークの最適利用方法
Ascigil et al. A native content discovery mechanism for the information-centric networks
CA2595438C (en) Method for improving peer to peer network communication
JP2009284448A (ja) オーバーレイネットワーク通信経路制御方法とシステムおよびプログラム
EP1440529B1 (en) System and method for information object routing in computer networks
JP4729506B2 (ja) 分散型データ処理装置
EP2785017B1 (en) Content-centric networking
JP2007251805A (ja) 通信装置およびネットワークシステム
JP5506640B2 (ja) コンテンツ配信方法及びシステム
WO2015176650A1 (en) Method for optimizing network traffic engineering and system thereof
JP2016046785A (ja) キャッシュサーバ選択装置、分散キャッシュシステム、及びキャッシュサーバ選択方法
JP4242262B2 (ja) 通信システム及び端末
KR100872170B1 (ko) P2p 네트워크 다중 라우팅 방법
JP2006221457A (ja) Pure型P2P通信におけるレプリケーション制御を行うサーバントとそのレプリケーション制御方法およびプログラム
JP2010277314A (ja) P2p配信方法およびシステム
JP2004341912A (ja) 情報探索方法、サーバント、プログラム及び該プログラムを記録した記録媒体
JP5598475B2 (ja) ネットワーク運用システム、ネットワーク運用方法、及びネットワーク運用プログラム
JP2004274142A (ja) ルーチング方法及びルーチング装置並びにプログラム及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110706

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110913

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111207

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120119

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees