マイサーバー - クライアントアーキテクチャではマルチキャスト衛星リンクを介してサーバーから多くのクライアントに100 MBのファイルを送信します。ネットワークは5つのホップを通過します。 10Mbps(つまり、1秒あたり1250KB)の帯域幅リンクがあります。
最初のファイルを多くのクライアントにマルチキャストすると、最初のホップでは約9.0 mbpsの受信速度が得られますが、受信側では約4.2 mbpsです。すべてのクライアントは10MB半二重です。
ネットワーク使用率が低いことはわかりますが、正確にどこにあるのかはわかりません。サーバーが〜9.0 mbpsで送信する場合、クライアントは同じ速度を取得する必要があります。
マルチキャストに安定したUDPを使用しています。
各ホップ(特定のポート)に対して着信および発信帯域幅の使用量を確認する方法はありますか?これを達成できるツール/ユーティリティ/アプリケーションはありますか?
すべてのホップが遠く離れているので、そこまで行くことは不可能です。
答え1
ツール
各ホップ(特定のポート)に対して着信および発信帯域幅の使用量を確認する方法はありますか?
お客様がネットワーク要素を所有する場合、またはサードパーティのWANプロバイダが情報を開示しない限り、お客様は推定ネットワークパスに沿ったエンドツーエンドの利用可能な受信および送信帯域幅。下記をご覧ください。
これを達成できるツール/ユーティリティ/アプリケーションはありますか?
- 上記の「利用可能な帯域幅推定」ルートについては、以下を検討する必要があります。Sally Floyd のエンドツーエンド TCP/IP 帯域幅推定ツールのアーカイブ。私が最もよく知っているのは
yaz
、ユニキャストUDPパケットに基づいています。 - 特定のルーターホップでパケットがドロップされているかどうかを確認するには(最終的に質問です)、次のようにします。
mtr
;まだ一つあります。win-mtr
クライアントはWindowsをサポートします。一般に、パケット損失の問題を解決する方法の簡単な例を見るには、スーパーユーザーに対する私の答えを見る。これは、パケット損失が発生した最初のポイントで可視性を提供するのに最も効果的です(最初のポイントが変更されるmtr
まで、そのポイント以降のダウンストリームドロップの多くの可視性を提供しないため)。
落下位置を大まかに推定する簡単な方法は、以下をインストールすることです。mtr
サーバーで以下を実行します。mtr
100Mファイルの転送中に単一のマルチキャストクライアントのパケット損失を追跡します。より正確な測定には、次のものを使用できます。iperf
ネットワークが1億のファイルで飽和しないようにしてください(会社の他のグループとWANダウンタイムを適切に調整する限り)。
チャート
私の答えの残りの部分では、次の画像を参照として使用します。
写真の中:
- R1〜R5はIPルーターです。
- S1とS5はイーサネットスイッチです。
- 172.16.1.0/24の青いサーバーはマルチキャストサーバーを表します。
- C51からC55まではマルチキャスト受信機の例です(受信者は制限なし)。
一般に、R1とR5の間のWANの詳細は重要ではない。誰もが同意できる基本的なトポロだけです。
私が理解したのは、100MBファイルを送信すると、172.16.1.0/24のR1インターフェイスは約9Mbpsを表示し、クライアントが安定したUDPマルチキャストを介して受信した場合、172.16.5.0/24のR5インターフェイスは約4.2Mbpsです。信頼できるということは、マルチキャストサービスに一種のパケットシーケンスが組み込まれており、クライアントアプリケーションがサーバーから再送信を要求する方法を知っているという意味で受け入れられます。
診断
この説明が正しい場合は、次の理由が考えられます。
- あなたの質問で主張したように、R1以降のどこかにリンク輻輳があります。
- パス(R1およびR5を含む)内のすべてのRxデバイスのパフォーマンス制限(たとえば、マルチキャストレプリケーションのパフォーマンス制限に達する)
- 10M半二重イーサネットのスループット制限に直面しました。
理由1または2は、以下を使用して明らかにすることができます。mtr
。しかし、理由3についてはさらに議論する価値があります。 10M/halfリンクは最大一方向移動する。 10M/half リンクで双方向トラフィックを送信する場合、通常はイーサネットにより 10Mbps 未満が表示されます。CSMA/CDニュース。半二重リンクでは、イーサネットは同時に送受信できません。ステーションがそうしようとすると、フレームがクラッシュし、両方のステーションがランダムな時間にわたって再送信が遅れます。
私は生計のためにネットワークをテストします。 10M / halfリンクの効果的な双方向スループットをテストするときは、通常3Mbpsから4Mbpsの間を確認してください。上で共有した数字は非常に似ているようです。非難するのに十分な証拠はありませんが、10M / halfリンクが問題の場合、特にR5とS5の間のリンクが10M / halfの場合は驚くことはありません。
答え2
各コンピュータにリモートでアクセスでき、特権アカウントがあると仮定すると、このiftop
ユーティリティを試すことができます。
これは、iftop -f udp -F "port <port> and host <previous hop>"
特定のポートの特定のホストにすべてのUDPトラフィックを提供する必要があります。フィルタの設定の詳細については、マニュアルページを参照してください。 (また、注:ネットワークにアクセスできると仮定すると、以下のようにネットワーク/ネットマスクを指定してネットワーク全体を監視することもできます。-F 10.0.0.0/255.0.0.0
)
iftopをインストールしたくない、またはインストールできないがiptablesにアクセスできる場合は、トラフィックを記録してそれを使用して帯域幅を計算することもできます。
まず、アプリケーションのチェーンを設定し、すべての着信/発信トラフィックを転送します。
iptables -N $CHAIN && iptables -A FORWARD
次に、別々のアップロード/ダウンロードルールを設定します。
# Downloads
iptables -A FORWARD -d $PREVIOUSHOP -j $CHAIN
# Town A Uploads
iptables -A FORWARD -s $PREVIOUSHOP -j $CHAIN`
次に、各チェーンのトラフィック使用量を確認してください。iptables -L -v -n