本节书摘来自异步社区《VoIP技术构架(第2版·修订版)》一书中的第1章,第1.5节,作者【美】Jonathan Davidson , James Peters , Manoj Bhatia , Satish Kalidindi,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.5 分组电话网络的驱动力
VoIP技术构架(第2版·修订版)
在上一节里我们讨论了PSTN内竞争的政策驱动力。这一节里我们将主要讲述为什么运营商会选择开发分组交换电话网络来替代传统的电路交换网络。
D/V/V的集成并不仅仅改变架构。D/V/V的集成不仅使许多新的功能可以快速地开发,而且使成千上万的独立软件开发商(Independent Software Vendor,ISV)都可以进行开发。D/V/V的集成就像由大型机开发向客户/服务器方式转变一样。只有有限的开发商可以为大型机开发应用,而在分布式系统上,大量的开发商都可以开发应用。
图1-12列出了电路交换模型是怎样被划分成为新模型的。在新模型中,它被划分成了有开放式标准的3层。一个分组交换架构将承载真实的语音(媒体),呼叫控制层从媒体层分离出来,开放的应用编程接口(Application Programming Interface,API)使新的服务可以由独立软件开发商(ISV)开发。
图1-12简单对比了两者的区别。为了进一步讨论这些变化,我们需要更深地了解3层结构的每一层。
1.5.1 基于标准的分组架构层
在新的模型中,分组交换架构代替了电路交换架构。这个架构最可能采用IP,虽然下层使用ATM上层使用IP也是可行的。IP对分组架构如此有吸引力主要是因为它无处不在的特性和它已经是应用接口的既成事实。这就意味着人们无需了解IP上运行的软件应用。IP只是将数据从一端传到另一端,而对传输什么没有兴趣。
实时传输协议(Real-time Transport Protocol,RTP)被用来在用户数据报协议(User Datagram Protocol,UDP)/IP分组头上提供时间戳(timestamping)。在UDP和IP上运行的RTP通常被记作RTP/UDP/ IP。RTP目前是在IP网络上承载实时流量的基石(比如微软的网络会议就是使用RTP承载音频和视频通信)。到目前为止,所有的VoIP信令协议都是采用RTP/UDP/IP作为他们的语音流量的传输机制。RTP数据包流通常被称作RTP流(RTP streams)。这个术语被用来描述音频路径。
在IP网络中,分组丢失是很常见的事情。实际上,TCP/IP协议就是通过分组丢失来控制数据传输的。在TCP/IP中,如果分组丢失的话,就重新传送。而在大多数实时的应用中,因为信息的时间性问题,重传还不如丢弃。
注释:
当为拥挤(congested)IP网络提供优先级时,IP网络必须知道传输的是什么应用。
ITU-T 建议在一个方向的延时不要超过150ms。在思科的VoIP网络中,单向延迟大约是120ms(目前,在两个使用G.729的思科网关上120ms的延时为65ms到85ms)。如果接收方要求一个包必须重传,那么延时会太大而造成通话的间隙。
注释:
RTP流也通常被称为媒体流(media stream)。这样,您就可以使用IP与UDP和RTP一起代替64kbit/s的传统语音电路。
RTP有一个域表明包被传送的实际时间(与整个RTP流有关)。这个信息被称为RTP时间戳(RTP timestamps),设备使用这个信息来决定中止/接收音频流。接收设备通过RTP时间戳来决定一个包应当到达的时间,包是否是有序到达和在应当到达时包是否到达。所有这些信息帮助接收设备调整自己的设置以对应潜在的网络问题,如时延、抖动和分组丢失。
注释:
抖动(Jitter)是指包到达间隔时间的不同,或者实际接收到包的时间与预期要接收到包的时间之间的差异。
IP的一个主要优点是合理建设的IP网络是可以自愈的(self-healing)。这就意味着当使用动态路由协议和有多个可能的目的地存在时,数据可以根据最佳路由传送。这也就意味着您的声音(在IP中已被分组)有可能通过多条线路传送到一个目的地。目前,您无法在两个目的地之间指定一条路径。每个分组都在发送者和接收者之间选择最佳路径。
因为包交换层(packet layer)基于开放的标准使大量的厂商可以共同提供解决方案,这些开放的标准也增加了本层的竞争。ITU-T,因特网工程任务组(Internet Engineering Task Force,IETF),欧洲电信标准组织(European Telecommunication Standards Institute,ETSI),与电子工业协会-电信工业联合会(EIA-TIA)是一些标准化组织。
而拥有一个基于标准的分组交换架构的主要因素是在呼叫控制层有开放的标准。在图1-12中,这些开放的标准由SIP、H.323、SGCP、MGCP、MEGACO等协议提供。这些协议拥有开放的定义接口且已经被广泛地部署在分组交换架构中。呼叫控制协议的一个工作就是告诉RTP流在哪里开始又在哪里结束。呼叫控制是通过IP地址和电话编码计划的转换来完成这项任务。
1.5.2 开放呼叫控制层
简单来说,呼叫控制就是为一个呼叫选择路由来促成呼叫的过程。在当今的PSTN网络上,这些决定由业务控制点(Service Control Point,SCP)决定,由SS7承载。第7章讨论了不同VoIP协议的工作方式以及是怎样解决不同的网络设计问题的。
在新模型中将承载(RTP流)从呼叫控制层中分离出来,并且将呼叫控制层从业务中分离出来。在新模型中使用的是基于标准的协议,确认这一点很有必要。数据组网因为在一个网络中可以同时存在多种协议而显得很独特。您可以根据具体的网络需求来使用这些协议。
比如有许多不同的IP路由协议,而且每一种都为特定的网络设计。这些协议包括路由信息协议(Router Information Protocol,RIP)、内部网关路由协议(Interior Gateway Routing Protocol,IGRP)、增强的内部网关路由协议(Enhanced Interior Gateway Routing Protocol,EIGRP)、中间系统对中间系统(Intermediary System to Intermediary System,IS-IS)协议、开放最短路径优先(Open Shortest Path First,OSPF)协议和外部边界网关协议(Border Gateway Protocol,BGP)。每种协议都解决一个类似的问题——路由信息的更新。每种路由问题都有些不同,因此需要不同的工具解决。在这种情况下,这些工具就是解决每个问题的路由协议。
对于VoIP的呼叫控制协议也是一样的。他们都解决一个类似的问题——电话号码到IP地址的转换。但因为目的的细微差异,他们可能都被使用。
许多VoIP呼叫控制协议正在被开发。最值得一提的是SIP,它将继续掀起IP通信的风暴。在最近几年里,基于SIP的架构为端点提供了更多的智能并且在提供VoIP服务上得到了充分的发展。它们带来了网络上的一系列变化,通过使用会话控制器(session controller)与使用H.323、MGCP和H.248/MEGACO协议的软交换(softswitch)来集中呼叫控制。每种协议都是为了解决某个特定的问题和为特定的目的服务而开发的。简单地说,那就是许多协议都将被使用。我们将拥有一个解决不同网络拓扑需求的混合型网络。
1.5.3 VoIP呼叫控制协议
到写这本书为止,主要的VoIP呼叫控制协议有SIP、H.323、MGCP与H.248/ MEGACO。另一种非常流行的网络电话的拓展是点对点(Peer to Peer,P2P)IP电话。Skype采用这种模型,但还没有形成标准。目前的标准协议有如下几种。
MGCP来源于SGCP和1998年开始开发的IPDC,通过在集中平台(或网关控制器)上添加智能呼叫控制以减少末端(网关)的费用。第13章将详细论述这些协议。
ITU的 H.248,也称作MEGACO协议,是一个有关媒体网关控制的国际标准。它是由ITU 与IETF联合推出的。它主要被用来在网关上将呼叫控制逻辑从媒体处理逻辑中分离出来。用于负责呼叫控制功能的设备称为媒体网关控制器(Media Gateway Controller,MGC),而用来负责媒体流量的设备称为媒体网关(Media Gateway)。
SIP是一种基于媒体的协议。它可以使末端设备(端点或网关)更智能,而且使很多增强业务可以在呼叫控制层完成。第12章覆盖了SIP的详细信息。
注释:
点对点VoIP才刚刚起步,已被积极地推荐为VoIP技术的另一种选择。P2P组网利用位于因特网边缘的功能相对强大的计算机(个人计算机),使这些计算机不单单完成客户端任务。除了收发E-mail和浏览网页外,现代PC足够强大的架构还可以完成音频/视频会议的任务。对于许多类型的应用来讲,现代PC可以同时充当客户端和服务器端(一个对等体)。微软和Skype是在P2P网络上测试部署VoIP的两个主要厂商。
为了简单说明这些呼叫控制协议的区别,让我们来看一下他们是怎样与端点通信的。
1.H.323
H.323是ITU-T定义多媒体信息如何在分组交换网络上承载的建议书。H.323使用一些已有的标准(如Q.931)来实现这个目标。H.323是一个相当复杂的协议,它不是为了简化应用开发而建立的,而是为了在“不可靠的”的数据网络传输多媒体应用而建立的。语音只是H.323中的一个应用。在这个领域的大部分的初始工作都集中在多媒体应用上,视频和数据共享这个协议的一大部分内容。
为了使应用适用H.323,需要做大量的工作。比如完成一个呼叫需要另一个规范(H.450.2)。而SGCP与MGCP只需要给网关或终端设备一个简单的命令modify connection(MDCX),就可以完成呼叫。这个简单例子也说明了构造协议的不同方式:一种是为完成简单应用(MGCP);另一种是为了更复杂的应用,但又有它的局限性(H.323)。
为了更进一步地演示H.323的复杂性,图1-13列出了一个在两个H.323终端设备之间通话。
图1-13演示了最基本的H.323通话流程。在大多数情况下,因为网守的参与,可能会需要更多的步骤。
让我们一步一步地来看这个通话流程,以更好地解释图1-13。
1.终端设备A通过TCP端口1720向终端设备B发送一个建立(setup)消息。
2.终端设备B发送一个信号(alerting)消息和一个开始H.245协商的端口号来响应建立消息。
3.H.245协商包含编码类型(G.729和G.723.1),RTP流的端口号以及终端设备所拥有的其他功能。
4.UDP流的逻辑信道被协商、打开和确认。
5.语音在RTP流上承载。
6.在两个终端设备上均采用实时传输控制协议传输RTP流。
这个呼叫流程基于H.323 v1。H.323 v2可以使H.245协商在H.225建立消息中完成。这被称作快速启动(fast-start),它减少了建立H.323呼叫所需要的来回协商数,但它并没有简化协议。有关H.323的更多分析见第11章。
2.MGCP(由SGCP与IPDC发展而来)
SGCP与MGCP为了使一个中心设备,被称为媒体网关控制器(Media Gateway Controller,MGC)或软交换机(softswitch)来控制终端设备或媒体网关(Media Gateway,MG)而设计的。您可以通过MGC的标准的API来开发应用以提供附加功能(像呼叫等待和CLASS功能)及应用。
思科在这个技术上有两个知名设备:Cisco PGW2200 与Cisco BTS10200。Cisco PGW2200是一个呼叫代理,它包含思科媒体网关控制器(Media Gateway Controller,MGC)软件、思科信令链路终端(Signaling Link Terminals,SLT)、Cisco PGW2200组件IP互联的局域网交换机等。在这个情景下,整个IP网络就像一个大的虚拟交换机,而PGW控制了所有的媒体网关(MG)。
图1-14展示了一个运行MGCP虚拟交换机的典型网络设计。
图1-14也展示了已有的PSTN和企业网络是怎样通过连接到网关或终端设备来访问新的分组网络的。这个分组网关从呼叫代理(call agent,PGW2200)处得到指示。呼叫代理连接到SS7网络和智能网可以通知网关或终端设备怎样和什么时候建立呼叫。
要想更深地理解图1-14,我们还需要讨论其他组件。现有的PSTN/SS7网络是连接到交换传输点(Switching Transfer Point,STP)上的,而STP也连接到MGC与呼叫代理上。这个连接是信令(SS7)链路的终点,称作信令链路终端(Signaling Link Terminal,SLT)。SLT为PGW提供SS7接口,从而形成一个任何MGC提供SS7接口的MGC一个完整的组件。
PSTN/SS7网络也连接到一个MG上,这条链路是一条没有信号的中继线,也称作机间中继线(Inter-Machine Trunk)或 IMT. 64kbit/s的语音中继线在MG处被转换为分组而运行在IP网上。
MGC与呼叫代理(在我们这里就是PGW200)也是互相通信的。然而还没有标准化组织为其制订通用协议。在目前的行业情况下,SIP的各种版本或在IP上的综合业务数字网用户部分(ISDN User Part,ISUP)(在IP上运营的SS7的一部分)是目前的主流协议。MGC有一个到智能网的连接(我们在本章的前一部分已经讨论过)来提供CLASS业务。MGC接收来自SS7网络的信号,告诉MG什么时候和哪个MG建立IP连接。
PGW2200在这种情况下是一个典型的MGC,通过称作E-ISUP的ISUP的扩展来与其他PGW通信。它同样从B信道中分离出D信道,然后将D信道通过IP传送给MGC。这个机制称为信令回程(signaling backhaul),它是通过由sigtran开发的一系列协议完成的。SIGTRAN (信令传输,signaling transport)是IETF标准化组织中的一个工作小组。这些协议阐明了在IP网络上传输PSTN信令的功能和性能要求。SIGTRAN协助区分什么信令协议怎样在IP点与点之间进行传输、转换和/或终结。这些点包括信令网关(Signaling Gateway,SG)、媒体网关控制器(Media Gateway Controller,MGC)、信令端点(Signaling End Point,SEP)和基于IP的数据库或者业务控制点(Service Control Point,IP-SCP)。
SIP
SIP在RFC 3261被很好的解释:SIP是一个应用层控制(信令)协议,用于建立、修改和终止一个或多个参与者的会话。然而,IETF委员会开发了许多附加的RFC,为核心RFC提供新的功能,使SIP成为一个在VoIP中的会话控制协议,同时也是分组多媒体(PacketCable Multimedia,PCMM)和无线及基于集团电话的网络的会话控制协议。
SIP邀请被用来创建会话,承载允许所有参与者同意一组兼容的媒体类型的会话描述。SIP使用代理服务器来帮助路由请求到用户目前所在的位置、认证和授权用户,实施提供商的呼叫选路策略以及为用户提供相关功能。SIP也提供注册功能,以允许用户上传他们现在的位置供代理服务器使用。SIP可以运行在多种传输协议之上。
尽管大多数的厂商及用户都倾向于在一个混合的模型中将SIP与H.323或MGCP联合使用以允许网络中的其他各点对等来部署增强业务,但目前有多种SIP实施正在运行中。
更详细的SIP信息请参见第12章。
H.248/MEGACO
媒体网关控制协议(Media Gateway Control Protocol,MEGACO)是IETF与ITU-T研究组16联合工作的结果。此协议的定义参见ITU-T建议书H.248。
MGCP/MEGACO打破了H.323的网守模型,将信令协议从网关中移出,并添加到媒体网关控制器(Media Gateway Controller,MGC)或软交换机(softswitch)中。MGC或软交换机控制多个“媒体网关(media gateway)”,也就是将H.323架构分解到与SS7相对等的部分,从而使信令智能化。
在MGCP/MEGACO架构中,这些智能部分没有与媒体捆绑在一起。这是一个主从协议,其中主设备享有完全控制权,而从设备只是执行命令。主设备是媒体网关控制器或软交换机(或呼叫代理),从设备是媒体网关(这可能是VoIP网关、数字用户线接入复用设备[Digital Subscriber Line Access Multiplexer,DSLAM]、多协议标记交换[Multiprotocol Label Switching,MPLS]路由器、IP电话等)。这与SIP以及如Skype的其他模型的对等的特性正好相反,在那些模型中,一个客户端可以同另一个客户端直接建立会话。
MEGACO指示媒体网关将从外面分组网络上来的流量连接到一个分组网上去,如RTP的包流。软交换机下达如发送接收来自其他地址的媒体,产生音调、修改配置等命令。然而,整个体系结构要求SIP作为媒体网关控制器(MGC)之间的通信协议。MEGACO主要有以下几部分构成:
信令网关 (Signaling Gateway,SG);
媒体网关控制(Media Gateway Control,MGC);
媒体网关(Media Gateway,MG)。
1.5.4 开放业务应用层
在任何网络协议中,最有趣的层是应用层。没有好的应用,网络架构的建设也就失去了意义。当转移到一个新的架构上去时,没有必要把老架构上的所有功能都转移过去。只要转移用户需要的功能或应用就可以了。
当建设一个拥有分组包层到呼叫控制层的开放接口,呼叫控制层到应用层的开放接口的网络时,设备提供商不再必须开发应用。他们只需书写标准的应用程序接口(API),开放整个新的架构就可以了。当一个新的分组架构建设完成后,许多新的应用都可以开发。
已有的应用,如企业网络的呼叫中心、标准的PSTN应用如呼叫等待和呼叫转移,都必须在最终用户没有意识到的情况下转移到新的架构上面来。当这些已有的应用转移过来后,成千上万的新的增强应用就可以定义开发了。这些应用包括(但不局限于)因特网呼叫等待(Internet call waiting)、一键通(push to talk)、发现—跟踪(find me-follow me)以及统一消息(unified messaging)等。这些应用将在第6章中详细讨论。