代理(Proxy)和背靠背用户代理(B2BUA)

document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text"); if (text && text.length > 300) { text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href; clipboardData.setData("text", text); } }, 100); } } function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&u=' + escape(d.location.href) + '&c=' + escape(t), 'keyit', 'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); }

1. 什么是Proxy模式?html

按照RFC3261中的定义,Proxy服务器是一个中间的实体,它自己即做为客户端也做为服务端,为其余客户端提供请求的转发服务。一个 Proxy服务器首先提供的是路由服务,也就是说保证请求被发到更加”靠近”目标用户的地方。Proxy服务器在施行某些强制政策时也有用(好比,确认一 个用户是否容许创建一个呼叫等)。而一个Proxy服务器翻译,若是有须要的话在转发消息前会重写该请求消息。前端

2. 什么是B2BUA?安全

按照RFC3261中的定义,背对背的用户代理(B2BUA)是一个逻辑实体,它就像用户代理服务器(UAS)同样接收和处理请求。为了决定该如何应答一个请求,B2BUA就像UAC同样工做,而且发出请求。可是它不像代理服务器(proxy),它维持对话状态,而且参与已经创建的对话中的每个请求。因为它是直接的UAC和UAS的串连,因此,不须要对他有额外的定义。 服务器

   

3.Proxy模式和B2BUA模式有什么不一样?各有什么优缺点?网络

最多见的Proxy服务器仅仅完成两个UA的链接。而B2BUA服务器则是一个智能的实体,更为强大,它有一些Proxy没法作到的功能,它更灵活,并渐渐取代通常的Proxy服务器而成为SIP服务器的主流。框架

根据sip-router.org 的描述,Proxy模式和B2BUA的最大区别是前者是事物有状态(transaction-stateful),然后者是呼叫有状态(call stateful)。 也就是说,代理服务器只在SIP事务交互时(会话的开始和终结)保持状态,而并非在整个呼叫中维护状态。而B2BUA则在两个或多个UA经过某种手段互 联时起做用,B2BUA在整个呼叫中会维护一些状态(一般是内存中的一些结构)。B2BUA与SIP代理服务器不一样,B2BUA能够接收呼叫,并能对其进 行修改,以其它形式表明发起呼叫的UA向终端目标发起呼叫,并能充当呼叫双方的媒体协商表明或对其进行监控管理。B2BUA能够对通过它的来自于私网的呼 叫进行处理完成NAT的穿越。为适应全部类型NAT的环境,B2BUA也须要作媒体流的中介。这就让B2BUA有了一些Proxy没有的特性,例 如,B2BUA能够终结一个已经存在的呼叫,而Proxy不行。在B2BUA中,咱们能够提供点对点呼叫的增值业务能力或者多点呼叫控制能力,而其余的 SIP服务器,好比Proxy就不能提供如此复杂的增值业务。而全部这一切的背后都是由B2BUA有一个宽泛的定义所致,这使得它有无限的能力去扩展(当 然,这也是争议所在)。咱们能够看下边的这个结构图:模块化

dRAD 1(1)

咱们举几个B2BUA独有支持的业务:ui

a.第三方呼叫控制机(3PCC)spa

dRAD 2(1)

这个业务的特色是一个实体(每每是一个控制器)为两个或多个对端创建链接,经常使用于运营商业务和电话会议。一些典型的应用是:在线计费、QoS、资源 优先分配,呼叫转移、点击拨号、呼叫中阶段通知送达等。因为例如Proxy服务器都是维护一个被动的非呼叫有状态是没法发起这样的业务的,这就成了 B2BUA的专利。用B2BUA能够自动的触发3PCC动做,好比在一个在线计费系统中,根据余额来挂掉一个呼叫。固然,这些也能够经过一个远程管理控制 (remote administrative control (OSS))系统来完成,好比,去邀请多方加入一个多点会议会话中。.net

