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

赤堀蒼磨, 納堂博史, 鈴木秀和, 内藤克浩, 渡邊晃 名城大学理工学部 愛知工業大学情報科学部

N/A
N/A
Protected

Academic year: 2021

シェア "赤堀蒼磨, 納堂博史, 鈴木秀和, 内藤克浩, 渡邊晃 名城大学理工学部 愛知工業大学情報科学部"

Copied!
19
0
0

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

全文

(1)

NTMobile

Android

端末に実装するための検討

赤堀 蒼磨

,

納堂 博史

†,

鈴木 秀和

†,

内藤 克浩

‡,

渡邊 晃

†(†

名城大学

, ‡

愛知工業大学

)

Studies of NTMobile Implementation in Android.

Soma Akahori†∗, Hiroshi Nodo†, Hidekazu Suzuki†, Katsuhiro Naito‡, Akira Watanabe† (†Meijo University, ‡Aichi Institute of Technology)

1

はじめに AndroidやiOS等のOSを搭載したスマートフォンやタブ レット端末の普及により,手軽にインターネットに接続が可能 になった.これらの移動端末において,接続するネットワーク 環境に関わらず通信を開始できる通信接続性と,通信中にネッ トワークを切り替えることができる移動透過性の必要性が高 まっている.著者らは,両者を同時に実現可能とする次世代技術

NTMobile(Network Traversal with Mobility)[1]を提案している.

この技術をAndroidやiOS端末へ実装できると有用である.本 稿では,NTMobileをAndroid端末上のアプリケーションとして 動作させる,NTMobileフレームワークの実現方法について報告 する.

2

NTMobile

の概要

NTMobileはインターネット上に,DC(Direction Coordinator)

と呼ぶ装置を設置する.NTMobileを搭載した端末(以降NTM 端末と記す)は,ログイン時にDCから重複しない仮想IPアド レスの配布を受ける.アプリケーションは仮想IPアドレスで セッションを確立する.DCはNTM端末の位置をすべて把握し, 通信開始時または移動を検出した時,両NTM端末に対しUDP トンネル構築の経路指示を行う.NTM端末間の通信パケットは, 全て実IPアドレスでカプセル化してトンネル通信を行う.以上 の動作により,通信接続性と移動透過性を同時に実現する. NTMobileは、当初Linuxカーネル上での動作を検証して いた.しかしAndroid端末ではルート権限が必要となることか ら,NTMobile普及のために望ましくない.そこでNTMobileを アプリケーションに移植し,フレームワークとして動作できる よう検討を進めてきた.これまで簡易実装によりUDPレベル での動作を確認している. 今回はTCPも実現可能なように,フ レームワークの実装を見直した.

3

フレームワークの実装方法 NTMobileフレームワークは,C言語で記述されており,上 位アプリケーションに対してNTMobile用のソケットインタ フェースを提供する.フレームワーク内で生成したTCP/IPパ ケットをデータとみなし,Linuxが提供するUDPによりカプセ ル化を行う.UDPポート番号4330を使うと,カーネル版との互 換性を保つことができる.ただし,4330に固定するとフレーム ワークを利用する他アプリケーションとの同時動作ができな いので,ポート番号をダイナミックに変更できるようになって いる. NTMobileフレームワークのモジュール構成はFig.1のとお りである. 仮想TCP/IPは,TCP/IPをアプリケーション層で実 現するモジュールで,オープンソースのlwIP(light weight IP)[2]

を利用する. libntmは,DCとNTM端末が共通で使用するライ 各種アプリケ ーション NTMobile用 Javaアプリケーション Javaラッパー Java JNAソケット NTMobileソケット 仮想TCP/IP トンネル テーブル NTM シグナリング Hand Over libntm Cソケット UDPポート番号4330 Cソケット Linux(UDP/IP) NTMobileフレームワーク

Fig. 1 Module of NTMobile Framework

