2016-12-02 4 views
-1

IPヘッダーのToSフィールドを使用してTCPトラフィックの優先順位を設定しようとしています。 ToSフィールドを0x10(Minimize-Delay)に設定してiperf経由で1GBデータを送信して、インターフェース(イーサネット)を飽和状態にしています。 次に、既定のToS(0)で別のTCPクライアントを開始します。ToSフィールドを使用してTCPトラフィックに優先順位を付けることができないのはなぜですか?

期待: iperfがデータの送信を完了するまで、TCPクライアントはデータを送信しないでください。

結果: iperfが優先度の高いパケットを送信している場合でも、クライアントからのデータが送信されます。

また、別の2つのクライアントを作成し、iptablesを使用してそれぞれのクライアントに0x10と0x08 ToSを割り当てることで、同じシナリオを作成しようとしました。 私が使用: iptablesの-A PREROUTING -p -t TCPをマングル--sport 5000 -j TOS --set-TOSは、最小化、遅延

私はまだ他の上にあるクライアントの優先順位を設定することはできませんよ。 私はToSでマークされたパケットをwiresharkで見ることができます。

私はiptablesのバージョン1.4.21

でのUbuntu(14.04)を使用していますと、誰かが親切に私は問題の解決に役立つことはできますか?

おかげ VARUN

答えて

2

TL; DR

単にパケットでのToSまたはDSCPマーキングを設定するには、何もしません。実際には、さまざまなマーキングを使ってさまざまなことを行うようにデバイスを設定する必要があります。キューに含める場合は、キューを構成し、異なるキューに異なるマーキングを割り当てる必要があります。

より完全な説明あなたはQoSを使用するために欠けている

。 QoSは大きな課題ですが、私はいくつか説明しようとします。 LinuxでQoSを使用するためのガイドはTraffic Control HOWTOにあります。

実際にDSCP(Differentiated Services Code Point)に取って代わったToSは、さまざまなパケットを異なる時点で区別するために単純にパケットにマーキングしています。 ToSフィールドは、元のIPv4パケット仕様の一部であったが、デバイスがそのフィールドを使用または尊重しなければならないことを標準で規定しているものは何もない。

QoSには、パケットを差別化(マーキング)し、マーキングに基づいて何かを行うことが含まれます。マーキングを行うことは、シェーピング、ポリシング、キューイング(プライオリティキューイングを含む)などです。

ハードウェアインターフェイスには、パケットマーキングに関係なく、FIFOキューがあり、これはデフォルトでキューのみです。ハードウェアはパケットヘッダーやマーキングを完全に認識しません。

実際にマーキングを使用することは、通常、レイヤ3ネットワークデバイス、ルータ。たとえば、ルーターインターフェイスに異なるソフトウェアキューを構成し、異なるマーキングのパケットを異なるキューに割り当てることができます。キューは比較的小さく、実際のバッファとは異なります。優先キューは通常キューの前に配信されます。キューは、定義するまで存在しません。また、ルールを構成しない限り、パケットは異なるキューに割り当てられません。BE(ベストエフォート、ToS 0)パケットを優先キューに割り当て、EF(高速転送)パケットを低優先キューに割り当てることができます。

キューがいっぱいになると、そのキュー宛ての新しいパケットがドロップされます(テールドロップと呼ばれます)。テールドロップは、キューを使用しているすべてのTCPフローを同期化(グローバル同期)させ、同期的にバックオフしてランプアップしたり、キューを枯渇させたりフラッディングしたりする可能性があるため、TCPにとって問題となります。これを防ぐ方法があります。 RED(ランダム早期検出)。 REDは実際にはランダムなパケットをキューにドロップします。これは、キューを使用してさまざまなTCPフローを強制的に強制して、別のスケジュールでバックアップおよびランプアップさせることです。

多くのネットワークスイッチは、1つまたは複数のインターフェイスのマーキングを信頼するようにスイッチを設定していない限り、自動的にBE(Best Effort、ToS 0)をスイッチに送信します。ルーターは通常、マーキングを信頼しますが、そうするように構成しない限りマーキングは何も行いません。

QoSはインターネット上では機能しません。ネットワーク内でのみ機能します。ネットワーク全体に一貫して実装されている包括的なQoSポリシーセットが必要です。 ISPがのQoSマークとポリシーのうちの一部をと尊重することは有料で交渉することができるかもしれませんが、それはISPまでしか行きません。あなたのトラフィックがネットワークを離れるとき、またはISPと契約していれば、QoSマーキングとポリシーは完全に無視され、パケットはおそらくBEに設定されます。

関連する問題