パケットロスは、ネットワーク接続が情報の転送中に情報を失った場合に発生します。ネットワーク接続が必要以上に遅くなり、ローカルとリモートの両方のデバイスとのネットワーク通信の信頼性が低下する可能性があります。厄介なネットワークを改善しようとしている人は、パケット損失を最優先にすべきです。
パケット損失とは何ですか?
流水はしばしばネットワークトラフィックのアナロジーとして使用されますが、情報はネットワークを介して連続ストリームとして送信されません。むしろ、パケットと呼ばれる一連の個別の単位として送信されます。これらの単位は本の個々のページに似ています。一緒に、彼らはいくつかの意味を持っていますが、正しい順序で他のページと結びついて初めて、彼らは一貫した全体を作ります。ネットワーク接続がパケットを失った場合、完全な本は構築できません。パケットは、不完全、破損、または他の欠陥があり、それらが役に立たなくなることがあります。これに対する修正は、通常、失われたパケットを再送しています。
ほとんどのネットワークは時々パケット損失のレベルが非常に低くなっています。ネットワーク接続の変化は、しばらくの間にパケットが落とされるようなものです。つまり、正常に機能しているネットワークでは、パケット損失がネットワーク接続の有効性に影響を与えないほどにはほとんど起こりません。
ネットワーク全体でより高いレベルのパケット損失が発生している場合は、その対策を講じる必要があります。私たちの水の類推に戻るためには、かなりのパケットロスはパイプがひどく漏れているようなものです。他の改善がなされる前に修正する必要があります。
ネットワーク上のパケット損失の原因
1つの理由だけでパケットロスが発生することはありません。ネットワーク上のパケット損失の原因を診断することで、修正する必要があることがわかります。
- ネットワーク帯域幅と輻輳:パケット損失の主な原因は、望ましい接続のネットワーク帯域幅が不十分であることです。これは、同じネットワーク上で通信しようとするデバイスが多すぎる場合に発生します。
- 不十分なハードウェア:パケットをルーティングするネットワーク上のハードウェアは、パケット損失を引き起こす可能性があります。ルーター、スイッチ、ファイアウォール、その他のハードウェアデバイスが最も脆弱です。彼らがあなたに渡っているトラフィックに "追いつかない"場合、パケットをドロップします。それを武器がいっぱいのウェイターと考えてください。あなたが別のプレートを拾うように頼むと、おそらく1つ以上の他のプレートを落とすでしょう。
- 損傷したケーブル:パケット損失は、物理ネットワークレイヤーのレイヤー1で発生する可能性があります。イーサネットケーブルが損傷している、不適切に配線されている、またはネットワークのトラフィックを処理するには遅すぎる場合、パケットは「リーク」します。
- ソフトウェアのバグ:ソフトウェアは完璧ではありません。ネットワークハードウェアまたはコンピュータソフトウェアのファームウェアには、パケット損失の原因となるバグが存在する可能性があります。この場合、消費者が行うことはほとんどありません。あなた自身で問題を解決しようとするかもしれませんが、しばしば問題を解決する唯一の方法は、ハードウェアを提供するベンダーのファームウェアパッチです。ベンダーに問題の修正を促すために見つかった疑いのあるバグを報告してください。
パケット損失の検出
ネットワーク上のパケット損失を検出できるソフトウェアアプリケーションが数多くあります。彼らは、旅行時間を分析するか、パケットを調べることによって、何らかの方法でパケットを「スニッフィング」することによって動作します。パケット損失が存在するかどうかを検出する最も簡単な方法は、ネットワーク上のデバイスにpingをかけることです。
-
Windowsでは、コマンドプロンプトウィンドウを開き、pingコマンドを使用してルータをターゲットにします。たとえば、ルータのローカルIPアドレスが127.0.0.1の場合、次のコマンドはルータにpingを実行します。
ping 127.0.0.1 -t
macOSまたはLinuxでは、ターミナルウィンドウを開き、次のコマンドを使用します。
ping 127.0.0.1
唯一の違いは、コマンドの最後に-tがないことです。
-
pingコマンドが十分な数のパケット(少なくとも10)を処理した後、 Ctrl + C コマンドを停止します。
-
パケットロスがあったかどうかを見てください。 pingデバイスとターゲットの間のこの特定の接続が正しく機能している場合は、0%のパケット損失が発生するはずです。
--- 127.0.0.1 ping statistics ---27パケット送信、27パケット受信、0.0%パケット損失往復分/平均/最大/標準偏差= 1.820 / 8.351 / 72.343 / 14.186ms
-
それでおしまい。
また、パケットロスを検出するためのより高度なツールもあります。
-
macOSとLinuxのtcpdumpコマンドは、pingよりも劇的に強力です。少し慣れるのは圧倒されますが、次のコマンドはパケットをキャプチャしてパケット損失の量を計算します。
tcpdump -i any
-
これにより、任意のネットワーク接続でtcpdumpが実行されます。プライマリネットワークインターフェイスだけをキャプチャする場合は-i eth0を、10パケットしかキャプチャしない場合は-c 10を指定して実行することもできます。
-
コマンドが実行された後、パケットが失われていないかどうかを確認してください。
17パケットのキャプチャフィルタによって受信された85パケットカーネルによってドロップされた0パケット
-
理想的には、0パケットが失われたことがわかります。
Windowsでは、tcpdumpをWindows 10のBashシェルで使用するか、Wiresharkを実行することができます。
パケットを検出するプロセスはかなり低いです。ネットワーク全体の通信を確認する方法を確立したら、パケット損失の原因と原因を特定するための隔離と排除の実践に従う必要があります。これは、ほとんどの場合、ネットワーク上のデバイスの大部分をpingするか、または同じ目的を達成するスクリプトを実行する必要があります。ここではネットワークのトポロジーに関する知識が非常に役立ちます。
パケット損失の原因の特定
パケット損失の根本的な原因を特定するには、最も簡単な問題から始めて、逆方向に検出して作業する必要があります。
まず、デバイス間のイーサネット接続を確認します。物理的な損傷や誤配線の明白な兆候がないか確認してください。これらのケーブルは適切に機能していますか?ケーブルの切り換えは問題を解決しますか?同様の方法でルータとスイッチを確認してください。
次に、ネットワーク上の必要なデバイスを処理するのに十分な帯域幅があるかどうかを判断します。いずれかのハードウェアが、必要以上に多くの接続を処理していますか?これは、しばしば、問題が解決するまで見つけて置き換えるプロセスです。また、ネットワーク上の潜在的に問題のあるデバイスと交換することで、特定のデバイスが取り外されたときにパケット損失が消滅するかどうかを確認することもできます。
ネットワーク上のパケット損失を修正する方法
パケット損失の原因を特定したら、適用可能な2つの修正があります。
最初の問題は、問題のハードウェアを交換することです。調査の結果、ハードウェアデバイスが正しく動作しない場合は、交換してください。
パケットロスがソフトウェアバグによって引き起こされている場合は、自分自身でバグを修正したり、バグを回避したり、バグをベンダーに報告し、修正してもらう必要があります。社内ソフトウェアでは、修正プログラムを見つける方が簡単です。サードパーティのソフトウェアについては、それは依存しています。あなたが大手顧客の場合は、修正プログラムに力を入れることができます。そうでない場合は、回避策を使用しようとすると待っているかもしれません。
最終的な考え
パケットロスは、しばしばネットワーク上でゆっくりと実行されるものとして提示されます。もちろん、あまりにも漠然としたものは、様々な根本原因によって引き起こされる可能性があります。パフォーマンスの低いネットワークを診断している場合、パケット損失はリストの一番上になければなりません。可能性としてパケット損失が解消されると、より複雑な問題に進むことができます。