なぜあなたのインターネットは遅いのか?問題を切り分けて特定するトラブルシューティング

  • このエントリーをはてなブックマークに追加

   

2c94e1ef7f199352028a2a50a922efd8_s

はじめに

家庭、コーヒーショップ、またはオフィスでの作業中に「インターネット(インフラ)にまつわる問題」を経験したことがある人には、この記事が役に立つかもしれない。
問題解決の手助けとなるよう、基本的なトラブルシューティングとアドバイスを順番に述べていこうと思う。インフラチームが調査しやすいよう、より難しいケースのデータを紹介しよう。

読みながら覚えておくべきことは、パケットがすべてということだ。ウェブページ、画像、Eメールのダウンロード、またはビデオ会議をしている時、コンピュータは、あらゆるデータを番号の付いた小さなパケットに分割し、パイプを通してそれぞれの目的地に送っていると想像してみてほしい。そしてそれらは目的地で再度、順番に組み立てられる。

ネットワークの問題は、通信課程で正常に動作しなかったわずかなパケットが原因で起こる。例えば、パイプの詰まり、バグ、過剰なデバイス接続、外部摂動、その他たくさんの考え得る理由など。

簡単なテスト

さて、いくつかの簡単なオンラインテストをすることから始めよう。100%正確でなくても、ブラウザから(またはスマホからでも)数回クリックするだけで実行できるし、解決に少し近づくことができる。

良い例は、「スピードテスト」だ。大きなボタンを押して待機し、ダウンロードや帯域幅の重いアプリケーションを実行しないこと。一番良いのは、両方を比較することができるよう、「通常」の値が何であるかを知っておくことだ。

有名な「スピードテスト」への接続を優先してくる卑劣なプロバイダがあるため、ping.online.netのような、あまり有名ではないウェブサイトも試してみるといい。容量の大きいファイルのダウンロードを開始して、どのくらい速くダウンロードできるかチェックしてみよう。

ここで、全ての接続ユーザ間で接続が共有されているということに注意する必要がある。そのため、一人が簡単に帯域幅を独占してしまい、他の人のパイプを詰まらせることがある。これは、オフィスのように、皆が他の人のために十分な大きさのパイプを持とうとしている場所では起こりにくいが、公共の場所では発生することが多い。この場合、あなたができることはほぼ何もない。

次に紹介するのは「素晴らしい」やつ。Netalyzrというものだ。Javaが必要だが、それだけの価値はある(こんなこと初めて言ったよ)。Androidアプリもあるけれど、問題のあるデバイスから実行したほうがいい(自分の携帯やデータ「インターネット」というものが実際、どれほど良いものか見るのも面白いけれど)。Netalyzrは「かなり多くの」テストを実行する。DNS、ブロックされているポート、レイテンシなど。そして、わかりやすくて、ヘルプデスクに共有しやすいレポートを作成してくれる。詳しくはMozillaのパリ支社を見てほしい。

2014-08-20-15.48.32-252x448
いくつかの ISP は IPv6(ついに!)と呼ばれるインターネットの新バージョンを公開し始めている。「新しい」ので、まだ何か問題があるかもしれない。これをチェックするには、Test-ipv6でテストを実行してみてほしい。

基本的な接続性

前回のテストで、何らかの異常があることが分かった場合や、まだ疑問がある場合には、これから紹介するツールを使って、インターネットへの基本的な接続テストや、あなたのいる場所から離れたサーバまでの各ネットワークセグメントの基本的な健全性とパスの確認を行ってみるといい。

「ping」は、1秒ごとにターゲットへプローブを送信し、それが(往復で)どのくらいの時間がかかるかを報告してくれる。指標としては、ヨーロッパと米国西海岸間の基本的な時間は~約160ミリ秒、米国東部から米国西海岸までは~90ミリ秒、台北からヨーロッパまでは~300ミリ秒だ。もしそれよりも高い場合、あなたは実に「ラグっている、遅いインターネット」を見ている可能性がある。

ping-wikipedia
「トレースルート(traceroute)」は、「ping」とはまた一味異なる。やっていることは同じだが、送信元と宛先間で中間ホップを表示する。

このドメインで最高なのは、「mtr」と呼ばれ、上に述べた2つを素晴らしく組み合わせたようなものだ。各ホップにおいて、pingを連続実行するのだ。また、共有する必要がある場合は、–reportを追加すれば簡単に結果をコピーして貼り付けることができるようにしてくれる。ホップ1つや2つのためにレイテンシが高くなってしまうことや、パケット・ロスは、大抵は問題にならない。というのも、ネットワークデバイスはこうしたテストに応答するために作られているわけではなく、いずれかの方向にリダイレクトするというメイン機能において、ビジー状態でない時に応答するだけだからだ。問題発生時にわかりやすい指標となるのは、多くのノード(特にあなたのターゲット)が、パケット・ロスやより高いレイテンシを示し始めるかどうか、である。

mtr-mozilla
最初のホップの数値が高い場合、コンピュータと、家、またはオフィスやバー間のインターネットゲートウェイに何か問題があることを意味する。

「中間あたり」で問題が発生した場合は、ISPか、そのまたISPの問題だ。その場合あなたができることは、サポートに問い合わせて苦情を言うか、できればISPを変えることだ。これはまさに米国のNetflixで起きたことである。

終盤近くの数値が高い場合、それは恐らくテスト中のサービスに問題があるので、運営会社にコンタクトをとってみよう。

ワイヤレス

簡単な方法がある。今ワイヤレス接続の状態であれば、有線ネットワークに切り替えて前述のテストを再実行してみてほしい。びっくりするかもしれないけど、ワイヤレスは魔法じゃないよ:)

家庭や小規模店舗のWi-Fiルータ(“BGN”と書いてあるものや2.4GHzのもの)のほとんどが、クライアントとの通信において3つの周波数またはチャネルのうち、1つしか使えないようになっている。そのため、クライアントは通信する順番を待たなければならない。

ここで、近所の人の無線LANが同じ周波数だと想像してみてほしい。あなたの無線LANが近所の人のパケットを識別していたとしても、チャネルを共有しなければならなくなる。もし近くに2人以上の無線LANユーザがいれば(ワイヤレスのネットワークがWi-Fiリストに表示される)、非最適なワイヤレス体験をすることになるだけでなく、それでは指数関数的に遅くなるだろう。

それを解決、または緩和するためには、Androidの「Wifi Analyzer」のようなアプリを使用するといいかもしれない。Xは周波数で、実際に使用可能なのは重複しない1、6、11のみだ。そしてYはどれだけノイズがあるかを示している。自分のを探してみて、チャネルがさほど混んでいないなら、ワイヤレスルータの設定を見て動かしてみるとよい。

2.4ghz-band-utilization-252x448
もし全部がビジー状態という場合、最後の選択肢は、もう少し最近の規格をサポートしているルータ(つまり“ABGN”(最近では“AC”も)の記載があるもの、または5GHzのもの)を買うことだ。ほとんどのハイエンドフォンやノートパソコンもこれに対応している。その使用可能チャネルは、3つどころか約20もある。

公共の場におけるもう一つのよくある問題は、全く接続できない人がいる一方で、何の問題もなく接続できる人がいる、というケースだ。これは通常、アドレス(ここではスロットとみなす)をデバイスに割り当てるDHCPと呼ばれるメカニズムによって生じる。初期設定では小規模ネットワーク用に作られていて、もう使わないスロットであっても長期間記憶している。通常、ルータ設定にて「記憶」時間を減らしたり、スロットの保管領域を増やしたりすることが可能だ。

有線

有線なら、解決案はそれほど複雑ではない。まずルータ以外のプラグを抜いて、良くなるか様子を見よう。もし良くならなければ、問題はコンピュータにあるかもしれない。また、ルータとスイッチの間にケーブル2本を差すなど、ネットワーク内に物理的なループを作らないように注意してほしい。

原文:https://blog.mozilla.org/it/2015/07/21/troubleshooting-the-internet/(2015-7-21)
※元記事の筆者には直接翻訳の許可を頂いて、翻訳・公開しております。

 -Tech

FAworksではプロのコンサルタントが案件をお探しします

  関連記事

1家に1人!旦那がエンジニアだと便利な5つのこと

よく便利なものに対して「1家に1台」とか言いますよね。 まさしくエンジニアはその「1家に1人」の便利

広告あるある 〜第一弾〜

by Klearchos Kapoutsis こんにちは、今回はネット広告について、あるあるを書きま

【カテゴリ別】海外エンジニアたちに人気の英語Techメディア・Techブログ50選(2016年版)

    日々目まぐるしい速さで変化していくIT業界。特にエンジニアという職種にお

Javaアプリケーションのパフォーマンスを(ほぼ)自動的に上げる方法

Javaアプリケーションのパフォーマンスを(ほぼ)自動的に上げる方法

コードを書き換えずに簡単な手順をいくつか踏むだけで、複雑なJavaアプリケーションを10%以上スピー

基本的なシステム性能とOSジッタを計測するためのツールキット

Linux サーバの基本的なシステム性能とOSジッタを計測するためのツールキット

Jean Dagenaisは、mechanical-sympathyのスレッドで、Gil Teneの

Lispをあなたの言語にも取り入れる方法

僕はプログラミング言語Lispのファンだ。だが、多くの不慣れなプログラマにとって、その素晴らしいまで

Criteoにおける大規模機械学習の仕組み

Criteoの事業の核を担うのは、機械学習です。当社は、広告を表示させたいときの選択や、個別の製品レ

フルスタックエンジニアを目指すには。

フルスタックエンジニアを目指すには。

by Shunsuke Kobayashi 習うより慣れろと言うことわざがありますが、 エンジニアで

エンジニアとして実力を持って生きていくなら絶対取るべき資格

エンジニアとして何年か生きているのですが、そんな中で「これは受けて良かった! 勉強して良かった!」と

エンジニア向け!!新しいプログラミング言語を学ぶ時のサイト一覧

エンジニア向け!!新しいプログラミング言語を学ぶ時のサイト一覧

最近ではプログラミングスキルが世界で注目されており、就職や転職においても十分なスキルの一つとなってい