140 likes | 293 Views
各種ルータに対応する P2P 通信環境に関する研究. 学籍番号 200511206 情報科学主専攻 鈴木良平 指導教員 朴泰祐. 背景と目的. P2P 環境上での, Volunteer Computing に関する研究が盛んに行われている 多数の遊休状態の PC を P2P 環境上で接続して,分散コンピューティングに利用 例 :BOINC 家庭や企業に散在している PC は NAT やファイア ウォールによって守られているため,容易に相互 通信できない 通信環境や家庭用ルータ ( NATbox ) の種類に応じた NAT 越えをユーザ透過に行うシステムを提案する.
E N D
各種ルータに対応するP2P通信環境に関する研究各種ルータに対応するP2P通信環境に関する研究 学籍番号 200511206 情報科学主専攻鈴木良平 指導教員 朴泰祐
背景と目的 • P2P環境上での,Volunteer Computingに関する研究が盛んに行われている • 多数の遊休状態のPCをP2P環境上で接続して,分散コンピューティングに利用 • 例:BOINC 家庭や企業に散在しているPCはNATやファイアウォールによって守られているため,容易に相互通信できない • 通信環境や家庭用ルータ(NATbox)の種類に応じたNAT越えをユーザ透過に行うシステムを提案する
現在のNAT越え技術 • リレー方式 • サーバなどを介した通信 • UDP hole punching • あらゆるNATboxに対応しているが,UDP通信 • TCP hole punching • TCP通信でNAT越えを行うが,すべてのNATboxで行えない • UPnP(Universal Plug and Play) • 特定のポートを開けれるが,操作できないNATboxがある • 先行研究 • RI2N/UDPを用いたP2Pオーバレイネットワーク「岡本 2006」 • 上記のようなNAT越え技術(通信モジュール)の実装,そして,実装した通信モジュールを用いてTCP,UDP通信をユーザ透過に行うシステムの実装
NAT越え技術の使用例 • UDP hole punching • Skype • IP電話,テレビ会議用アプリケーション • UPnP • Windows Messenger • インスタントメッセージの交換などを行うアプリケーション
システムの概念 通信相手がNATboxに保護されていたら,リレー方式,UPnP,UDP holepunchingなど利用 • 今回はUPnPモジュールと,UDP hole punchingモジュールを実装し,これら2つの通信モジュールに優先度をつけてノード間通信を行うシステムを実装 各ノードとそれを保護しているNATboxの種類に応じて, 自動的に通信方式を選択する 通信相手がNATboxに保護されていないなら,NAT越え技術は必要ない
UDP hole punchingモジュール • 宛先を指定してUDPパケットを送信しただけではパケットは通信相手のNATboxによって破棄される • UDPパケットを何度か送信することでNATboxのポートを開け,通信相手と開いたポートを用いて通信をする
UPnPモジュール • UPnPデバイス開発用のライブラリとしてUPnP SDKを使用 • UPnP対応NATboxをSSDP (Simple Service Discovery Protocol) によって検索 • 発見できたら,NATboxの情報がXMLで記述されたURLの記載されたメッセージを受信 • NATboxの操作専用URLにAction命令を送信することで,操作する • グローバルアドレスの取得 • TCPもしくはUDPのポートを開く
システムの構成(1) • サーバと接続 • 自分の情報の登録 • 通信相手の検索 • 通信相手を発見できたら,サーバに指示された通信方式を用いる
システムの構成(2) • サーバ • 接続されたノードの情報を登録 • ノードの情報から通信方式を選択する • 通信する両ノードのうち • 片方だけUPnP対応NATboxによって保護されていたら,その内側のノードをインバウンド通信側とし,もう一方のノードをアウトバウンド通信側とする • 両方UPnP非対応NATboxだったら,UDP hole punchingを選択 • ノードに通信相手の情報と,通信方式の情報を送信する • UPnPモジュールとUDP hole punchingモジュールを統合したことで,TCP,UDP通信をユーザ透過に行うことが可能
評価環境 評価内容:各通信モジュールのスループット NATboxはすべて100Mbps対応
評価結果 • NATbo2のノードがアウトバウンド側, NATbox1のノードがインバウンド側 • UDP hole punching以外は Iperf2.0.2 を用いて測定 (NATbox1 → NATbox2) • UPnPモジュールによって,NATboxの設定を行うのに約6秒かかった • UDP hole punchingによってポートを開けるのに約20m秒かかった
まとめ • 2つのNAT越え技術を統合し,ユーザ透過にした • UDP hole punchingとUPnPを適切に用いて,ノード間の通信に成功した • 今後の課題 • 通信モジュールの種類を増やす • UDP hole punchingを用いたストリーム通信の実装 先行研究のRI2N/UDPを用いることを検討する • DHT (Distributed Hash Table) を用いたサーバの実装