计算机应用研究
APPLICATION RESEARCH OF COMPUTERS
2000　Vol.17　No.5　P.31-32



一种ATM网络服务质量控制的软件模拟方法
刘向东　耿江涛　杨永田　俞瑛
摘  要  文章提出了一种对ATM网络中服务质量控制算法的软件模拟方法。通过这种方法，可以对控制算法的优劣给出一种定量的评价，从而对ATM网络中的服务质量控制算法的改进具有一定的参考价值。
关键词  ATM网络  漏桶算法  服务质量保证   软件模拟
1  引言
　　ATM技术是一种面向连接的技术，并且可以为不同的连接提供不同的QoS(Quality of Service)保证。另外，ATM网络具有很高的传输速率，这使得它适合于传输从一般数据服务到实时性要求很高的语音、视频、图象等多媒体业务。CCITT已在1987年将其选为将来的传输方式，可以说，ATM是未来宽带综合业务数字网(B_ISDN)的核心技术[1]。ATM技术对于QoS的控制是通过各方面的协调来完成的，但它主要包括两方面内容：一是接入允许控制(CAC)；二是业务监控(Policing)[２]。在接入允许控制过程中，网络与用户间就业务参数达成协议；业务监控的任务则是确保信源的行为遵守CAC协议。对于QoS的保证来说，这两者是同样重要的，因此它们是本模拟对象中最主要的两个部分。
2  接入允许控制及业务监控
　　接入允许控制及业务监控是本模拟系统的核心部分，对于它们的模拟是建立在严格的数学分析基础之上的。下面分别介绍这两部分。
　　假定输出链路容量CL(Mb/s)已知，它能够处理N个具有特定的QoS请求的呼叫，现在的任务是求出CL与N之间的制约关系。无论是语音源还是视频源，在经过适当的转化后，都可以用开关模型来表示[３]。假定一个信源处于活动状态的概率为p，峰值速率为Rp。为了简化表示，定义m(≡p(N)为平均活动信源数，显然，CL≥m(Rp，不妨设CL=(m+K×σ)×Rp，这里σ×Rp是标准偏差，K为常数因子。文献[4]中给出了K和σ的值：K=(-ln(2π)-2lnε)1/2,σ=(N(p((1-p))1/2，这里的ε表示信元丢失率，它由流量源的QoS参数指定。根据以上关系，接入允许模块就可以作出是否接纳一个呼叫的判断了。
　　ATM网络中常用的流量控制算法是漏桶控制算法[3]，它实际上是一种许可证流控方式，通过令牌发放速率限制入网信元长期平均速率，而漏桶容量决定了入网业务流的突发程度。本系统采用的缓冲漏桶算法是对基本漏桶算法的一种改进。由于增加了一个信元缓冲器，突发到达而暂时得不到令牌的信元在缓冲器中排队等待，因而在相同漏桶容量下这种算法可以降低信元丢失率。文献[3]中提供了对漏桶控制算法性能的详细分析。
3  模拟系统的软件结构
　　本模拟系统当前版本是使用Microsoft Visual C++ 6.0结合MFC (Microsoft Foundation Class)来实现的，运行于Windows NTTM环境下，主要由四大模块组成，即流量产生模块、接入允许控制模块、流量控制模块和网络资源模块，其核心为接入允许控制模块和流量控制模块。系统为流量产生模块、接入允许控制模块和网络资源模块各维护一个队列。在流量控制模块中为每一个流量源维护一个漏桶缓冲区队列。各模块之间的逻辑关系如图1所示。

图1模拟系统软件结构示意图
　　下面是对各个功能模块的简要说明：
　　(1)流量产生模块，本模块用来模拟实际网络中的各种流量源。我们用随机数(Visual C++提供服从某种统计规律的随机函数)来模拟信源的产生。为了尽可能提高模拟的真实度，我们采用了经过统计处理之后的实际的语音及视频文件来作为模拟信源，这样做的原因有两个：一是实际语音及视频文件的信息真实性是任何人为模拟都无法比拟的；二是有大量现存的语音及视频文件可以利用。这大大减轻了样本收集的工作量，大的样本空间是提高模拟可信度的一个重要条件。
　　(2)接入允许控制模块，本模块的功能是实现接入允许控制(CAC)。每当系统产生一个模拟流量源的时候，这个模拟流量源首先要向CAC模块发出一个接入请求消息，并在消息中携带QoS参数。CAC模块在收到这个消息后，就向网络资源模块发送查询消息，查询可利用的网络资源。在得到应答后，CAC模块就根据一定的规则来判断是否接纳此呼叫。如果接纳，就向请求信源发送一个应答信号，表示此呼叫已经被接收，同时将流量合同(根据QoS参数形成)交给流量控制模块，以便进行相应的流量控制，否则返回一个拒绝信号。
　　(3)流量控制模块，本模拟系统采用带缓冲的漏桶算法来进行流量控制。系统为每一个模拟信源维护一个带缓冲的漏桶。这种算法可以控制信元的平均速率和突发程度，并且可以降低信元丢失率。当然，由于缓冲将带来一定的时延，通过改变缓冲区的大小，可以改变时延，这一点对于传输声音及视频信息来说无疑是十分重要的。
　　(4)网络资源模块，由于分析复杂度的限制以及在这方面已有研究结果的极其缺乏，本文对网络资源问题的讨论范围进行了严格的限制，仅限于讨论一个节点的资源情况，即网络接入点的输出链路宽度和缓冲区的大小及占有情况。
4  流量源的预处理
　　为了提高模拟的真实度，本模拟系统采用实际的语音文件及视频文件作为流量源[４]。但是，这两种文件都需要占用大量的磁盘空间，且在处理过程中需要进行很多具有较大延迟的磁盘操作。对于在单机上面模拟多个信源来说，这无疑是十分不利的。本模拟系统采用了一种预处理技术来实现了信息量的压缩。从而消除了模拟过程进行时的磁盘操作。具体来说就是事先对源文件中的有效信息进行统计，用有效信息的数量来代替具体的信息内容，例如用数字100来表示100个字节，而不管这些字节的具体内容。采用这种方法压缩率达到几百甚至上千是完全有可能的。这样就有可能将这些统计信息一次性装入内存，从而消除了因磁盘操作而引入的不确定因素。
5  逻辑时间与物理时间相分离
　　本模拟系统依靠Visual C++提供的Timer事件来完成定时操作，所以大部分操作都要在Timer事件中完成。而这些操作本身要耗费一定的时间，因此，当Timer事件本身的执行时间超过了规定的Timer事件的时间间隔时，系统就会出现紊乱。并且，如果完全按照计算机的主时钟来完成定时的话，那么，同一个程序在不同的计算机上运行，即使运行过程完全相同，也极可能得出完全不同的结果。为了解决这个问题，我们使模拟的逻辑时间与物理时间相分离，逻辑时间由计算获得，而物理时间由实测获得，方法如下：
　　每次启动系统时，先按最大可能的时间复杂度来执行Timer事件中的所有操作，并记录耗费的时间，以其作为系统的物理时间单位(据此来对Timer事件定时)，它对应于一个逻辑时间单位。
逻辑时间单位就是为了分析系统所需的最小时间单位，它应该小到能够模拟系统中传输速率最高的那一部分的变化情况。本模拟系统中，输出链路处速率最高，假定为CL(Mb/s)，如果逻辑时间单位小到能够模拟输出链路处的信元变化，那么，它就可以以足够高的精度来模拟各个信源处的各种变化情况。计算方法如：
6  统计信息的记录与保存
　　为了便于事后分析，我们将把模拟过程中的一些重要信息以文件的形式保存到磁盘上。由于磁盘读写操作是一个很慢的过程，而本模拟系统对时间精度要求比较高，所以我们采用零散收集，集中存盘的方法来解决这个问题。具体来说，就是需存盘信息先缓存于内存的一块缓冲区中，待缓冲区填满时再集中写入磁盘，并清空缓冲区。即使这样，写磁盘时仍难免会影响模拟的精度。为了彻底消除这种影响，我们采用了现场保护与恢复的技术。在存盘之前，将一些关键性信息保存起来，例如模拟的当前时间序列号、当前各队列的指针等。之后进行磁盘操作，磁盘操作完毕后，清空缓冲区，然后恢复关键信息，继续模拟过程。这种技术对于提高模拟的精度无疑是很有帮助的。
7  统计信息的利用
　　本模拟系统中模拟过程与统计过程是独立的。这样做的目的一是为了减少模拟过程中的干扰，提高模拟的精确度；二是为了实现统计的多样性与全面性。整个模拟过程中用一个唯一的时间标识来标志系统的进程，这个时间标识包含两个long型的变量，如果按最小时间段1ms(Visual C++能够提供的最小时间单位)来算，它可以持续109年而不重复，由此可见用它来标识系统进程是恰当的。有用信息都以文件的形式存放在磁盘上，这些信息有很多种(但都含有时间标识)，包括任一时刻缓冲区的占有量、正在发送的信源数目、正在进行呼叫的信源数、任一漏桶处丢弃的信源、缓冲区处丢弃的信源、任一信源在当前时刻传送的信息量等。根据这些信息可以获取我们所感兴趣的任何统计数据，但是具体数据的获取可以根据需要对这些数据文件编制独立的统计程序来实现，与模拟过程并没有直接的联系。
8  结束语
　　本文提出的ATM网络中服务质量控制算法的软件模拟方法，对ATM网络中的流量控制算法的改进和ATM网络服务质量的提高具有一定的实际意义。通过改变模拟参数，可以寻求更好的控制方法。它采用语音文件和视频文件为模拟信源，对于诸如IP电话、视频点播等应用具有直接的参考价值。通过改变模拟环境(甚至将某些模块运行在实系统上)可以提高模拟的真实度，这是本系统有待改进的地方。
刘向东(哈尔滨工程大学计算机系   哈尔滨 150001)
耿江涛(哈尔滨工程大学计算机系  哈尔滨 150001)
杨永田(哈尔滨工程大学计算机系  哈尔滨 150001)
俞瑛(哈尔滨工程大学计算机系  哈尔滨 150001)
参考文献
1，张宏科, 裘正定. ATM网络互连原理与工程. 北京: 清华大学出版社, 1997.4
2，鲁士文. 数据通信与ATM网络. 北京: 清华大学出版社, 1998.7
3，Mischa Schwartz. 宽带网络性能分析(影印版). 北京: 清华大学出版社, 1998.4
4，黄贤武, 赵鹤鸣. 多媒体计算机基础与数据压缩. 北京: 北京理工大学出版社, 1996.1
收稿日期：1999-12-16