ブラリである. NTMシグナリングは,通信開始時またはIPアド レス変化時にDCの指示を受けて,UDPトンネルの構築を行う モジュールである.トンネルテーブルはトンネル構築時にカプ セル化処理に必要となるテーブルである. HandoverはIPアド レスの変化を常時監視するモジュールで,移動透過性実現のた めにフレームワーク特有の処理を行う.カーネル版ではIPアド レスの変化をカーネルで検出し,トンネル構築処理を開始して いた.フレームワーク版では,IPアドレスの変化をカーネルから 教えてもらうインタフェースがないため,Handoverモジュール にてIPアドレスの変化を定期的にチェックする.NTMobile接 続時または,IPアドレスの変化が検出されたらNTMシグナリ ングを呼び出しDCに経路指示を依頼する. NTMobileソケッ トは,カーネルが提供するCソケットと1対1に対応しており, 機能的に互換性を持つインタフェースである. Javaラッパー はJNA(Java Native Access)で定義されたJavaインタフェース をNTMobileソケットに変換するモジュールである.NTMbile に係る動作はフレームワークですべて実行するため,Javaラッ パーは単にJavaとCインタフェースの変換を行うだけである.

4

まとめ NTMobileフレームワークの実装方法について報告した.今 後はハンドオーバー部分やラッパーを中心に,本稿の内容に基 づいてAndroid端末へ実装する.実装が完了次第,動作確認及び 性能評価を行う予定である. 文 献 [1] 上醉尾 他 : IPv4/IPv6 混在環境での移動透過性を実現する NTMobile の 実装と評価. 情報処理学会論文誌 Vol.54, No.10, pp.2288–2299,Oct 2013. [2] lwIP - A Lightweight TCP/IP stack - Summary

(2)

赤堀 蒼磨†, 納堂 博史†, 鈴木 秀和†, 内藤 克浩‡, 渡邊 晃†

†名城大学 理工学部

‡愛知工業大学 情報科学部

(3)

モバイル端末が急速に普及(

Android,iOS端末等)

移動端末で手軽にインターネット接続が可能

WI-FI,LTE,3Gなどの接続先が変化

IPアドレスの変化

通信切断

グローバルアドレスからプライベートアドレスに対して通信開始が

不可(

NAT越え問題)

通信接続性・移動透過性

の必要性

(4)

移動透過性と通信接続性を実現

DC(Direction Coodinator)

仮想IPアドレスの配布

通信セッションの確立

全通信を実IPアドレスで

UDP

カプセル化(移動透過性)

DCが通信端末間のトンネル構築

を指示(通信接続性)

(

Network Traversal with Mobility)

IPアドレス変化時(移動検出時)

仮想IPアドレスは不変

通信の継続が可能

DC

DC

NTM端末A

NTM端末A

NTM端末B

NTM端末B

NAT

NAT

Global

Network

Private

Network A

Private

Network B

NAT

NAT

NTMobileパケットの構成

(5)

移動透過性と通信接続性を実現

DC(Direction Coodinator)

仮想IPアドレスの配布

通信セッションの確立

全通信を実IPアドレスで

UDP

カプセル化(移動透過性)

DCが通信端末間のトンネル構築

を指示(通信接続性)

(

Network Traversal with Mobility)

IPアドレス変化時(移動検出時)

仮想IPアドレスは不変

通信の継続が可能

DC

DC

NTM端末B

NTM端末B

NAT

NAT

Global

Network

Private

Network A

NTM端末A

NTM端末A

Private

Network B

NAT

NAT

(6)

移動透過性と通信接続性を実現

DC(Direction Coodinator)

仮想IPアドレスの配布

通信セッションの確立

全通信を実IPアドレスで

UDP

カプセル化(移動透過性)

DCが通信端末間のトンネル構築

を指示(通信接続性)

(

Network Traversal with Mobility)

IPアドレス変化時(移動検出時)

仮想IPアドレスは不変

通信の継続が可能

DC

DC

NTM端末B

NTM端末B

NAT

NAT

Global

Network

Private

Network A

NTM端末A

NTM端末A

Private

Network B

NAT

NAT

(7)

カーネル版

NTMobile

フレームワーク版

NTMobile

通信ライブラリ

アップデート

ソフトウェア

対応可能

OS

カーネル版

Linuxカーネル

必要あり

変更必要なし

Linux

Android(一部)

フレームワーク

アプリケーション層

必要なし

変更必要あり

Linux,

iOS

Android

APP

APP

NTMデーモン

Tunnel

Table

NTMカーネ

ルモジュール

送受信モジュール

カーネル層

APP

APP

送受信モジュール

