TCPの輻輳制御アルゴリズムは、利用可能な帯域幅を個々のTCPフロー間で公平に分配するようです。
ルーターのフローごとではなく、ホストごとに公平な帯域幅共有を有効にする(より正確に強制する)方法はありますか?複数の同時TCPフロー(一部のダウンロードマネージャーとほとんどのP2Pクライアントが行う方法)を使用して、ユーザーが不均衡な帯域幅共有を取得する(簡単な)方法はありません。
現在、DD-WRTルーターを実行して住宅用DSL回線を共有していますが、現在、複数の同時接続を使用して(偶然または悪意を持って)帯域幅の大部分を占有する可能性があり、これはVoIP会話に悪影響を及ぼします。QoS設定を少し試しましたが、IPごとに公平な帯域幅共有を有効にする方法がわかりません(ほとんどのフローはHTTPであるため、サービスごとはオプションではありません)。
更新: すべてのフローのTCPまたはTCPのような輻輳制御動作を想定しています。そうしないと、着信トラフィックを制御する方法が実際にありません。
現在、輻輳制御はフローごとであり、複数のフローを持つ単一のユーザーが各ユーザーのフローを抑制し、最終的にnフローの合計帯域幅の1 / n倍に安定します。
ユーザーごとにインバウンド「パケットカウンター」があり、ランダムではなくユーザーごとにパケットがドロップされるように、インバウンドキューとパケットドロップアルゴリズムを変更することはできませんか?そうすれば、一部のユーザーだけが実際に輻輳を引き起こしている場合、すべてのユーザーのフローではなく、ユーザーのフローのみがスロットルバックする必要があります。
1
基本的には機能しません。ISPがどのパケットを送信するかを制御しようとしています。パケットを取得すると、もう手遅れです。帯域幅を取り消せないほど消費しています。
—
デビッドシュワルツ
しかし、私はいつでもそのパケットをドロップすることができ、それによってTCPにスロットルを強制的に戻しますか?問題のフローが輻輳制御に関してTCPまたはTCPに似ていることを望んでいます。
—
lxgr
できますが、データを再度送信するように強制したため、ひどく非効率的です。ISP側のキューが深くなり、フィードバックが遅くなります。そして、もちろん、それはスロットルバックするフローでのみ機能します。(QoSは、ISPがそれを尊重するか、ローカルのWiFi / LANが過負荷になっていない限り、役に立ちません。)
—
デイビッドシュワルツ
しかし、TCP自体が輻輳制御をどのように処理するのではありませんか?パケットはドロップされ、送信者はスロットルバックします。パケットを「公平に」ドロップする必要があります。つまり、1人のユーザーが公平なシェアを超えて消費した場合、(または主に)パケットのみがドロップされ、フローのみが抑制されます。もちろん、それは各ユーザーの現在のパケットレートを測定し、それに応じてドロップすることを意味します。それは可能ですか?
—
lxgr
はい。ただし、気になる高価なリンクを通過した直後にパケットはドロップされません。トラバースする前にドロップされます。重要なのは、パケットをドロップして費用の発生を防ぐことであり、既に「支払済み」であるにもかかわらずパケットをドロップすることではありません。
—
デビッドシュワルツ