导航菜单
首页 >  沐鸣开户测速 >  » 正文

沐鸣开户测速《连线声音:SIP如何赢得VoIP协议战争》

沐鸣开户测速

随着行业的发展,通常会发现多个解决方案都试图解决类似的需求。这种演变决定了这些被提议的标准要经过一个选择的阶段——随着时间的推移,我们看到一些标准比其他的更具有支配性。今天,会话发起协议(SIP)显然是占主导地位的VoIP协议之一,但这显然不是一夜之间发生的。本文是一系列深入探讨SIP和VoIP的文章中的第一篇,我们将在本文中探讨导致这一结果的主要因素。
 
VoIP的简史
 
让我们回到1995年,在谷歌,IM,甚至宽带之前的日子。手机又大又笨重,微软开发了一个新的带有“开始”按钮的Windows界面,而Netscape拥有最流行的网络浏览器。互联网和数据网络的发展促使许多人意识到,可以利用新的网络来满足我们的语音通信需求,同时大大降低相关成本。互联网VoIP的第一个商业解决方案来自一家名为VocalTec的公司;他们的软件允许两个人在互联网上交谈。一个人可以通过28.8K或36.6K调制解调器给ISP打一个本地电话,即使他们住得很远也可以和朋友交谈。我记得我试过这个软件,它的声音绝对低于可接受的质量。(听起来就像你在游泳池里试图说话一样。)然而,该软件成功地连接了两个人,并为带宽受限的网络引入了实时语音会话。
 
第一批VoIP实现者立即发现,电话网络和数据网络之间有几个不同之处。其中之一是消息交换设计。电话系统工作在电路开关中,电路是两个端点之间的完整路径。因此,可以为单个通信中的所有消息提供单一路径。数据网络与信息包一起工作,一路上各种各样的跃点帮助将信息包路由到它们的最终目的地,并且这条路径可以从一个信息包切换到另一个。由于这种结构,数据网络不能保证单个会话的包将通过相同的路径。因此,沐鸣开户测速在VoIP真正起步之前,它需要一些新的创新。
 
要开始一个呼叫,你需要一个VoIP信令协议。“信令”一词来自于电路开关电话通信领域。在这个系统中,我们把信号从一端发送到另一端,以便进行交流,并允许我们进行远距离交谈。信令协议的作用是定义这些消息的结构方式和让我们开始、配置和结束对话的规则。值得指出的是,信号信息并不包括人们听到的声音(打电话的媒介)。信令协议可能包括媒体流信息及其属性,但语音呼叫中的语音本身不是信令消息。如果你想要一个高层次的解释,只要把信令想象成当你拨电话或挂电话时设备发送的信息。
 
因此,创建一个新的信号协议的竞赛开始了。其中一些协议规范是开放的,供所有人实现,另一些则是供应商专有的解决方案。这场竞赛还没有结束,因为我们不断看到新的提案试图说服每个人,有更好的方式来做事情。VoIP信令协议必须显示它如何与数据网络集成;这包括定义定位通信设备的方法、指定服务器行为、引入新服务和安全设计等方面。
 
SIP协议设计
 
SIP是一个互联网工程任务组(IETF)协议,因此,它被设计成一个开放的互联网协议。它的第一次发布是在1999年,由RFC 2543定义,但是它的早期草案可以追溯到1996年。它的一些定义在2002年晚些时候由RFC 3261修订。
 
 
 
让我们来看一个简单的SIP请求:
 
 
INVITE sip:hannibal@arstechnica.com SIP/2.0
Via: SIP/2.0/UDP home.mynetwork.org;branch=z9hG4bK8uf35f
To: Jon Stokes <sip:hannibal@arstechnica.com>
From: Gilad <sip:gilad@voxisoft.com>;tag=n23ycs
Call-ID: nbo34tsggvsqap@home.mynetwork.org
CSeq: 59164 INVITE
Contact: sip:gilad@voxisoft.com
Max-Forwards: 70
 
 
SIP是基于文本的。注意,这些地址与电子邮件地址非常相似。虽然SIP可以支持电话号码,但基本思想是地址不必是电话号码,就像您不会期望您的电子邮件地址看起来像您的家庭或工作地址一样。SIP消息可能类似于以下(部分)示例:
 
GET /评论/ HTTP / 1.1
 
主持人:arstechnica.com
用户代理:壁虎/ Firefox / 3.5.5
 
因此,SIP非常类似于HTTP。第一行是请求行,其中包含关于请求类型(在HTTP中获取,在SIP中邀请这些示例)和预期地址的信息,而后续行是包含附加信息的标头。当然,SIP中的响应看起来也非常类似于HTTP响应。其想法是使用最流行的Internet协议之一的结构,使软件开发人员和网络管理人员更容易地使用SIP。
 
