• 検索結果がありません。

NTMobile を用いた E2E チャットアプリケーションの提案

N/A
N/A
Protected

Academic year: 2021

シェア "NTMobile を用いた E2E チャットアプリケーションの提案"

Copied!
30
0
0

読み込み中.... (全文を見る)

全文

(1)

NTMobileを用いたE2Eチャットアプリケーションの提案

120430073 中村 隼大

渡邊研究室

1. はじめに

モバイルネットワークの普及に伴い,チャットが重要な コミュニケーションツールとなっている.チャットはクラ イアントサーバシステムで実現するのが一般的である.し かし,サーバから情報漏洩する懸念や,サーバの障害・二 重化等に対する管理負荷が大きいという課題がある.筆者 らは,端末がどのようなネットワーク環境にいてもエンド ツーエンドで通信を行うことができるNTMobile(Network Traversal with Mobility)を提案している[1].そこで,本 稿ではNTMobileを用いたエンドツーエンド通信による チャット通信方式を提案し,その利点を考察する.

2. 従来のチャットアプリケーションの実現 方法

現在のネットワークには通信経路上にNAT(Network Ad- dress Translation)が存在することが多く,エンドツーエ ンドの通信が阻害されている.そのため,インターネット 上のサーバを介して通信を行う必要がある.従来のチャット アプリケーションにおいても,インターネット上に存在す IRC(Internet Relay Chat)サーバとクライアントから 成るクライアントサーバシステムで実現されている.クラ イアントはサーバに対して,常時Keep Aliveを行うこと によりNATテーブルを維持する.このシステムでは,ク ライアントがサーバに対してメッセージを送付し,サーバ が各クライアントに同一メッセージを配信する.クライア ントはサーバから通知を受け取るとメッセージの受信を知 り,サーバにチャットデータを取りに行くことができる.

クライアントサーバシステムでは,サーバの管理者が情 報を取得できるため,セキュリティ上問題があるという指 摘がある.また,サーバの二重化等の管理が必須である.さ らに,メッセージ送信毎に全ての処理を実行しなければな らないため,トラフィックが大きいことが課題である.

3. NTMobileによるエンドツーエンド通信

NTMobileは,NTMobileを実装した端末(NTM端末) NTM端末に対してアドレス情報の管理やトンネル構築 指示を行うDC(Direction Coordinator)により構成され る.NTM端末は,インターネット上に配置されたDC ら仮想IPアドレスが割り当てられる.アプリケーション は仮想IPアドレスによりセッションを確立する.通信開始 側のNTM端末(イニシエータ)は通信開始時にDCから の指示に従って通信相手のNTM端末(レスポンダ)との間 に実IPアドレスによるUDPトンネルを構築する.実際 の通信は仮想IPアドレスによるパケットを実IPアドレス でカプセル化することにより実現する.NTM端末はDC に対してKeep Aliveを行うことで通信経路を常に確保し ている.DCはこの経路を通してNTM端末に経路指示を 行い,NTM端末同士がUDPトンネルによりエンドツー エンドの通信を行うことができるようになる.NTMobile を適用することにより,ユーザはNATの存在を意識する 必要がない.

イニシエータ NAT レスポンダ

NTM Signaling

キャラクタデータ送信 応答

TCPコネクション接続

ファイル転送

TCPコネクション切断 キャラクタデータの入力

ファイル転送の指示

DC

UDPトンネル UDP

TCP

1: NTMobileを用いたE2Eチャットシーケンス

4. NTMobileを用いたチャット通信

1にエンドツーエンド通信によるチャットのシーケン スを示す.イニシエータがレスポンダのFQDNを指定す るとNTMobileのシグナリング機能により,両者の間にエ ンドツーエンドのトンネル経路が構築される.このトンネ ルを経由して,キャラクタデータやファイル転送を直接実 行する.

NTM Signaling処理の詳細説明については本稿の本質で はないため省略するが,図1のようにレスポンダがNAT 下に存在しても通信の開始が可能である.NTM Signaling 処理後,送信データがチャットのキャラクタデータであれ ば,単一パケットの通信で済むためUDPで通信を行う.こ の場合,正常に受信できたことを確認するためレスポンダ はアプリケーションレベルで応答を返す.送信データがファ イル(長データ)であればTCPで通信を行う.TCP通信 の場合,送達確認はTCPの機能に任せる.

本提案方式ではチャットサーバが不要であるため,サー バの管理が不要で,サーバからの情報漏洩等の心配がない.

また,NTMobileのシグナリング処理は初回のみ行うだけ で良く,サーバを経由する場合に比べてシーケンスを大幅 に簡略化でき,トラフィックが少なくなる.

5. まとめ

本稿では,NTMobileを用いてエンドツーエンドでチャッ ト通信を実現する方式を提案した.今後は,相手端末が起 動していない場合や複数人でのチャットを行う場合等につ いて検討する.また,提案手法の実装・性能評価を行って いく.

