あなたの編集に関して、あなたが理解するのを助けるために。ネットワーキングは、Open Source Intercommunication (OSI)と呼ばれるモデルに従います。このモデルは 7 つの異なるレイヤーに分割され、すべてが機能を備えています。
これらのレイヤーは次のとおりです。

Wireshark は、レイヤー 3 にあるパケットを検出します。これはRouterによって処理されます。ネットワーク インターフェイス カード (NIC)は、割り当てられたデータを取得し、それをパケットに変換してネットワーク経由で送信します。
Wireshark は、NICがパケットをルーターが処理するパケットに変換するまで、パケットを検出しません。
パケットに変換されると、次の情報が含まれていることがわかります。
- バージョン (IPV4 または IPV6) を含む 4 ビット
- インターネット ヘッダーを含む 4 ビット。
- サービスの種類またはサービスの品質と優先度を含む 8 ビット。
- パケットの長さをバイト単位で含む 16 ビット。
- Fragments からパケットを再構築するのに役立つ識別タグを含む 16 ビット。
- 3 ビット。最初はゼロで、その後にフラグメントを許可するか許可しないかを示すフラグが続きます。そして量。
- Fragment オフセットを含む 13 ビット。元の位置を識別するためのフィールド。
- Time To Live (TTL)とHops across Routersを含む 8 ビット。
- プロトコル (TCP、UDP、ICMP など) を含む 8 ビット
- ヘッダー チェックサムを含む 16 ビット
- ソース IP アドレスを含む 32 ビット
- 宛先 IP アドレスを含む 32 ビット
これらは、そのようなパケットを作成するときに作成されるキーの 160 ビットです。
これは何を意味するのでしょうか?
Wiresharkがパケットを検出するのに 20 秒かかることはご存知でしょう。したがって、すぐに、アプリケーションが実際にこのパケットを構築するのに 20 秒かかったことがわかります。
サーバーがデータを処理し、場合によってはリクエストを送信できるように、このパケットを再構築する必要があることもわかっています。
また、ルーターが交通警官のように機能し、インターネットまたはローカル ネットワークを介してデータを送信していることもわかっています。
さて、それはかなりの推論を追加しますか? しかし、どこに行けばいいですか?
次のユーティリティがあります:tracert
平均して、ルート要求が 5 ~ 6 フィートのケーブルを通過するのに 1 ~ 2 ミリ秒かかるため、最初のホップが 1 ~ 2 ミリ秒で生成され、2 番目のホップが 230 ミリ秒でトリガーされる場合、単純な式を使用できます。 :
6 * 20
トレーサートからの現在の速度に基づいて、所要時間を見積もることができます。これは非常に一般的なアプローチですが、正確な精度を得るためにツールが存在します。ただし、ホップ数が多いほど、目的地に到達するまでの時間が長くなります。また、あなたはより多くを掛けます。
クライアントからサーバーまでの間はどうですか?
ローカル エリア ネットワーク (LAN) : ネットワークの内部効率は、各ネットワーク プロトコル、機器、および物理メディアンの最適化によるものです。ネットワーク管理者は、速度で信頼性を測定する必要があります。ネットワークによって生成されたすべてのトラフィックと同様に。したがって、機器のスループットと物理的な中央値が重要です。1 車線のトンネルに 10 台の車が合流すると、ネットワークと同じようにボトルネックが発生する可能性があります。
ワイド エリア ネットワーク (WAN) : これは基本的に、インターネット (クラウド) への接続です。次のように考えてください。コンピュータは LAN 上にあり、ルーターは WAN に接続されています。次に、ISP には LAN があり、その WAN がより大きな配布施設に開放されている可能性があります。それは、インターネットに到達するまでずっと働き続けます。
でもどうすればいいですか?
間に何があるか分かりますが、私に何ができますか?
さて、サービスを生成するとき、コードが無駄がなく非常に効率的であることを確認したいのは明らかです。効率は速度において非常に重要です。そのため、バッファ サイズや転送速度などを変更すると、アプリケーションを大幅に改善できます。
明らかに、適切なコード プラクティスが役に立ちます。
私のコードはしっかりしていますか?
この時点でコードに問題がないと思われる場合、またはサービスをホストおよび作成する方法に問題がないと思われる場合は、次の要因が原因である可能性があります。
- ローカル マシンが過剰なチャタリングを生成している可能性があるため、かなり時間がかかります。
- ローカル ネットワークは、過度のチャタリングまたは非効率的/低スループットを生成しています。
- あなたのリクエストは長距離を移動しているため、時間が遅れています。
- インターネット サービス プロバイダーには、これらのパケットをスキャンするハードウェア ファイアウォール、プロキシなどがある場合があります。
- サーバーに過剰なリクエストがあるか、ホスト メソッドが効率的でない可能性があります。
これらは、より大きな変数のチャンクです。試すことができるのは、サービスをリファクタリングし、サーバーが可能な限り最も効率的な方法でそれをホストしていることを確認することだけです. それ以外の場合は、情報技術チームを関与させる必要があります。これは非常に重要です。
ただし、このサービスに接続している別のクライアントよりも、エクスペリエンスが良くなったり悪くなったりする可能性があることに注意してください.
私は、あなたが 1 つの場所に展開されており、サーバーからいくつかの州が離れている可能性があるという仮定の下で話しています。
ツール:
コマンドライン:
ネットワークおよびプロトコル アナライザー:
- Fiddler (HTTP/HTTPS) : Fiddler がトラブルシューティング用の HTTP ステータス コードを表示するかどうかを確認します。
- Wireshark : 所要時間に役立つネットワーク トラフィックを分析します。
Googleの「ネットワークツール」だけで、他の場所でもネットワーク速度を実際に軽減およびテストするために利用できる他のユーティリティがあります。フルークにはいくつかあります。
これで、Wireshark がネットワーク上にパケットを表示するのに 20 秒もかかる理由がわかると思います。
それが役立つことを願っています。