b.互操做性的网络互连功能(IWF

IWF(Inter-working Functions )是为了解决SIP强大的扩展性所带来的诟病,它对一个强大的SIP服务器有比较宽泛的定义,来完成对不一样协议实现或者支持不一样能力的SIP客户端的互连。当它被使用在客户端和网络时,它实际就是一种接入设备。

dRAD 3(1)

例如:

  • 经过添加或者删除IMS中对于链接ISM网络很重要的SIP协议扩展(AKA P-Headers) 来对SIP终端和IMS 网络进行链接。
  • 链接两个不一样会话计时器设置的客户端。
  • 经过在两个不一样控制会话类型中进行转述来链接有不一样媒体能力和不一样SDP消息的两个终端。
  • 来支持不一样的网络类型(v4,v6)、和不一样的传输类型,TCP/UDP/SCTP/TLS

c.多点呼叫管理

这个场景中多个CPE(CPE是“CustomerPremiseEquipment”的缩写,直译为“用户前端设备”)与B2BUA相连,由B2BUA为全部CPE提供业务。

d.融入IMS网络

在3GPP的IMS标准中,IMS的大量逻辑实体都是定义为B2BUA模式的,这样作的缘由是增值业务每每都是呼叫有状态的,而这个要求远远超过了 基本呼叫代理所能及的范围。在B2BUA应用服务器之上的应用能够充分的完成SIP UA、SIP注册服务器、SIP代理服务器等角色。

咱们在给出是一些B2BUA的应用例子:

  • 在线计费、预付费功能
  • 支持资源优先权和QoS的服务器
  • 多点会议服务器
  • IVR服务器
  • PBX应用和软交换
  • 应用层网关
  • 防火墙/NAT穿越应用
  • 私有服务器
  • 第三方呼叫控制应用
  • 业务生成环境运行时引擎
  • 会话边界控制器
  • IMS中的S-CSCF\P-CSCF\I-CSCF
  • SIP网间互联网关
  • 安全网关
  • 语音呼叫连续性业务

另外一方面,B2BUA面临着诸多挑战,好比产品上市周期、一致性、互操做性,为私有业务提供定制,支持高可用性和冗余等等。尤为是在可伸缩性上很容 易成为瓶颈。一个健壮的B2BUA框架应该有模块化的程序设计结构以应对增加的灵活性、抽象性需求。对于通讯双方来讲,呼叫控制信令和媒体流在传输过程当中 均增长了一跳,随着用户的增长,B2BUA将成为系统瓶颈。

咱们举一个B2BUA是如何实现PBX的例子, B2BUA担当两台UA(用户代理服务器)功能,其中一台模拟接收器,一台模拟发送器,两者之间安装有控制逻辑。在这种控制逻辑下,B2BUA能控制 SIP数据流,将其转换为PSTN信令模式或厂商的专用控制协议方式,这是大多数厂商采用的PBX方式.另一些SIP厂商采用的是纯SIP代理方式,它 不一样于一般意义上的代理服务器。运用SIP代理服务,SIP信令流直接在两UA间传输。毫无疑问,完善的SIP网络缺乏不了B2BUA功能,由于要链接到 PSTN。但若是要在VoIP网关的核心实现B2BUA功能,则难度大多了。事实上,PBX厂商提供B2BUA功能实现成本要比SIP代理高得多,部分原 因是体系结构实现难。因为SIP代理在呼叫创建阶段不直接处理信令流,于是保持有关会话的状态信息要比B2BUA方式少。并且,SIP代理的支撑硬件也比 B2BUA方式少,在同一平台易于扩展支持更多UA。并且,企业电话运营所需的核心功能基于PBX实现,而不是B2BUA,这进一步增长了成本。

另外,SIP代理方式在安全性与可靠性方面也略胜一筹。因为B2BUA会重写数据包核心,存在潜在弱点,有受攻击可能;而SIP代理在处理进程中仅 暴露SIP标题。B2BUA操做失败的可能性也高于SIP代理方式,从而会影响到全部呼叫经过;SIP代理失败仅影响新到呼叫,现行呼叫或已到达目标并为 设备所俘获的呼叫并不受影响。

最后,SIP代理服务器比B2BUA适应性更强。因为B2BUA会中断媒体会话,若是B2BUA不支持,UA功能就很难发挥。这意味着,若是UA功 能实现与B2BUA各异,一家厂商的电话就有可能没法与另外一厂商的协同工做。运用SIP代理服务器就不同了,UA协议会话功能直接实现。

参考文献:

1.http://colocation.tmcnet.com/topics/sip-and-open-standards/articles/18257-back-back-user-agents-telecommunications.htm

2.http://blog.sina.com.cn/s/blog_414e587f01000b9g.html

关于SIP的呼叫/对话/会话/事务概念,请参看:http://blog.csdn.net/gnuhpc/archive/2009/12/28/5089613.aspx

相关文章
相关标签/搜索