KeyHoleTV開発者のブログ

日々の質問や開発の日記

意外と知られていない家庭内のパケット落ち

ルータやルータ機能付きモデム

KeyHoleTVを利用している利用者から、動画が止まったり、音が停止する現象があると、度々報告された。例えば、昨日まで問題なく利用できたのに、今日はダメといった具合だ。 この問題に対して、こちらの環境では、問題が発生していないため、利用者の環境を詳しく聞いた。

この結果、分かったことは、

(1)WiFiルータが他人に利用されている。

WiFiルータにパスワードを設定していれば、問題がないと思っている人は、数多くいる。 しかし、隣人のPCがウィルスに侵されている場合、パスワードの解析などは、ウィルスがバックグランドを行う。別に時間がかかっても構わない。また、解析できなくてもよく、気長に行っている。そして、ある日突然、他人のネットワーク環境が劣化する。

ウィルスが他人のWiFiを介して、DOS攻撃に利用されている場合もあるが、ウィルスに感染しているPCは、他人のWiFiを使っているため、使用者本人の環境では、通信速度の低減が見られないので、不都合がない。しかし、利用されている人には、たまったものではない。

この解決法は、MACアドレスフィルタを利用する以外方法がない。WiFiを利用する機器には、MACアドレスと呼ばれるアドレスがある。WindowsPCでは、AA-BB-00-.. といったWiFi機器の番号で表現される。 他のOSでは、AA:BB:00...といった形で、表現されている。

このアドレスをWiFiルータやWiFiルータ機能を持った光・ADSLモデムが持っているMACアドレスフィルタに登録して、登録している機器以外、WiFiの利用を禁止する。

MACアドレスフィルタにより、他人の介入がなくなり、KeyHoleTVも無事視聴することができた。

 

(2)ルータ内部で、パケットを捨てている。

ルータは、接続している機器のアドレスと対象機器で動作しているアプリケーションが利用するポート番号を管理して、インターネット側から送られてくるパケットを対象機器に送信する。 ルータやモデムの機種によっては、管理しているテーブルに送受信したパケットの数を管理しているのではないかと想定する。(これは、内部仕様がないため、確証が得られないので、確かめられない。)

自宅で利用している光ファイバ用のルータ機能付きモデムでは、WiFI接続を継続して利用している機器が徐々にKeyHoleTVの映像が乱れる現象が現れた。 他のWiFiを利用している機器や有線接続をしている機器では、同様の問題は発生しない。 このような現象から、当該機器のWiFiを一旦切って、再び接続すると、映像が乱れることもなく、視聴できた。 

以上のことから、ある種のルータやルータ機能付きモデムは、内部に接続する端末を管理するテーブルがあり、到着したパケットの数をカウントする機能があると推察する。また、パケットの数をカウントし、その数が一定数以上を超えると、パケットが優先的に捨てられると推察できる。おそらく不具合だと思う。

WiFiを利用する端末によっては、端末がスリープモードになった場合にWiFiを自動的に切断し、スリープが解除されると再び接続する機器も存在する。 このような端末では、KeyHoleTVの通信障害が起こりにくい。また、TCP/IPを利用するブラウザなどでは、あたかも通信速度が低下しているように見える。 例えば、ローディング中を示すマークが頻繁に出たりする。

アップデート等を頻繁に行う機器では、スリープモード中もWiFiが常に生きており、パケットの数をカウントアップして、ある日突然通信が遅くなったりする場合がある。このような現象を改善するためには、WiFiの接続を一旦切って、再び接続すると改善する。

 

中国からインターネットを利用する場合

中国国内から、ブラウザを使って、google.com や YouTUBEへのアクセスは、基本的にできない。中国国内から、暗号化されたパケットを海外のサイトにブラウザを使ってアクセスすると、多くの場合応答がない。 これは、ブラウザのアクセスがTCP/IPと呼ばれる通信プロトコルを利用しているため、発生する現象である。

TCP/IPの通信は、必ず成功し、失敗する場合、エラーを相手に返す仕組みである。TCP/IPの通信が成功する仕組みは、パケットが届いた場合、届いたことを知らせるパケットを送り返すことで達成する。また、届いていないパケットがあると、再送する。

さて、中国国内から、インターネットのアクセスは、中国のプロバイダを介して行っている。 プロバイダは、どうも一定の量の通信が特定のアドレスに暗号化したパケットを送信する場合、一部のパケットを欠落させる仕組みがあるようだ。また、通信量が増えれば増えるほど、欠落するパケットが増える。

中国国内から、goolge.com へのアクセスは、google 側から送信したパケットがいくつか到着しないので、再送を繰り返し行うことになる。 更に、再送してもパケットが到着しないので、サーバ側が通信を切断する。 これが、中国国内からgoogle.com へのアクセスができない原因である。