在某种程度上,这些尝试使SIP与HTTP一样简单,但是SIP地址的要求比HTTP更复杂,因此协议也更复杂。例如,SIP中的基本要求是能够进行双向对称通信,而典型的HTTP场景是客户机向服务器发出请求,服务器发送响应。即使没有以前的HTTP知识,学习这种消息结构也是一项非常简单的任务。
 
对于那些想知道的人来说,上面的SIP示例是一个人从SIP电话给Ars Technica的副编辑Jon Stokes打电话时可能发送的第一个数据包。我将避免在此讨论消息内容的技术细节,因为这是另一篇文章的主题。
 
重用,并保持简单
 
信令协议的作用是定义这些消息的结构方式和让我们开始、配置和结束对话的规则。
 
SIP设计中的另一个重要因素是决定尽可能多地重用其他现有的Internet标准。地址定位使用DNS,用户身份验证使用HTTP摘要身份验证,设置调用媒体流使用会话描述协议(SDP),加密使用TLS,如果适用,用户互相发送XML信息。这种集成进一步帮助将SIP建立为Internet协议世界的一部分,并且供应商可以在其SIP应用程序中重用现有的实现。另一方面,在某些情况下,为了满足SIP的需要,IETF必须在其他协议中添加额外的定义。
 
保持服务器(尤其是代理)在调用路径上尽可能少的复杂性也是SIP设计中的一个重点。SIP代理在调用方之间路由消息。标准中定义的代理不知道调用状态,而是在事务级别上进行操作,并且可能是无状态的。这有助于提高可伸缩性,因为更少的设备可以提供更多的调用。为此,协议本身被分成几个不同的层,这是程序员用来分解复杂系统的常见做法。这种设计有助于进一步简化SIP并使其更容易实现。有时,保持这种最小状态会带来一些限制(后来,还会对协议进行一些更改),沐鸣开户测速但是这些副产品被保持在最小值。
 
最后,可能也是最重要的一点,SIP并不是仅仅作为电话系统的替代品而构建的。它允许扩展,并且依赖扩展来提供简单调用之外的附加服务。例如,您可以使用SIP在IM客户机中维护用户状态信息,并设置IM会话。另一个扩展支持将呼叫转移到第三方,这是基本SIP规范所没有定义的。这是可能的,因为SIP提供了必要的基本构造,而仅在必要时限制这些构造。SIP定义了“对话”的概念,这是一种双向通信,但不限制对话框调用。双向通信还包括设置您的IM状态和接收您的IM朋友的更新。扩展还可以方便地定义新的请求或响应类型以及需要时的新头。
 
这些设计决策的结果是能够使用现有的协议来满足不断变化的通信世界的需求,从而提供更快的服务。希望支持多种服务并启用新服务的供应商需要密切跟踪与sip相关的RFC规范(有时是早期草案)的数量不断增加。这影响了SIP互操作性。存在如此多的扩展,这一事实可能使部署具有多个供应商设备的SIP网络变得更加困难。SIP试图通过在扩展中定义关键字来缓解这个问题。因此,您可以通过添加相应的关键字来指示支持的和需要的扩展。市场力量也促使供应商实现最常见的需求扩展。
 
SIP添加新服务和扩展的能力被证明是其成功的主要因素。
 
一种不同的方法
 
H.323是一个国际电信联盟协议——实际上是一套国际电信联盟协议。经常可以发现SIP和H.323之间的比较。其中一些比较的目的是展示一种协议而不是另一种协议的好处,但是我们这里的目的是展示一种不同的设计方法和结果。我们将助教
H.323是一个国际电信联盟协议——实际上是一套国际电信联盟协议。经常可以发现SIP和H.323之间的比较。其中一些比较的目的是展示一种协议而不是另一种协议的好处,但是我们这里的目的是展示一种不同的设计方法和结果。我们将快速看一下H.323,但这绝不是一个完整的回顾。
 
H.323也是一个开放协议,它的首次发布日期早于1996年的SIP。在肉眼看来,H.323就像一个二进制协议。它确实有一些二进制元素,但在大多数情况下,它是ASN.1的编码。ASN.1对结构或对象进行编码,因此可以很容易地获取ASN.1并检索包含所有数据元素的树状结构。H.323使用每个编码来减少包的长度,从而产生非常高效和小的包。因此,以每编码ASN.1方式发送的信息所需的带宽比文本少,但许多人发现简单地读取文本比遍历树结构更容易,特别是当有许多元素时。此外,每个编码/解码并不那么简单,而且通常比文本解析器需要更多的编程工作。
 
