IP电话的若干网络技术问题

发布时间:2003-11-26 作者:谢希仁 Xie Xiren 阅读量:

1 概述

    在传送数据的分组交换网问世后不久,人们就开始研究是否能够在这种网络上打电话。早期的实验系统由于通话质量不好,一直处于实验室研究阶段。商品化的IP电话直到1995年初才问世。但通信的双方都必须使用PC机,而且大家都要使用VocalTec公司的Inter-net Phone软件。显然这种IP电话使用起来不太方便。1996年3 月Vo-calTec公司又推出了IP电话网关,它是IP电话与传统电话的交换设备。有了IP电话网关后,就可以用普通电话机打IP电话,大大方便了用户。由于IP电话价格便宜(在打国际长途电话时尤为明显),因此近年来发展很快。

   IP电话有多个英文同义词,常见的有VoIP (Voice over IP)、Inter-net telephony、 VoN (Voice on the Net)以及Telephony based on IP net-work。但IP电话的含义却有不同的解释。狭义的IP电话就是指在IP网络上打电话。所谓“IP网络”就是“使用IP协议的分组交换网”的简称。这里的网络可以是只有一个IP网络,如因特网(Internet),也可以是包含有传统的电路交换网的互联网,不过在互联网中至少要有一个IP网络。在打电话时,用户可使用PC机,也可使用普通电话机。广义的IP电话(见图1)则不仅仅是电话通信,而且还可以是在IP网络上进行交互式多媒体实时通信(包括话音、视像等),甚至还包括瞬间通信(IM)。瞬间通信是在上网时就能知道有没有自己指明的朋友正在上网,若有,则彼此可在网上交谈或交换其他信息,包括使用一点对多点的多播(Multicast)技术。因此,IP电话可看成是一个正在演进的多媒体服务平台,是话音、视像、数据综合的基础结构。在某些条件下,IP电话的话音质量甚至还可能优于普通电话。

    本文下面所讨论的一般是指狭义的IP电话。

    IP电话存在的问题就是话音的质量较差,或者说是服务质量(QoS)较差。在ITU-T的E.800建议书中指出:服务质量是服务性能的总效果,这个效果决定了一个用户对服务的满意程度。

   IP电话的服务质量之所以不能令人满意,是因为当初在设计IP网络时,为了提高网络的抗毁性和灵活性,就采用无连接的数据报来传送分组,这样的IP网络不能保证网络的服务质量,它将可靠交付数据的责任放在网络端点的主机上。IP网络平等对待网络上所有的分组,对所传送的分组只是尽最大努力交付。这意味着IP网络既不保证将数据可靠地交付给目的主机,也不保证按序交付,更不保证交付的时限。至于端到端通信的可靠性,则由进行数据通信的主机运行传输控制协议(TCP)来保证。

   IP网络对传送非实时通信的数据是非常合适的。但打电话是实时通信,它的特点是:可以容忍少量的差错,但对时延的要求却很高。一般说来,打电话的用户可以容忍的时延上限是150~400 ms。因此,IP电话无法使用保证端到端通信可靠性的TCP协议,这是因为面向连接的TCP协议对出错的分组要进行重传,这往往会造成较大的时延。当网络发生拥塞时,主机要重传被路由器丢弃的一些分组,同时还要将发送分组的速率放慢。这些措施都不适合于IP电话。由于每个话音分组独立选择自己的路由,因此各分组所经受的时延各异。这种时延的偏差也影响到还原后的话音质量。因此IP电话必须设法解决话音分组时延以及时延的偏差带来的不良影响。

    对如何解决IP电话的服务质量问题,目前有着多种不同的意见。

    一种极端的意见认为,只要广泛使用光纤技术,特别是密集波分复用(DWDM)技术,就可以成倍地提高网络的带宽,因而就自然而然地不会发生网络的拥塞和分组的丢失,话音分组就可以及时地交付到目的地。这种看法可能把问题看得过于简单。其实,当网络的带宽增大后,就会出现需要更多带宽的新的应用(例如,高清晰度的点播电视),它们会很快地将已增大的带宽消耗掉,而这又会导致网络拥塞的产生。因此,还应当采取一些其它措施来提高网络的服务质量。有一点是应当明确的,就是尽管光纤技术的使用会使得每一个话路的费用大幅度降低,但这并不等于说铺设光缆不需要花钱。那种认为“在整个Internet范围内所有的链路带宽都将增大到可随意使用”的看法,至少在看得见的近期还不会成为现实。另一种极端的看法认为,必须从根本上改造Internet,使得在网上打电话之前就要预留足够的端到端的带宽,即从主叫到被叫的整个通路上的每一条链路的带宽都要预留。这就要求对网络进行许多方面的改造。首先,我们需要有预留带宽的协议;其次,在各路由器中队列调度的策略也要改变,不能再平等地对待所有的分组;第三,网络必须能够确定是否具有足够的带宽来支持新的预留。要实现这些,在主机和各路由器中还要有新的复杂的软件以及新的服务类型。因此,采用这样的做法需要付出的代价是很大的。

    现在较多的人认为,最好的办法还是应当采取多种措施来提高IP电话的服务质量,但对规模已经非常大的因特网最好不要进行耗资太大的过于复杂的改造。下面将讨论一些常用的提高IP电话服务质量的措施。

 

