AppleInsider: iPhone 4 の内側: FaceTime ビデオ通話
原文: Inside iPhone 4: FaceTime video calling
FaceTime & iChat AV
Apple は、FaceTime を新しい iPhone 4 ハードウェア専用の iChat ライクなサービスとして披露した。 しかし正確にいうと iChat ではない。両者ともに共通する点は多いものの、現時点では iPhone 4 からデスクトップ Mac iChat クライアントへ通話する機能は備えていない(もっとも iPhone 4 の発売後から一年ほどでそうなることはほぼ間違いないだろう)。
Apple の Mac iChat はもともと AOL のプロプライエタリな AIM ネットワークのための IM クライアントだった。 Apple はその後、iChat を拡張してオープンな XMPP "Jabber" インスタントメッセージングをサポートするようにした。 さらに、iChat AV で Internet Engineering Task Force の SIP(Session Initiation Protocol)に対応して、標準ベースのビデオチャットとビデオカンファレンスを可能にした。
Apple の Mac iChat AV クライアントは、ビデオカンファレンス用製品として、ほとんどコストをかけることなく例外的に優れた画質を誇ったものの、今日のインターネットにある致命的な壁にぶち当たった: NAT(Network Address Translation:ネットワークアドレス変換)だ。 企業および家庭向けのルータはともに、内部向け IP アドレスをオープンなインターネットからは見えないようにしているため、ビデオチャットアプリケーションがインターネット越しに他のホストに対して双方向なリッチメディアストリームを備えたサーバおよびクライアントとして機能することが難しくなってしまっているのだ。
NAT の問題
iChat AV が信頼性を持ってインターネット越しに他のクライアント(AOL といったビデオチャット用標準という同じく複雑なソフトウェアを実行する、互換性のある PC クライアントを含めて)と接続できるようにするためには、たいてい NAT をまたがなければならない。 これは特に複雑なことになる。というのも、それぞれの NAT が少しずつ違った振る舞いをするため、異なるタイプのルータやその異なった NAT の実装方法を処理するにあたってのあまりにも数多くの技術的課題が存在するのだ。
異なった種類の NAT が存在し、それらで理想的な相互運用性を実装するための完全な標準がまったく存在しないのだ。 加えて、ある企業が独自に定めたセキュリティポリシーによって、個人が独自にサーバを設定できないようになっていることもあり得る。これはビデオチャットにとっては問題だ。なぜなら iChat AV はリモートクライアントがトランザクションを開始するためにはサーバのように振る舞う必要があるからだ。
Apple の iChat は独自の SNATMAP プロトコルを使って、クライアントがその外部向け IP アドレスを決定し、リモートホストがファイアウォール越しにコミュニケーションを返すことができるようにポートマッピングを開けるようにしている。 Apple はまた、もともと Microsoft が定めた NAT ポート変換のための標準で、さまざまなコンシューマ向けルータ・ファイアウォールメーカーがサポートしている UPnP(Universal Plug n Play)も利用している。
これらを利用して iChat AV のトラフィックを NAT ルータを突破できるようにしているものの、それらが必ずしも企業向けルータや家庭向けルータ製品の全モデルでサポートされている訳ではない。 Mac OS X Leopard で Apple は、新たな IETF NAT 変換標準である ICE(Interactive Connectivity Establishment)へのサポートを追加することでものごとを改善してきたが、シンプルなビデオチャットを設定しようとする非テクニカルなコンシューマをめぐる問題が横たわっている。
FaceTime をオープンにする
Apple は、iPhone でのビデオ通話を実現するにあたっても同じような問題に直面している。 これは他のベンダーも同じことだ。 Apple は、モバイルビデオチャットを相互運用可能なビデオチャットセッションのオープンスタンダードにしたいと望んでおり、そのためにそのサービスを非常に Apple ぽい響きのある iChat と呼ぶのではなく、中立的な FaceTime という名称を採用した。
しかし、実質的に FaceTime は iChat AV for iPhone だ。 Jobs は、FaceTime が機能できるようにしているテクノロジーを「アルファベットのスープ」として表現していたが、その多くは iChat AV にも共通している。例えば:
- H.264 と AAC:同社の ISO/MPEG ビデオ・オーディオコーデック(ちょうど iChat のように)。
- SIP(Session Initiation Protocol):iChat AV で利用されている VoIP のためのオープンな IETF シグナリングプロトコル。
- STUN(Session Traversal Utilities for NAT):さまざまに異なる NAT に対処するための IETF 標準。
- TURN(Traversal Using Relay NAT):NAT の背後にあるクライアントがサーバのように着信要求を受け取れるようにする IETF 標準。
- ICE(Interactive Connectivity Establishment):NAT ファイアウォール越しに接続を確立できるようにする IETF 標準。
- RTP(Real-time Transport Protocol):VoIP にメディアストリームを配信するための IETF 標準。
- SRTP(Secure RTP):暗号、メッセージ認証、データストリーム保全を提供するためにデザインされた IETF 標準。
FaceTime を受け入れる必要のある企業は、Cisco(すでに関連する IETF プロトコルへのサポートを進めている)のようなネットワーク機器企業や、Nokia、RIM、HTC そして Motorola(すでに iPhone の機能、見た目、仕様に追いつこうと懸命になっている)のような携帯電話製造企業だ。 Apple が FaceTime を売り込むにあたっての最良の方法は、コアテクノロジーのオープンソース実装を送り出すことだろう。ちょうど同社が WebKit を送り出した時や、BSD が標準の IP ネットワーキングスタックを送り出した時のように。
Apple は WebKit が成功した理由を理解しているが、必ずしも必要がないのに、ライバルに対してソフトウェアを提供する用意があるかまでは不明だ。 その場合、すべてが互換性を損なうようなさまざまなバグをもった FaceTime 互換デバイスが乱立する結果を引き起こすかもしれない。 もちろん、そのような状況によって同社が信頼性の高い FaceTime 携帯電話の主要ベンダーとなることで、Apple に資する可能性もなくはない。
ページ 2 / 2: なぜ FaceTime は Wi-Fi のみの対応なのか、Skype や Fring はどうなのか?