PySkyWiFi: 長距離フライトで無料提供される低速Wi‑Fi
(robertheaton.com)PySkyWiFi: 完全無料で、信じられないほどばかげた長距離フライトWi‑Fi
- 飛行機が高度10,000フィートに達したとき、筆者はインターネットを使おうとノートPCを取り出した
- 機内Wi‑Fiに接続してブラウザを開くと、ネットワークのログインページがクレジットカード情報を要求してきた
- ログインページに、無料でエアマイルのアカウントへログインしろという表示があり、そこでファイアウォールの抜け穴を発見した
- JetStreamers Diamond Altitude アカウントにログインしてインターネットへアクセスする方法を見つけた
Prototype 1: インスタントメッセージング
- エアマイルアカウントの名前フィールドを通じてメッセージをやり取りする方法を考案した
- 2台のコンピュータで同じエアマイルアカウントにログインし、名前フィールドを更新して読み取ることで簡単なチャットを実装した
- この過程を自動化するためにコマンドラインツールを書いた
Prototype 2: リアルタイム見出し、株価、サッカーのスコア
- エアマイルアカウントを通じてリアルタイム情報を送信するプログラムを書いた
- 地上のコンピュータが定期的にエアマイルアカウントの名前フィールドを確認し、要求された情報を再び機内へ送信する方式で動作する
実装版: PySkyWiFi
- PySkyWiFi は TCP/IP プロトコルを単純化し、HTTP リクエストをエアマイルアカウント経由で送信するツールである
- 地上のコンピュータで HTTP リクエストを処理し、レスポンスを再びエアマイルアカウント経由で機内へ送信する
PySkyWiFi の動作原理
-
PySkyWiFi は2つのコンポーネントで構成される:
- Sky Proxy: 機内でノートPC上で動作するプロキシ
- Ground Daemon: 地上でインターネット接続されたコンピュータ上で動作するデーモン
-
Sky Proxy は HTTP リクエストを小さなチャンクに分割して、エアマイルアカウントの名前フィールドに記録する
-
Ground Daemon はこのチャンクを読み取り、HTTP リクエストを処理した後、レスポンスを再び小さなチャンクに分割してエアマイルアカウントに記録する
-
Sky Proxy はこれらのレスポンスチャンクを読み取り、元の HTTP レスポンスとして再構成する
PySkyWiFi の通信ロジック
-
PySkyWiFi の通信ロジックは2つのレイヤーに分かれる:
- Transport Layer: データを小さなチャンクに分割し、送信モードと受信モードを管理する
- Network Layer: データを実際に送信する役割を担う
-
Transport Layer はデータを小さなチャンクに分割して送信し、受信側がそれを確認すると次のチャンクを送信する
-
Network Layer はエアマイルアカウントの名前フィールドを使ってデータを送受信する
最適化と改善点
- エアマイルアカウントのフィールド長制限を克服するために base26 エンコーディングを使用した
- 複数のフィールドを使って帯域幅を増やした
結論
- PySkyWiFi を使ってブログのホームページを
curlで読み込むことに成功した - このプロジェクトは、最も生産的でありながら最も非生産的なフライトだった
GN⁺のまとめ
- PySkyWiFi は機内 Wi‑Fi コストを節約するための創造的な方法を示している
- エアマイルアカウントの抜け穴を利用してインターネットにアクセスする方式が興味深い
- このプロジェクトはネットワークプロトコルと通信の基本原理を理解する助けになる
- 類似機能を持つプロジェクトとしては
Torのようなプロキシサービスがある
1件のコメント
Hacker News のコメント
数年前、パートナーが Google Voice を使ってテキストメッセージを送っていた。Gmail の受信トレイでメッセージを確認して返信できるので便利だった
イタリアからギリシャへ向かう 20 時間のフェリーで、有料衛星経由のインターネットを使わないようにしていた
数週間前、子どもたちをモール内の教室に連れて行ったとき、無料 Wi‑Fi を使おうとした
最近、飛行機の中でグローバル DNS が支払いなしでも普通に動作することを確認した
飛行機ではいつも疲れていて、何もできないという意見
飛行機でヘッドホンを充電しておらず、ノート PC のスピーカーで音楽を流した経験
Google が提供していた SMS 経由の情報提供サービスについての思い出
TCP-over-shared-editable-fields という概念が面白いという意見
役に立たないソフトウェアを書くのは楽しくて有益だという意見
数年前、大学で 10 時以降に LAN ネットワークが遮断されていた経験