2 在接收端对话音分组进行还原时采取的策略

 

2.1  利用缓存减轻时延抖动的影响

    为了减少IP电话的数据率,通常都使用静默检测技术,即只对检测到有话音突发(Talkspurt)的话音进行编码。当检测到的话音信号强度小于规定的门限值时,就认为是没有话音信号因而在这段时间不发送话音信号。这样,IP电话在网络上传送的是许多不连续的话音突发串的编码(可以采用各种压缩编码技术)。

    数字话音信号的一个重要特点就是:在发送端,模拟的话音信号经过数字化变换所得到的是等时的数字信号。由于每一个话音分组独立选择路由,因此话音分组到达接收端时,其时延具有一定的统计特性:不仅有平均时延,而且有时延的偏差,这称为时延抖动。时延抖动使得在接收端收到的话音信号不再是等时信号。

    如果将收到的有时延抖动的话音分组在接收端的缓存中存放一段时间(当然是很短的时间)后再进行还原,就可减少时延抖动对还原后话音质量的影响。显然,话音分组在接收端的缓存时间越长,话音分组的丢失率就越小,时延抖动的影响也越小,但这又将使平均时延增大。因此,选择一个合适的缓存时间是非常重要的。

    话音质量一般可分为四个级别,即“长途电话质量”(这是最好的质量)、“良好”、“基本可用”和“不好”。越接近坐标原点,话音质量就越好。目前IP电话的质量一般还不能达到传统电话的质量。假定有一个点N,相当于时延和话音分组丢失率(时延抖动)都是最小。

    话音分组的长度要选择得适当。显然,话音分组越长,整个的时延就越大。但话音分组过短则分组首部的开销又太大。对于8kHz的采样频率(相当于采样周期为0.125ms),通常取话音分组长度为20ms。因此只要将第i个分组和第i-1个分组的时间戳(记录发送时间)进行比较即可判断它们是否属于同一个话音突发。只要发现t i-t i-1 大于20ms,就可判定第i个分组是新的话音突发中的第一个分组。然而当出现分组丢失时,在接收端收到的属于同一话音突发中的连续的分组,其时间戳之差就有可能大于20ms。因此,这时就要用到话音分组的序号,根据序号是否连续,就能判断当时间戳之差大于20ms时,是由于分组丢失了,还是由于又开始了一个新的话音突发。

 