参考文献

[1] 鈴木 秀和,他:NTMobileにおける通信接続性の確立手 法と実装,情報処理学会論文誌Vol.54No.1pp.367–

3792013.

(2)

名城大学 理工学部 情報工学科 渡邊研究室

120430073

中村 隼大

(3)

ネットワーク技術が急速に発展

チャットが重要なコミュニケーションツール

クライアントサーバシステムによる実現

チャットを業務で使用できると有用

サーバから情報漏洩する懸念

サーバの障害・二重化等に対する管理

1

クライアントA サーバ クライアントB Internet

エンドツーエンド通信によるチャットの実現

(4)

クライアントサーバシステム

2

Global Network

クライアント

A

クライアント

B NAT

Internet

Private Network

・ クライアントは 経路 を確保

Keep Alive

CSChat Server

NAT:Network Address Translation

NAT

クライアント

C Private Network CS

(5)

クライアントサーバシステム

3

クライアント

A

クライアント

B NAT

Internet

CS

メッセージ送信 メッセージ受信

Private Network

・ クライアントは 経路 を確保

・インターネット を経由

CSChat Server

NAT:Network Address Translation

NAT

クライアント

C Global Network

Private Network

(6)

4

イニシエータ CS NAT レスポンダ

データ送信 データ送信応答

CSChat Server データ取得完了応答

データ取得完了 データ取得要求応答

データ取得要求 Keep Alive

・サーバに

データを送信

既読通知 既読通知応答

既読確認

データ受信通知

・メッセージの 受信を通知

・メッセージを取得

Hello

Hello

(7)

5

イニシエータ CS NAT レスポンダ

データ送信 データ送信応答

CSChat Server データ取得完了応答

データ取得完了 データ取得要求応答

データ取得要求 Keep Alive

・サーバに

データを送信

既読通知 既読通知応答

既読確認

データ受信通知

・メッセージの 受信を通知

・メッセージを取得

Hello

Hello

・メッセージ取得の

確認応答を送信

(8)

6

イニシエータ CS NAT レスポンダ

データ送信 データ送信応答

CSChat Server データ取得完了応答

データ取得完了 データ取得要求応答

データ取得要求 Keep Alive

・サーバに

データを送信

既読通知 既読通知応答

既読確認

データ受信通知

・メッセージの 受信を通知

・メッセージを取得

Hello

Hello

・既読通知を送信

(9)

サーバから情報漏洩する懸念

管理者が情報を取得

サーバの管理負荷

サーバの障害・二重化等に対する管理負荷が大きい

トラフィックが大きい

シーケンスが複雑

メッセージ送信毎、チャットシーケンス全てを実行

7

NTMobile

上で

E2E

チャットを実現

(10)

8

エンドツーエンドの通信を行える

ネットワーク環境(プライベート,グローバル)を意識せず通信

アプリはNATの存在を意識しない

DC:Direction Coordinator Global

Network

Private Network

(11)

9

アプリケーション間は仮想

IP

アドレスで通信

ネットワーク環境が変わっても変化しないIPアドレス

イニシエータは通信開始時に

DC

からの指示に従って レスポンダとの間にトンネルを構築

実際の通信は実

IP

アドレスでトンネル通信

実IPアドレスで仮想IPアドレスをカプセル化

IPアドレス 仮想IPアドレス

エンドツーエンド通信が可能

(12)

NTM Signaling

10

イニシエータ DC NAT レスポンダ

トンネル構築応答

UDP トンネル 経路指示要求

通信経路の指示

一回のみ処理を行う

トンネル構築要求 通信経路の指示応答 通信経路の指示

通信経路の指示応答

(13)

キャラクタデータ

11

イニシエータ DC NAT レスポンダ

データ送信

応答 キャラクタデータの入力

(14)

ファイル転送

12

イニシエータ DC NAT レスポンダ

ファイル転送の指示

TCPコネクション接続

ファイル転送

TCPコネクション切断

・簡単にチャットを実現

(15)

NTMobile

上でチャットプログラムを実行

NTM端末のアプリケーション部分の実装

13

Chat Application

NTMobile Daemon

NTM Kernel Module Virtual I/F

Real I/F User space

Kernel space

NTM Tunnel Req/Res etc...

(16)

ホストPC

OS Windows7 64bit

CPU Intel Core i7-2600 (3.40GHz) Memory 8.00GB

14

NTM Node A, NTM Node B

OS Ubuntu 12.04 LTS Linux

Kernel 3.2.0-97-generic-pae

CPU Intel Core i7-2600 (3.40GHz) Memory 1GB

Global Network

Private Network DC

NTM NodeB NTM

NodeA

NTM NodeANTM NodeB

1台のホストPC上に仮想マシンで構築

DCは既に構築されているサーバを利用

NAT

(17)

文字列

”test”