H.323比SIP更精确地定义了协议的细节。实现H.323的供应商可以期望与提供相同标准的其他供应商更快的互操作性。当ITU发布新版本的协议时,它们总是与以前的协议完全兼容,所以您不必担心以前的实现是否会被弃用。另一方面,所有新版本的实现都必须支持在旧版本中定义的场景,即使这些过程有明显的缺点。到目前为止,已经定义了7个版本的H.323,并且在此期间更改了一些H.323过程,如启动新调用的新流。因此,每个人都必须支持以前的方法,即使它们的效率较低,并且更难编码。至于SIP,只创建了两个版本。事实上,它们都被标记为SIP/2.0,因此它们并不是真正的不同版本。无论如何,在定义发生变化的地方,都保持了向后兼容性。现在,一些被认为是协议中的bug的问题正在被短长度的rfc修复,在某些情况下,SIP rfc不支持以前的需求。
 
在某些情况下,H.323具有比SIP更早的功能,比如资源保留或数字通知事件,这些事件是在电话期间有人按下电话键时生成的。这迫使SIP供应商创建自己的解决方案来解决缺少的扩展,或者使用RFC的早期草案。H.323通过在某些领域中允许特定于供应商的信息来支持扩展。所以可以延伸h。323,但是要难得多。323在它的第4个版本中正式引入了扩展支持,但是并不是每个人都准备好了快速迁移到这个版本,SIP从一开始就有这个功能。大多数H.323的扩展都专注于呼叫补充服务,而SIP扩展提供的功能远远超过呼叫扩展。H.323重用了许多ITU协议,其中许多协议来自ISDN,但它不具有与SIP相同的层分离和模块化。
 
两种设计各有优缺点。最终,H.323首先发布,这在当时对它的采用起到了重要的作用。然而,今天,新的部署通常使用SIP而不是H.323。那么,是什么让SIP随着时间的推移更容易被接受呢?
 
SIP成功的关键
 
当大多数网络运营商不得不选择协议时,SIP互操作性水平已经非常高了。
SIP添加新服务和扩展的能力被证明是其成功的主要因素。当人们的注意力转向除了通话之外还具有其他能力的多媒体会话时,SIP的适应性被证明是至关重要的。简单地说,在SIP中使用扩展是非常自然的。SIP对程序员也相对友好。学习并不需要那么长的时间,创建基本应用程序所需的时间也相对较短。IETF通常会努力确保它的规范是可读的,并且实现者能够理解它的内容。因此,开源项目可以更快地创建基于sip的应用程序,而商业供应商通常发现,用更少的资源发布产品的能力非常吸引人——这意味着客户可以选择更多的产品。
 
最后,随着时间的推移,互操作性变得不那么重要了,因为供应商能够测试他们的SIP实现。当大多数网络运营商不得不选择协议时,SIP互操作性水平已经非常高了。SIP不仅与H.323竞争,还与几个专有协议竞争。部署VoIP的网络运营商真正喜欢的概念是能够从不同的产品中进行选择。互操作解决方案还意味着可以在同一网络上部署多个供应商,而不需要任何特定的实现依赖。最后一个因素有力地推动了对开放协议的支持,而不是由公司拥有的协议。
 
SIP成功的一个主要例子是IP多媒体子系统(IMS)。IMS为蜂窝网络提供Internet服务,并将固定和移动世界合并在一起。SIP是IMS实现这一点的关键构件。IMS设计的目标之一是能够引入多个服务,这是此需求与SIP设计之间的最佳结合。
 
与任何协议一样,SIP并不完美。随着时间的推移,它需要一些改变来应对新的真实的网络场景。到目前为止,它已经证明了足够的灵活性和适应性,可以在不破坏协议的情况下处理这些更改。这对SIP的未来来说是一个非常好的迹象。
 
尽管如此,一些人确实觉得使用一个新的协议会更好。事实上,国际电联已经开始研究H.325(人们本来以为它的名字会是H.324,但H.324已经存在,并定义了在模拟线路上传输语音、视频和数据的功能。后来,它被应用于H.324M以支持视频-蜂窝传输)。325也经常被称为高级多媒体系统(AMS),它努力提供一种新的协议,旨在从第一天起就满足最新的需求。然而,H.325还处于开发的早期阶段,它还需要在各种竞争选择中证明自己。目前,可以有把握地说,SIP将继续主导目前和可预见的未来。事实上,无线运营商正开始转向下一代全ip网络,即长期演进(Long Term Evolution,简称LTE),而SIP已经在这个即将到来的网络架构中扮演了重要角色。