学籍番号 200511206 情報科学主専攻 鈴木良平 指導教員 朴泰祐 1 P2P環境上での,Volunteer Computingに関する 研究が盛んに行われている ◦ 多数の遊休状態のPCをP2P環境上で接続して,分散コン ピューティングに利用 ◦ 例:BOINC 家庭や企業に散在しているPCはNATやファイア ウォールによって守られているため,容易に相互 通信できない 通信環境や家庭用ルータ(NATbox)の種類に応じた NAT越えをユーザ透過に行うシステムを提案する 2 リレー方式 ◦ サーバなどを介した通信 UDP hole punching ◦ あらゆるNATboxに対応しているが,UDP通信 TCP hole punching ◦ TCP通信でNAT越えを行うが,すべてのNATboxで行えない UPnP (Universal Plug and Play) ◦ 特定のポートを開けれるが,操作できないNATboxがある 先行研究 ◦ RI2N/UDPを用いたP2Pオーバレイネットワーク「岡本 2006」 上記のようなNAT越え技術(通信モジュール)の実装,そして, 実装した通信モジュールを用いてTCP,UDP通信をユーザ 透過に行うシステムの実装 3 UDP hole punching ◦ Skype IP電話,テレビ会議用アプリケーション UPnP ◦ Windows Messenger インスタントメッセージの交換などを行うアプリ ケーション 4 通信相手がNATboxに保護され ノード ていたら,リレー方式,UPnP, UDP hole punchingなど利用 NATbox 各ノードとそれを保護している NATboxの種類に応じて, 自動的に通信方式を選択する 通信相手がNATboxに保護されてい ないなら,NAT越え技術は必要ない サーバ NATbox ノード ノード 今回はUPnPモジュールと,UDP hole punchingモジュー ルを実装し,これら2つの通信モジュールに優先度をつけて ノード間通信を行うシステムを実装 5 宛先を指定してUDPパケットを送信しただけではパケッ トは通信相手のNATboxによって破棄される UDPパケットを何度か送信することでNATboxのポート を開け,通信相手と開いたポートを用いて通信をする The Internet NATbox ノード NATbox ノード 6 UPnPデバイス開発用のライブラリとして UPnP SDKを使用 ◦ UPnP対応NATboxをSSDP (Simple Service Discovery Protocol) によって検索 ◦ 発見できたら,NATboxの情報がXMLで記述され たURLの記載されたメッセージを受信 ◦ NATboxの操作専用URLにAction命令を送信す ることで,操作する グローバルアドレスの取得 TCPもしくはUDPのポートを開く 7 サーバと接続 ◦ 自分の情報の登録 ◦ 通信相手の検索 通信相手を発見できたら,サーバに指示された通信 方式を用いる NATbox サーバ 8 サーバ ◦ 接続されたノードの情報を登録 ◦ ノードの情報から通信方式を選択する 通信する両ノードのうち 片方だけUPnP対応NATboxによって保護されていたら,その内 側のノードをインバウンド通信側とし,もう一方のノードをアウトバ ウンド通信側とする 両方UPnP非対応NATboxだったら,UDP hole punchingを選択 ◦ ノードに通信相手の情報と,通信方式の情報を送信する UPnPモジュールとUDP hole punchingモジュールを 統合したことで,TCP,UDP通信をユーザ透過に行うこ とが可能 9 評価内容:各通信モジュールのスループット CPU サーバ ノード Intel®Pentium®4 2.4GHz Intel®Pentium®M 1.2GHz Memory 1024Mbyte 512Mbyte NIC Intel®PRO/1000 Intel®PRO/100 NATbox UPnP BUFFALO BBR-4HG (NATbox1) ○ I-O DATA ETX-R (NATbox 2) × サーバ 100BASE-T NATbox NATbox NATboxはすべて100Mbps対応 ノード ノード 10 60 スループット(Mbps) 50 40 30 20 10 0 TCP DMZ TCP by UPnP UDP DMZ UDP hole punching 通信方式 NATbo2のノードがアウトバウンド側, NATbox1のノードがインバウンド側 UDP hole punching以外は Iperf2.0.2 を用いて測定 (NATbox1 → NATbox2) UPnPモジュールによって,NATboxの設定を行うのに約6秒かかった UDP hole punchingによってポートを開けるのに約20m秒かかった 11 2つのNAT越え技術を統合し,ユーザ透過にした UDP hole punchingとUPnPを適切に用いて,ノード 間の通信に成功した 今後の課題 ◦ 通信モジュールの種類を増やす ◦ UDP hole punchingを用いたストリーム通信の実装 先行研究のRI2N/UDPを用いることを検討する ◦ DHT (Distributed Hash Table) を用いたサーバの実装 12 NATbox1のアウトバウンド スループット(Mbps) 100 80 60 1→2 40 1 → NATなし 20 0 TCP DMZ TCP normal UDP DMZ UDP hole punching NATbox2のアウトバウンド スループット(Mbps) 100 80 60 1←2 40 NATなし ← 2 20 0 TCP DMZ TCP normal UDP DMZ UDP hole punching 13 NATbox1のインバウンド スループット(Mbps) 100 80 60 1←2 40 1 ← NATなし 20 0 TCP DMZ TCP normal UDP DMZ UDP hole punching NATbox2のインバウンド スループット(Mbps) 100 80 60 1→2 40 NATなし → 2 20 0 TCP DMZ TCP normal UDP DMZ UDP hole punching 14
© Copyright 2024 ExpyDoc