Javaやおそらく他の言語には、次のようなSocketオプションがあることに気づきました
setTrafficClass(int tc)
使用しているアプリケーションのトラフィック クラスが 24 であることはわかっていますが、グーグルで検索しても、これらのクラスが対応するリストも、有効なクラスのリストも見つかりません。
教えてください。md_5
の仕様にSocket.setTrafficClass
よると、次のことがわかります。
インターネット プロトコル v4 の場合、値は で構成され
integer
、その最下位 8 ビットは、ソケットによって送信された IP パケットの TOS オクテットの値を表します。RFC 1349 では、TOS 値を次のように定義しています。
IPTOS_LOWCOST
(0x02
)IPTOS_RELIABILITY
(0x04
)IPTOS_THROUGHPUT
(0x08
)IPTOS_LOWDELAY
(0x10
)最後の下位ビットは、MBZ (ゼロでなければならない) ビットに対応するため、常に無視されます。
24
は0x18
ie0x10 | 0x08
に対応しIPTOS_THROUGHPUT
、IPTOS_LOWDELAY
設定されています。
ご覧のとおり、TOS はヒントとしてのみ機能します。高スループットで低遅延のルーティングを要求します... サービスが提供される場合と提供されない場合があります。
RFC 1349のサービスの種類の 詳細と、関連するウィキペディアの記事をここで読むことができます。
トラフィック クラスは、最終的には、ユーザーと最寄りのルーターの問題です。この分野は、いくつかの突然変異を経てきました。また、IPv4 と IPv6 の間でも異なります。IPv4 の最初の定義は RFC 791-5 で与えられました。これはRFC 1349で改訂され、 RFC 2474で「Differentiated Services」として完全に再定義されました。2003 年くらいに本のために調査して以来、ビジネス全体が再び改訂された可能性があります。IPv6 については、RFC 2460 を参照してください。IPTOS_*
値に関する Javadoc の内容は RFC 1349 を参照しており、書かれた時点ですでに数年古くなっています。