2.2  用前向纠错和交错技术减轻话音分组丢失的影响

    这里所说的分组丢失包含以下两种情况,即话音分组根本没有到达接收端;或话音分组到达太晚了,在应进行还原的时间之后才到达接收端。

    减轻话音分组丢失的影响可使用两种方法:前向纠错(FEC)和交错(Interleaving)。

    前向纠错就是在原来的已经数字化的话音块(Chunk)上增加一些冗余信息,所付出的代价是增大了网络上传送的数据率。利用这些冗余信息,就可在还原时将丢失的话音块近似地或精确地重新构造出来。这里的“块”表示应用层的传输单位,而“分组”是网络层的传输单位。

    前向纠错的一种方法是将n个话音分组编为一组,而每发送n个话音分组就增加一个冗余分组。冗余分组是将原来的n个话音分组进行异或相加得出。如果在这n + 1个分组中只丢失了一个,那么在接收端就能够很容易地将丢失的分组恢复出来。当然当丢失的分组数超过一个时就无法恢复了。

    显然,减小n + 1的数值就可多恢复出一些丢失的分组,但与此同时也使网络上传输的话音数据率增大得更多了。

    前向纠错的另一种方法是在进行正常的话音编码(例如,64kbit/s的标准PCM编码)的同时,再进行某种低速率的话音编码(例如,13kbit/s的GSM编码)。然后将低速编码构成的话音块作为冗余数据与正常编码的话音块装配成一个分组一起发送出去。图3是这种方法的示意图。假定在传输的过程中,话音分组3丢失了,于是就用捎带在分组4上的低速率的话音块3进行还原。当然这会影响话音质量,但这是可接受的,因为一般说来低速率的话音块只是偶然才会出现的。话音分组2和4所捎带的低速率话音块在本例中并没有用处,在还原时将低速率话音块丢掉即可。

    当一连串丢失好几个话音分组时,可将前向纠错与其它几种恢复方法结合起来。例如,对最后丢失的一些话音分组,可用低速率话音块进行恢复。对一开始丢失的话音分组,可用重复已收到的话音分组进行恢复。对再后面的一些丢失的话音分组,可用静默分组(或相当于讲话的背景噪声)进行恢复。这样做多少可以弥补一下连续话音分组丢失的影响。

    采用交错技术可得到更好的话音还原效果。例如,可以将4个20ms的话音块编为一组,每一个话音块再划分为4个小块,然后将这些小块按一定规律进行交错再构成话音分组发送出去。在接收端进行交错的反变换。可以看出,虽然话音分组3在传送中丢失了,但在接收端还原后仍能得出4个话音块,只是每个话音块中都丢失了一个小块。由于话音小块的持续时间很短,因此对还原后的话音质量的影响大为减小。可见交错的效果就是把本来是连续丢失的许多比特分散开,使得还原后的话音质量不至于变得太差。

 

3 对不同的分组给予不同的服务

    若要使话音分组尽快地通过路由器,就必须改变因特网平等对待所有分组的基本设计思想,使得对时延有较严格要求的话音分组能够从网络得到更好的服务质量。下面介绍的是最有代表性的两种。

 

