パケット損失がパフォーマンスに影響を与えるのはなぜですか。
すべてのとおり
環境
- すべてのネットアップ製品
- TCP通信
- CIFS 、 NFS 、 iSCSI に対応しています
回答
- パケット損失が原因のパフォーマンスに影響する理由は数多くあります
- この記事の目的は、パケット損失がパフォーマンス上の問題を引き起こす原因を説明することであり、損失が発生する理由を説明することではありません
- パケット損失が検出されると、輻輳アルゴリズムによってネットワーク上の TCP データの量が制限され、それ以上の損失が防止されます。
- このアルゴリズムで設定される制限は輻輳ウィンドウであり、非損失ネットワークでは、平均的な輻輳ウィンドウを使用して、パケット損失前に送信されるデータ量を確認します。
- BDP は、この輻輳ウィンドウをラウンドトリップ時間に関連付けて、予想される平均スループットを提供します。
- パケットが失われると、受信側は、再送信されるまで新しいパケットへの応答を停止し、その結果、半分の時間が経過するまで遅延が発生します。
- 例:
- Wireshark でパケットトレースを調べると、失われたパケットは重複確認応答として認識され、その後再転送の形式が続きます。
- 例:
- Wireshark の「 Information 」列。パケット損失と次のフィルタを含むトレースから取得されます。
tcp.analysis.duplicate_ack || tcp.analysis.retransmission || tcp.analysis.fast_retransmission || tcp.analysis.out_of_order
- 一部のシステム では、 SACK ( ONTAP など)という TCP フラグが設定されます。このフラグは、一度に欠落しているパケットの数を識別するために使用できます。
- この Wireshark フィルタを使用すると、これらのパケットを確認できます。
tcp.options.sack.count > 0
- この Wireshark フィルタを使用すると、これらのパケットを確認できます。
追加情報
用語の意味
-
データリンクの容量(ビット / 秒)とそのラウンドトリップ遅延時間(秒)の積
その結果、ビット(またはバイト)単位で測定されるデータ量は、ネットワーク回線上の任意の時点における最大データ量(送信されたがまだ確認されていないデータ)に相当します
帯域幅遅延製品は、ポートのリンク速度(ビット / 秒)を 10 で割って、スイッチ全体の負荷におけるラウンドトリップ時間(通常、 1 ミリ秒程度)を掛けて推定できます。 40 Gbps/ 10 ~ = 4 GB/ 秒 * 0.001 秒 = 4.2 MB のバッファメモリ
ラウンドトリップ時間には、ワイヤの伝播遅延だけでなく、スイッチの遅延だけでなく、トラフィック交換時にスイッチ、ホスト、またはストレージシステム内でバッファリングされる時間も含まれます
異なるリンク速度を切り替えるスイッチは、参加ポートでこの範囲のバッファメモリを提供する必要があります。
受信ウィンドウ:
通信のスループットは、輻輳ウィンドウと受信ウィンドウの 2 つのウィンドウによって制限されます
輻輳ウィンドウは、ネットワークのキャパシティを超えないように試行します(輻輳制御)。受信ウィンドウは、受信側のデータ処理能力(フロー制御)を超えないようにします。
例えば、受信者が非常にビジーな場合( Web サーバーなど)、データに圧倒される可能性があります。
各 TCP セグメントには、受信ウィンドウの現在の値が含まれています
たとえば、送信側がバイト 4000 を確認し、受信ウィンドウ 10000 (バイト)を指定した ACK を受信した場合、輻輳ウィンドウで許可されていても、送信側はバイト 14000 の後にパケットを送信しません
-
一方、TCP では、一度に送信可能なバイト数を決定する要素の 1 つとして、一定期間に実行されるグループ間でのグループ間のグループ間でのグループ間のグループ間のグループ間のグループ間のグループ間でのパスワード送受信が可能です
輻輳ウィンドウは送信者によって維持されます
これは、レシーバーが維持するスライディング・ウィンドウ・サイズと混同しないように注意してください
輻輳ウィンドウは、送信側と受信側の間のリンクが過剰なトラフィックで過負荷になるのを防ぐ手段です
この値は、リンク上に存在する輻輳の量を推定することによって算出されます。
-
これは、送信者がバイトを送信し、受信者がバイトを確認し、送信者が確認応答を受信するまでに必要な時間です
通常はミリ秒( ms )で説明
-
ONTAP 9.1 以降( Data ONTAP 8 を含む 異なるバージョンの ONTAP でネットワーク接続を表示する方法)、または 9.5 以降では、 netstat コマンドの retransmit 列がになります。
ONTAP 9.1 以降ではと呼ばれます
Retransmits
ONTAP 9.5 以降では、と呼ばれます
Rexmit
再送信の増分を確認するのにも便利です(トレースの作成、 Wireshark のインストール、および表示よりも高速な場合があります)。