カーネル層

NTMobile

通信ライブラリ

カプセル化

APP

NTMobile

通信ライブラリ

カプセル化

(8)

カーネル版

NTMobile

フレームワーク版

NTMobile

通信ライブラリ

アップデート

ソフトウェア

対応可能

OS

カーネル版

Linuxカーネル

必要あり

変更必要なし

Linux

Android(一部)

フレームワーク

アプリケーション層

必要なし

変更必要あり

Linux,

iOS

Android

APP

APP

NTMデーモン

Tunnel

Table

NTMカーネ

ルモジュール

送受信モジュール

カーネル層

APP

APP

送受信モジュール

カーネル層

NTMobile

通信ライブラリ

カプセル化

APP

NTMobile

通信ライブラリ

カプセル化

(9)

NTMobile

Java Application

Java Rapper

NTMobile Socket

lwip

Tunnel

Table

NTM Signaling

Hand

Over

C Socket

Linux(UDP/IP)

(10)

NTMobile

Java Application

Java Rapper

NTMobile Socket

lwip

Tunnel

Table

NTM Signaling

Hand

Over

C Socket

NTMobile Framework

上位アプリケーションに対

して

NTMobile機能を提

供するライブラリ

(11)

NTMobile

Java Application

Java Rapper

NTMobile Socket

lwip

Tunnel

Table

NTM Signaling

Hand

Over

C Socket

Linux(UDP/IP)

NTMobile Framework

Linux上でUDPカプセル

化を行う

(12)

NTMobile

Java Application

Java Rapper

NTMobile Socket

lwip

Tunnel

Table

NTM Signaling

Hand

Over

C Socket

NTMobile Framework

Cソケットと同じインタ

フェース・機能のソケット

(13)

NTMobile

Java Application

Java Rapper

NTMobile Socket

lwip

Tunnel

Table

NTM Signaling

Hand

Over

C Socket

Linux(UDP/IP)

NTMobile Framework

NTMobileソケットに対応

した

Javaソケット(JNAを利

用)

(14)

NTMobile

Java Application

Java Rapper

NTMobile Socket

lwip

Tunnel

Table

NTM Signaling

Hand

Over

C Socket

NTMobile Framework

(15)

アプリケーションで

TCP/IPを実現するオープンソースソフトウェア

主に組み込み系システムで使用

本システムではカプセル内部の

TCP/IPの機能に利用

作成者

: Adam Dunkels

(16)

NTMobile

Java Application

Java Rapper

NTMobile Socket

lwip

Tunnel

Table

NTM Signaling

Hand

Over

C Socket

NTMobile Framework

(17)

一秒に一回の呼び出し

アドレス変化を検出した場合

DCへ、端末情

報の上書き(レジストレーション)と

NTMobile

端末間のトンネルの再構築依頼

(18)

NTMobile

Java Application

Java Rapper

NTMobile Socket

lwip

Tunnel

Table

NTM Signaling

Hand

Over

C Socket

NTMobile Framework

(19)

フレームワークの実装

各モジュールの機能

Javaラッパー

ハンドオーバ処理

今後の予定

フレームワークの試験・性能評価

Android端末への実装

参照

関連したドキュメント

情報理工学研究科 情報・通信工学専攻. 2012/7/12

関東総合通信局 東京電機大学 工学部電気電子工学科 電気通信システム 昭和62年3月以降

鈴木 則宏 慶應義塾大学医学部内科(神経) 教授 祖父江 元 名古屋大学大学院神経内科学 教授 高橋 良輔 京都大学大学院臨床神経学 教授 辻 省次 東京大学大学院神経内科学

理工学部・情報理工学部・生命科学部・薬学部 AO 英語基準入学試験【4 月入学】 国際関係学部・グローバル教養学部・情報理工学部 AO

講師:首都大学東京 システムデザイン学部 知能機械システムコース 准教授 三好 洋美先生 芝浦工業大学 システム理工学部 生命科学科 助教 中村

物質工学課程 ⚕名 電気電子応用工学課程 ⚓名 情報工学課程 ⚕名 知能・機械工学課程

向井 康夫 : 東北大学大学院 生命科学研究科 助教 牧野 渡 : 東北大学大学院 生命科学研究科 助教 占部 城太郎 :