JP4490990B2 - ピアツーピア通信確立装置及びプログラム - Google Patents

ピアツーピア通信確立装置及びプログラム Download PDF

Info

Publication number
JP4490990B2
JP4490990B2 JP2007131798A JP2007131798A JP4490990B2 JP 4490990 B2 JP4490990 B2 JP 4490990B2 JP 2007131798 A JP2007131798 A JP 2007131798A JP 2007131798 A JP2007131798 A JP 2007131798A JP 4490990 B2 JP4490990 B2 JP 4490990B2
Authority
JP
Japan
Prior art keywords
peer
relay
virtual
node
global flow
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.)
Expired - Fee Related
Application number
JP2007131798A
Other languages
English (en)
Other versions
JP2008288872A (ja
Inventor
淳一 中里
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2007131798A priority Critical patent/JP4490990B2/ja
Publication of JP2008288872A publication Critical patent/JP2008288872A/ja
Application granted granted Critical
Publication of JP4490990B2 publication Critical patent/JP4490990B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ピアツーピア通信確立装置及びプログラムに関し、更に詳しくは、仮想ネットワークにおけるグローバルフロー検出に基づいてピアツーピア通信を確立する装置及びプログラムに関する。
例えば、TCP/IPネットワークのような既存の物理的なネットワーク(以後、「アンダーレイネットワーク」と称する)上に、ソフトウェアにて構築する仮想的なネットワークをオーバレイネットワークと呼ぶ。
主なオーバレイネットワーク(以後、「仮想ネットワーク」とも称する)として、以下のように、いわゆるピアツーピア(P2P)ネットワーク(例えば、非特許文献1乃至7)と呼ばれるものや、仮想ローカルエリアネットワーク(以後、「仮想LAN」と称する)がある。
ピアツーピアネットワークは、現状、ファイル交換(Winny,BitTorrent等)、音声通信(Skype等)などに広く利用されている。その方式により、大きく以下の2つ、すなわち、(1)ホストやコンテンツの探索は特別なサーバに依存するが、最終的なデータの送受信はピアツーピアのホスト間で行なうものと、(2)データの送受信だけでなく、ホストやコンテンツの探索そのものも、特別なサーバを必要とせず、完全に対等な立場のホスト間で分散協調して行なうものとに分けられる。なお、ホスト、コンテンツの探索に、特定のサーバではないが、特別な役割を果たすホスト群を利用する、上記2つの中間的な方式を用いるものもある。
一方、仮想LANとして代表的なものに、ソフトイーサ株式会社製のSoftether(Packetix)(例えば、非特許文献8乃至9)がある。Softether(Packetix)は仮想ネットワークの一例である仮想イーサネット(登録商標)を構築するソフトウェア群である。Softether(Packetix)又はこれに類似したソフトウェアでの仮想イーサネットの構築方法は例えば以下の通りである。
すなわち、先ず、ある計算機上にイーサネットスイッチングハブをエミュレートするソフトウェア(以後、「仮想ハブ」と称する)を動作させる(以後、仮想ハブを動作させる計算機を「サーバ」と称する。)。
次に、仮想イーサネットに参加を希望する計算機が、ソフトウェアにて構築された仮想的なネットワークインタフェース(以後、「仮想ネットワークインタフェース」と称する)を介して、仮想ハブに接続する(以後、仮想ネットワークインタフェースを動作させる計算機を「クライアント」と称する)。
このような仮想イーサネットの一般的な構成を図18に示す。
例えばTCP/IPネットワークであるアンダーレイネットワーク150は、オーバレイネットワークである仮想イーサネット154を構築する基盤となる物理ネットワークである。アンダーレイネットワーク150は、ファイアウォール156、ルータ157、リンク層の通信装置(イーサネットならばハブやスイッチングハブ)により構成される。ルータ157は、TCP/IPネットワークを構成するネットワーク層の装置であり、一般的なものであることからここではその詳細説明を割愛する。また、ファイアウォール156は、内部ネットワーク160と外部ネットワーク161との境界に設置されるセキュリティ装置であり、一般的なものであることからここではその詳細な説明を割愛する。
クライアント153は、仮想イーサネット154を構成する仮想ハブ151に接続する計算機であり、仮想ネットワークインタフェース152を介して仮想ハブ151に接続する。仮想ハブ151は、このように複数のクライアント153とのコネクションを保持する中継ノードとして機能する。サーバ155は、このような仮想ハブ151を配置するネットワーク仮想化装置である。本明細書では、このようなネットワーク仮想化装置であるサーバ155と、ネットワーク仮想化装置によって制御される端末であるクライアント153とを合わせてネットワーク仮想化システムと称する。仮想イーサネット154は、一つ又は複数の仮想ハブ151に、それぞれ仮想ネットワークインタフェース152を持った複数のクライアント153が接続することにより構築される。
電子情報通信学会誌、2004年9月号、「P2P総論I ブローカーレスモデルの挑戦」 電子情報通信学会誌、2004年10月号、「P2P総論II P2Pテクノロジ」 電子情報通信学会誌、2004年12月号、「P2P総論III P2Pサービスとビジネス」 電子情報通信学会誌、2005年1月号、「P2P総論IV 最新動向と将来展望」 株式会社アスキー、UNIX(登録商標) MAGAZINE、2005年9月号、「P2P技術の基礎知識[1]」 株式会社アスキー、UNIX MAGAZINE、2005年10月号、「P2P技術の基礎知識[2]」 株式会社アスキー、UNIX MAGAZINE、2005年11月号、「P2P技術の基礎知識[3]」 株式会社アスキー、公式SoftEther活用ガイド http://www.softether.com、ソフトイーサ株式会社ホームページ
このような従来の仮想イーサネット154では、仮想イーサネット154に属するクライアント153間のトラフィックは全て仮想ハブ151、すなわちサーバ155を経由すること、及び、仮想イーサネット154に属するクライアント153同士、或いはクライアント153とサーバ155との位置関係はアンダーレイネットワーク150のトポロジを考慮したものではない。従って、
1.仮想ハブ151のスケーラビリティ確保が困難である。
2.アンダーレイネットワーク150への負荷が増大し、設備投資コストが増大する。
3.複数の仮想ハブ151の設置や、複数の仮想ハブ151間でのクライアント153の繋ぎ替えなどの管理コストが増大する。
という問題が生じる。
本発明はこのような事情に鑑みてなされたものであり、仮想ハブを経由することなくクライアント間で直接的に通信を行うことにより、トラフィックの最適化を図ることが可能なピアツーピア通信確立装置及びプログラムを提供することを目的とする。特に、複数の仮想ハブを経由して通信しているクライアント間においてもそれら仮想ハブ群を経由することなく、直接的に通信を行うことにより、トラフィックの最適化を図るピアツーピア通信確立装置及びプログラムを提供することを目的とする。
上記の目的を達成するために、本発明では、以下のような手段を講じる。
すなわち、本願発明は、複数の中継ノードのうちの少なくとも何れかとの通信リンクを持つ複数のクライアントがそれぞれ、中継ノードを経由して他のクライアントと互いに通信する仮想ネットワークにおいて、特定のクライアント間にピアツーピアリンクを確立する装置であって、複数のクライアントのうち、任意の2つのクライアント間において、連続した2つ以上の中継ノードを介してなされ、かつ予め定めた基準を満足する通信フローであるグローバルフローを検出するグローバルフロー検出手段と、グローバルフロー検出手段によってグローバルフローが検出されたクライアント間にピアツーピアリンクを確立するピアツーピアリンク確立手段とを備えている。
そして、ピアツーピアリンク確立手段によってピアツーピアリンクが確立されたクライアント間の通信が、ピアツーピアリンクを介してなされる。
請求項の発明は、更に、グローバルフロー検出手段は、中継ノードの全てについて、中継ノード間の通信フローを中継しない中継ノードであるリーフノードの各々に対する到達ホップ数を調査し、最大ホップ数が最も少ない中継ノードか、又は最大ホップ数が予め定めた閾値よりも小さい全ての中継ノードルートノードとして決定するルートノード決定手段と、ルートノード決定手段によって決定されたルートノードを開始点として、ルートノードから仮想ネットワークに沿ってリーフノード側へと中継ノードを辿りながら、予め定めた基準を満足する通信フローであるグローバルフロー候補を検出して行き、2つのリーフノード間で連続するグローバルフロー候補が検出されれば、連続するグローバルフロー候補をグローバルフローと判定するグローバルフロー判定手段とを備えている。
請求項の発明は、請求項1のピアツーピア通信確立装置に代えて、グローバルフロー検出手段は、中継ノードの全てについて、負荷が最大である中継ノードか、又は負荷が予め定めた閾値より大きい全ての中継ノードルートノードとして決定するルートノード決定手段と、ルートノード決定手段によって決定されたルートノードを開始点として、ルートノードから仮想ネットワークに沿って、中継ノード間の通信フローを中継しない中継ノードであるリーフノード側へと中継ノードを辿りながら、予め定めた基準を満足する通信フローであるグローバルフロー候補を検出して行き、2つのリーフノード間で連続するグローバルフロー候補が検出されれば、連続するグローバルフロー候補をグローバルフローと判定するグローバルフロー判定手段とを備えている。
請求項の発明は、ルートノード決定手段は、ルートノードの決定の際に対象とする中継ノードを、中継ノードの全てではなく、リーフノードの全てとすることを特徴とする請求項又はのピアツーピア通信確立装置である。
請求項乃至の発明は、請求項1乃至の装置に対応するプログラムである。
本発明によれば、仮想ハブを経由することなくクライアント間で直接的に通信を行うことにより、トラフィックの最適化を図ることが可能なピアツーピア通信確立装置及びプログラムを実現することができる。
特に、複数の仮想ハブを経由して通信しているクライアント間においてもそれら仮想ハブ群を経由することなく、直接的に通信を行うことにより、トラフィックの最適化を図るピアツーピア通信確立装置及びプログラムを実現することができる。
以下に、本発明を実施するための最良の形態について図面を参照しながら説明する。
(第1の実施の形態)
本発明の第1の実施の形態について説明する。
図1は、本発明の第1の実施の形態に係るピアツーピア通信確立方法が適用される典型的なネットワーク10の構成例を示す概念図である。なお、このネットワーク10は、イーサネット(登録商標)等のLAN、あるいは公衆回線や専用回線を介して複数のLANが接続されるWAN等からなりうる。LANの場合には、必要に応じてルータを介した多数のサブネットから構成される。また、WANの場合には、公衆回線に接続するためのファイアウォール等を適宜備えている。しかしながら、ここでは、本発明の本質を曖昧にしないために、それらの図示及び詳細説明を省略し、仮想ハブ20、クライアント30、ネットワーク管理モジュール40、及びLAN50のみを示している。
図1に示すネットワーク構成は、クライアント30(#1)は仮想ハブ20(#2)に、クライアント30(#2)、クライアント30(#3)は仮想ハブ20(#1)に、クライアント30(#4)からクライアント30(#6)は仮想ハブ20(#4)にそれぞれ接続している。また、仮想ハブ20(#1)〜(#4)は図示するように直列に接続している。なお、LAN50(#1)〜(#6)はアンダーレイネットワークのセグメント(通常、IPネットワークのセグメント)を表し、セグメント間は通常、ルータ(図示せず)により接続されている。仮想ハブ20(#1)、及びクライアント30(#1)〜(#3)はLAN50(#1)に、仮想ハブ20(#2)はLAN50(#2)に、仮想ハブ20(#3)はLAN50(#3)に、仮想ハブ20(#4)はLAN50(#4)に、クライアント30(#4)〜(#6)はLAN50(#5)に、それぞれ属している。
更に、仮想ハブ20(#1)〜(#4)は、ネットワーク管理モジュール40に接続されている。ネットワーク管理モジュール40はLAN50(#1)〜(#6)のうち何れのLAN50上に属すことも可能である。あるいは仮想ハブ20(#1)〜(#4)や、クライアント30等の計算機上で動作させることも、別の計算機上で動作させることも可能である。図1では一例として、LAN50(#1)〜(#6)のうちの何れかのLAN50上に属しているものとして示している。
図2、図3、及び図4は、仮想ハブ20、クライアント30、及びネットワーク管理モジュール40それぞれの構成例を示す機能ブロック図である。
図1の仮想ハブ20(#1)〜(#4)に示すような仮想ハブ20は、図2に示すように、イーサネットスイッチングハブ21、転送テーブル22、接続リンク制御部23、仮想ポート24、ネットワーク管理インタフェース部25、ピアツーピアリンク制御部26、アンダーレイネットワークプロトコル群27、及び物理ネットワークインタフェース28を備えている。
イーサネットスイッチングハブ21は、いわゆる一般的なイーサネットスイッチングハブと同様の処理を行なう。
転送テーブル22は、イーサネットフレームの宛先MACアドレスと出力先ポートとのマッピングを保持するテーブルである。イーサネットスイッチングハブによるイーサネットフレーム転送処理に一般的に用いられるので、ここでは詳細は割愛する。
接続リンク制御部23は、クライアント30、あるいは他仮想ハブ20とのアンダーレイネットワークでの接続(リンク)を保持、制御する部分であり、イーサネットスイッチングハブ21から受け取ったイーサネットフレームを適切なアンダーレイネットワークのリンクへ送出する。また、アンダーレイネットワークから受信したイーサネットフレームをイーサネットスイッチングハブ21へ渡す。
仮想ポート24は、仮想ハブ20において、通常のイーサネットスイッチングハブの通信ポートに相当する概念であり、論理的なケーブル、つまりアンダーレイネットワークの何らかの手段を用いた他仮想ハブ20、あるいは仮想ネットワークインタフェース32(図3を用いて後述する)との接続の端点である。従って、仮想ポート24は、接続リンク制御部23における、他仮想ハブ20、あるいは自局が収容するクライアント30(特に、仮想ネットワークインタフェース32)とのアンダーレイネットワークでの接続(リンク)の端点を表し、仮想ハブ20内で一意な識別子により区別される。
ネットワーク管理インタフェース部25は、他仮想ハブ20、あるいは自局が収容するクライアント30(特に、仮想ネットワークインタフェース32)との接続リンク状態、イーサネットスイッチングハブ21での、それら接続リンク間のトラフィック量、トラフィックのプロトコル、クライアント30のアンダーレイネットワークでの位置関係情報等を収集、管理し、更にネットワーク管理モジュール40へのそれら情報の通知処理を行なう。
ピアツーピアリンク制御部26は、ネットワーク管理インタフェース部25経由でのネットワーク管理モジュール40からの指示により、クライアント30へピアツーピアリンク生成、削除の指示を行なう。
アンダーレイネットワークプロトコル群27は、一般的には、TCP/IP及びそれらを使用する上位プロトコル(例えばHTTP)である。
物理ネットワークインタフェース28は、実際の通信に使用される物理的なネットワークインタフェースである。
図1のクライアント30(#1)〜(#6)に示すようなクライアント30は、図3に示すように、アプリケーション/上位プロトコル群31、仮想ネットワークインタフェース32、アンダーレイネットワークプロトコル群37、及び物理ネットワークインタフェース38を備えている。更に、仮想ネットワークインタフェース32は、イーサネットフレーム送受信部33、送信先管理テーブル34、及び接続リンク制御部35を備えている。更に、接続リンク制御部35は、複数の仮想ポート36を備えている。
アプリケーション/上位プロトコル群31は、仮想ネットワークインタフェース32を使用するユーザアプリケーション、及び、上位プロトコル(例えばTCP/IP、HTTPなど)である。
仮想ネットワークインタフェース32では、イーサネットフレーム送受信部33が、アプリケーション/上位プロトコル群31からのデータをイーサネットフレームに格納し、接続リンク制御部35へ送出する。また、接続リンク制御部35から受け取ったイーサネットフレームからイーサネットヘッダを除去し、アプリケーション/上位プロトコル群31に渡す。
また仮想ネットワークインタフェース32では、接続リンク制御部35が、仮想ハブ20、あるいは他のクライアント30とのアンダーレイネットワークでの接続(リンク)を保持、制御する部分であり、イーサネットフレーム送受信部33から受け取ったイーサネットフレームを適切なアンダーレイネットワークのリンクへ送出する。また、アンダーレイネットワークから受信したイーサネットフレームをイーサネットフレーム送受信部33へ渡す。
接続リンク制御部35に備えられた仮想ポート36は、接続リンク制御部35における他仮想ハブ20とのアンダーレイネットワークでの接続(リンク)の端点を表し、仮想ネットワークインタフェース32内で一意な識別子により区別される。
送信先管理テーブル34は、ピアツーピアリンクと、そのリンクのピアのMACアドレスとのマッピングを保持するテーブルである。後述するように、送信先管理テーブル34に登録されているピア宛のイーサネットフレーム(ユニキャストフレーム)は該当ピアツーピアリンクへ、それ以外の宛先のイーサネットフレーム(ユニキャストフレーム)、ブロードキャストフレーム、マルチキャストフレームは仮想ハブ20とのリンクへ出力される。
アンダーレイネットワークプロトコル群37は、一般的には、TCP/IP、及びそれらを使用する上位プロトコル(例えばHTTP)である。
物理ネットワークインタフェース38は、実際の通信に使用される物理的なネットワークインタフェースである。
図1に示すようなネットワーク管理モジュール40は、本発明のピアツーピア通信確立方法を実行するための例えば磁気ディスク等の記録媒体に記録されたプログラムや、インターネット等の通信ネットワークを介してダウンロードしたプログラムを読み込み、このプログラムによって動作が制御されるコンピュータによって実現される装置である。
このプログラムは、ネットワーク管理モジュール40のような計算機(コンピュータ)に実行させることができるものであって、例えば磁気ディスク(フロッピー(登録商標)ディスク、ハ一ドディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記録媒体に格納し、またインターネット等の通信媒体により伝送して頒布することもできる。なお、記録媒体に格納されるプログラムは、ネットワーク管理モジュール40のような計算機に実行させるソフトウェア手段(実行プログラムのみならずテーブルやデータ構造も含む)をネットワーク管理モジュール40のような計算機内に構成させる設定プログラムをも含む。そして、本プログラムは、記録媒体から、あるいは通信媒体からネットワーク管理モジュール40のような計算機に読み込まれると、ネットワーク管理モジュール40のような計算機を動作させることによって、情報収集部41、ルートノード決定部42、グローバルフロー検出部43、及びピアツーピアリンク制御部44に処理を実行させる。
情報収集部41は、各仮想ハブ20のネットワーク管理インタフェース部25と通信し、各仮想ハブ20から、他の仮想ハブ20やその仮想ハブ20が収容するクライアント30(特に、仮想ネットワークインタフェース32)との接続リンク状態、イーサネットスイッチングハブ21でのそれら接続リンク間の転送トラフィック量、トラフィックのプロトコル、クライアント30のアンダーレイネットワークでの位置関係情報等を定期的に収集、管理する。また、上記情報から仮想ハブ20、仮想ネットワークインタフェース32の接続トポロジ状態(以後、接続ツリー情報)を作成する。
ここで例えば図5に示すように、クライアント30(#2)とクライアント30(#6)との間に、ある条件にマッチする可能性のあるトラフィックTが発生したとする。すると情報収集部41は、各仮想ハブ20(#1)〜(#4)のネットワーク管理インタフェース部25から上述したような情報を収集する。更に、収集した情報のうち、各仮想ハブ20(#1)〜(#4)の保持する接続リンク情報から、図6に示すように、各仮想ハブ20(#1)〜(#4)、及びそれらが収容するクライアント30(仮想ネットワークインタフェース32)の接続状態、つまり接続ツリー情報(ツリーのデータ構造)を作成する。
なお、図6では、図示の便宜上、仮想ハブ20(#3)をツリーのルートのように記しているが、以降の処理におけるルートノードが仮想ハブ20(#3)であることを意味している訳ではない。
ルートノード決定部42は、図6に示すような接続ツリー情報から、ルートノードを決定する。ルートノードとは、グローバルフローの検出処理が開始される仮想ハブ20のことを称する。グローバルフローとは、トラフィック量の基準値を上回る、あるいは同一の上位層プロトコル情報を格納しているなど、ある同じ条件を満たしたローカルフローが、連続した2つ以上の仮想ハブ20に渡って存在する場合、それら連続したローカルフローを大域的な1つのフローであると見なし、グローバルフローと呼ぶ。
一方、ローカルフローとは、本明細書では、以下の2つの定義のうちの何れかを意味している。第1の定義では、ある仮想ハブ20内において、ある2つの仮想ポート24間のトラフィックが発生している状態(転送が行なわれている状態)を、これら仮想ポート24間にフローがあるとし、ローカルフローと称している。
第2の定義では、ある仮想ハブ20内において、転送テーブル22に学習されている任意の2つのMACアドレス、及びそれらにそれぞれマッピングされている出力ポートのペアをローカルフローと称している。この場合、マッピングを、以下のように表す。
{仮想ポートm:MAC1}=>{仮想ポートn:MAC2}
ここでm、nは仮想ポートを識別する整数であり、MAC1,MAC2はその仮想ポートとマッピングされているMACアドレスであり、“⇒”は方向を表す(詳細は後述する)。
なお、このようなルートノード決定部42が、ルートノードを決定する具体的な処理については後述する。
グローバルフロー検出部43は、ルートノード決定部42によって決定されたルートノードを開始ノードとしてグローバルフローを検出する。この検出方法の詳細は後述する。なお、グローバルフロー検出部43は、特定の仮想ハブ20をルートノードとすることなく、全ての仮想ハブ20をルートノードとして、グローバルフロー検出処理を行なうことも可能である。
ピアツーピアリンク制御部44は、グローバルフロー検出部43によってグローバルフローが検出された場合、仮想ハブ20のネットワーク管理インタフェース部25経由で、クライアント30へピアツーピアリンク生成の指示を行なう。例えば、グローバルフロー検出部43が、図5に示すように、仮想ハブ20(#1)と仮想ハブ20(#4)との間、つまりクライアント30(#2)とクライアント30(#6)との間でグローバルフローを検出すると、ピアツーピアリンク制御部44は、クライアント30(#2)とクライアント30(#6)とに、互いの間にピアツーピアリンクを生成し、ピアツーピア通信に移行するよう指示を出す。
一方、グローバルフロー検出部43が、グローバルフローを検出しなかった場合、ピアツーピアリンク制御部44は、更なる処理は行なわず、クライアント30はそれまでと同様に仮想ハブ20を経由して通信を行なう。
図7のフローチャートに示すように、ピアツーピアリンク制御部44から、ピアツーピアリンクを生成する指示が、関連するクライアント30(例えば、クライアント30(#2)とクライアント30(#6))に対してなされる(S1)と、上記指示を受け取ったクライアント30の接続リンク制御部35は、アンダーレイネットワークの何らかの手段(例えば、TCPコネクションやSSLセッションなど)を使用して、ピアツーピアリンクによる通信路を生成し(S2)、クライアント30(#2)はクライアント30(#6)の仮想イーサネットのMACアドレスを、クライアント30(#6)はクライアント30(#2)の同MACアドレスを送信先管理テーブル34に登録する(S3)。
以後、クライアント30(#2)の接続リンク制御部35は、図8のフローチャートに示すように、送信データを受け取ると(S11)、クライアント30(#6)向けのイーサネットフレーム(宛先MACアドレスとして、クライアント30(#6)のMACアドレスを持つもの)を前記ピアツーピアリンクに送出し(S12:No、S13:Yes、S14)、それ以外の宛先MACアドレス(ユニキャスト)を持つイーサネットフレームは仮想ハブ(#1)とのリンクに送出する(S12:No、S13:No、S15)。また、ブロードキャストフレーム、マルチキャストフレームも仮想ハブ20(#1)とのリンクに送出する(S12:Yes、S15)。
同様に、クライアント30(#6)は、クライアント30(#2)向けのイーサネットフレーム(宛先MACアドレスとして、クライアント30(#2)のMACアドレスを持つもの)は前記ピアツーピアリンクに送出し、それ以外の宛先MACアドレスを持つイーサネットフレーム、及びブロードキャストフレーム、マルチキャストフレームは仮想ハブ20(#4)とのリンクに送出する。
結果として、クライアント30(#2)とクライアント30(#6)との間のトラフィックは仮想ハブ20(#1)から仮想ハブ20(#4)を経由することがなくなり、これら仮想ハブ20(#1)〜(#4)群への負荷、及び、アンダーレイネットワークであるLAN50(#2)、LAN50(#3)、及びLAN50(#4)への負荷が軽減される。
最終的に、上記処理によりクライアント30(#2)とクライアント30(#6)と間のピアツーピア通信が確立された状態を図9に示す。実線pがピアツーピア通信リンクpを示し、破線dが仮想ハブ20経由の通信リンクdを示す。
なお、一旦検出されたグローバルフローが、ある条件を満たさなくなった場合、つまりグローバルフローでなくなった場合には、グローバルフロー検出部43がそれを検出し、ピアツーピアリンク制御部44が、関連するクライアント30に対して、ピアツーピアリンクの削除、及び仮想ハブ20経由での通信への移行を指示する。
この場合、クライアント30側の処理は、図10のフローチャートに示すように、ネットワーク管理モジュールからの指示受信をトリガとして(S21)、ピアツーピアリンクの削除(S22)、及び送信先管理テーブル34からの該当クライアントのMACアドレスの削除を行なう(S23)。
なお、前述したように、ネットワーク管理モジュール40は、仮想ハブ20や、仮想ネットワークインタフェース32が動作するクライアント30で動作させることも、別の計算機上で動作させる事も可能である。また、ネットワーク管理モジュール40の情報収集部41、ピアツーピアリンク制御部44と各仮想ハブ20のネットワーク管理インタフェース部25、ピアツーピアリンク制御部26間の通信は、アンダーレイネットワークを使用した一般的なもので実現可能であるので、ここではその詳細説明を省略する。
次に、ルートノード決定部42によってなされるルートノード決定方法の3つの例を説明する。
(ルートノード決定方法1)
ここでは、トポロジ上のツリーの中心の仮想ハブをルートノードとする。
ネットワーク管理モジュール40のルートノード決定部42は、全ての仮想ハブ20について、全てのリーフノードへの到達ホップ数を調査し、最大ホップ数が最小である仮想ハブをルートノードとする。リーフノードとは、他仮想ハブ20との接続が0個、或は1個である仮想ハブ20であり、言い換えると、他仮想ハブ20間のトラフィックを中継しない仮想ハブ20である。
一例として図11を用いて説明すると、仮想ハブ20(#1)から仮想ハブ20(#7)について、それぞれの仮想ハブ20(#1)〜(#7)から各リーフノード(仮想ハブ20(#1),(#4),(#6),(#7))へのホップ数は図12のようになり、結果的に、仮想ハブ20(#3)がルートノードとなる。なお、トポロジによっては、複数の仮想ハブ20が上記ルートノードの条件を満たすことが考えられるが、この場合は、別途、以下のa)〜c)のうちの少なくとも何れかの手段でルートノードを決定する。
a)上記条件を満たした複数ルートノードを全てルートノードとする。
b)ランダムに1つを選ぶ。
c)負荷を考慮する(後述するルートノード決定方法2との組み合わせとも言える)。
更には、最大ホップ数が、予め定められた閾値を下回る全ての仮想ハブ20をルートノードとすることも可能である。また、ツリーを形成するデータ構造における、各ノード間のホップ数をカウントする方法は一般的なものであるので、ここでは詳細説明を省略する。
(ルートノード決定方法2)
ここでは、負荷の高い仮想ハブ20をルートノードとする。
ネットワーク管理モジュール40のルートノード決定部42は、全ての仮想ハブ20について、収容ノード数、CPU使用率、メモリ使用率、ローカルフローのトラフィック量、ローカルフロー数、ローカルフロー平均負荷(全負荷/ローカルフロー数)、ローカルフローのある特定の上位層プロトコルのトラフィック量等のような負荷情報を調査し、最も負荷の高い仮想ハブ20をルートノードとする。
更には、上記負荷が、予め定められた閾値を上回る全ての仮想ハブ20をルートノードとすることも可能である。ここで、例えば、図13にて、各仮想ハブ20(#1)〜(#7)の取り扱うトラフィック量を負荷とし、最も負荷のかかっている仮想ハブ20をルートノードと決定するとする。ここで、クライアント30(#4)とクライアント30(#6)との間で非常に負荷の高いトラフィックtが発生しており、それ以外のクライアント30間ではあまりトラフィックが発生していない場合など、本方法で仮想ハブ20(#5)をルートノードとして選択することができれば、その後グローバルフロー検出部43において行われるグローバルフロー検出処理において、例えば、リーフノードへのホップ数が少ないものからグローバルフローを検出する処理を行なう場合などに、素早く仮想ハブ20(#6)と仮想ハブ20(#7)との間、つまりクライアント30(#4)とクライアント30(#6)との間のグローバルフローを検出することが可能になる。
(ルートノード決定方法3)
本方法では、リーフノードをルートノードとする。
ネットワーク管理モジュール40のルートノード決定部42は、全てのリーフノードについて、仮想ポートの負荷(当該仮想ポートにより送受信されるトラフィック量)を調査し、最も負荷の高い仮想ポートを持つリーフノードをルートノードとする。更には、上記負荷が、予め定められた閾値を上回る全てのリーフノードをルートノードとすることも可能である。
例えば、図14にて、クライアント30(#1)がファイルサーバであり、クライアント30(#10)がそのバックアップを保存する計算機で、クライアント30(#1)とクライアント30(#10)と間でファイルシステムのバックアップが行なわれているとする。この状態でリーフノードである仮想ハブ20(#1),(#4),(#6),(#7)について、それらの保持する全仮想ポートのトラフィック量を調査する。そして、例えば、仮想ハブ20(#4)の仮想ポート3のトラフィック量が最大となり、仮想ハブ20(#4)をルートノードと決定することができれば、その後グローバルフロー検出部43において行われるグローバルフロー検出処理において、ファイルシステムのバックアップのトラフィックを扱っている仮想ハブ20(#2)と仮想ハブ20(#4)との間、つまり、クライアント30(#1)とクライアント30(#10)と間でグローバルフローを検出することが可能になる。なお、本方法において、負荷としてルートノード決定方法2と同様のものを採用した場合は、ルートノード決定方法2において対象とする仮想ハブ20をリーフノードに限定したものと考える事ができる。
次に、グローバルフロー検出部43によってなされるグローバルフロー検出方法の3つの例を説明する。
(グローバルフロー検出方法1)
本方法では、トラフィック情報を用いてグローバルフローを検出する。なお、本方法におけるローカルフローは、上述した定義1のローカルフローである。
ネットワーク管理モジュール40のグローバルフロー検出部43は、上記ルートノード決定方法1乃至3のうちの何れかの方法で決定されたルートノードを処理開始ノードとして、全てのリーフノード方向へ仮想ハブ20を辿りながら、各仮想ハブ20のルートノード方向の仮想ポートを含むローカルフローと、予め定めたトラフィックに関する条件とを比較し、その条件を満たすならば、そのローカルフローのリーフノード方向の仮想ポートの接続先である仮想ハブ20へと同様の処理を進め、最終的に、2つのリーフノード間に連続したローカルフローが存在すれば、それをグローバルフローと判断する。
例えば、図15の仮想ハブ20(#1)から仮想ハブ20(#7)において、図中に示すようなローカルフローが存在しているとする。太い矢印bで示されたローカルフローbは1Mbpsを越えるトラフィック(ローカルフローの仮想ポート間で転送されている)を示し、細い矢印hで示されたローカルフローhは1Mbpsに満たないトラフィックを示す。
ここで、トラフィックの閾値が仮想ポート間転送ビット数で1Mbps、ルートノードが仮想ハブ20(#3)である場合のグローバルフロー検出処理を説明する。
1)仮想ハブ20(#3)にて、仮想ポート0−仮想ポート1のペアによるローカルフローが閾値を越えていることを検出する。
2)次に、上記ローカルフローのリーフノード方向の端点である仮想ポート0、仮想ポート1の接続先の仮想ハブ20(#2)、仮想ハブ20(#5)について、それぞれルートノードである仮想ハブ20(#3)方向の仮想ポート0を含むローカルフローのチェックを行ない、仮想ハブ20(#2)の仮想ポート0−仮想ポート1のペアによるローカルフロー、及び仮想ハブ20(#5)の仮想ポート0−仮想ポート1のペアによるローカルフローが閾値を越えていることを検出する。
3)同様に、仮想ハブ20(#5)の先の仮想ハブ20(#6)の仮想ポート0−仮想ポート2のペアによるローカルフローが閾値を越えていることを検出する。
4)上記1)乃至3)の処理により、2つのリーフノード、仮想ハブ20(#2)と仮想ハブ20(#6)との間、すなわち、それらが収容するクライアント30(#1)とクライアント30(#5)と間にグローバルフローが存在すると判断する。
5)ここで処理を仮想ハブ20(#3)に戻し、上記と同様に、仮想ハブ20(#3)にて、仮想ポート0−仮想ポート2のペアによるローカルフローが閾値を越えていることを検出する。
6)次に、仮想ハブ20(#3)の仮想ポート0、仮想ポート2それぞれの接続先である仮想ハブ20(#2)、仮想ハブ20(#4)についてローカルフローのチェックを行ない、仮想ハブ20(#2)の仮想ポート0−仮想ポート1のペアによるローカルフロー、及び仮想ハブ20(#4)の仮想ポート0−仮想ポート3のペアによるローカルフローが閾値を越えていることを検出する。
7)ここまでの処理により、2つのリーフノード、仮想ハブ20(#2)と仮想ハブ20(#4)との間、すなわち、それらが収容するクライアント30(#1)とクライアント30(#10)と間にグローバルフローが存在すると判断する。
通常、上記処理は、ルートノードを起点とした再帰的手法により実行される。再帰的処理の中で各仮想ハブ20に関して実行されるネットワーク管理モジュールによるグローバルフロー検出処理フローを図16に示す。ルートノードは、ステップS41乃至45からなる再帰処理を2つのリーフノード方向双方に対して実行し、双方ともにリーフノードまで到達できた場合に、グローバルフローを検出することができる。なお、ローカルフローを閾値との比較処理の対象とするかどうかの判断、及び、リーフノード方向への処理継続の可否の判断に関して、以下のi)〜iii)に示すような注意が必要である。
i)ローカルフローに含まれる仮想ポートの接続先のみが処理継続対象である(S41)。
たとえリーフノード方向への仮想ポートが存在しても、ルートノード方向の仮想ポートとペアを組むローカルフローに含まれない仮想ポートへは、グローバルフロー検出処理を継続しない。上記例についていえば、仮想ハブ20(#5)での仮想ポート2であり、その接続先の仮想ハブ20(#7)へは処理を継続しない。
ii)ルートノード方向の仮想ポートを含むローカルフローのみが閾値との比較処理の対象である(S42)。
たとえローカルフローが存在しても、それにルートノード方向の仮想ポートが含まれていない場合は、閾値との比較の対象としない。上記例についていえば、仮想ハブ20(#2)での仮想ポート1−仮想ポート2のペアによるローカルフローであり、閾値との比較処理は行なわない。ルートノードである仮想ハブ20(#3)を含むフローに含まれないからであるが、例えば、ルートノードとして仮想ハブ20(#2)を選択したならば、このローカルフローも処理の対象となったであろう。
iii)条件を満たしたローカルフローに含まれるリーフノード方向の仮想ポートの接続先のみが、検出処理継続の対象となる(S43:No,S44)。
たとえルートノード方向の仮想ポートを含むローカルフローが存在したとしても、閾値との比較で条件を満たさなければ、そのローカルフローのリーフノード方向の仮想ポートの接続先へはグローバルフロー検索処理を継続しない。上記例についていえば、仮想ハブ20(#2)の仮想ポート0−仮想ポート2のペアによるローカルフローは閾値を越えていないため、このローカルフローの端点の接続先である仮想ハブ20(#1)についてグローバルフロー検出処理は継続しない。
以上、図15を用いて、トラフィック情報、特に、仮想ポート間の単位時間当たりの転送ビット数を元にした2つのグローバルフローの検出処理に関して例を記したが、トラフィック情報としては、これだけではなく、仮想ポート間の単位時間当たりの転送ビット数、仮想ポート間の単位時間当たりの転送バイト数、仮想ポート間の単位時間当たりの転送フレーム数、仮想ポート間の単位時間当たりの、特定サイズ以上の転送フレーム数、仮想ポート間での特定の上位層プロトコル情報を含むデータの検出(上位層プロトコル情報としては、プロトコル種別、IPアドレス、UDP/TCPポート番号等が考えられる)、仮想ポート間の単位時間当たりの、特定の上位層プロトコル情報を含むものの転送ビット数/バイト数/フレーム数(上位層プロトコル情報としては、プロトコル種別、IPアドレス、UDP/TCPポート番号等が考えられる)のような情報を使用することも可能である。
(グローバルフロー検出方法2)
本方法では、アドレス情報を用いてグローバルフローを検出する。なお、本方法におけるローカルフローは、上述した定義2のローカルフローである。
ネットワーク管理モジュール40のグローバルフロー検出部43は、上記ルートノード決定方法1乃至3のうちの何れかの方法で決定されたルートノードを処理開始ノードとして、全てのリーフノード方向へ仮想ハブ20を辿りながら、各仮想ハブ20のルートノード方向の仮想ポートを含むローカルフローと、そのローカルフローのルートノード方向の仮想ポートの接続先である仮想ハブ20上の前記仮想ハブ20に至るトリガとなったローカルフローとの、MACアドレスのペアの値、及び、その方向が一致したならば、そのローカルフローのリーフノード方向の仮想ポートの接続先である仮想ハブ20へと同様の処理を進め、最終的に、2つのリーフノード間に連続したローカルフローが存在すれば、それをグローバルフローと判断する。
例えば、図17の仮想ハブ20(#1)から仮想ハブ20(#7)において、図中に示すようにMACアドレスが学習されている、すなわち、各出力ポート(仮想ポート)とMACアドレスがマッピングされているとする。ここで、ルートノードを仮想ハブ20(#1)とした場合のグローバルフロー検出処理を説明する。仮想ハブ20(#1)では、複数のローカルフローが存在するが、ここでは特に{仮想ポートn:MAC3}⇒{仮想ポートm:MAC6}のペアからなるローカルフローに着目した場合について記す。
なお、ローカルフローの記法中、“⇒”はMACアドレスペアの“方向”を示す。つまり、MACアドレスペアの値が等しくても、この方向が逆の場合は、それらローカルフローは同一のグローバルフローに属しているとは見なさず、グローバルフロー検出処理を継続しない。なお、MACアドレスペアの値が等しく、方向が逆となるような状況は、ループ発生時などを除き、通常は発生しない。
さて、{仮想ポートn:MAC3}⇒{仮想ポートm:MAC6}のペアからなるローカルフローに着目すると、
1)仮想ハブ20(#1)にて、{仮想ポート2:MAC3}⇒{仮想ポート0:MAC6}のペアによるローカルフローが存在することを検出する。
2)次に、上記ローカルフローのリーフノード方向の端点である仮想ポート0の接続先の仮想ハブ20(#2)について、ルートノードである仮想ハブ20(#1)方向の仮想ポート2を含むローカルフローのチェックを行ない、仮想ハブ20(#2)上には、仮想ハブ20(#1)上と同じMACアドレスペアの値と方向を持つローカルフロー、{仮想ポート2:MAC3⇒仮想ポート0:MAC6}が存在することを検出する。
3)次に、上記ローカルフローのリーフノード方向の端点である仮想ポート0の接続先の仮想ハブ20(#3)について、ルートノードである仮想ハブ20(#1)方向の仮想ポート0を含むローカルフローのチェックを行ない、仮想ハブ20(#3)上には、仮想ハブ20(#1)、仮想ハブ20(#2)上と同じMACアドレスペアの値と方向を持つローカルフロー、{仮想ポート0:MAC3⇒仮想ポート1:MAC6}が存在することを検出する。
4)同様に、仮想ハブ20(#5)、仮想ハブ20(#7)上にて、同じMACアドレスペアの値と方向を持つローカルフロー、{仮想ポート0:MAC3⇒仮想ポート2:MAC6}、{仮想ポート1:MAC3⇒仮想ポート1:MAC6}が、それぞれ存在することを検出する。
5)上記1)乃至4)の処理により、2つのリーフノード、仮想ハブ20(#1)と仮想ハブ20(#7)と間、すなわち、それらが収容するクライアント30(#3)とクライアント30(#6)と間にグローバルフローが存在すると判断する。
通常、上記処理は、ルートノードを起点とした再帰的手法により実行される。再帰的処理の中で各仮想ハブに関して実行されるネットワーク管理モジュール40によるグローバルフロー検出処理フローは、基本的に図16と同様であり、2番目の条件判定処理部分が
異なるだけである。
以上、図17を用いて、アドレス情報、特に、MACアドレスに基づいたグローバルフローの検出処理に関して例を記したが、アドレス情報としては、IPアドレスなど、上位層のアドレスを使用することも可能である。ただし、処理は複雑になり、性能劣化も生じる可能性がある。
(グローバルフロー検出方法3)
本方法では、トラフィック情報及びアドレス情報の双方を用いてグローバルフローを検出する。
それぞれのグローバルフロー検出方法についてはグローバルフロー検出方法1及び2で説明した通りだが、それぞれ、以下のような事象が発生する可能性がある。
すなわち、グローバルフロー検出方法1のように、トラフィック情報を元にした場合、上位層プロトコル情報、特にIPアドレス等、エンドエンド情報を参照する場合を除いては、主に仮想ポート間のトラフィックの量のみに着目するだけであり、送信元及び宛先を意識する事はない。つまり、様々な送信元及び宛先が混在したトラフィックをチェックしているため、トラフィックの量によりグローバルフローを検出したとしても、それが、ある特定のエンドエンドのクライアント30間のトラフィックのみを根拠として検出されたとはいい難く、グローバルフローは正確性を欠く恐れがある。逆に、送信元及び宛先が混在したトラフィックを見ているため、多くのクライアント30間でランダムに通信が行なわれている環境などでは、エンドエンドで顕著な傾向を示すフロー、つまり、グローバルフローを見つけ出すことは困難となる(エンドエンドのフローが埋もれる)かもしれない。
一方、グローバルフロー検出方法2のように、アドレス情報に基づいた場合、グローバルフロー検出方法2で説明された例を取れば、クライアント30(#3)とクライアント30(#6)との間でイーサネットフレームがやりとりされれば経路上の各仮想ハブ20(#1),(#2),(#3),(#5),(#7)はそれらクライアントのMACアドレスを学習する。このため、極端な例ではあるが、ただ1つのイーサネットフレームの送受信が発生し、以後全くトラフィックが無いとしても、それをグローバルフローと見なしてしまうかもしれない。
このような上記それぞれの事情を鑑み、本方法では、トラフィック情報及びアドレス情報の双方を用いてグローバルフローを検出する。
例えば、先ず、アドレス情報(MACアドレス情報)を使い、グローバルフローを検出する。続いて、そのグローバルフローに含まれる各ローカルフローのトラフィック量、つまり、各仮想ハブ20のローカルフローを形成する2つの仮想ポート間のトラフィック量をチェックし、全てのローカルフローのトラフィック量がある条件を満たした場合にのみ、最終的にグローバルフローであると判断する。
このようにすることで、確実にエンドエンドのクライアント間のグローバルフローを検出する事が可能になる。
なお、上記グローバルフロー検出方法1乃至3では、グローバルフローの端点となり得るのがリーフノードのみとなる場合を例示しているが、適用領域などによれば、一方の端点、或は両方の端点が、リーフノードではない仮想ハブ20、つまり他仮想ハブ20間のトラフィックを中継する仮想ハブ20である中間ノードである場合もあり得る。
従って、本実施の形態に係る本実施の形態に係るピアツーピア通信確立方法によれば、特定の中継ノード群へのトラフィック集中、高負荷を避けることができ、該当中継ノード群、及び、仮想ネットワーク全体のスケーラビリティを確保することが可能となる。また、トラフィックが特定の中継ノード群を経由しないことにより、アンダーレイネットワークへの負荷を軽減することが可能となり、設備投資を抑制することが可能となる。更に、クライアント30間で直接通信を行なうことにより、クライアント30間の通信スループット、応答時間等を改善することも可能となる。
(第2の実施の形態)
第2の実施の形態は、本発明のピアツーピア通信確立方法の第1の実施の形態とは異なる適用例である。したがって、第1の実施の形態と異なる点について説明し、重複説明を避ける。
すなわち、第1の実施の形態では、本発明のピアツーピア通信確立方法によって、2つのクライアント30間でピアツーピア通信が確立される例について説明したが、本発明のピアツーピア通信確立方法は、2つのクライアント30間のピアツーピア通信の確立に限定されるものではなく、2つの仮想ハブ20間のピアツーピア通信にも適用することができる。つまり、別の仮想ハブ20を経由して接続している2つの仮想ハブ20間でのピアツーピアによる直接通信にも適用することができる。
例えば、図17において、仮想ハブ20(#3)上で、仮想ハブ20(#4)と仮想ハブ20(#5)との間のトラフィックが非常に多いと検出されたが、リーフノード間、つまり仮想ハブ20(#4)と仮想ハブ20(#6)、或は仮想ハブ20(#4)と仮想ハブ20(#7)との間では、何らかの理由によりグローバルフローが検出されなかった場合に、仮想ハブ20(#4)と仮想ハブ20(#5)との間で直接通信をさせることが可能である。
このように、本実施の形態に係る本実施の形態に係るピアツーピア通信確立方法によっても、特定の中継ノード群へのトラフィック集中、高負荷を避けることができ、該当中継ノード群、及び、仮想ネットワーク全体のスケーラビリティを確保することが可能となる。また、トラフィックが特定の中継ノード群を経由しないことにより、アンダーレイネットワークへの負荷を軽減することが可能となり、設備投資を抑制することが可能となる。更に、仮想ハブ20間で直接通信を行なうことにより、仮想ハブ20間の通信スループット、応答時間等を改善することも可能となる。
(応用技術分野)
本発明のピアツーピア通信確立方法は、上述したような仮想イーサネットだけでなく、あるノードにトラフィックが集中する仮想ネットワーク構築技術に関しても、広く適用が可能である。
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
第1の実施の形態に係るピアツーピア通信確立方法が適用される典型的なネットワークの構成例を示す概念図。 仮想ハブの構成例を示す機能ブロック図。 クライアントの構成例を示す機能ブロック図。 ネットワーク管理モジュールの構成例を示す機能ブロック図。 図1に示す典型的なネットワークにおいてトラフィックが発生した状態を示す概念図。 情報収集部によって作成された接続ツリー情報の一例を示す図。 ピアツーピアリンクの生成処理の流れを示すフローチャート。 ピアツーピアリンクによる通信処理の流れを示すフローチャート。 図1に示す典型的なネットワークにおいてピアツーピア通信を確立した状態を示す概念図。 ピアツーピアリンクの削除処理の流れを示すフローチャート。 ルートノード決定方法1を説明するためのネットワーク構成概念図。 図11のネットワーク構成におけるリーフノードへのホップ数を示す図。 ルートノード決定方法2を説明するためのネットワーク構成概念図。 ルートノード決定方法3を説明するためのネットワーク構成概念図。 グローバルフロー検出方法1を説明するためのネットワーク構成概念図。 再帰的処理によるグローバルフロー検出処理の流れを示すフローチャート。 グローバルフロー検出方法2を説明するためのネットワーク構成概念図。 仮想イーサネットの一般的な構成例を示すネットワーク概念図。
符号の説明
b…ローカルフロー、d…通信リンク、h…ローカルフロー、m…仮想ポート、n…仮想ポート、p…ピアツーピア通信リンク、T…トラフィック、0〜3…仮想ポート、10…ネットワーク、20…仮想ハブ、21…イーサネットスイッチングハブ、22…転送テーブル、23…接続リンク制御部、24…仮想ポート、25…ネットワーク管理インタフェース部、26…ピアツーピアリンク制御部、27…アンダーレイネットワークプロトコル群、28…物理ネットワークインタフェース、30…クライアント、31…上位プロトコル群、32…仮想ネットワークインタフェース、33…イーサネットフレーム送受信部、34…送信先管理テーブル、35…接続リンク制御部、36…仮想ポート、37…アンダーレイネットワークプロトコル群、38…物理ネットワークインタフェース、40…ネットワーク管理モジュール、41…情報収集部、42…ルートノード決定部、43…グローバルフロー検出部、44…ピアツーピアリンク制御部、50…LAN、150…アンダーレイネットワーク、151…仮想ハブ、152…仮想ネットワークインタフェース、153…クライアント、154…仮想イーサネット、155…サーバ、156…ファイアウォール、157…ルータ、160…内部ネットワーク、161…外部ネットワーク

Claims (6)

  1. 複数の中継ノードのうちの少なくとも何れかとの通信リンクを持つ複数のクライアントがそれぞれ、前記中継ノードを経由して他のクライアントと互いに通信する仮想ネットワークにおいて、特定のクライアント間にピアツーピアリンクを確立する装置であって、
    前記複数のクライアントのうち、任意の2つのクライアント間において、連続した2つ以上の中継ノードを介してなされ、かつ予め定めた基準を満足する通信フローであるグローバルフローを検出するグローバルフロー検出手段と、
    前記グローバルフロー検出手段によってグローバルフローが検出されたクライアント間にピアツーピアリンクを確立するピアツーピアリンク確立手段とを備え、
    前記ピアツーピアリンク確立手段によってピアツーピアリンクが確立されたクライアント間の通信が、前記ピアツーピアリンクを介してなされ、
    前記グローバルフロー検出手段は、
    前記中継ノードの全てについて、中継ノード間の通信フローを中継しない中継ノードであるリーフノードの各々に対する到達ホップ数を調査し、最大ホップ数が最も少ない中継ノードか、又は前記最大ホップ数が予め定めた閾値よりも小さい全ての中継ノードルートノードとして決定するルートノード決定手段と、
    前記ルートノード決定手段によって決定されたルートノードを開始点として、前記ルートノードから前記仮想ネットワークに沿って前記リーフノード側へと中継ノードを辿りながら、前記予め定めた基準を満足する通信フローであるグローバルフロー候補を検出して行き、2つのリーフノード間で連続するグローバルフロー候補が検出されれば、前記連続するグローバルフロー候補を前記グローバルフローと判定するグローバルフロー判定手段と
    を備えたことを特徴とするピアツーピア通信確立装置。
  2. 複数の中継ノードのうちの少なくとも何れかとの通信リンクを持つ複数のクライアントがそれぞれ、前記中継ノードを経由して他のクライアントと互いに通信する仮想ネットワークにおいて、特定のクライアント間にピアツーピアリンクを確立する装置であって、
    前記複数のクライアントのうち、任意の2つのクライアント間において、連続した2つ以上の中継ノードを介してなされ、かつ予め定めた基準を満足する通信フローであるグローバルフローを検出するグローバルフロー検出手段と、
    前記グローバルフロー検出手段によってグローバルフローが検出されたクライアント間にピアツーピアリンクを確立するピアツーピアリンク確立手段とを備え、
    前記ピアツーピアリンク確立手段によってピアツーピアリンクが確立されたクライアント間の通信が、前記ピアツーピアリンクを介してなされ、
    前記グローバルフロー検出手段は、
    前記中継ノードの全てについて、負荷が最大である中継ノードか、又は前記負荷が予め定めた閾値より大きい全ての中継ノードルートノードとして決定するルートノード決定手段と、
    前記ルートノード決定手段によって決定されたルートノードを開始点として、前記ルートノードから前記仮想ネットワークに沿って、中継ノード間の通信フローを中継しない中継ノードであるリーフノード側へと中継ノードを辿りながら、前記予め定めた基準を満足する通信フローであるグローバルフロー候補を検出して行き、2つのリーフノード間で連続するグローバルフロー候補が検出されれば、前記連続するグローバルフロー候補を前記グローバルフローと判定するグローバルフロー判定手段と
    を備えたことを特徴とするピアツーピア通信確立装置。
  3. 前記ルートノード決定手段は、前記ルートノードの決定の際に対象とする中継ノードを、前記中継ノードの全てではなく、前記リーフノードの全てとすることを特徴とする請求項又はのピアツーピア通信確立装置。
  4. 複数の中継ノードのうちの少なくとも何れかとの通信リンクを持つ複数のクライアントがそれぞれ、前記中継ノードを経由して他のクライアントと互いに通信する仮想ネットワークにおいて、特定のクライアント間にピアツーピアリンクを確立するプログラムであって、
    前記複数のクライアントのうち、任意の2つのクライアント間において、連続した2つ以上の中継ノードを介してなされ、かつ予め定めた基準を満足する通信フローであるグローバルフローを検出する機能、
    前記グローバルフローが検出されたクライアント間にピアツーピアリンクを確立する機能
    をコンピュータに実現させ、
    前記検出する機能は更に、
    前記中継ノードの全てについて、中継ノード間の通信フローを中継しない中継ノードであるリーフノードの各々に対する到達ホップ数を調査し、最大ホップ数が最も少ない中継ノードか、又は前記最大ホップ数が予め定めた閾値よりも小さい全ての中継ノードルートノードとして決定する機能と、
    前記決定されたルートノードを開始点として、前記ルートノードから前記仮想ネットワークに沿って前記リーフノード側へと中継ノードを辿りながら、前記予め定めた基準を満足する通信フローであるグローバルフロー候補を検出して行き、2つのリーフノード間で連続するグローバルフロー候補が検出されれば、前記連続するグローバルフロー候補を前記グローバルフローと判定する機能と
    を含むプログラム。
  5. 複数の中継ノードのうちの少なくとも何れかとの通信リンクを持つ複数のクライアントがそれぞれ、前記中継ノードを経由して他のクライアントと互いに通信する仮想ネットワークにおいて、特定のクライアント間にピアツーピアリンクを確立するプログラムであって、
    前記複数のクライアントのうち、任意の2つのクライアント間において、連続した2つ以上の中継ノードを介してなされ、かつ予め定めた基準を満足する通信フローであるグローバルフローを検出する機能、
    前記グローバルフローが検出されたクライアント間にピアツーピアリンクを確立する機能
    をコンピュータに実現させ、
    前記検出する機能は更に、
    前記中継ノードの全てについて、負荷が最大である中継ノードか、又は前記負荷が予め定めた閾値より大きい全ての中継ノードルートノードとして決定する機能と、
    前記決定されたルートノードを開始点として、前記ルートノードから前記仮想ネットワークに沿って、中継ノード間の通信フローを中継しない中継ノードであるリーフノード側へと中継ノードを辿りながら、前記予め定めた基準を満足する通信フローであるグローバルフロー候補を検出して行き、2つのリーフノード間で連続するグローバルフロー候補が検出されれば、前記連続するグローバルフロー候補を前記グローバルフローと判定する機能と
    を含むプログラム。
  6. 前記決定する機能は、前記ルートノードの決定の際に対象とする中継ノードを、前記中継ノードの全てではなく、前記リーフノードの全てとする請求項又はのプログラム。
JP2007131798A 2007-05-17 2007-05-17 ピアツーピア通信確立装置及びプログラム Expired - Fee Related JP4490990B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007131798A JP4490990B2 (ja) 2007-05-17 2007-05-17 ピアツーピア通信確立装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007131798A JP4490990B2 (ja) 2007-05-17 2007-05-17 ピアツーピア通信確立装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2008288872A JP2008288872A (ja) 2008-11-27
JP4490990B2 true JP4490990B2 (ja) 2010-06-30

Family

ID=40148181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007131798A Expired - Fee Related JP4490990B2 (ja) 2007-05-17 2007-05-17 ピアツーピア通信確立装置及びプログラム

Country Status (1)

Country Link
JP (1) JP4490990B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4951636B2 (ja) * 2009-02-19 2012-06-13 日本電信電話株式会社 ネットワーク設計装置、ネットワーク設計方法、およびプログラム
CN101854287B (zh) * 2009-04-01 2014-06-25 工业和信息化部电信传输研究所 一种p2p流量优化方法及装置
US8817702B2 (en) * 2009-07-22 2014-08-26 Qualcomm Incorporated Mitigation of interference due to peer-to-peer communication

Also Published As

Publication number Publication date
JP2008288872A (ja) 2008-11-27

Similar Documents

Publication Publication Date Title
Misra et al. Network routing: fundamentals, applications, and emerging technologies
US7920572B2 (en) Modifying operation of peer-to-peer networks based on integrating network routing information
US9391886B2 (en) Identification of the paths taken through a network of interconnected devices
US7995477B2 (en) Collecting network traffic information
US8677011B2 (en) Load distribution system, load distribution method, apparatuses constituting load distribution system, and program
US9544217B2 (en) Identification of paths in a network of mixed routing/switching devices
WO2009012725A1 (fr) Procédé, système de routage de message et équipement de nœud
JP4279300B2 (ja) ネットワーク仮想化装置及びネットワーク仮想化プログラム
US7747777B2 (en) Optimizing network resources usage within an administrative boundary
US9537760B2 (en) Executing loops
US9559909B2 (en) Identifying an egress port of a device
US9531598B2 (en) Querying a traffic forwarding table
US10291512B2 (en) Interest message path steering and multi-path traceroute in information-centric networking
WO2011022992A1 (zh) 一种控制网元、转发网元及因特网协议网络的路由方法
US10334039B2 (en) Network device clusters
US9160648B2 (en) Content-centric network and method of performing routing between domains therefor
US8612626B2 (en) Group member detection among nodes of a network
US8559431B2 (en) Multiple label based processing of frames
JP2022052741A (ja) 境界ゲートウェイプロトコルのためのターゲットネイバー探索
WO2008128449A1 (fr) Procédé, système et dispositif d'accès permettant la mise en oeuvre d'une intercommunication à deux couches de service spécial
Feng et al. OpenRouteFlow: Enable legacy router as a software-defined routing service for hybrid SDN
JP4490990B2 (ja) ピアツーピア通信確立装置及びプログラム
US8830875B1 (en) System and method for providing a loop free topology in a network environment
JP2008054214A (ja) ネットワーク仮想化システム及びネットワーク仮想化プログラム
CN114598698B (zh) 一种数据传输方法、装置、电子设备及计算机存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100217

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: 20100309

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: 20100402

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees