Wiresharkを使用したネットワーク遅延のトラブルシューティング
公開: 2021-10-07ネットワーク遅延は、ネットワークエコシステムの送信元から宛先への要求またはデータの送信の遅延です。 ネットワーク遅延のトラブルシューティング方法を見てみましょう。
Webページを開く、リンクをクリックする、アプリを開いてオンラインゲームをプレイするなど、ネットワークの使用を必要とするアクションは、アクティビティと呼ばれます。 ユーザーのアクティビティはリクエストであり、Webアプリケーションの応答時間はこのリクエストに応答するのにかかる時間です。
この時間遅延には、サーバーが要求を完了するのにかかる時間も含まれます。 結果として、これはラウンドトリップとして定義されます。つまり、リクエストが記録され、処理されてから、ユーザーが受信してデコードされるまでにかかる時間です。
「低遅延」という用語は、比較的短いデータ転送遅延を指します。 一方、長い遅延や過度の遅延は、ユーザーエクスペリエンスを低下させるため、望ましくありません。

ネットワーク遅延を修正する方法は?
ネットワークの分析とトラブルシューティングのためにインターネット上で利用可能な多くのツールとソフトウェアがあります。 有料のものもあれば、無料のものもあります。 ただし、Wiresharkと呼ばれるツールがあります。これは、データパケットをリアルタイムでキャプチャするために使用されるオープンソースのGPLライセンスアプリケーションです。 Wiresharkは、世界で最も人気があり、一般的に使用されているネットワークプロトコルアナライザです。
ネットワークパケットをキャプチャして詳細に表示するのに役立ちます。 これらのパケットは、ネットワークパケットをキャッチすると、リアルタイムまたはオフラインの分析に使用できます。 このアプリケーションを使用すると、顕微鏡でネットワークトラフィックを調べ、フィルタリングしてドリルダウンして問題の原因を特定し、ネットワーク分析、そして最終的にはネットワークセキュリティを支援できます。
ネットワーク遅延の原因は何ですか?
ネットワーク接続が遅い主な理由は次のとおりです。
- 高遅延
- アプリケーションの依存関係
- パケットロス
- 傍受装置
- 非効率的なウィンドウサイズ
また、この記事では、ネットワーク遅延の各原因と、Wiresharkの問題を解決する方法について説明します。
Wiresharkで調べる
高遅延
高遅延とは、データが1つのエンドポイントから別のエンドポイントに転送されるのにかかる時間を指します。 ネットワーク通信に対する高遅延の影響は甚大です。 次の図では、例として、高遅延パスでのファイルダウンロードのラウンドトリップ時間を示しています。 往復の待ち時間は1秒を超えることが多く、これは許容できません。

- Wiresharkの統計に移動します。
- オプションTCPストリームグラフを選択します。
- ラウンドトリップ時間グラフを選択して、ファイルのダウンロードにかかる時間を調べます。
Wiresharkは、パスのラウンドトリップ時間を計算して、これが伝送制御プロトコル(TCP)通信ネットワークのパフォーマンスの欠陥の原因であるかどうかを確認するために使用されます。 TCPは、オンラインサーフィン、データ送信、ファイル転送プロトコルなど、さまざまなアプリケーションで使用されます。 多くの場合、特にホストがWindows XPを使用している場合は、オペレーティングシステムを調整して、待ち時間の長いチャネルでより効果的に実行できます。
アプリケーションの依存関係
一部のアプリケーションは、他のアプリケーション、プロセス、またはホスト通信に依存しています。 たとえば、データベースアプリケーションが他のサーバーへの接続に依存してデータベースアイテムをフェッチするとします。 その場合、これらの他のサーバーのパフォーマンスが低下すると、ローカルアプリケーションのロード時間が損なわれる可能性があります。
たとえば、ターゲットサーバーが他のいくつかのWebサイトを参照しているWebブラウジングエクスペリエンスを考えてみましょう。 たとえば、サイトのメインページwww.espn.comを読み込むには、最初にメインのwww.espn.comページの広告とコンテンツを提供する16のホストにアクセスする必要があります。

上の図では、Wiresharkの[HTTP Load Distribution]ウィンドウに、www.espn.comホームページで使用されているすべてのサーバーのリストが表示されています。
パケットロス
私がネットワークで見つけた最も一般的な問題の1つは、パケット損失です。 パケット損失は、データパケットがインターネットを介して送信者から受信者に正しく配信されない場合に発生します。 ユーザーがWebサイトにアクセスしてサイトの要素のダウンロードを開始すると、パケットが欠落すると再送信が発生し、Webファイルのダウンロードの確実性が高まり、ダウンロードプロセス全体が遅くなります。
さらに、アプリケーションがTCPを使用する場合、欠落したパケットは特に悪影響を及ぼします。 TCP接続がドロップされたパケットを検出すると、ネットワークの問題を補うためにスループットレートが自動的に低下します。
次のパケットがドロップされるまで、徐々に改善されて許容できるペースになり、データスループットが大幅に低下します。 大きなファイルのダウンロードは、そうでなければネットワーク上を簡単に流れるはずですが、パケット損失の影響を大きく受けます。

