一対多通信における ネットワーク障害物対応方法選択プロトコルの設計

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

第1章 ネットワークとコミュニケーション 第2節 ネットワークのしくみ 2 ネットワークを支える技術 (教科書 p36 ~ p37) 今日の用語  モデム (modulator/demodulator:modem)  IP アドレス (internet protocol address)  ドメインネーム.
情報基礎A 情報科学研究科 徳山 豪.
揮発性情報 2003/05/25 伊原 秀明(Port139).
第1回.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
前回の課題 IPv6アドレス IP ARP ICMP NAT インターネット層 2003年12月4日 情報ネットワーク論 新村太郎.
不特定多数の発信者を考慮した ストリーミングシステムの実現
安全・安心なネット生活を送るためのネットワークセキュリティ
仮想ブロードキャストリンクを利用した 片方向通信路の透過的経路制御 藤枝 俊輔(慶應義塾大学)
IPv6 エニーキャスト ルーティングプロトコル PIA-SM の設計および実装
第14回 今日の目標 §4.3 情報セキュリティー 情報化社会の特徴を社会的な面から概観する 情報に関わる危険の要因を示す
TCP (Transmission Control Protocol)
早稲田大学大学院 理工学研究科情報科学専攻 後藤滋樹研究室 1年 渡辺裕太
「コンピュータと情報システム」 07章 インターネットとセキュリティ
30分でわかるTCP/IPの基礎 ~インターネットの標準プロトコル~ 所属: 法政大学 情報科学研究科 馬研究室 氏名: 川島友美
ファイル送信機能付きマルチキャストチャット
インターネット メールサーバ DNSサーバ WWWサーバ ファイアウォール/プロキシサーバ クライアント.
第13回 今日の目標 §4.3 情報セキュリティー 情報化社会の特徴を社会的な面から概観する 情報に関わる危険の要因を示す
IPマルチキャスト通信とXcast 早稲田大学後藤研究室 Xcast班.
トランスポート層.
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
コンテンツ配信 エンコード (符号化) CBR (Constant Bit Rate) VBR (Variable Bit Rate)
ネットワーク機器接続 2SK 情報機器工学.
ま と め と 補 足 ネットワークシステムⅠ 第15回.
SCTPにおける アドレス選択ポリシーを定義できる IPアドレス自動更新機能の設計
第2章 第1節 情報通信の仕組み 1 ネットワークの仕組み 2 通信プロトコル 3 認証と情報の保護
IPv6アドレスによる RFIDシステム利用方式
サーバ負荷分散におけるOpenFlowを用いた省電力法
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータとネットワークの利用 国際経営学科 牧野ゼミ3年 足立龍哉.
Linux リテラシ 2006 第4回 ネットワーク CIS RAT.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
IPv6 ネットワークにおける エニーキャスト通信実現のための プロトコル設計と実装
大阪大学 大学院情報科学研究科 博士前期課程2年 宮原研究室 土居 聡
第11章 UDPユーザ・データグラム・プロトコル
TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 ftp SMTP HTTP
インターネットの基礎知識 その3 ~TCP・UDP層編~
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
セキュリティ(6) 05A2013 大川内 斉.
ソケットプログラム(TCP,UDP) EasyChat開発2
ネットワークの基礎知識 電子制御設計製図Ⅰ   2014年5月2日 Ⅲ限目.
インターネットにおける真に プライベートなネットワークの構築
セキュリティ 05A2013 大川内 斉.
マルチホーミングを利用した Proxy Mobile IPv6の ハンドオーバー
各種ルータに対応する P2P通信環境に関する研究
Ibaraki Univ. Dept of Electrical & Electronic Eng.
DNSクエリーパターンを用いたOSの推定
TCP制御フラグの解析による ネットワーク負荷の推測
片方向通信路を含む ネットワークアーキテクチャに於ける 動的な仮想リンク制御機構の設計と実装
ENUM を応用した 三者間の通信法 著者 1G00P066-9 杉田 隆俊 担当者 1G01P111-1 横澤 一岐
最低限インターネット ネットワークにつなぎましょ!
P2P型アプリケーション用ライブラリ SUNET
勝手にインフラ隊 (の中の人といっしょ) に学ぶネットワーク講座 Part2
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
トラフィックプロファイラAGURIの設計と実装
勝手にインフラ隊 (の中の人といっしょ) に学ぶネットワーク講座 Part2
OSI7層に関係する機器、仕様、機能など 物理層 データリンク層 ネットワーク層 トランスポート層 セッション層 プレゼンテーション層
衛星回線を含むネットワークにおける 動的経路制御に関する研究
計算機群における 「動的なインターネット接続性」の共有に関する研究
Ibaraki Univ. Dept of Electrical & Electronic Eng.
4.3 IPとルーティングテーブル 国際産業情報学科 2年 大竹 雅子.
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
IPv6マルチキャストに対応した 遠隔プレゼンテーションシステムの開発
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
情報ネットワーク 岡村耕二.
TCP/IPの通信手順 (tcpdump)
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
プロトコル番号 長野 英彦.
VPNクライアント接続 サーバー保守のための安全な経路+作業者単位のアクセス制御 簡単な図 (網羅性より象徴性)
Presentation transcript:

一対多通信における ネットワーク障害物対応方法選択プロトコルの設計 広島市立大学 情報科学部情報メディア工学科 インターネット工学研究室 0421037 日山雅之 広島市立大学インターネット工学研究室の日山です。 今回は一対多通信でネットワーク障害物の対応方法を選択するプロトコルについて提案させていただきます。

発表概要 1.研究背景 2.提案プロトコルについて 3.提案プロトコルを実装したプロトタイプ 4.おわりに 今回の発表はこのような流れで行っていきます。

研究背景 遠隔プレゼンテーションシステム”GOZARU”を使用して、離れた3大学(慶応SFC、京大)での合同講義を行っている 問題点 ネットワーク障害物(NAT, ファイアウォール等)が原因となりIPv4での利用ができない場合があって、他組織に展開するにあたって普及の妨げとなっている そのため、IPv4のネットワーク障害物が介在する場合でも通信可能な”GOZARU”の作成を開始 それにあたり、ネットワーク障害物に応じて対応方法を決定するプロトコルを提案、作成する 今回提案するプロトコルを作成するにあたった背景を説明します。 僕たち大学では遠隔プレゼンテーションシステムGOZARUを使って、京都大学と慶応義塾大学と3大学合同で講義を行っています。 僕たちの研究室ではそれをお手伝いさせていただいています。 GOZARUとは講演者のパワーポイントファイルでの動作を受講者のPCでオンデマンドで再現する、つまり講演者のPCでのパワーポイントの動作と受講者のPCでのパワーポイントの動作を同期させることができるシステムです。 しかしGOZARUはNATやファイアウォールなどのネットワーク障害物が原因で動作しない場合があります。 教育機関のPCはだいたいネットワーク障害物の内部にあるため、他の教育機関で使ってもらうにあたってこれは大きな問題点となっています。 そのため、ネットワーク障害物に対応できるGOZARUを作成することになり、 それにあたって、ネットワーク障害物に応じて対応方法を決定するプロトコルを提案し、作成しています。

GOZARUとその問題 NAT Traversal技術を使って 同期を可能にする [ GOZARUとは ] 複数拠点でのPowerPointファイルのページ遷移と操作の 同期を実現することができる、遠隔プレゼンテーションシステム NAT・NAPT内部のネットワークであるとプライベートアドレスが割り当てられ、講演者は一意に特定できない 受信した制御情報通りの動作を実行 講演者が実行した制御情報を受講者へ送信 講演者と同期 制御情報が送れない 同期ができない N A T ・ P 制御情報 プライベートアドレス がんばって説明(UDPを使って制御情報を送信) NAT Traversal技術を使って 同期を可能にする

NAT Traversal技術 UDP Hole Punching Relaying (利点)通信開始後は、双方のノードのみで直接通信を行う (欠点)一方がSymmetric NAT内部であると実行できない Relaying (利点)ほとんどのネットワーク環境で実行できる (欠点)Relayingによるオーバーヘッドで遅延が発生する  Relayサーバーに負荷が集中する 今プロトコルで使用するNAT Traversal技術としてUDP Hole PunchingとRelayingがあります。 UDP Hole Punchingとは両端のノードがNAT内部にも関わらず、直接通信を可能にする技術です。 しかしこれは一方がSymmetricNATという種類のNATの配下であると実行することができません。 Relayingは、グローバルアドレスを持つ第三のノードを経由してデータ送信を行う技術です。 これはほとんどのネットワーク環境で実行することができるのですが、 Relayingによるオーバーヘッドで遅延が発生してしまったり、 Relayサーバーに負荷が集中するなどといった欠点があります。 これらの特性を基に、ネットワーク環境に応じて使用するNAT Traversal技術を選択するプロトコルを設計しました。 これらの特性を考慮して、ネットワーク環境に応じて NAT Traversal技術を選択するプロトコルを設計