を送信

送信側

受信側

送達時間を計測

NTMobile

上で実行時:

1.382[ms]

の遅延

ユーザの利用には影響ない

15

送達時間 直接実行

NTMobile

UDP

チャット

(キャラクタデータ)

0.047[ms] 1.429[ms]

相手FQDN

(18)

16

実行回数 従来方式

(

サーバ経由

)

提案方式

(UDP)

初回

48

9

2

回目以降

48

2

(19)

17

従来方式

(

サーバ経由

)

提案方式

セキュリティ ×

(管理者が情報を取得)

(情報漏洩の心配がない)

サーバ管理 ×

(サーバの障害、

二重化等の管理)

CS不要→DC

DC:ネットワークのインフラ)

トラフィック ×

(毎回チャットシーケンス実行)

(シグナリングは初回のみ)

(必要パケット数の削減)

(20)

NTMobile

を用いたエンドツーエンド通信による チャット通信方式

トンネルを構築・経由してキャラクタデータやファイル転送を 直接実行

提案方式の有用性を確認

サーバの管理が不要

サーバから情報漏洩の心配がない

トラフィックの軽減

実装と評価

チャットアプリケーションを実装

仮想環境にて正常に動作することを確認

今後の予定

相手端末が起動していない場合,

大規模なチャットを行う場合の処理について検討

18

(21)
(22)

相手端末が起動していない場合

従来の方式で通信

20

リトライ 3回目

応答

CN 起動

チャット取得

(CN→CS)

送信完了 チャット送信

(MN→CN)

チャット送信

(MN→CS)

No

No

Yes No

Yes

Yes

MN(Mobile Node) : イニシエータ

CN(Correspondent Node) : レスポンダ

(23)

複数人での大規模なチャットを行う場合

数珠つなぎでチャットを行う

21

Internet

数珠繋ぎ チャット

エンドエンド 通信

NTM

端末

NAT

(24)

NAT NAT

イニシエータ レスポンダ

RS

DC

Private Network

22

イニシエータ・レスポンダが共に

NAT

配下に 存在する場合の通信の中継

エンドツーエンドで通信を行える

CSと異なりRSは

経由するのみ

Internet

Private Network

(25)

23

イニシエータ CS NAT レスポンダ

データ送信 データ送信応答

CSChat Server データ取得完了応答

データ取得完了 データ取得要求応答

データ取得要求 Keep Alive

既読通知 既読通知応答

既読確認

データ受信通知

48

パケット必要

(26)

NTM Signaling

24

イニシエータ DC NAT レスポンダ

トンネル構築応答 経路指示要求

UDPトンネル

通信経路の指示

トンネル構築要求 通信経路の指示応答 通信経路の指示

通信経路の指示応答

(27)

NTM Signaling

25

イニシエータ DC NAT レスポンダ

トンネル構築応答

通信経路の指示

UDPトンネル

トンネル構築要求 経路指示要求

通信経路の指示 通信経路の指示応答

通信経路の指示応答

(28)

NTM Signaling

26

イニシエータ DC NAT レスポンダ

トンネル構築応答

UDPトンネル

通信経路の指示

通信経路の指示応答 経路指示要求

通信経路の指示応答

トンネル構築要求 通信経路の指示

(29)

NTM Signaling

27

イニシエータ DC NAT レスポンダ

トンネル構築応答

UDP トンネル 経路指示要求

通信経路の指示

一回のみ処理を行う

トンネル構築要求 通信経路の指示応答 通信経路の指示

通信経路の指示応答

(30)

15.5KB

JPG

画像ファイルを送信

送信側

受信側

送達時間を計測

NTMobile

上で実行時:

0.618[ms]

性能

UP

28

送達時間 直接実行

NTMobile

TCP

チャット

(画像データ)

1.784 [ms] 1.166[ms]

参照

関連したドキュメント

「Remote NDIS based Internet Sharing Devise」を誤って削除してしまった。 → 資格確認端末の再起動を行っていただくことで、ネットワーク接続に「Remote NDIS

入札参加者端末でMicrosoft Edge(Chromium版)または Google

テキストマイニング は,大量の構 造化されていないテキスト情報を様々な観点から

携帯端末が iPhone および iPad などの場合は App Store から、 Android 端末の場合は Google Play TM から「 GENNECT Cross 」を検索します。 GENNECT

 ESET PROTECT から iOS 端末にポリシーを配布しても Safari の Cookie の設定 を正しく変更できない現象について. 本製品で iOS

ソリューション事業は、法人向けの携帯電話の販売や端末・回線管理サービス等のソリューションサービスの提

(注)本報告書に掲載している数値は端数を四捨五入しているため、表中の数値の合計が表に示されている合計

(1)高圧ケーブル及び公称断面積 60mm 2 以上の低圧ケーブルの端末処理は、JCAA 規格の材料を用いること。. ただし、 60mm 2