Java/TCP流量分类

5

我注意到在Java和其他语言中都有一个类似于Socket选项的功能。

setTrafficClass(int tc) 

我知道我正在使用的应用程序有一个流量类别是24,但是尽管搜索了一下,我无法找到这些类别对应的列表,也没有有效的列表。

请给我一些启示。

md_5

3个回答

4
根据 Socket.setTrafficClass 规范,我们可以看到:
对于 Internet Protocol v4,该值由一个整数组成,其中最低有效的 8 位表示套接字发送的 IP 数据包中 TOS 字节的值。RFC 1349 将 TOS 值定义如下:
- IPTOS_LOWCOST0x02) - IPTOS_RELIABILITY0x04) - IPTOS_THROUGHPUT0x08) - IPTOS_LOWDELAY0x10
最后一个低位始终被忽略,因为它对应于 MBZ(必须为零)位。

240x18,即 0x10 | 0x08,对应于设置了 IPTOS_THROUGHPUTIPTOS_LOWDELAY

正如您所看到的,TOS 只是一个提示;它请求高吞吐量,低延迟的路由...这可能得到服务,也可能不会得到服务!

您可以在 RFC 1349相关维基百科文章 上了解更多关于服务类型的信息。


2
Javadocs 中有一些详细信息。本质上,您正在设置数据包的 TOS(服务类型)头。路由网络可能会选择将其用作处理数据包的建议(或者完全忽略它)。许多网络实际上并不会对此字段进行任何有意义的操作,因此我不会依赖它的行为。

谢谢,正如你指出的那样,他们在UDP部分记录了它。 - md_5
@md_5他没有指出这一点,而且他的链接实际上指向了TCP部分。 - user207421

2
交通类别最终是你和最近的路由器之间的事情。该字段经历了几次变化,而且在IPv4和IPv6之间也有所不同。IPv4的第一个定义在RFC 791-5中给出;这在RFC 1349中进行了修订,并在RFC 2474中完全重新定义为“区分服务(Differentiated Services)”。自从我在2003年左右为我的书研究它以来,整个业务很可能已经再次修订。有关IPTOS_*值的Javadoc中的内容是指RFC 1349,而且当它编写时已经过时了数年。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接