ちょっと気になるネタだったので同様の仕組みをオープンソースで漁ってみたのでそれを元に解説したいと思います。なので厳密にはt.freeの仕組みじゃなく「WebSocketのテザリングの仕組み」になります。
時間がない人向けに結論を書くと
図解:webSocketのテザリング
cacooの図を2つ
- まずt.freeなどのクライアントソフトウエアをインストールします。Macには[有線LAN]や[無線LAN]などのネットワーク接続がありますが、これに[仮想ネットワーク]を追加します。
- さらに、他のテザリング同様iPhoneとつながる必要があるのでWifiでネットワークを作成します。
- iPhoneはMacのWifiにつなぎに行きます。
- その状態でt.freeの接続用ページなど、HTMLをひらくとJavascriptのWebSocketが[Mac側]と[サーバ側]の両方に接続しに行きます。
- Mac側は、インストールしたクライアントソフトが、片方ではWevSocket接続を受けつけ、もう片方ではMacからのネット接続要求を全てWebSocketに転送します。
- 転送されたMacからのWebSocket上を流れる通信は、HTMLで用意されたもう一つのサーバ側WebSocketに転送されます。
- そして、サーバにたどり着いたWebSocket上を流れるMacのネット通信は、t.freeサーバを経由してインターネットにたどり着くわけです。
t.freeやtetherはこんなかんじで動いてると思います。なので、t.freeさんのビジネスモデルに関してはサーバの運営費がかかるのでサーバ代を毎月取る感じが妥当じゃないでしょうか。月間10GBまで500円とか。広告モデルは前回の件もありなかなかユーザの信頼を得にくいのではないかと思います。
自分でt.freeの環境を構築したい方
- 用意するもの
これらを用意したら、あとはこいつをgitから落としてきて
spoletto/iOS-HTML5-Tethering · GitHub
Readmeを読めばいけるっぽいです。僕はインストールしてWebSocketがつながるところまで入ったのですがなぜかネットに繋がらず諦めました。どうもLion側でifconfigのdefault設定(すべてのネット通信を10.0.1.1経由にする)が効いてないような気がしました。