IP QoS 技术分析
唐建明、程伟
2003/07/15
IP业务多样化和快速增长已成为一个不争的事实。国内电信运营商利用自建的IP骨干网提供了多种增值服务向客户推出多种基于IP的新业务;银行则纷纷数据大集中,将银行的生产业务、管理业务和多媒体应用都整合在IP骨干网上。目前的IP技术为这种多网合一的应用提供了可能,但新的问题又产生了,原来各种业务各行其道,安全性和带宽技术和管理相对要容易,多种业务合在一起,如何保证原有业务的安全可靠的运行呢?
QoS的定义
网上应用有较为鲜明的特点:如视频和话音业务虽然对传输时延和时延抖动都十分敏感,但对数据的丢失却有一定的忍耐度;相反,一般的数据业务虽然对时延和时延抖动都不十分在意,但对数据本身的丢失和差错却十分敏感。因此,我们需要根据各自业务的特点采用必要的技术手段来保证业务的安全可靠运行,使各种业务在逻辑上依然各行其道,在网络带宽资源紧张情况下,确保关键业务的优先,但也不要使非关键性应用无法得到响应,在网络资源宽松时,使需要占用高带宽的应用能尽量占用带宽。这就是网络的QoS(服务质量)。IP QoS是指IP的服务质量,也是指IP数据流通过网络时的性能。它的目的就是向用户提供端到端的服务质量保证。它有一套度量指标,包括业务可用性、延迟、可变延迟、吞吐量和丢包率。
QoS可以用一系列可度量的参数来描述
· 业务可用性:端到端之间业务连接的可靠性;
· 延迟:也称为时延(Latency),指两个参照点之间发送和接收数据包的时间间隔;
· 可变延迟:也称为抖动(Jitter),指在同一条路由上发送的一组数据流中数据包之间的时间差异;
· 吞吐量:网络中发送数据包的速率,可用平均速率或峰值速率表示;
· 丢包率:在网络中传输数据包时丢弃数据包的最高比率。数据包丢失一般是由网络拥塞或线路质量差所引起的。
由于IP QoS在可预测、可测量性方面比传统IP有了很大的提高,基本解决了商业用户的基本需求,因而势必可以吸引更多的商业用户,形成一个新的利润增长点,带来可增值的业务种类。IP QoS已成为网络基础研究的一个重点,也是未来IP网络发展的关键技术,因为IP QoS是IP网络增值服务内容、提高服务质量的关键技术,也是网络运营商竞争的一个焦点。
引起网络拥塞的原因分析
局域网与广域网接合部吞吐容量的巨大落差 今天局域网所普遍采用的局域以太网技术有10M、100M、1000M和全、半双工之分,广域网采用SDH、DDN、帧中继、ISDN、或卫星等传输技术,传输管道带宽通常在2M以下。在局域网与广域网接合部上吞吐量的如此巨大差异,使网络瓶颈自然形成。
信息源发放数据的随机性
另一个令阻塞产生的原因,是信息源信息量和发放时间的不可预见性。
信息源经常不关心(顾及)网络是否有资源来处理正在被发送的数据,而是直接发送。当信息源都是这样随意发送数据时,网络拥塞的可能性就大大增加。
TCP的突发行为
为了使每一项传输任务能尽早完成,TCP协议具有一种与生俱来的控流特性叫“慢起”(Slow Start)。“慢起”要求每对TCP会话中接收一方在确认封包(Acknowledgement Packet)中向发送方广播一个比上次交易(Transaction)更大尺寸的窗口,使发送方在下一轮的发送中不需等待确认便发送更大量的信息。这种机制的原意是要提高传输效率以便任务尽早完成。但是,在带宽供求失衡时,这种机制让发送一方不顾后果地向对方发送越来越大量的数据直至数据被堵塞或干脆掉弃为止,又从头再来。
路由器就像交叉路口上的交通灯一样,不断地指挥着南来北往的车流
问题是,当从局域网发向广域网的信息流总量超过广域网传输管道容量时,路由器只能让来不及转发的信息包在路由器上排长龙。除了排队需要时间,路由器花在管理所有大大小小队列上的精力也不可忽视。当路由器里队列过长,路由器上不同的信息包掉弃机制就会起动,大量的信息包就会被抛弃,导致严重的TCP重发。
除了上述原因之外,网络中流量的突发事件也加重了问题的严重性。因为,没有人,可以预测出,什么时候网络上会出现一个很大的电子邮件。
TCP慢启动的原理
QoS的实质就是针对拥塞提供管理的技术。QoS做得好则网络拥塞现象少。TCP/IP本身提供了自己的QoS技术,他具有四种TCP拥塞控制算法:慢启动、拥塞避免、快速重传和快速恢复。TCP最初是为支持两种应用而设计:FTP和Telnet,TCP/IP使用滑动窗口来控制流量。在设计之初,为充分使用网络带宽,允许发送端在未受到ACK之前加快发送的频率,这就导致了数据发送越来越快,直到网络被察觉到发生拥塞。TCP的慢起算法就为解决这个问题而设计。
TCP慢启动算法术语定义
数据段:一个数据段就是任意的TCP/IP数据或确认包(或两者兼备)。
发送端最大数据段尺寸(SMSS):它是发送端能发送的最大数据段的尺寸。该尺寸不包括TCP/IP头和选项。
接收端最大数据段尺寸(RMSS):它是接收端愿意接收的最大数据段的尺寸。如果MSS选项没有使用,就是536字节。该尺寸不包括TCP/IP头和选项。
满尺寸数据段:一个包括允许最大数目数据的数据段(一个包括SMSS字节数据的数据段)。
接收端窗口(rwnd):最近通知的接收端窗口。
拥塞窗口(cwnd):一个TCP状态参量,代表着一个TCP允许发送的最大数据量。在任意一个给定的时刻,TCP不会发送序号大于最大确认序号和cwnd、rwnd中较小者的数据之和。
初始窗口(iw):初始窗口是三次握手完成后发送端的拥塞窗口的尺寸。
丢失窗口(lw):丢失窗口是在一个TCP根据它的重传定时器检测到了数据丢失之后,拥塞窗口的尺寸。
重启窗口(rw):重启窗口是TCP在一段闲置期之后重新开始传送后拥塞窗口的尺寸。
传送尺寸:已发送但还没有被确认的数据的总量。
拥塞控制算法以及慢启动和拥塞避免
慢启动和拥塞避免算法必须被TCP发送端用来控制正在向网络输送的数据量。为了实现这些算法,必须向TCP每连接状态加入两个参量。拥塞窗口(cwnd)是对发送端收到确认(ACK)之前能向网络传送的最大数据量的一个发送端限制,接收端通知窗口(rwnd)是对未完成数据量的接收端限制。Cwnd和rwnd的最小值决定了数据传送。
另一个状态参量,慢启动阀值(ssthresh),被用来确定是用慢启动还是用拥塞避免算法来控制数据传送,讨论如下:
在不清楚环境的情况下向网络传送数据,要求TCP缓慢地探测网络以确定可用流量,以避免突然传送大量数据而使网络拥塞。在传送开始时,或者在修复了由重发定时器探测到的数据丢失之后使用慢启动算法来达到此目的。
IW,cwnd的初始值,必须小于等于2×SMSS字节,而且不能大于两个数据段。
我们注意到一个非标准的,实验性的TCP的扩充允许TCP使用一个更大的初始窗口(IW),在等式1中给予定义[AFP98]:
IW=min(4×SMSS,max(2×SMSS,4380 bytes)) (1)
有了这个扩充,TCP发送端可以使用一个3或4数据段的初始窗口,只要这些数据段的总尺寸不超过4380字节。
Ssthresh的初始值可以任意大,但是作为对拥塞的响应,其大小可能会被减小。慢启动算法在cwndssthresh时使用。当cwnd和ssthresh相等时,发送端既可以使用慢启动也可以使用拥塞避免。
在慢启动期间,一个TCP的cwnd对每一个接收到的用于确认新数据的ACK至多增加SMSS字节。当cwnd超过ssthresh(或者,当cwnd大小达到ssthresh的大小,如上所述)或者当观察到拥塞时慢启动结束。
TCP以慢启动来尽可能占用带宽,在察觉网络拥塞情况下,采用拥塞避免算法来减轻网络负担。但目前的网络应用不在是单一的网络应用,我们需要在网络发生拥塞前就控制好流量,确保关键应用优先。
目前解决QoS问题的办法
增加网络带宽
这是一种被动的方法,多种应用都运行在同一骨干网上。可能某种应用对带宽的要求高,但它又具有突发性,仅在某些时段需要高带宽,大部分时间对带宽的要求并不高,也许占用了高带宽的应用在您的管理策略里,并不打算为它提供太多的带宽。比如:在银行的骨干网络上,由于某个用户在为非工作原因使用WWW浏览,导致网络的其他应用变慢,对这种偶然的应用扩展带宽能解决问题吗?你愿意为这种应用无休止的增加带宽吗?
事实告诉我们,当你扩展了带宽不久后又往往发现带宽不足了,所以这种方法是难以从更本上解决问题的,我们必须对应用细分,理出一个表格,看看网上具体有哪些应用,作为网络管理者需要哪些重要应用保证带宽,而为哪些应用只保证最小带宽。
依靠路由器和交换机能够提供的技术
IP QoS的概念应该分为两个部分,这两部分的IP QoS定义和侧重点均有所不同。局域网中的IP QoS主要是对第二层的以太网帧头加入了优先级字段,以区分不同的优先级。严格地讲,在局域网中只能简单地区分业务的优先级,并不能像ATM QoS那样有精确的定义和详细的参数指标来衡量。
在广域网上,IETF(Internet Engineering Task Force)定义了两种IP QoS结构——综合业务结构(Int-Serv)和业务区分结构(Diff-Serv)。两种结构各有其特点和优势,目前还无法互通。
Int-Serv一般应用在企业网络的边沿,它使用一种类似ATM SVC的方法,在发送端和接收端之间用RSVP(资源预留协议)作为每个流(Flow)的信令。RSVP的信息跨越整个网络,请求/预留资源。路径沿途的各路由器(包括核心路由器)必须为每个要求服务质量保证的数据流维护一个“软状态”。所谓的“软状态”就是一种临时性状态,由资源预留定期失效来控制,因此无需申请拆除显式路径。软状态被定期的RSVP信息更新。通过RSVP信息的预留,各路由器可以判断是否有足够的资源可以预留。只有所有的路由器都给RSVP提供了足够的资源,“路径”方可建立;否则,将返回并拒绝信息。
Diff-Serv比Int-Serv更具可扩展性,它可用于企业的广域网中,并在运营商网络中发挥重要的作用,因为它可以根据应用或业务类型排出不同的优先级别。业务区分结构使用IPv4报头中的业务类型(ToS)字段,并将8位ToS字段重新命名,作为DS字段,其中6位可供目前使用,剩余2位以备将来使用,通过该字段的标记,下行节点可以获取足够的服务质量信息,以对到达该端口的数据包做出相应的"处理",将它们正确地转发给下一跳的路由器。这里需要注意,ToS字段和DS字段的定义是不同的。边缘路由器可以将ToS字段映射到DS字段。
一般来说,QoS业务调节主要有两个手段,一个是预防拥塞的排队和调节机制,另一个就是遇到拥塞时的丢弃机制。
目前,还没有一个路由协议可以根据不同的业务特点来计算最优路径。众所周知,不同类型的业务,其特点不同。如视频和话音业务虽然对传输时延和时延抖动都十分敏感,但对数据的丢失却有一定的忍耐度;相反,一般的数据业务虽然对时延和时延抖动都不十分在意,但对数据本身的丢失和差错却十分敏感。因此,不同的业务在通过运营网络时对最优路径的理解是不同的。对于数据业务来说,最短的路径就是最优的路径;而对于实时业务来说却未必如此。这些分歧是为纯粹数据业务设计的传统路由协议很难弥补的。因此,与之相关的问题就会影响到IP网络的业务质量,这是一个难以解决的问题。所幸的是,新的路由协议出现了,使得这一问题的解决指日可待。
结合各种技术,采用端到端的QoS技术
· 消除带宽落差
据局域网与广域网接合部上广域网管道容量的大小,通过对信息源发送数据的时间和量进行控制,达到消除接合部容量落差的效果。接合部容量落差消除了,信息包就再不必要在路由器上排队,路由器完成路由这项主要工作时就会轻快得多,网络响应就加快。为了达到此目的,实施管理QoS机制的器件应该处于路由器与局域网之间,好在信息包进入路由器形成队列之前就把问题给解决掉。比如:有的QoS专用软件通过以下措对发送方的流量进行控制:侦测实时数据流速度,然后调度ACK返回到发送者的时间。修改返回给发送者的Window size。
· 改变TCP突发特性
改变TCP突发特性,使每对TCP会话变平滑而不会影响其它数据流,提高传输管道利用率。
· 双向流量控制
对信息流的QoS控管机制必须能在传输管道上同时对外向流(局域流往广域)和内向流(广域流往局域)分别进行实施而不是象队列技术那样只能控制外向流。
· 采用MPLS技术
利用MPLS来实现端到端的QoS,实际上是将第三层的QoS通过与MPLS的有机结合转换到第二层的QoS,以实现端到端的QoS。
具体而言,边缘路由器同时也作为MPLS的LER(标记边缘路由器)。这样,一方面它需要识别IP包中的DS字段,另一方面它还可以将从DS字段提取的服务质量信息映射为第二层(如ATM或FR)的服务质量,并通过MPLS建立一条满足服务质量的贯穿整个运营网络的LSP,以保证从入端到出端的QoS,从而实现端到端的服务质量保证。
综合以上的办法,可以看到要做到端到端的QoS的确不是一件易事。需要多种网络产品的协同工作。如果仅依靠大家熟悉的路由器或IP层以上的网络设备来完成队列调度、ACK返回时间计算、监控端到端的流量等功能,明显加重了网络设备负担,但如果用一台能够监控多个网段的设备来对数据采集、分类,并根据网络管理员制定策略来实施网络管理,路由器只管提供最佳路由、最短的可达路径,交换机尽可能快的转发报文,这样的网络不就是一个高性能的网络吗?但我们还应该看到,如果有这样的网络设备,它会不会又成为一个瓶颈呢?又如何实现它的可靠性,使网络不增加单点故障点?我们期待完整的解决方案。
赛迪网 中国信息化(industry.ccidnet.com)