3.1  综合服务

    最初试图在因特网中将网络提供的服务划分为不同类别的是IETF提出的综合服务(IntServ)。IntServ可以对单个的应用会话提供服务质量的保证,其主要特点有二,即:(1) 资源预留,一个路由器需要知道不断出现的会话已经预留了多少资源(即链路带宽和缓存空间)。(2) 呼叫建立,一个需要服务质量保证的会话必须首先在源站到目的站的路径之间的每一个路由器预留足够的资源,以保证其端到端的服务质量的要求。因此在一个会话开始之前必须先有一个呼叫建立(又称为呼叫接纳)过程,它需要在其分组传输路径中的每一个路由器都参加。每一个路由器都要确定该会话所需的本地资源是否够用,同时还不要影响到已经建立的会话的服务质量。

    一个会话必须首先声明它所需的服务质量,以便使路由器能够确定是否有足够的资源来满足该会话的需求。IntServ让发送端发送PATH报文给接收端来指明通信量的特性。每一个中间的路由器都要转发这个PATH报文,而接收端用RESV报文进行响应。路径中的每一个路由器对RESV报文的请求都可以拒绝或接受。当请求被某个路由器拒绝时,路由器就发送一个差错报文给接收端,从而终止了这一信令过程。当请求被接受时,链路带宽和缓存空间就被分配给这个分组流,而相关的流(Flow)状态信息就保留在路由器中。

   IntServ定义了两类服务:(1) 有保证的服务,可保证一个分组在通过路由器时的排队时延有一个严格的上限。(2) 受控负载的服务,可以使应用程序得到比通常的“尽最大努力”更加可靠的服务。

   IntServ共有4个组成部分:(1) 信令协议,资源预留协议(RSVP)在传送数据之前应先建立会话路径和预留所需的资源。(2) 接纳控制程序,用来决定是否同意对某一资源的请求。(3) 分类程序,用来将进入路由器的分组进行分类,并根据分类的结果将不同类别的分组放入特定的队列。(4) 调度程序,根据服务质量要求决定分组发送的前后顺序。

   IntServ/RSVP使得因特网的体系结构发生了根本的变化,它所基于的概念是端系统中与分组流有关的状态信息。综合服务体系结构存在的问题是:(1) 状态信息的数量与流的数目成正比。这就使路由器需要有很大的存储空间和处理开销。因此,这种体系结构不适合于因特网的主干网部分。(2) 对路由器的要求很高。若要得到有保证的服务,所有的路由器都必须装有RSVP、接纳控制程序、分类程序和调度程序。

 

3.2 区分服务

    由于综合服务和RSVP很难在大规模的网络中实现,因此一种更好的策略就提出来了,这就是区分服务(DiffServ)。

    DiffServ的思路是对网络层和运输层只作相对较小的改变,但在网络的边沿(即在用户和因特网服务提供者之间的接口)加上计费和管制的方法。这种思路是引入较少数量的服务类别,而针对每一个数据报指派一种服务类别。在路由器的队列中对不同的服务类别给予不同的服务。

    最初的IP协议(即IPv4)的首部中就有一个服务类型(TOS)字段,共8比特,其目的是想提供几种优先级和几种不同类型的服务。然而这一字段后来一直没有得到推广使用。区分服务就把这个字段利用起来了,并将这字段改称为区分服务字段DS。利用(DS)字段可以定义几种不同的服务。

    为了使用户可以从ISP得到区分服务,他必须和ISP达成一个服务等级协定(SLA )。在SLA中指明了被支持的服务类别和每一类所容许的通信量。SLA有两种。一种是静态SLA,即每月或每年签定一次SLA。另一种是动态SLA,用户要使用信令协议(如RSVP)来请求所需的服务。

    用户可根据所需的服务来对DS字段进行标志,但也可由边沿路由器来设置。在ISP网络的入口处,根据所商定的SLA,分组被分类、管制和进行必要的整形。管制就是将不符合服务等级协定的分组丢弃,而整形是将分组流中的某些分组进行迟延,使得最后得到的通信流量符合事先商定的数值。当分组离开ISP网络进入其他网络时,可能还要根据这两个网络之间商定的SLA对DS字段重新进行设置。

    DiffServ 可以使用以下几种服务:(1) 优质服务,可提供低时延和低时延抖动的服务。(2) 有保证的服务,可提供比“尽最大努力”更加可靠的服务。(3) 奥林匹克服务,这就是尽最大努力服务,但它还可再分为金、银和铜三个等级的服务,其服务质量按此顺序下降。DiffServ 还定义了逐跳行为(PHB),这是从一个支持DiffServ 的路由器的外部可观察到的被路由器转发的分组的行为。

    区分服务(DiffServ) 与综合服务(IntServ)有很大的区别。第一,由DS字段指明的服务类别很有限。因此状态信息的数量正比于服务类别的数目而不是正比于分组流的数目。这就使得DiffServ 的可扩缩性较好。在使用IntServ/RSVP时,若用OC-3的链路,那么在1分钟内通过主干路由器的分组流很容易超过20万个,可见在一个大型网络中按照分组流来进行预留处理将会产生很大的开销。第二,分类、设置标记、管制和整形等较复杂的操作仅在网络的边沿进行。边沿路由器进行这些复杂操作会影响其转发分组的速率。这正好和用户连接到边沿路由器的链路速率较低相匹配。主干路由器的功能应当是以较高的速率转发分组,因此它们应当只进行较简单的操作。主干路由器进行的是行为聚集(BA)分类。因此区分服务实现起来就比较容易。第三,区分服务不需要使用RSVP信令。目前只有很少数的主机可以产生这种RSVP信令。第四,区分服务比较灵活,因为它并没有定义特定的服务或服务类别。当新的服务类别出现而旧的服务类别不再使用时,Diff-Serv 仍然可以工作。

 

