学位論文要旨



No 119536
著者(漢字) 吉藤,英明
著者(英字)
著者(カナ) ヨシフジ,ヒデアキ
標題(和) IPv6コアプロトコルスタックに関する研究開発 : Serialized Data State Processing に基づく設計と実装
標題(洋)
報告番号 119536
報告番号 甲19536
学位授与日 2004.03.25
学位種別 課程博士
学位種類 博士(情報理工学)
学位記番号 博情第17号
研究科 情報理工学系研究科
専攻 電子情報学専攻
論文審査委員 主査: 東京大学 助教授 江崎,浩
 東京大学 教授 青山,友紀
 東京大学 教授 坂井,修一
 東京大学 助教授 瀬崎,薫
 東京大学 助教授 田浦,健次朗
内容要旨 要旨を表示する

計算機の数が増えるとそれらを相互接続する要求が生じる。計算機を相互接続する基盤を計算機網(コンピュータネットワーク(Computer Network))、あるいは単にネットワークと呼ぶ。

種々の計算機が相互接続し、情報をやりとりするためには、情報流通の様々な段階(層)で「互換性のある」方式を採用しなければならない。この層の分類としてはOSIの参照モデルが一般的である。1960年代の終わり頃からIPv4と呼ばれるプロトコルで動作してきたインターネット (The Internet) は「ネットワーク層」にインターネットプロトコルを利用した世界規模のネットワークであり、世界に散在する様々な種類の計算機を相互接続し、情報流通に革命を引き起こしてきた。

その初期は接続する計算機も多くなく、軍事や研究者むけのものであったが、電子メールやWWWといった、一般市民にも受け入れられるようなアプリケーションが登場してからはその利用は爆発的に拡大している。

インターネットの急激な成長に追いつき、パケット転送性能、プロトコル拡張性、セキュリティ及びプライバシといった、伝統的なIPv4の種々の欠点を解決するための次世代IP(IPng)に関する全面的な技術的議論はIETFで1992年から開始された。その議論の結果、IPv6の基本規格は1994年に制定され、実験的実装や6boneなどによるネットワーク運用を経てIPv6技術はいよいよ実用段階に突入してきている。インターネットサービス事業者(ISP)による商用接続サービスや、IPv6で動作する種々のアプリケーションも出現している。

一方、Linuxは、フィンランドの学生だったLinus B. Torvaldsが開発を開発した、UNIX互換のOSである。他のUNIX系OSと異なり、BSD等の既存の実装を用いることなく、独立して開発されたものである。伝統にとらわれない分開発姿勢が柔軟であり、大勢が望む機能はどんどん取り入れられていくなど、ユーザーの声にとても敏感である。Linuxは、基本的に世界中の数多くのボランティアによって支えられているが、これはまさにインターネット時代のOS開発形態である。

Linuxは、独自のOS開発が難しい零細企業のみならず、International Business Machines (IBM) やHewlett-Packard、Sun Microsystemsといった世界的な大企業が有形・無形に支持しており、利用が広がりを見せている。

Linuxも他のOS同様IPv6技術に対応しており、1996年のバージョン2.1.xから利用できる。しかしながら、その品質は高くなく、実用上多くの問題を抱えていた。例えば、安定的な通信の保持に欠かせない近隣探索やアドレスの自動設定、ルータの選択等に、定められた仕様との齟齬が多数存在したり、必要とされる機能、例えば、IPセキュリティ(IPsec)や、モバイルIP(Mobile IP)の実装が書けていたことなどである。

これらの点をふまえ、従来のLinux IPv6実装についての検討の結果、その設計は複雑で適切に整理されていないことが判明した。具体的には、内部状態の管理機構において、状態の依存関係および排他制御が複雑であった。そのため、望まない瑕疵が混入したり、必要な機能を実現したり、拡張したりすることが困難であった。また、ボランティアに支えられている開発体制のため、開発者の能力と知識の偏りがあるなどが原因で、設計の基本理念に一貫性が欠ける場合があった。

本研究では、Serialized Data State Processing手法に基づく設計を導入する。本設計は、連続したオブジェクトおよび状態処理構造の導入し、依存関係と管理を簡素化・単純化する。それにより、旧来に比して種々の瑕疵をおこしに難くすると共に、将来の拡張性を向上させている。

本論文では、我々の行ったLinuxむけのIPv6コアプロトコルスタックの実装、設計および仕様適合性評価の結果について述べる。また、オープンソースソフトウェアの世界展開にあたり、必要な要素戦略についても述べる。

本論文では、まず、インターネット及びオープンソースについて歴史を概観し、その発展の障害となる点を指摘しする。次に、LinuxにおけるIPv6技術を紹介し、その問題点を指摘する。さらに、前章での解析に基づき、本研究で提案するSerialized Data State Processingに基づく設計を行う。特に、NDP(近隣探索プロトコル)実装における近隣管理実装、経路表管理、及びIPパケット処理について、その実際とその成果を述べる。

