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