了解Internet协议标头中的区分服务(TOS)字段

时间:2020-03-21 11:47:27  来源:igfitidea点击:

IP是Internet的主要骨干协议(也是TCP/IP协议套件内部的主要协议之一)。
换句话说,无论我们使用的是TCP,UDP还是ICMP,实际的数据都将使用IP协议进行传输。
IP不提供任何交付保证,它是完全无连接的。
因此,层中IP之上的协议负责提供正确的无错传输(即:TCP)。

与其他协议类似,IP除了承载的数据外,还具有添加到每个消息(即每个ip数据报)的一些详细信息和控制信息。
该信息表明如何解释和操作数据报。
这通常称为协议标头。
IP协议标头如下所示。

上图显示了IP标头中的TOS字段(八位字节)及其所讨论的组件。

附带说明:请记住以下事实:TCP中没有指定优先级的机制。
实际上,TCP利用IP报头(我们在上面看到的IP优先级字段)提供的功能来设置特定连接的优先级和重要性。
有人说,如果正在进行的TCP连接中的IP数据包的优先级或者重要性发生更改,则目的地会将其视为错误,并且大多数情况下会丢弃该数据包。
简而言之,必须重新建立TCP连接。
因此,TCP将不接受已建立连接的优先级的任何更改。

TOS是8位字段,在RFC 2474和3168之后,它现在分为两个单独的组件。
6位的DS(区分服务字段)和2位的显式拥塞通知(ECN)。
6bit DS字段用于DSCP(差分服务代码点)。

实际上,我应该在RFC 2474之后重画上图,并将其命名为DS字段(如下图所示)。

DSCP有6位。
这意味着可以使用这些位构造64(2 ^ 6)个不同的可能代码。
这些可能的DSCP传达不同的含义,基于这些含义,中间联网设备可以采取适当的措施。
这些可能的值中有很多已经被标准化了。
有关这些标准化DSCP值的详细信息,可以从IANA中找到。

DSCP的默认值为0 0 0 0 0 0(6位)。
实际上,先前用于IP优先级的三个位(0,1,2)仍用于“优先级”的相同目的。
实际上,这提供了一定程度的向后兼容性。
支持“区分服务”的网络设备实际上将根据6个DSCP位来选择行为。
它(选定的行为)称为PHB。
PHB代表Per Hop行为。

现在,DSCP中使用3 IP优先级位对通信进行分类。
实际上,它称为类选择器位。
在继续进行之前,让我们先了解一下DSCP术语中使用的几个关键字。

简短形式全写
cs类选择器 Class Selector
af保证转发 Assured Forwarding
EF迅速转发 Expediated Forwarding

几分钟后,我提到DSCP仍与旧的TOS字段保持一定的向后兼容性。
由于IP优先级位现在用作“类选择器”,因此可以实现这种向后兼容性。

行为到DSCP代码的映射可以在支持差异服务的网络设备上完成。

每跳行为仅是对数据包的一种处理。
处理的类型实际上是由网络设备通过查看6位DSCP字段来选择的。
请记住,选择单跳行为时不会考虑第6位和第7位。

网络设备可以配置特定处理(PHB)到DSCP代码的映射。

现在,设想一种网络设备接收到带有无法识别的DSCP代码的数据包的情况。
在这种情况下,理想的行为应该是网络设备不要篡改和更改DSCP,它应该像使用默认DSCP(000000)的其他数据包一样转发它。

同样,网络小包很可能可以通过具有不同类型设备的多个网络域传播。
中间网络域可以实际上将其域中的DSCP更改为仅在该域中具有特殊处理。

如前所述,DSCP术语中的IP优先级位用作类选择器。
类选择器代码点(DSCP)始终采用以下格式。

X X X 0 0 0

请记住,DSCP为6位。
IP优先级的前3位由上面的X X X表示。
由于IP优先级字段为3位(三个X),因此可以有2 ^ 3 = 8个可能的类选择器DSCP(在这8个可能的值中,最后3位始终为0)。

DSCP类选择器DSCP二进制
cs00 0 0 0 0 0(请记住这是默认值)
cs10 0 1 0 0 0
CS20 1 0 0 0 0
CS30 1 1 0 0 0
CS41 0 0 0 0 0
CS51 0 1 0 0 0
CS61 1 0 0 0 0
CS71 1 1 0 0 0

请记住,与其他类相比,具有更高类值的数据包会得到更好的处理。
这意味着,与CS4类中的数据包相比,CS5类中的数据包将得到更好的处理。
注意:CS6和CS7保留用于网络协议和控制相关的内容。
这意味着CS5类别值是最高的类别值。

让我们将CS1到CS4进行进一步的讨论(为什么不选择CS0和CS5?
这是因为CS0是默认的,并且那里没有更多的分类,并且CS5是最高的类别,所以我们将分别进行讨论。

通过为每个类分配一个称为“ Drop Precedence”的东西,可以进一步对这些类进行分类。
可以为这些类中的每一个分配低,高和中丢弃优先级。
这意味着每个类别中可以有3种可能的类别(即:CS1至CS4)。
为了更清楚一点,CS1中的类别1将具有低丢弃优先级,CS1中的类别2将具有中丢弃优先级,而CS1中的类别3将具有丢弃优先级高。

让我们对这些丢弃优先级值进行编号,如下所示。

删除优先键数字
1
2
3

实际上,每个类别中的这三个类别都称为“保证转发”(Assured Forwarding,AF)。

AF11表示它属于CS1类和类别1(即:低落优先级。
低由1表示)

AF12表示它属于CS1类和类别2(即:中型丢弃优先级。
请参见上文,中型由2表示)

AF13表示它属于CS1类,类别3(即:高下降优先级。
高由3表示)

同样.... AF21,AF22,AF23,AF31,AF32 .... AF41,AF42,AF43

请记住,在网络问题期间,具有较高丢弃优先级值的数据包更有可能被丢弃。
因此,基本上,具有AF23的DSCP值的数据包比具有AF21的DSCP的数据包更容易被丢弃。
AF DSCP的6位二进制映射如下。

DSCP二进制
AF 110 0 1 0 1 0 - Low Drop Precedence/ CS1
AF 120 0 1 0 1 0 - Medium Drop Precedence/ CS1
AF 130 0 1 1 1 0 - High Drop Precedence/ CS1
AF 210 1 0 0 1 0 - Low Drop Precedence / CS2
AF 220 1 0 1 0 0 - Medium Drop Precedence/CS2
AF 230 1 0 1 1 0 - High Drop Precedence/CS2
AF 310 1 1 0 1 0 - Low Drop Precedence/CS3
AF 320 1 1 1 0 0 - Medium Drop Precedence/CS3
AF 330 1 1 1 1 0 - High Drop Precedence/CS3
AF 411 0 0 0 1 0 - Low Drop Precedence/CS4
AF 421 0 0 1 0 0 - Medium Drop Precedence/CS4
AF 431 0 0 1 1 0 - High Drop Precedence/CS4

我提到过我们将在以后讨论CS5.
这是因为CS5是最高级别,实际上用于最关键的流量。
CS5完全没有丢弃优先级。

此类通常称为快速转发(EF)。
语音和视频流量等实时通信服务使用EF PHB(单跳行为快速转发)。

与所有其他类别的类别相比,EF的优先级最高。
以下是二进制概念。

DSCP二进制
EF1 0 1 1 1 0(请注意,来自IP优先级的前三位是1 0 1.因此它是CS5,如前所述)