開発の背景
TCP/IP通信の制約
TCP/IP通信には以下のような制約があります.
・IPv4グローバルアドレス空間からプライベートアドレス空間に対して通信の開始ができません(NAT越え問題).
・IPv4アドレスの通信デバイスとIPv6アドレスの通信デバイスは直接通信することができません.
・通信中にネットワークを切り替えると通信を継続できません.
・エンド通信デバイス間のP2P通信セキュリティを確保するのが困難です.
特にNAT越え問題は現状のネットワークに最大の制約を課す課題です.
IoT通信やモバイル通信の普及に伴い,これらの制約はアプリケーションの開発手法にも影響を与え,最適なシステムの実現に支障を来たします.
NAT越え問題とは
インターネット側から見ると,プライベートネットワークは1台のNATが存在しているようにしか見えず,
NATの内側の通信デバイスを指定して通信開始をすることができませんでした.
一方,プライベートネットワーク側から見ると,インターネット上に複数のサーバが存在しており,どのサーバと通信したいか指定することができます.
このようにNATをはさんでグローバル空間とプライベート空間は非対称の関係にあり,IPネットワークに大きな制約を課しています.
これまでこの制約は企業ファイアウォールのポリシーの陰に隠れ,表に出てきませんでした.
しかし,リモートワークの要求の高まりにより,NAT越え問題は解決すべき最大の課題となりました.
移動透過性
元来TCP/IPは通信デバイスが移動することを想定していませんでした.
TCP/IPはIPアドレスに位置識別子と通信識別子という2つの役割を持たせています.
下図に示すように通信中にルータを跨ってネットワークが切り替わると,IPアドレスが変化し通信識別子が変わることから通信を継続できません.
一方,インターネットはエンドツーエンド(*)の原理により何もしてくれません.
このような理由から,インターネットでは通信をしながら場所を移動する機能(移動透過性)の実現は簡単ではありません.
(*)エンドツーエンドの原理とは,ネットワークは何もしてはならず,高速かつ安価に実現されるべきというインターネットの基本的な考え方です.
クライアント/サーバシステムとは
現状のネットワークを使いこなす代表的な技術としてクライアント/サーバシステム(以後CS型システム)があります
CS型システムはサービスを提供するサーバと,サービスを受ける複数のクライアントから構成されます.
CS型システムは必ずクライアントから通信を開始します.
また,サーバはクライアントから見て必ず通信経路を確立できる場所に設置します
CS型システムではサーバをグローバル空間に設置することにより,NAT越え問題に悩まされることなく広域でのサービスを実現することができます
このことから現状のアプリケーションはほとんどCS型で実現しています.
単にユーザどうしで情報を交換する場合であってもサーバを経由する方法に変換して通信を行います.
サーバに起因する課題
CS型システムの要となるサーバには運用面と性能面において以下のような課題があります.
運用面ではすべての情報がサーバに集中するので万全のセキュリティ対策が必要です
サーバには公開鍵証明書を発行してサーバの認証と暗号通信を行うのが一般です.しかし証明書の運用には維持費用がかかります.
また,サーバに障害が発生すると影響が大きいので必ず二重化対策が必要です.
このようなことから,CS型システムのサービスの開始には大きなハードルがあります.
性能面ではサーバが処理ネックになることがあるのでスケーラビリティを十分検討する必要があります.
さらに,エンド装置間の通信において通信遅延が増大し,ネットワークのトラフィックが必要以上に増加します.