質問: アプリケーションごとのネットワークの優先順位について 現在、可能な限りリアルタイムな通信が必要とされるアプリケーション(デスクトップ)の開発を考えています。複数のプログラムで回線を取り合いする場合についての挙動について以下の疑問が出てきたので質問します。(UDPではなくTCPの利用が前提です) 1) 回線の帯域が不足すると、複数のアプリケーションが帯域を取り合いすることになると思います。この場合、Windowsでは全てのアプリケーションが均等に制限を受けるのでしょうか?それとも先に通信していたものが優先されたりするのでしょうか?またMacやLinuxの挙動はどうでしょうか? 2) 上記と関連質問ですが、データのダウンロードは基本的に最大速度でダウンロードを行うと思いますが、それによってリアルタイム通信を行っているアプリケーションが遅延等の影響を受けるということはどの程度考えられるでしょうか? 3) Windowsにはプロセスの優先順位というものがありますが、アプリケーションごとに通信の優先順位について設定できたりはしないのでしょうか?(優先順位の設定で解決できるならベストです)これもMacやLinux等ではどうでしょうか?
回答: TCPの場合パケットごとに重みを付けることによって帯域制御をかけることができます。 アプリケーションにおいて優先度を設定する事でそれぞれの帯域幅を決めて通信速度が変化します。 重みの付け方によっては遅延を招くこともありますし、速度を上げることも可能です。 TCP通信での制御なのでOSでの違いはそれほど大きくありません。