赞
踩
本节书摘来异步社区《CCNP ROUTE (642-902 )认证考试指南》一书中的第1章,第1.1节,作者: 【美】Wendell Odom 译者: 王兆文, 更多章节内容可以访问云栖社区“异步社区”公众号查看。
Cisco VoIP(CVOICE)学习指南(第三版)
IP语音也就是人们通常所说的VoIP,不过它还有一种称谓叫做IP电话通讯(IP Telephony)。其实这两个术语指的都是穿越IP网络发送语音信息,而它们的主要区别在于各自所使用的终端类型。比如说在VoIP网络中,传统的模拟或数字线路通常是通过某种网关连入到IP网络中的;而在IP电话通讯环境中,终端本身就可以直接利用IP进行通信。需要注意的是,包括本书在内,在很多关于这个问题的文献中,这两个术语都有可能交替使用。
由于VoIP通过基于IP的网络来传输语音信息,包括Internet,这就使得企业可以利用它们现有的IP网络来承载语音和数据流量,以实现削减开支的目的。这对于那些现有网络利用率不高的企业尤其有利,它们可以在没有任何新增成本的前提下,实现VoIP传输。本节将介绍VoIP、VoIP网络中必备的组件、目前可用的VoIP信令协议、VoIP服务以及媒体传输协议。
1.1.1 Cisco统一通信技术架构
Cisco统一通信系统(Cisco Unified Communications System)将所有类型的业务通信方式结合进了一个统一的系统中,利用标准的IP协议,使数据、语音和视频流量能够通过单独的网络架构进行传递。通过Cisco IP硬件和软件产品提供的框架,Cisco统一通信系统有能力解决所有当前和未来企业环境中可预见的通信需求。Cisco统一通信产品家族能够优化特性功能,减少管理和维护成本,并且可提供与各种其他应用的互操作性。Cisco统一通信系统可为网络提供并维持高标准的可用性、服务质量(QoS)和安全保护。
下列通信技术已被纳入并集成在Cisco统一通信系统中。
IP电话通讯(IP Telephony):IP电话通讯是指使用IP标准在网络中实现语音通信的技术。Cisco统一通信系统中包含了各类硬件和软件产品,如呼叫处理系统(call processing agent)、IP电话(有线和无线)、语音留言系统(voice messaging systems)、视频设备及其他的特殊应用。
客户联系中心(Customer Contact Center):Cisco IP联系中心(IPCC)产品的战略性架构能够在全球网络范围内实现有效的客户沟通。它能够使组织机构获得更多的资源来服务客户,这些资源包括大量客户服务座席(agent)和多信道的通信,以及客户自助工具等。
视频电话通讯(Video Telephony):Cisco Unified Video Advantage产品利用相同的IP网络和呼叫处理系统,如Cisco统一通信(UC),来实现实时视频通信以及不同产品的相互协作功能。借助Cisco Unified Video Advantage,可以使视频通讯就像拨打电话号码一样简单。
富媒体会议(Rich-media Conferencing):Cisco Conference Connection和Cisco Unified MeetingPlace通过一组基于IP的工具增强了虚拟会议环境的应用,这些虚拟会议环境包括语音、视频和Web会议。
第三方应用(Third-party Application):Cisco与其他公司的合作,使企业可以选择使用第三方IP通信应用和产品。这为企业的特殊需求提供了帮助,如信息处理、客户关怀及劳动力资源优化等。
1.1.2 VoIP概述
VoIP是一个技术家族,它支持通过IP网络传递各种语音应用,如电话通讯、语音即时消息和电话会议。VoIP定义了IP网络承载语音呼叫的方法,其中包括语音流的数字化(digitization)和封包化(packetization)。VoIP标准建立了一个电话系统,在那里可以实施更高级别的特性,如高级呼叫路由、语音邮件及联系中心。
VoIP服务会将语音信息转换为能够在IP网中传输的数字信号。如果一个呼叫是去往传统电话的,那么数字信号在到达目的地之前会被转换为传统电话信号。VoIP使我们能够直接从计算机、VoIP电话或连接了特殊适配器的传统模拟电话上发起呼叫。除此之外,诸如机场、公园和咖啡厅等地的无线“接入点”在提供Internet连接的同时,也有可能允许人们使用VoIP服务。
VoIP的商业案例
驱使组织机构部署VoIP网络的商业优势总在不断地变化,从简单的媒介融合(media convergence)逐渐发展到今天,包含了呼叫交换智能和完整的用户体验。
最初,ROI(投资回报率)的计算主要集中在话费旁路(toll-bypass1)和对网络设备的投资上。这些因素在今天仍很重要,但语音技术中的其他优势更能使组织机构和运营商提供的服务从竞争者中脱颖而出,其中包括以下服务。
节省成本(Cost saving):在用于PSTN(公共交换电话网)环境中的传统TDM(时分复用)技术中,每个语音信道独占64kbit/s带宽。这种技术导致在没有语音流量的时候,带宽就是闲置的。而在VoIP环境中,多条逻辑连接共享带宽,其结果是带宽得到了更有效的利用,进而降低了网络对带宽的总体需求。事实上,若要进行正常传输,就需要利用大量设备将多个64kbit/s信道组成高速链路。而分组电话(packet telephony)运用统计分析,能够同时传递语音流量和数据流量,这就大大缩减了固定设备的投资及运营的成本。
灵活性(Flexibility):IP网络的先进功能可以使组织机构在为客户和用户提供各种不同类型的应用及服务时显得更加游刃有余。运营商可以很轻松地划分客户群体,这种分类能够帮助它们根据流量需求和其他客户指定的要求,来为不同的客户提供不同的应用、客户服务及速率限制。
高级特性(Advanced feature):当前的VoIP应用可提供各种高级特性,其中包括如下几种。
高级呼叫路由(Advanced call routing):当在呼叫连接的源和目的之间存在多条路径时,可以根据成本、距离、质量、合作伙伴转接或各种其他考量因素,来优先使用其中的某些路径。最小开销路由(Least-cost routing)和时间表路由(time-of-day routing)就是两种高级呼叫路由,可以用它们来为每个呼叫选择出最佳路由。
统一消息系统(Unified messaging):统一消息系统优化了沟通方式,提高了生产效率。它提供了一个单独的用户接口,使用户能够查收通过各种媒介传递来的消息。例如,用户只需访问一个收件箱,就可以同时实现电子邮件阅读、语音留言收听、传真信息浏览等多个需求。
集成的信息系统(Integrated information systems):组织机构利用VoIP影响了业务运作模式的变革。这些运作模式包括集中式路由控制、地理上分散的虚拟联系中心以及对各类资源和自助工具的访问。
长途话费节约(Long-distance toll bypass):对于那些机构各分支之间呼叫业务量巨大(需缴付传统长途话费)的组织机构来说,有效地节约长途话费是一个非常有吸引力的解决方案。在这种情况下,使用VoIP通过IP网络来传递分支之间的呼叫可能更为划算。如果IP WAN变得拥塞,那么这些呼叫会通过PSTN进行传递,这也就确保了语音传输的质量。
安全(Security):管理员可以通过IP网络中的机制来确保IP呼叫的安全。可以通过加密敏感信令的头域字段(header fields)和消息体,来防止非法拦截数据包的网络行为。
客户关系(Customer relationships):服务提供商可以通过多种途径,如通过电话、交谈和电子邮件,为客户提供支持,并以此建立坚实的客户满意度和忠实度。利用遍布的IP网络,组织机构可以通过IPCC座席,为客户整理并提供最新的客户通信记录,使用这些信息可以快速解决问题并建立良好的客户关系。
电话应用服务(Telephony application services):Cisco IP电话中的XML服务为用户执行或访问业务应用提供了另一条途径。Cisco IP电话中基于XML的服务包括用户股票行情、清单核对、直拨目录、公告及广告。有一些Cisco IP电话装有基于大型像素的LCD显示屏,通过在屏幕上显示图像代替了仅仅在窗口中显示文本。基于大型像素的LCD显示屏功能使用户能够使用复杂的图像管理Cisco IP电话中的应用,并使这些应用可以通过任何桌面、柜台或位置进行访问。
1.1.3 VoIP网络的组件
图1-1描述了一个分组语音网络中的基本组件。
接下来将详细介绍各个基本组件,如下所示。
IP电话:Cisco IP电话是语音通信的IP终端设备。
网守(Gatekeeper):网守用于执行呼叫准入控制(CAC)、带宽控制和管理以及地址转换。
网关(Gateway):网关用于实现VoIP网络和非VoIP网络(如PSTN)之间的转换,同时也为本地的模拟和数字语音设备提供了物理连接,这类语音设备包括电话、传真机、key set、PBX。
多点控制单元(MCU):MCU可以为处于多个不同地点的与会者,提供进入同一视频会议或电话会议的实时连接。
呼叫代理(Call agent):呼叫代理用于提供IP电话的呼叫控制、CAC、带宽控制和管理及地址转换。它与网守不同,Cisco环境中的网守通常运行在路由器平台上,而呼叫代理则运行在服务器平台上。例如,Cisco Unified Communications Manager(Cisco统一通信管理器)就是一台呼叫代理。
应用服务器(Application server):应用服务器用于提供多种服务,如语音邮件、统一消息系统、Cisco通信管理器话务台。
视频会议工作站(Videoconference station):视频会议工作站用于为参与视频会议的终端用户提供视频会议连接,它包括一个视频捕获设备及一个麦克风,前者用于获取输入的视频,后者则能够获取输入的音频。这样用户就可以看到图像并听到声音,而这些图像和声音均来自远端的用户工作站。
还有一些其他的组件可以提供附加服务,以满足企业站点的需求,如软件语音应用、交互式语音应答(IVR)系统及软电话(soft phone)。
在传统的PSTN电话网中,完成呼叫所需要的所有元素对于终端用户来说都是透明的。而在VoIP网络中,需要了解这些必需的元素,并且深入理解在IP网络中提供相同功能的协议和组件。
以下为必需的VoIP功能。
信令(Signaling):信令的功能是生成和交换控制信息,这些控制信息用于在两端点间建立、监测、释放连接。语音信令需要在节点之间提供监督功能、处理功能和告警功能。PSTN电话网使用7号信令系统(SS7)来传输控制消息。SS7使用带外信令,在这种情况下,呼叫控制信息在分离的专用信道中进行交换。
VoIP中有几种可供选择的信令类型,包括H.323、SIP(会话初始化协议)、MGCP(媒体网关控制协议)、SCCP(Skinny客户端控制协议)。某些VoIP网关也能够直接向PSTN电话网发起SS7信令。信令协议模型分为端到端(peer-to-peer)协议和客户端/服务器(client/server)协议。
SIP和H.323是端到端信令协议,使用这些信令的终端设备或网关能够智能地发起和终结呼叫,并且能够处理呼叫控制信息。H.248、SCCP和MGCP是客户端/服务器协议,使用这些信令的终端设备或网关并不能处理呼叫控制信息,但它们会与服务器通信,发送或接收事件通知,这里的服务器通常被称为呼叫代理。比如说,当MGCP网关检测到某台电话摘机,它并不会自动向电话发送一个拨号音,而是向呼叫代理发送一个事件通知,告诉呼叫代理:检测到了一台电话摘机的情况。接着,由呼叫代理通知MGCP网关为电话提供拨号音。
数据库服务(Database service):为了获得某些增值服务,如免费电话(toll-free number)或主叫用户ID(caller ID),需要服务器具有数据库查询能力,并以此来判断是否可以发起呼叫或者是否可以得到相应信息。可获得的数据库服务包括账单资料、主叫名传递(CNAM)、免费数据库服务、呼叫卡业务。VoIP运营商可以借由提供许多独特的服务,将自己从竞争者中突显出来。例如,为方便移动用户查看传真信息,运营商可以提供将传真转为电子邮件的服务。另外,运营商也可以提供电话通知服务,为特定时间段内发出的出局呼叫提供预先录制的语音信息,以此为用户提供相关信息,如学校停课、叫醒服务或预约安排。
承载控制(Bearer control):承载信道是用来承载语音呼叫的信道。需要适当监督这些信道,以确保终端设备之间呼叫连接信令和呼叫断开信令的正确传输。正确的信令能够保证将信道分配给当前的语音呼叫,并且保证当呼叫的任意一方结束呼叫时,信道的分配状态就会解除,使它可以被重新分配给下一路呼叫。在PSTN电话网中,连接和断开消息是通过SS7传递的。在IP网络中,连接和断开消息则是通过SIP、H.323、H.248或MGCP传递的。
编解码器(Codec):编解码器用于在模拟和数字设备之间提供编码和解码的转换功能。各种编解码类型定义了转换语音流的编码和压缩机制。PSTN利用TDM承载每路语音呼叫,为每个语音信道预留64kbit/s带宽,并且通过G.711标准将模拟声波转换为64kbit/s的数字化语音流。在VoIP的设计中,可能会使用高于64kbit/s的压缩方式来对声波进行编码,以提高网络资源的利用率。在WAN环境中使用最为广泛的编解码方式是G.729标准,该标准将语音流压缩为8kbit/s。
VoIP使用多种控制协议和呼叫信令协议,其中包括如下几种。
H.323:H.323是在包交换网络(包括IP网络)中提供多媒体通信服务以及实时音频、视频和数据通信服务的标准,它定义的内容包括组件、协议和流程。H.323是ITU-T(国际电信联盟远程通信标准化组)提出的H.32x协议家族的一部分,H.32x家族定义了在各种网络上提供多媒体通信服务的标准。H.32x伞形标准涵盖了语音、视频和数据同步传输的各方面内容,并定义了端到端的呼叫信令。
MGCP:MGCP是控制PSTN网关或瘦设备(thin device)的方法。在RFC 2705中,MGCP定义了控制VoIP网关的协议,其中网关与控制外部呼叫的设备相连,该设备也被称为呼叫代理。MGCP可为边缘设备提供信令能力,这种相对便宜的边缘设备(如网关)可能并没有部署完整的语音信令协议(如H.323)。比如说无论何时,网关的语音接口上发生一个事件,如摘机(off-hook),语音接口都会向呼叫代理报告这一事件,并由呼叫代理通知它应反馈的服务信令,如拨号音(dial-tone)。
SIP:SIP是一个详细的协议,它定义了建立和移除通话的请求与响应消息,并且详细说明了各种特性,如安全、代理、TCP或UDP服务。SIP及其组合协议——SAP(会话通知协议)和SDP(会话描述协议),为网络中的用户提供了组播会话的通告和信息。SIP定义了设备间的端到端呼叫信令。它是基于文本的协议,借用了HTTP中的很多元素,例如,它具有与HTTP相同的请求与响应模型,相似的头格式和应答码。SIP还采用了URL寻址方案的变体,同时该寻址方案也被用于基于SMTP(简单邮件传输协议)的电子邮件中。
SCCP:SCCP是Cisco的私有协议,用于实现Cisco通信管理器和Cisco IP电话之间的通信。使用SCCP的终端工作站(电话)称为Skinny客户端,它消耗的处理资源较少。客户端使用面向连接的(基于TCP的)会话来与Cisco统一通信管理器(常被称为CallManager,缩写为UCM)进行通信,并以此与另一个遵从H.323标准的终端工作站建立通话。
H.323是ITU(国际电信联盟)为LAN上的多媒体会议定义的一组协议,它由ITU-T设计并最初于1996年2月获得批准。当时的H.323是为IP网络提供传统电话通讯功能的协议,如今的H.323已成为包交换网络中部署最广泛的标准化语音及视频会议标准。
H.323中定义的协议包括如下几种。
H.225呼叫信令(Call Signaling):H.225呼叫信令通过在信令信道中交换H.225协议消息,于两个H.323端点之间建立连接。呼叫信令信道在两个H.323端点之间开放,或者在端点与H.323网守之间开放。
H.225 RAS(Registration、Admission、Status):RAS(注册、接入和状态)是作用于端点2(电话和网关)与网守之间的协议。端点与网守之间的通信采用RAS信令进行交互,以完成端点的注册、接入控制、带宽变更、状态及脱离过程。RAS消息是通过RAS信道来交换的,这个信令信道在任何其他信道建立以前,在端点和网守之间打开。
H.245控制信令(Control Signaling):H.245控制信令用于交换端到端(end-to-end)的控制消息,以此来控制H.323端点。这些控制消息包含以下相关信息。
能力交换(Capabilities exchange);
打开和关闭用于承载媒体流的逻辑信道;
流控制(Flow-control)消息;
一般命令和指示。
音频编解码器(Audio codec):音频编解码器会将麦克风捕获的源自于H.323终端的音频信号进行编码,将接收到的去往H.323终端扬声器的音频码进行解码。由于音频是H.323标准所提供的最基本的服务,因此所有H.323终端必须至少支持一种音频编解码器,如ITU-T G.711建议中指定的音频编解码类型(将音频编码为64kbit/s语音流)。另外还有一些可用的音频编解码建议,如G.722(64kbit/s、56kbit/s、48kbit/s)、G.723.1(5.3kbit/s、6.3kbit/s)、G.728(16kbit/s)、G.729(8kbit/s)。
视频编解码器(Video codec):视频编解码器会将摄像头捕获的源自于H.323终端的视频信号进行编码,将H.323终端视频显示器接收到的视频码进行解码。由于H.323将对于视频的支持定义为可选项,因此终端对于视频编解码器的支持也是可选的。然而,任何提供视频通信的H.323终端都必须支持视频编码和解码,如ITU-T H.261建议中定义的视频编解码类型。
在Cisco IP通信环境中,H.323被广泛应用于网关、网守和第三方H.323客户端,如视频终端。它们使用静态目的IP地址来建立设备之间的连接。
注释:
由于H.323是端到端协议,因此H.323网关并不像端点一样注册到CUCM(Cisco UCM)中,而是通过CUCM中配置的IP地址来确认通信的可行性。
MGCP是建立在集中式控制的架构中的一种基于客户端/服务器模型的呼叫控制协议。MGCP具有集中式网关管理的优势,并能够提供大规模可扩展的IP电话解决方案。所有的拨号计划都存储在呼叫代理上,由呼叫代理来控制网关上的语音接口并执行呼叫控制。MGCP网关在PSTN电话网和VoIP网络之间,为外部呼叫提供媒体转换。在Cisco网络中,通信管理器就是呼叫代理。
MGCP是一个基于文本的协议,被呼叫控制设备用来管理IP电话通讯网关。MGCP最初定义在RFC 2705中,并由RFC 3660进行更新,后被RFC 3435取代,并由RFC 3661进行更新。
使用MGCP协议,CUCM就能够获知并控制MGCP网关上的每一个语音接口,从而可以通过CUCM对拨号计划进行全面的控制。CUCM还可以基于每个接口控制其与PSTN、传统PBX、语音邮件系统及POTS电话的连接。MGCP的实施是通过在CUCM和网关之间以UDP 2427端口发送一系列明文命令完成的。
值得注意的是,若要一个MGCP网关与CUCM相互协作,MGCP就必须得到CUCM的支持。如果管理员是软件顾问(Software Advisor)的注册用户,那么他就可以使用该工具来确定产品的平台,以及Cisco IOS或Cisco Catalyst OS版本是否为CUCM兼容的MGCP网关版本。同时,也要确定CUCM的版本可以支持MGCP网关。
PRI/BRI回程特性
PRI(基群速率接口)和BRI(基本速率接口)回程特性(backhaul)是指信令在呼叫代理(如CUCM)与Cisco网关之间的内部切换,它是一个用来传输回程信令的独立信道。MGCP网关PRI回程使用TCP连接向呼叫代理转发PRI的第3层(Q.931)信令信息。
配置MGCP网关相对容易,因为呼叫代理维护所有的呼叫路由,因此也就不需要在网关上配置所有可能需要的dial peer(拨号对等体)。该环境的缺点是呼叫代理必须总是可用。在缺少CUCM的时候(例如WAN断开的这段时间内),Cisco MGCP网关可以使用SRST(可生存远程站点电话)和MGCP回退(fallback)特性,来允许H.323协议接替MGCP并提供本地呼叫路由。在这种情况下,为使H.323能够正常工作,必须在网关上配置dial peer。
SIP是由IETF(互联网工程任务组)MMUSIC(多方多媒体会话控制)工作小组开发的,用于取代H.323的协议。SIP的特性遵从IETF于1999年3月发布的RFC 2543、于2002年6月发布的RFC 3261以及于2003年12月发布的RFC 3665。由于SIP是基于万维网(World Wide Web)逻辑的普遍标准并且非常容易实施,因此被广泛应用于网关和代理服务器的部署上,在运营商网络中承载内部信令和终端客户信令。
SIP与H.323相似,是端到端(peer-to-peer)协议,并由UA(用户代理)初始化会话。与H.323不同的是,SIP使用基于ASCII文本的消息进行通信。因此SIP的实施和故障诊断非常容易。
由于SIP是端到端协议,因此CUCM并不控制SIP设备,SIP设备也不注册到CUCM中。与使用H.323网关的情形一样,只有当CUCM中有SIP设备的IP地址时,CUCM才能确认与SIP语音网关之间通信的可行性。
SCCP是Cisco私有协议,它用于CUCM和终端设备之间的通信。SCCP是基于客户端/服务器模型的协议,这也意味着,不论发生任何事件(如挂机、摘机、按键),SCCP客户端都会发送一个消息到CUCM。接着CUCM返回具体的指令,告诉设备如何处理这个事件。因此,每按一下电话按键都会触发CUCM和终端设备之间的数据流量。SCCP被广泛应用于Cisco IP电话。在CUCM网络中使用SCCP最主要的优势在于:SCCP是私有协议,可使用户快速获得协议的变更信息,并且快速添加新的特性和功能。
SCCP是用于VoIP网络的一个精简协议。使用SCCP的Cisco IP电话可以工作于H.323环境中。使用CUCM时,SCCP客户端可以与H.323终端进行交互。
上述4种VoIP信令协议想要实现的主要目标是相同的——在参与通话的VoIP终端之间建立双向的RTP(实时传输协议)流。但这些VoIP协议使用的技术架构以及实现这一目标的过程却是不一样的。
1.H.323
H.323被认为是一个端到端协议,尽管它并不是一个单独的协议,而更像是一组协议。H.323网关的配置相对复杂,因为需要直接在网关上定义拨号计划(dial plan)和路由模式(route pattern)。具有H.323功能的Cisco设备包括Cisco VG224模拟电话网关,以及Cisco 2600XM系列、2800系列、3700系列和3800系列路由器。
H.323协议负责CUCM集群(cluster)和H.323网关之间的所有信令。在这种环境中,ISDN(综合业务数字网)协议(Q.921和Q.931)仅应用于连接PSTN的ISDN链路上,如图1-2所示。
2.MGCP
MGCP协议基于客户端/服务器架构。该架构简化了网关的配置,因为拨号计划和路由模式直接定义在了集群中的CUCM服务器上。具有MGCP功能的Cisco设备包括Cisco VG224模拟电话网关,以及Cisco 2600XM系列、2800系列、3700系列和3800系列路由器。非IOS的MGCP网关包括Cisco Catalyst 6608-E1和Catalyst 6608-T1模块。
MGCP用于管理网关。在这种环境中,所有ISDN第3层信息都会通过回程信道,由网关转发到CUCM服务器上,唯有ISDN第2层信息(Q.921)会在网关上终结,如图1-3所示。
3.SIP
与H.323协议相同,SIP是端到端协议。网关所需要的配置相对复杂,因为需要直接在网关上定义拨号计划和路由模式。具有SIP功能的Cisco设备包括Cisco 2800系列和3800系列路由器。
SIP协议负责CUCM集群和网关之间的所有信令。在这种环境中,ISDN协议(Q.921和Q.931)仅应用于连接PSTN的ISDN链路上,如图1-4所示。
4.SCCP
SCCP基于客户端/服务器架构,如图1-5所示。该架构简化了SCCP设备的配置,如Cisco IP电话、Cisco ATA 180系列和VG200系列FXS网关。
SCCP可以在Cisco VG224和VG248模拟电话网关上使用。ATA(模拟电话适配器)开启了CUCM和模拟电话网关之间的通信。接着,网关使用标准的模拟信令与连接在ATA FXS接口的模拟设备进行通信。Cisco IOS语音网关的最新版本,如Cisco 2800系列路由器,也支持SCCP控制的FXS(外部交换站)接口。
传统电话网会为每路语音流分配专用的带宽,确保语音在穿越网络时不可能产生过大的延迟。这是因为TDM环境中带宽是确定的,并且不存在可变的延迟(也就是抖动)。有鉴于此,在数据网中配置语音传输,就需要网络为语音服务提供以下保障:低延迟、最小抖动和最小丢包率。带宽的计算必须以使用的编解码类型和并发连接数为依据,并且必须配置QoS来减少抖动和语音数据包丢包率。PSTN可提供99.999%可用性(也就是5个9的可用性)。为了达到PSTN保障的可用性,IP网络的设计必须考虑冗余和故障切换(failover)机制。最后,必须建立安全策略,以保障网络的稳定性和语音流的安全性。
表1-1列举了在拥塞网络中部署VoIP的相关问题及其解决方案。
VoIP网络中,实际语音数据(谈话)是利用RTP和RTCP(RTP控制协议)在传输媒介中传输的。RTP定义了在Internet中传输的音频和视频的标准化数据包格式。RTCP定义了为单独的RTP流传递控制信息的方式。cRTP(压缩RTP)和sRTP(安全RTP)则增强了RTP的性能。
数据报协议,如UDP,将媒体流当作一系列小数据包发送。这种发送方式既简单又有效。然而,在传输过程中数据包有可能丢失或遭到损坏。根据协议和数据包丢失程度,客户可以使用错误更正技术恢复丢失的数据,如插入数据。但是,这也有可能造成数据丢失。RTP和RTCP的设计初衷是为了在网络中传输流媒体,并且它们都使用UDP协议。
RTP定义了在Internet中传输的音频和视频的标准化数据包格式。它由IETF音频视频传输工作组(AVT)开发,并于1996年首次发布在RFC 1889中,后来,于2003年被RFC 3550取代。
RTP提供了端到端(end-to-end)的网络传输功能,大大扩展了具有实时传输需要的应用,如音频和视频。这些功能包括负载类型识别、循序编号、时间戳、传送监测。图1-6显示了RTP在VoIP网络中扮演的角色。注意,RTP通信直接建立在语音终端之间,而呼叫建立协议(也就是本例中的H.225和H.245)则用来实现语音网关之间的通信。
RTP通常运行于UDP之上,并且使用UDP的多路复用和校验服务。RTP通信并没有标准的TCP或UDP端口,它需要遵循的唯一标准是通过偶数号端口建立UDP通信,通过下一个奇数号端口建立RTCP通信。尽管没有任何标准为RTP分配UDP端口号范围,在Cisco环境中,RTP通常配置为使用UDP 16384~32767端口。
RTP能够承载任意实时数据,如交互的语音或视频。由于RTP使用动态的端口号范围,因此RTP在穿越防火墙时有一定的困难。
尽管RTP常被用于单播会话,但它主要是为组播会话设计的。除了发送端和接收端角色,RTP还为组播定义了转换器(translator)和混合器(mixer)。
RTP经常与RTSP(实时流协议)一起用于流媒体系统中,也可与H.323或SIP一起用于视频会议和一键通系统(push-to-talk systems)中。这两个特征为RTP在VoIP领域的发展奠定了技术基础。使用RTP的应用对丢包并不敏感,但对延迟非常敏感,因此对于此类应用来说,UDP是优于TCP的选择。
RTP是VoIP的一个关键组件,因为它能够使接收端设备在为用户播放接收到的语音信息之前,将语音数据包重组并重新调整播放时间。RTP头部包含时间戳和序列号,这可以使接收端设备使用数据包同步机制来缓存数据包并以此消除抖动,从而还原流畅的语音流。RTP仅将序列号用于数据包重组,而并不用于数据包丢失时的重传。
RTCP是RTP的姐妹协议(sister protocol),最初定义在RFC 1889中,后被RFC 3550取代。RTCP为RTP流提供带外控制信息,它本身并不传递任何数据,但与RTP一起协作传递和打包多媒体数据。尽管RTCP周期性地在多媒体会话参与者之间传输控制数据,但其主要功能是为RTP所提供的QoS进行反馈。
RTCP用于QoS报告,它可以收集媒体连接的状态和信息,如传输字节数、传输数据包数、丢失数据包数、抖动、反馈、往返延迟。实时应用能够依靠这些信息来提升服务质量,也会使用低压缩编码来代替高压缩编码。
RTCP包有几种类型:发送方报告的TRCP包、接收方报告的TRCP包、源描述RTCP包、Goodbye RTCP包、定义应用程序的RTCP包。
RTCP可为当前网络状况提供以下反馈。
RTCP在RTP会话中为主机引入一个机制,用来交换监测和控制会话的信息。RTCP监测以下元素的质量,如数据包计数、丢失数据包数、延迟、抖动间隔。RTCP传输数据包所占用带宽的取值为整个会话所占带宽的一个百分比,但传输数据包的速率是固定的,最慢为5秒一个数据包。
RTP标准规定:NTP(网络时间协议)时间戳要以同步的时钟为基础,相应的RTP时间戳是根据数据包抽样随机生成的。由数据的发送端将NTP和RTP信息添入RTCP数据包中。
RTCP与RTP使用不同的数据流。为语音流分配UDP端口时,RTP被分给一个偶数号端口,RTCP则被分给下一个奇数号端口。每路语音呼叫都会被分配4个端口:发送方向上的RTP和RTCP以及接收方向上的RTP和RTCP。
1.1.15 压缩RTP
RTP包括数据部分和包头部分,RTP的数据部分是瘦协议(thin protocol),它为应用程序的实时特性提供支持,如不间断的媒体,其中支持的手段包括时间重组、丢包检测、内容识别等。RTP的包头部分则要比数据部分大得多,它是由IP段(segment)、UDP段及RTP段所组成。因此,考虑到IP/UDP/RTP各段组合的总字节数,在不压缩IP/UDP/RTP头部的情况下就发送数据包显然是效率很低的。图1-7所示的案例中,在相对低速的WAN链路上(如T1链路)使用了RTP头部压缩(cTRP),由于压缩IP/UDP/RTP头部释放了带宽,因此该方法非常适用于相对低速的链路。
由于IP包头部分由IP段、UDP段及RTP段组成,因此最小20字节的IP段,加上8字节的UDP段,再加上12字节的RTP段,组成了40字节的IP/UDP/RTP头部。RTP数据包有大约20~150字节的负载。
RTP头部压缩特性将RTP数据包中的IP/UDP/RTP头部由40字节压缩为大约2~4字节。
cRTP是为减少IP、UDP和RTP包头的大小而开发的,它定义在RFC 2508、2509和 3545中。
RFC 2508:为低速串行链路压缩IP/UDP/RTP头部。
RFC 2509:PPP链路上的IP头压缩。
RFC 3545:用于高延迟、数据包丢失和重排序链路的增强型压缩RTP(ECRTP)。
RFC 2509为快速可靠的点到点(point-to-point)链路所设计。在次优环境中,也就是有可能出现长时间延迟、数据包丢失及数据包失序的环境中,cRTP不能很好地为VoIP的应用提供服务。这时出现了另一种选择——ECRTP,为解决这种问题,ECRTP被定义在了后来的Internet草案中。
RTP包头压缩技术可使用在以帧中继、HDLC或PPP封装的串行链路环境中,同时也适用于ISDN接口。
使用cRTP的理由与场合
从严格的技术角度看来,cRTP并不对包头进行压缩。在VoIP流中,每个数据包的头部都包含了大量重复且无用的信息,因此cRTP实际上是通过不发送这些冗余信息,来达到“压缩”的目的。举例来说,VoIP呼叫建立完成后,每个数据包都有相同的源和目的IP地址,都有相同的源和目的UDP端口号,并且都有相同的RTP负载类型。cRTP通过以下方法,在不丢失任何有用信息的前提下,实现了可观的带宽节省:在VoIP呼叫两端的网关中缓存那些重复的信息,发送端网关发送精简的包头,之后接收端网关将这些缓存的信息与精简的包头进行重组,得到完整的数据包头。
RTP头部压缩也减少了多媒体RTP流量的开销。这种对多媒体RTP流量开销的减少,使得延迟也有相应的降低。尤其当RTP负载很小的时候(如20~50字节的音频负载),RTP头部压缩非常有用。
RTP头部压缩技术可以应用在需要确保传输带宽的WAN接口上,也可以应用在需要传输大量RTP流量的WAN接口上。RTP头部压缩可以在提供按需和交互的媒体服务时使用,如Internet电话通讯。无论Internet中的实时电话会议有多少参与者,RTP头部压缩均可为其提供支持,其中包括支持网关(如音频桥和视频桥)源识别和支持组播协议转换器(组播转换为单播)。RTP头部压缩既有利于电话语音服务,也有利于低速链路上的MBONE(组播骨干网)应用。
注释:
不推荐在任何高速接口(也就是高于T1速率的接口)使用RTP头部压缩技术,因为RTP头部压缩带来的带宽节省,会被路由器CPU利用率的增加所抵消。
1.1.16 安全RTP
2004年3月,sRTP(安全RTP)首次由IETF发布在RFC 3711中。它的设计初衷是为单播和组播应用中的RTP数据提供加密、认证、消息完整性及重放保护功能。
sRTP也有一个姐妹协议,被称为sRTCP(安全RTCP)。sRTCP为RTCP所提供的安全相关特性,与sRTP为RTP提供的安全相关特性相同。sRTP可以与cRTP结合使用。图1-8演示了在设备(图中的Cisco IP电话)之间传输的sRTP流,其中设备有能力发送和接收sRTP流量。
1.流加密
sRTP标准仅使用一种加密算法——AES3(高级加密标准),它可以工作于以下两种密码模式,可以将原始的AES块密码变成流密码。
SIC Mode(Segmented Integer Counter Mode):AES Counter(计数器)模式能够随机对数据块进行加密,这对于不可靠网络中的RTP流量及其重要,因为这种环境有可能造成数据包丢失。该模式是默认的AES加密算法,使用默认的会话加密密钥长度(128bit)和默认的会话salt密钥长度(112bit)。
f8-mode:该模式是AES OFB(输出反馈)模式的变体。它默认的加密密钥和salt密钥长度值与AES计数器模式相同。
除了AES加密算法以外,sRTP还允许用户禁用加密,也就是使用所谓的“NULL加密”。NULL加密算法其实并不执行任何加密,这种加密算法的函数就像是全“0”的密钥流,并且它将输入的会话流不加任何修改地复制到输出的会话流中。
注释:
NULL加密算法被强制安装到所有遵从sRTP的系统中。这样就可以在不要求sRTP提供机密性保护的情况下,确保系统能够使用sRTP的其他特性(如认证和完整性)。
由于加密算法自身并不能确保消息完整性,攻击者可以肆意伪造数据,或者至少可以重放以前传输过的数据,因此sRTP为确保数据的完整性并防止重放攻击,采取了以下措施。
2.认证和完整性
HMAC-SHA1算法(见RFC 2104)用来对消息进行认证并提供完整性保护。该算法可以生成160bit的计算结果,并截取前80bit作为认证标记(authentication tag)附加在数据包中。HMAC的计算以数据包负载和数据包头部的信息为基础,包括数据包序列号。
3.重放保护
为阻止重放攻击,接收端必须维护所有接收到的消息的索引,将每个最新接收到的消息的索引与其进行对比,并仅接收以前没有收到过的消息。这个功能仅当启用了完整性保护(保护消息索引不被篡改)时才能够正常工作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。