インターネットのパケットは、必ず相手に到着するという保証がない。 このため、中国のプロバイダがたとえ意図的にパケットを損失させても、問題がないと言える。また、日本国内でも、帯域制限と謳って、意図的にパケットを損失させる機構が存在する。これは、日本国内で、WiFiルータを借りて、通信を行い、KeyHoleTVのサーバと通信させてみて分かった点である。

KeyHoleTVの場合、ある程度パケットが損失しても、問題が無いように設計している。当然パケットが届かないので、動画乱れたり、音が飛んだりする場合もある。しかし、何日も利用していると、音が止まったり、動画が完全に停止してしまう。これを解決するためには、自分のアドレスを変える以外方法がない。プロバイダが意図的にパケットを欠落させているので、アドレスを変えて、一定以上のパケットが到着しないようにするしか方法がない。

アドレスを変える方法は、モデムの電源を切って、再び入れる。 携帯電話の場合も電源を切って再び入れる。 これで、プロバイダにより割り振られるアドレスが変わる。 残念なことに、集合住宅では、通用しない場合が多い。 これは、集合住宅にメインのモデムがあり、それがプロバイダよりアドレスが割り振られ、個々の居室にあるモデムは、独自のアドレスになっているためで、居室にあるモデムの電源を切って、再び入れても、内部のアドレレスが変わるだけで、メインのアドレスが変わらない。このような場合、携帯電話のデザリングを利用して3G/4Gを経由携帯電話をルータとしてPCを利用するしか方法がない。

KeyHoleTVは、他の動画システムに比べて圧倒的に通信量が少ない。 また、ほとんどの動画サイトでは、最初に大量にダウンロードするため、途中で動画を停止しても、すでにダウンロード済みとなってしまう。 このため、動画サイトの動画をザッピングすると、あっという間に制限容量を超えてしまう。 一方、KeyHoleTVは使った時間しか通信を行わない。このため、使用量が利用者にとってわかりやすい。

 

ポケットWiFiのパケット落ち

日本は、住民登録を証明する書類などがないと、携帯電話を所有することは基本的にできない。海外からの旅行者などは、空港などで、貸出携帯などを利用する。また、インターネットを利用するためには、ポケットWiFiまたはWiMAXと呼ばれる3G/4G回線などを利用した小型のWiFiルータをレンタルする。

www.kashi-mo.com

ポケットWiFiは、様々な契約プランが用意されている。 この契約プランのなかで、定額サービスの場合が曲者だ。定額サービスでは、一定以上の通信を行うと、通信速度が低下する。 著者が調べた結果、サーバ側で、およそ128Kbps以下の通信を行う仕組みを提供しても、決して128Kbps の通信をせず、単純にパケットを捨てている点が曲者である所以だ

例えば、KeyHoleTVは、音だけの番組では、通信速度は128Kbps 以下になる。これは、著者がT-Mobile(当時の通信速度は、64kpbs)の端末で音だけの番組を視聴した結果、長時間利用可能であったことによる。当時のT-Mobile の端末は、Windows Moble の端末でKeyHoleTVでは、古いWindows Mobile でも動作させていた。KeyHoleTV開発秘話(その5) - KeyHoleTV開発者のブログ

 しかし、ポケットWiFiの通信制限を超えた場合で、KeyHoleTVを利用すると、音が飛び飛びになることで、パケットを意図的に捨てていることが明らかになった。

 

オーストラリアでのパケット落ち

オーストラリアでは、インターネットの利用は基本的に従量制である。これは、ポケットWiFiの利用と似ている。 また、プロバイダによっては、定額料金で一定以上の通信を行うと、通信速度が低下する契約も存在する。 ここでも、通信速度の低下が問題になる。通信速度の低下は、単純にパケットを捨てているので、サーバ側がいくら通信速度をプログラム的に落としても、決して端末にパケットが届かない

オーストラリアでは、従量制のインターネットを利用するほうが、KeyHoleTVを利用する上では、有効であると思う。 この場合、3G/4G 回線を利用したKeyHoleTVの利用が有効だ。 KeyHoleTVの場合、通信速度は、動画でも350 Kbps以下で必ず抑えている。

日本のテレビを見ることができるKeYHoleTVとOISEYER Inc.で、示したように、KeyHoleTVの通信量は、他のシステムよりはるかに少なくて住む。このため通信容量に制限があっても、一月で超えることは少ない。 また、他の動画システムの場合、開始直後にダウンロードする量が比較的多いため、単純にザッピングを行うと、視聴した動画のデータ容量に比べて、ダウンロードする量が多い。 このため、少ししか観ていないのにも拘わらず、通信量が増える結果になってしまう。一方、KeyHoleTVは、視聴した時間だけの通信を行うので、視聴時間で通信量が分かる。

 

KeyHoleTVのダウンロード・プレミアムモジュールキーの購入は、 

 

oiseyer.com