IPv6中流标签的应用
卿卉
武汉理工大学信息工程学院,湖北武汉 (430070)
E-mail:xinhuiqing0615@163.com
摘 要:IPv6对下一代IP网络服务质量提供很好的支持。IPv6中引入流的概念,并在报头中定义了一个流标签的字段用于识别数据流身份,实现对服务质量的支持。文章介绍了IPv6流和流标签的概念和基本功能,给出了一个IPv6流标签结构的综合设计方案。 关键词:IPv6;流标签;服务质量 中图分类号:TP393
1. 引 言
随着Internet的不断发展,原有IPv4的许多不足逐渐暴露出来,其中最严重、也是最迫切需要解决的就是IPv4地址空间耗尽和骨干路由器中路由表过于庞大的问题,这两个问题直接导致了下一代因特网协议IPv6的诞生。IPv6除能很好地解决上述问题外。与IPv4相比,其还具有地址空间编址管理、分组处理效率、对移动性、安全性和QoS的支持等诸多明显的优势。随着Internet的发展,IPv6终将取代IPv4,这一点已经在业界达成共识。 在IPv6中,一个显著的优点是提出了流(flow)的概念。流的功能可以为人们提供基于QoS的服务,这与IPv4中“尽力传送”的服务概念是不同的,而且明显优于后者。虽然流标签是IPv6专门为支持服务质量而设置,但是关于流标签的用法和语义,在IPv6规范中并没有清楚的定义。关于如何利用流标签在IPv6网络环境中更好地支持服务质量目前还处于研究阶段,因而也成为限制IPv6广泛部署的一个重要方面。流标签对服务质量的支持基本上可以划分为两类,一类是在综合服务(Integrated Services)体系结构中,常常结合资源预留(RSVP)协议通过协商和配置实现流的QoS保证,主要方法是先使用资源预留协议建立预留,然后在流标签中保存建立好的状态。另一类是区分服务(Differentiated Services)中使用流标签来划分流状态,通过设计20位中每一位以及位的组合代表的含义划分流所属的类型。还有一种综合的方案是考虑提供服务质量的各种可能方式,详细设计流标签的格式,尽可能完备地包括这些方面。
2. 流和流标签
2.1 流和流标签的定义
IPv6规范对流(Flow)的定义是:流是从特定源节点发往特定目的节点的包序列,而且源节点希望中间路由器能够对该包序列进行特殊的处理[1]。
网络中的端节点与中间节点使用源地址和流标签来唯地标识一个流,属于同一个流的所有包的处理方式都应该相同.根据流的目的是单个站还是一组站,可以分为单点传送流和多点传送流,但是流的概念始终是建立在无连接网络协议的基础上。
对于流标签(Flow Label) ,IPv6规范中给出的定义是:源节点可以使用IPv6报头中20位的流标签标记信息包的顺序,源节点请求IPv6路由器对这些信息包进行特殊的处理,例如非默认的服务质量和“实时”忆务。IPv6路由器在接受到一个信息包时,通过检查它的流标签,就可以判断它属于哪个流,然后就可以知道信息包的QoS需求。
- 1 -
http://www.paper.edu.cn
2.2 流标签属性和功能
就流标签的使用类型或它的重要性来说,流标签应该是一个二价属性:端到端和逐跳。IPv6规范给出的流标签定义只确定了流标签的逐跳(per hop)属性。规范中假设流标签具有能够帮助路由器操作系统处理包的功能,无论是在包的转发方面,还是在QoS处理方面。
关于流标签端到端属性目前存有争议。例如,有的观点认为流标签应该作为一种诉制被目的端节点使用来识别一个流。但是这样的功能可以通过使用IPv6源地址和目的地址对以及主机到主机连接标识符来实现,所以流标签就只是上述机制的附加产品或替换品。然而如果路由器的包处理性能比端节点的包处理性能更为关键的话.强调流标签逐跳属性的重要性来使用流标签就具有更大的意义。如果在路由器之间以及端节点之间存在某种协商机制,那么就没有必要讨论是使用流标签的端到端属性还是逐跳属性。
在实际的网络建设中,如何有效的使用流标签来提供传输数据的Qos是一个复杂的问题,IETF没有明确的规定如何的使用流标签的方法,综合目前IETF以及相关的一些研究,流和流标签的功能要求应包括以下几点:
(1)一个流要由一个源地址和一个非零流标号的组合来唯一标识。 (2)不属于一个流的分组,其流标号字段值为0. (3)流标号由流的源节点负责分配.
(4)流标号必须在1 到FFFFF(hex)之间随机选择,便于路由器在查表时使用hash 关键字. (5)属于同一流的所有分组必须具有相同的源地址、目的地址和流标号.
(6)如果流中有某个分组包含逐跳选项,则流中所有其余分组都必须具有相同的逐跳选项内容(不包括逐跳选项的下一个头标).
(7)如果流中有某个分组包含路由选项,则流中所有其余分组都必须在扩展头标中包含相同的内容,并且具有相同的路由选项(不包括路由选项的下一个头标). (8)流状态建立机制中必须明确流处理状态的最大生命期.
(9)节点必须保证不使用先前已在使用、现仍在生命期之内的流标号.
关于中间路由器是否可修改流标签值的两种观点各有利弊。流标签不可变的最大优点是实现起来简单,而可变的最大优点则是其提供的灵活性,特别是当流标签具有逐跳意义的时候。但是要想使可变的流标签能够工作,必须有特定协议的支持,或者在邻居节点之问进行协商,或者对这些路由器进行特定的配置。这就需要在邻居路由器之间使用协商机制,或者是通过对路由器管理和配置完成安装过程,以确保数据包经过的路由器都明了流标签的值以及对流标签所做的变化。流标签的逐跳意义会因为这种可变属性而增强.但是对IPv6功能要求的1、3、4、9点必须放松或去掉[5]。
3. IPv6中流标签的应用
3.1 IPv6网络中的流
RFC2460将IPv6头20bits的字段定义为标签字段如图1所示,但其格式和用法没有具体规定,只提出一些语义方面的基本要求。途经的路由根据流的标签来识别特定的流,做出相应的处理。此定义中的关键是如何将源节点期望的特殊处理信息有效告知路由器。协议中只建议性提出了两种可能的方法,一是设计专门的控制协议(如RSVP),二是由分组自身携带这些信息(如使用逐跳选项)。流标签使用目的就是使源点用来标识一个流,使网络在源和目的端之间建立一条有特殊属性需求的伪连接[2]。例如,从某源主机的一个进程到目的主机
- 2 -
http://www.paper.edu.cn
的一个进程的分组流有很多严格的延迟要求与带宽要求。这时可以预先创建流并分配一个流标签。当一个流标签字段为非零的分组出现时,路由器在其内部表中找出它所需的特殊需求并做相应处理。
Version(4) Cos(8) Flow Label(20)
Length(16) Hop Limit(8) Next Header(8) Source Addr(128) Dest Addr(128)
图1IPv6基本报头格式
3.2 标签字段应用机制
对于IPv6流标签的利用最为关键的如何定义出标签的使用的标准格式,只有一个标准的格式才能够使得IPv6的网络数据成为真正意义上的流,因为这涉及到了网络的端用户,网络设备提供商以及网络服务提供商等多方面的一个标准的统一。就目前而言IETF下的网络QoS工作组结合了各种网络QoS的模型对IPv6标签字段的标准使用格式定义都做出了许多探讨,提出了各种方案建议,但仍处在讨论当中,并无一个定论。
首先是Alex Conta[3]开创性的定义了IPv6流标签的使用格式,Conta结合了各种网络应用的类型提出多种使用方法,但是虽然Conta的各种方案的针对性比较强,在各自解决问题的领域具有不同的优点,可是所解决的问题单一,可扩展性和通用性不强。
Rahul Banerjee[4]提出了标签混合应用的方法,它包含了Conta方法中的多种方案,并进行了扩展,使标签的使用效率更高。具体定义如表1所示:
表1 混合标签分类
前三个比特
000 001 010 011 100 101 110 111
缺省
定义
使用随机数定义流标号
用跳到跳扩展报头中的值替代流标号 每一跳行为(PHB)标识号
在流标号中使用带有端口号和协议的格式 一种新的结构定义(MI) 保留 保留
通过对标签增加识别比特位,使流标签的20位比特可以进行混合应用。在混合模式中,最重要的是MI标签。类型为“101”的MI标签是由Banerjee提出的一种新标签。MI标签能携带更多的各种通信流的QoS特征信息,来适合各种不同的应用使得流能够得到更号的服务质量。
3.3 MI标签的使用
这是一个定义IPv6 报头中20 比特流标号的改进方案。通过对流标号中比特位的最佳使用,使之包含任何应用所要求的IPv6流标号的QoS 参数。常用的QoS 参数包括:带宽、延
- 3 -
http://www.paper.edu.cn
迟或滞后、抖动、数据包丢失、缓冲器需要。因为任何应用都希望包丢失和抖动的值最小,所以这两个参数不需要在流标号域中定义。不过,如果需要,跳到跳报头的EH 空间可以被用来指定这些参数。这样,在流标号中保存的比特就可以用来满足更多的目的。流标号中包含的QoS 参数为:带宽(以多个K bps 表示)、延迟(以十亿分之一秒表示)、缓冲器需要(以字节表示)。剩下的17 个比特位可以进行最优化设置以便达到最大使用信息。 硬实时和软实时
在剩下的17个比特的第一位被设置成了软/硬实时的区分位,0代表软实时,1代表硬实时,软实时应用也称为实时容忍(Real Time Tolerant, RTT)应用,要求有普通的带宽,允许任何数据包存在端到端的延迟。硬实时应用也称为时间非容忍(Real Time Intolerant,RTI)应用,要求最小的滞后和抖动,流标号种指定的最小或最大值必须完全满足这些服务类型的要求。
流标号中剩下的16比特设置如表2所示:
表2 剩余16比特设置
带宽/6bit
带宽值的设置
缓冲需求/5bit 延迟/5bit
带宽值的6比特中,第一位为0时表示最小带宽要求,为1时代表最大带宽要求,剩余5比特代表带宽的取值。 缓冲值的设置
缓冲需求指定5比特来设置缓冲值的大小,这5个比特的每个值对应一个预定义的缓冲值大小。 延迟的设置
最后5比特对应通信流可容忍的延迟标准值。这5个比特的每个值对应一个预定义的延迟。
4. 结论
在新一代网络中,流标签字段的应用是崭新的课题,仍然处于研究和不断发展中。合理的IPv6流标签结构设计方案需要有效的实现手段才能真正发挥作用。此外,安全问题也是非常重要的。因此关于IPv6流标签的定义与合理应用,仍有大量的工作要做。
- 4 -
http://www.paper.edu.cn
参考文献
[1] S. Deering, R. Hinden. Internet Protocol, Version 6 (IPv6) Specification[S]. RFC 2460, 1998.
[2]方钟亮.IPv6流标签在组播管理系统中的应用研究.南京:东南大学,2005年东南大学硕士学位论文 [3] A. Conta,B.Carpenter, A proposal for the IPv6 Flow Label Specification, version 2[S],IETF, draft-conta-ipv6-flow-label-02.txt, July. 2001
[4] Rahul Banerjee,A Modified Specification for use of the IPv6 Flow Label for Providing Efficient Quality of Service Using Hybrid Approach. IETF, draft-banerjee-flowlabel-ipv6-qos-03.txt,April.2002
[5] 李茹.王春峰.黄晓璐.叶新铭.IPv6流标签提供的服务质量支持.计算机科学Vol.31,NO.4,2004
The Application of IPv6 Flow Label
Qing Hui
School of information engineering, WUT, Wuhan(430070)
Abstract
IPv6 provide the support for the Qos of the next generation Network. This paper introduces the concept of flow in IPv6 and designs a flow label field which can recognize data flow and can realize the support for Qos within the main header of IPv6.The concept and function of flow and flow label are discussed and Integrated design plan for the IPv6 flow label structure is analyzed. Keywords: IPv6, flow label, Qos
- 5 -
因篇幅问题不能全部显示,请点此查看更多更全内容