提案プロトコルについて 「ネットワーク障害物対応方法選択プロトコル」 講演者(Sender)と受講者(Receiver)の双方のネットワーク環境に応じて、対応方法を決定するプロトコル 対応のための戦略を次の4つを順に試す 1 直接接続 2 NAT内部ノードからNAT外部ノードへ接続開始 3 UDP Hole Punching 4 Relaying 直接 そのプロトコルは「ネットワーク障害物対応方法選択プロトコル」と名づけています。 対応方法は対応不要、NAT内部ノードからNAT外部ノードへ接続開始、UDP Hole Punching、Relayingの4つです。 対応方法は上から順に実行できるかどうかを判断し、できるなら実行します。 対応方法には直接通信を可能にする方法と、間接通信でデータ送信を行うものの2つに分けられます。 唯一の間接通信であるRelayingは第三のノードを使用してしまうため、できれば直接通信を、そして直接通信のなかでも通信確立までの処理が簡単なものから選択しています。 直接通信ができない場合は、間接通信、つまりRelayingを行います。 (通信確立までの処理が複雑) 間接 (第三のノードを使用してしまう)

対応方法決定の組み合わせ SenderおよびReceiverのネットワーク環境に応じて決められる、対応方法の組み合わせ 通信相手が変わっても同じポート番号が使用される セッション毎に新たなポート番号が使用される NATなし Cone NAT Symmetric NAT 直接接続 NAT内部ノードからNAT外部ノードへ 接続開始 Cone NAT UDP Hole Punching Relaying Symmetric Receiver Sender 対応方法決定プロトコルを実装したGOZARUではSenderとReceiverのネットワーク環境からこのような組み合わせで対応方法を決めています ここでのネットワーク環境としてNATがない場合、Cone NATという種類のNATの配下である場合、Symmetric NATという種類のNATの配下である場合の3つです。 Cone NATとは~ それに対してSymmetric NATとは~ この組み合わせはGOZARUで使用する場合での組み合わせなので、 他のプログラムに実装する場合は、そのプログラムに合わせて組み合わせを変更してください。

ワーク環境にNATがあるかないか、あった 場合はそのNATの種類と変換後のアドレスを 対応方法決定までの流れ STUNサーバーとは 問い合わせがあったクライアントのネット ワーク環境にNATがあるかないか、あった 場合はそのNATの種類と変換後のアドレスを クライアントへ通知する Brokerが対応方法決定の組み合わせにしたがって対応方法を決定 Sender, Receiverが自ネットワークのネットワーク情報をBrokerに通知 STUNサーバーは要請があったクライアントのネットワーク情報を通知 Sender, Receiverが自ネットワークの情報をSTUNサーバーに要請 BrokerがSender, Receiverに対応方法を通知 通知された対応方法を実行 がんばってせつめい

提案プロトコルを実装したプロトタイプ 提案プロトコルを実装したプロトタイプ”GOZARU+”を現在実装中 Sender+/Receiver+ GOZARUからBroker通信部分、TCPで制御情報の送受信を行う部分を追加 Windows上で、C#で開発 Broker 現在、Linux上にてPerlで開発したプロトタイプの動作を確認済み 今後は、パフォーマンス向上のためにC言語へ移植予定 Relayingのみ動作確認済み 提案したプロトコルを実装したプロトタイプ、 すなわちネットワーク障害物に対応できるGOZARUである、GOZARU+を現在開発中です。 講演者と受講者のプログラムであるSender+とReceiver+は 前のGOZARUからBrokerとの通信部分と、RelayingのためにTCPで制御情報の送受信を行う部分を追加しました。 開発言語はC#です。 BrokerはLinuxで、現在はPerlで開発したプロトタイプで動作を確認していましたが、 今後はパフォーマンス向上のためにC言語に移植する予定です。 全体の進行具合としてはRelayingのみ動作確認済みです。