パケットが失われたときはどのように見えますか? それは議論の余地があります。 プログラムがTCPを介して動作している場合、パケット損失は2つの形態をとることがあります。 一例では、受信機は、シーケンス番号に基づいてパケットを監視し、欠落しているパケットを検出します。 クライアントは、欠落しているパケットに対して3つの要求(二重確認応答)を行い、結果として再送信します。 送信者は、受信者がデータパケットの受信を確認していないことを確認すると、タイムアウトしてデータパケットを再送信します。

Wiresharkは、ネットワークの輻輳が発生したことを示し、複数の確認応答により、問題のあるトラフィックを色分けして再送信します。 重複する確認応答の数が多い場合は、ネットワークでのパケット損失と大幅な遅延を示しています。
ネットワーク速度を向上させるには、パケット損失の正確な場所を特定することが重要です。 パケット損失が発生すると、パケット損失が表示されなくなるまでWiresharkをパスの下に移動します。 現時点では、パケットドロップポイントから「上流」にあるため、デバッグ作業をどこに集中させるべきかがわかります。
インターセプトデバイス
ネットワークトラフィック警官は、スイッチ、ルーター、ファイアウォールなど、転送を選択する相互接続デバイスです。 パケット損失が発生した場合、考えられる理由としてこれらのデバイスを調査する必要があります。
これらのリンクデバイスにより、遅延をパスに追加できます。 たとえば、トラフィックの優先順位付けが有効になっている場合、優先度レベルの低いストリームに余分な遅延が注入されるのを目撃できます。
非効率的なウィンドウサイズ
Microsoftオペレーティングシステムとは別に、TCP / IPネットワークには他の「ウィンドウ」があります。
- スライドウィンドウ
- レシーバーウィンドウ
- 輻輳制御ウィンドウ
これらのウィンドウは一緒になって、ネットワークのTCPベースの通信パフォーマンスを構成します。 これらの各ウィンドウと、それらがネットワーク帯域幅に与える影響を定義することから始めましょう。
スライドウィンドウ
データが確認されると、スライディングウィンドウを使用して、ネットワークを介して次のTCPセグメントをブロードキャストします。 送信者は送信されたデータフラグメントの確認応答を受信し、スライディングウィンドウが拡大します。 ネットワーク上で送信が失われない限り、大量のデータを転送できます。 パケットが失われると、ネットワークが回線上の増加したデータ量を管理できないため、スライディングウィンドウが縮小します。
レシーバーウィンドウ
TCPスタックのレシーバーウィンドウはバッファースペースです。 データを受信すると、アプリケーションがデータを取得するまで、このバッファスペースに保存されます。 アプリケーションが受信レートに追いついていない場合、受信ウィンドウがいっぱいになり、最終的に「ウィンドウがゼロ」のシナリオになります。 受信機がゼロウィンドウ状態をアナウンスすると、ホストへのすべてのデータ送信を停止する必要があります。 スループットの速度はゼロに低下します。 Window Scaling(RFC 1323)として知られる方法により、ホストはレシーバーウィンドウのサイズを大きくし、ウィンドウがゼロになる可能性を低くすることができます。

上の図は、ウィンドウがゼロのシナリオによるネットワーク通信の32秒の遅延を示しています。
輻輳ウィンドウ
輻輳ウィンドウは、ネットワークが処理できるデータの最大量を定義します。 送信者のパケット伝送速度、ネットワークパケット損失率、および受信者のウィンドウサイズはすべて、この数値に影響します。 輻輳ウィンドウは、転送が完了するか、ネットワークの正常性によって確立された「上限」に達するまで、正常なネットワーク通信中に着実に増加します。 送信者の送信機能または受信者のウィンドウサイズ。 新しい接続ごとに、ウィンドウサイズのネゴシエーション手順が最初からやり直されます。
健全なネットワークのためのヒント
- Wiresharkを最初の応答タスクとして利用して、パフォーマンスの低下の原因を迅速かつ効率的に発見する方法を学びます。
- ネットワークパスの遅延の原因を特定し、可能であれば、許容可能なレベルまで減らします。
- パケット損失の原因を特定して解決します。
- データ送信ウィンドウのサイズを調べ、可能であればそれを減らします。
- 傍受するデバイスのパフォーマンスを調べて、遅延が追加されるか、パケットがドロップされるかを確認します。
- アプリを最適化して、大量のデータを配信し、可能であれば、レシーバーウィンドウからデータを取得できるようにします。
まとめ
ネットワークパフォーマンスの問題の主な理由については説明しましたが、見逃してはならない1つの要因は、ネットワーク通信の動作についての理解が不足していることです。 WiresharkはX線と同じようにネットワークの可視性を提供し、CATスキャンは正確で迅速な診断のために人体の可視性を提供します。 このツールは、ネットワークの問題を特定して診断するための重要なツールになりました。
ここで、Wiresharkを使用して、いくつかのフィルターとツールを使用してネットワークパフォーマンスを調べて解決する必要があります。