なお、本研究の研究開発の成果は、USAGIプロジェクトのIPv6コアプロトコルスタックに統合されて、世界に公開されている。これにより、その効果を検証するとともに、広範囲の利用者からの反応・意見を得て、継続的に改良を加えている。USAGIプロジェクトは、本研究の対象領域を含む多方面の技術分野において研究開発の成果をあげており、標準化やIPv6技術の普及に貢献を続けている。

審査要旨 要旨を表示する

本論文は、「IPv6コアプロトコルスタックに関する研究開発 − Serialized Data State Processingに基づく設計と実装 −」と題し、7章より構成されており、次世代インターネットの基盤プロトコルであるIPv6の実用システムとしての導入と普及を推進支援することを目的として、高品質で拡張性に優れた参照ソフトウェアの設計と実装手法を提案・実証するとともに、研究開発結果は世界標準参照ソフトウェアとして、広く世界中で参照利用されている。

IPv6プロトコルは、インターネットの技術的な国際標準を決定する機関であるIETF(Internet Engineering Task Force)において制定された21世紀の情報通信基盤を支える基盤プロトコルである。IPv6技術は、ブロードバンド、ユビキタス時代に不可欠な次世代インターネットの中心とならなければならない。 一方、オープンソフトウェアとして広く知られているLinuxは自由にソースコードを入手可能なフリーソフトウェアのオペレーティングシステム(OS; Operating System)であるが、クローズドなOSと商業的にも肩を並べる可能性が議論されるほど発展してきている。 したがって、Linuxシステムにおける IPv6プロトコルスタックの品質の向上と、実システムへの導入と普及を推進支援するための、高品質なソフトウェアアーキテクチャならびにソフトウェアを研究開発し、これを、研究開発コミュニティーに提供することは、学術界にとっての、産業界に対する責任といっても過言ではない。 しかしながら、これまで、LinuxシステムにおけるIPv6プロトコルスタックは、その実装がIETFで制定された技術仕様に準拠していない場合が存在するばかりか、ソフトウェア設計の不備に伴い、プログラムの改変や機能追加を行う際に、作業量の増大やソフトウェアバグの発生頻度の増大を誘発するようなソフトウェア構成をとっていた。 このような、背景の下、本論文では、LinuxシステムにおけるIPv6プロトコルスタックの品質向上をソフトウェアアーキテクチャ的な視点から検討し、かつ、一方では、オープンソフトウェアとして採用されるために必要なソフトウェアの改変が可能となるための設計という視点から、IPv6プロトコルスタックにおける主要機能モジュールのソフトウェア設計を行い、これを実装評価し、オープンソフトウェアとして採用されるに至っており、その設計手法の有効性を実証しているといえる。

第1章は、序論である。ここでは、インターネットの発展過程を概観し、次世代インターネット技術として広く認知されているIPv6技術の必要性と要求機能の概要を説明している。 また、オープンソフトウェアとしてのLinuxの運用形態ならびに、その存在意義が説明された後、本研究開発の目的が述べられ、最後に、本論文の構成を示し、各章の概略を説明している。第2章では、インターネットの歴史を概観し、その発展の障害となる技術課題を指摘するとともに、IPv6技術の概要を説明、さらに、Linuxシステムについての歴史を概観している。 第3章では、インターネットにおけるオープンソフトウェアの研究開発に関し、その意義と開発手法について説明を行っている。 第4章では、LinuxにおけるIPv6技術の現状を紹介し、その問題点を指摘している。 第5章では、前章での議論に基づき、本研究で提案評価しているSerialized Data Processing に基づく設計を提案し、その具体的な実装として、NDP(近隣探索プロトコル)における近隣管理、経路表管理、およびIPパケット処理に関して、そのソフトウェア設計と実装を提案説明している。 第6章では、実装システムの評価結果を述べ、その有効性を示している。第7章は本研究の結論を述べるともに、今後の課題を整理している。

本研究の研究開発の成果は、USAGIプロジェクトのIPv6プロトコルスタックとして統合されて、広く世界に対して公開している。 公開されたソフトウェアの有効性は、広範囲の利用者から、高く評価されるととに、広く利用されており、引き続き継続的な改良が、Linuxコミュニティーにおいて行われている。 さらに、USAGIプロジェクトの成果物であるソフトウェア(IPv6プロトコルスタック)は、グローバルな参照ソフトウェアであるLinuxのメインカーネルとして採用されるに至っている。

以上のように、本論文は、LinuxシステムにおけるIPv6プロトコルスタックの品質向上をソフトウェアアーキテクチャ的な視点から検討し、かつ、一方では、オープンソフトウェアとして採用されるために必要なソフトウェアの改変が可能となるための設計という視点から、IPv6プロトコルスタックにおける主要機能モジュールのソフトウェア設計を行い、これを実装評価し、オープンソフトウェアとして採用されるに至っており、その設計手法の有効性を実証しているとともに、情報理工学の発展に大きな貢献を果たしている。

よって本論文は博士(情報理工学)の学位請求論文として合格と認められる。

UTokyo Repositoryリンク