おわりに まとめ 今後の課題 IPv4環境でGOZARUを展開するためにネットワーク障害物を回避する方式を提案 Relayingの動作を確認 今後の課題 プロトタイプの完成、動作確認 選択方法の性能の評価 最後にまとめと今後の課題を説明します。 今回の発表内容をまとめると、 (項目を口で言う) 今後の課題は、まずプロトタイプを完成させ、動作確認を行い、問題なく動かしたいと思っています。 その後に、今回提案した選択方法の性能の評価していきたいと思います。 以上で発表を終わります。 御清聴ありがとうございます。

NAT (Network Address Translator) プライベートアドレスとグローバルアドレスを変換する技術 IPアドレスにプライベートアドレスが割り当てられたノードが、インターネットへ接続をするときだけグローバルアドレスに変換して通信を行うことで、グローバルアドレスを節約することが可能となる

NATの利点・欠点 利点 欠点 ひとつのグローバルアドレスで複数のノードがインターネットに接続することができる グローバルアドレスに変換されなければインターネットに接続していないも同然であるため、セキュリティ面が向上する 欠点 プライベートアドレスが割り当ててあるため、外部から接続を行ったり、データを送ることができない 変換によるオーバーヘッドで遅延を起こしてしまう

NAPT (Network Address Port Translator) アドレスのみでなく、ポート番号も含めて変換を行う。これにより、単一のグローバルアドレスを多数のプライベートアドレスに変換できる 変換例 192.168.1.100:7800 ⇔ 165.242.42.220:7801 192.168.1.101:8900 ⇔ 165.242.42.220:7802 NATの場合 192.168.1.102:9700 ⇔ 165.242.42.220 変換後のアドレスは同一であるが、ポート番号が異なるため、変換前のアドレスを区別することができる

NATの種類 Cone NAT Symmetric NAT Full Cone NAT Restricted Cone NAT Port Restricted Cone NAT Symmetric NAT

Full Cone NAT Server A NAT Client Server B

Restricted Cone NAT Server A NAT Client Server B

Port Restricted Cone NAT Server A NAT Client Server B

Symmetric NAT Server A NAT Client Server B

NAT内部ノードからNAT外部ノードへ接続 どこ?

UDP Hole Punching Global B : Port B [宛先]Global C : Port C [NAT テーブル] ◆Private A : Port A’ ⇔ Global A : Port A : [宛先]Global C : Port C [NAT テーブル] ◆Private A : Port A’ ⇔ Global A : Port A : [宛先]Global C : Port C : [宛先]Global B : Port B [NAT テーブル] ◆Private B : Port B’ ⇔ Global B : Port B : [宛先]Global C : Port C : [宛先]Global A : Port A NAT対応ルーターAと NAT対応ルーターBの アドレス(ポート番号)を取得 [NAT テーブル] ◆Private B : Port B ⇔ Global B : Port B [宛先]Global C : Port C NAT対応ルーターAにパケットを送信 STUN Serverと通信を行う NAT対応ルーターBのアドレス(ポート番号)を通知 STUN Serverと通信を行う NAT対応ルーターAのアドレス(ポート番号)を通知 NAT対応ルーターBにパケッ トを送信 NATテーブルの宛先に登録されたアドレスからのパケットでないため通さない

なぜSymmetric NATが原因で UDP Hole Punchingができないのか? ◆ Private A : Port A0 ⇔ Global A : Port A2 [宛先] Global B : Global B1 [NAT テーブル] ◆ Private B : Port B0 ⇔ Global B : Port B2 [宛先] Global A : Global A1 Global B : Port B1 Global A : Port A1 インターネット

Relaying

対応方法と使用する通信プロトコル TCP/UDP UDP TCP 対応不要 NAT内部ノードからNAT外部ノードへ接続開始 UDP Hole Punching UDP Relaying TCP

参考文献 B.Carpenter, “Internet Transparency”, RFC2775, IETF,(2000). B. Ford, P. Srisuresh, and D. Kegel, “Peer-to-peer communications across network address translations”, In the 2005 USENIX Annual Technical Conference, USENIX, pp. 179-191 (2005). J. Rosenberg, R. Mahy, and C. Huitema,”Traversal using relay NAT (TURN)”, Internet-Draft, IETF (2005). J.Rosenberg, J. Weinberger, “STUN – Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)”, RFC3489, IETF, (2003)