4 IP电话的应用层协议

    要实现IP电话,我们还需要有相应的适合于实时通信的应用层协议。

    早在1996年ITU-T就制定了H.323系列建议书,作为基于IP网络的多媒体通信协议。1998年又通过了H.323的第二个版本。实际上,H.323只是庞大的H.32X系列中的一个(包括为ISDN的H.320、为B-ISDN的H.321和为GSTN终端的H.324)。

    虽然H.323已经被较多的厂商所接受,但H.323受到的批评也不少,主要是它太复杂(全部规约有736页之多)和实现起来过于昂贵。

    于是,在1998年IETF的多方多媒体会话控制工作组(MMUSIC)就开始制定另一种IP电话的信令协议——会话发起协议(SIP)。SIP采用不同的设计思路,并重用了HTTP的一些首部字段、编码规则、差错代码和鉴别机制。

    SIP和H.323都使用实时传输协议(RTP),因此不论选择哪一套协议都不会影响IP电话的服务质量(QoS)。

总的来说,SIP所提供的服务和H.323差不多。H.323可提供更加丰富的功能集,还能提供不同的会议控制服务,而对个人移动性的服务SIP则稍强一些。

    然而在复杂性方面SIP却简单得多。SIP的规约只有128页,定义的首部只有37个(而H.323定义的元素多达几百个)。SIP的基本实现只有4种首部和3种请求类型。即使是实现具有图形用户界面的全功能的SIP客户代理,也只需两个人月的工作量。

    可扩充性和可扩缩性也是衡量IP电话信令协议的重要指标。在这两个方面,SIP都比H.323要强些。现在人们正在关注两者的前途。从目前来看,SIP虽具有较多的优点,但它才问世不久,支持它的厂商尚不多。因此SIP能否替代H.323,目前尚无定论。这个值得我们关注。

 

5 小结

    IP电话发展很快,文章讨论了其中的几个重要问题:在接收端对话音分组进行还原时采取的策略,对不同的分组给予不同的服务以及IP电话的应用层协议。限于篇幅,与IP电话有关的其它重要问题,如用于提高分组转发速率的多协议标签交换(MPLS)机制、通信量工程基于约束的路由选择和新型的线速路由器等,均未在此讨论。但这些问题都是值得注意的。

 

参考文献

1 X  Xiao,et al.. Internet QoS: A Big Picture. IEEE Network,1999,13(2):8~18

2 J Kurose,K Ross. Computer Networking. http://www.awlonline.com/cs

3 M Handley,et al.. SIP: Session Initiation Protocol. Internet Draft,IETF, March 1998

 

(收稿日期:2000-01-06)

[摘要] IP电话近年来发展很快。文章讨论了IP电话的若干重要的网络技术问题,如:在接收端对话音分组进行还原时采取的策略;对不同的分组给予不同的服务以及IP电话的应用层协议等。

[关键词] IP电话 服务质量 综合服务 会话发起协议

[Abstract] IP telephony has got very rapid developments in recent years. This paper discusses some important technical problems of about the network IP telephony, for example: the strategy of playback from voice packets in the receiving end,providing different services to different packets,and application layer protocols for IP telephony.

[Keywords] IP telephony QoS Integrated services Session initiation protocol