10036.简评多媒体协议H.323和SIP

http://www.cmvc.com.cn/printpage.asp?id=381

简评多媒体协议H.323和SIP
www.aspsky.net  2004-3-30  动网先锋



摘 要:业界对分组网上多媒体业务的两大技术——H.323和SIP已有近7~8年的探讨和实践。本文就其协议标准化的发展和进化进行了回顾、评述和比较。最后,本文简要地展望了其未来的前景。
关键字:H.323 SIP 多媒体 IP电话

一、前言

下一代IP分组网技术的一个主要挑战是如何提供实时的多媒体业务,这包括在IP分组网提供电话和视频业务。目前,下一代IP分组网上多媒体业务技术的发展有两大方向,一是遵循国际电联ITU-H.323协议标准,另一个是遵循互联网工程任务组IETF的SIP协议标准。这两种多媒体技术的观念和标准几乎都是在上个世纪90年代中期提出的,并很快伴随着IP电话市场的成功流行而受到人们的普遍重视。尽管人们习惯用VoIP这个术语来描述H.323和SIP协议标准,但是这两种技术代表的概念和架构所能够提供的多媒体业务远比建立一个呼叫要多。作为IP分组网上多媒体业务的技术,它们有不少共同的特点,例如,它们都是对等通信协议,都倡导分布控制和智能终端,都采用了同样的实时媒体协议。人们对它们的要求不仅是提供熟悉的传统电话业务和功能,更期待着提供支持实现和集成新业务和功能的能力。

然而,这两个协议体系原本目的相同,起步时间相近,但却由于分属于不同领域的标准组织,在不同标准化传统以及对未来网络业务模型的不同理念的指导下,其内容、进展和发展方向已有很大不同。在经过近7~8年的探讨、修订和实践,两个协议体系都变得非常复杂。另外,长期以来,由于不同背景和利益因素的影响,造成人们对标准的一些误解而以讹传讹。从不同的角度对两个协议的审视可能产生非客观的看法和偏见,再加上两个协议体系都还在不断地发展、进化和完善,所以,有必要对这两个多媒体协议进行回顾、评述和比较。

二、关于H.323协议体系

国际电联ITU-T从1995年5月开始制订多媒体会议业务的信令协议标准,1996年12月,负责多媒体信令的第16研究组(SG16)通过了第一版H.323-v1。H.323协议群标准描述了在分组网上由端点EP和其它网元(网守GK、网关GW和多点控制单元MCU)组成的多媒体网络的系统架构,它是指一组多媒体的协议群,包括负责呼叫控制信令H.225和负责媒体控制信令H.245。媒体控制信令是负责能力交换,媒体通道建立/释放和会议控制协议。H.323系统架构还包括数据会议T.120协议和传真T.38协议,以及实时媒体流协议RTP和其控制协议RTCP。H.323支持语音编解码G.711、G.723、G.729和视频编解码H.261、H.263等。H.323不仅系统地规范了分组语音会议标准而且也包括了完整的数据和视频会议标准。尽管H.323-v1原本是为分组局域网LAN上设计的多媒体会议系统,但人们从一开始就将H.323用于广域互联网,结果H.323取得了成功并马上受到广泛重视。H.323标准从一开始就重视与传统公共电话PSTN网完整互联互通,其中H.225中呼叫控制部分和H.245是借用了已有的ITU的窄带视频H.320、H.324协议群H.221和H.242。但H.225中的注册Registration、准许Admission、状态Status和地址解析机制(RAS)则不得不完全从头开始设计。基本呼叫程序由RAS信令(端点注册、准许控制和地址解析)和呼叫信令(连接建立、能力交换、打开逻辑通道)组成。H.323会议是通过多点控制单元MCU来进行的。H.323的实时媒体流协议和其分别采用了已有的IETF标准RTP和RTCP。

1998年1月,第二版H.323v2克服和完善了第一版的一些不足,增加了快速连接机制FAST-CONNECT和H.245的隧道机制。提出了补充业务架构H.450系列协议和安全架构H.235协议,以及其它PSTN互联信令机制的改善。1999年9月,第三版H.323-v3只有小规模的增添和修正。增加了支持UDP、附件G和一些H.323/H.245的附件以及H.450.4-H.450.7协议。2000年11月,第四版H.323-v4增加了一系列电信运营所要求的重要功能:这包括H.323系统的可靠性、可扩展性和灵活性。附件M和附件R提供了SS7消息的透传和稳健性。这使H.323系统以第四版为标志在完整性和系统性上走向了成熟。2003年9月,第五版H.323-v5的目标是追求协议稳定和通用扩展的平衡。第五版沿用第四版的通用扩展架构GEF模型来扩充新的功能,H.460系列标准正是这种通用扩充能力的体现。

国际电联的H.323体系基本上是一种既兼顾传统PSTN呼叫流程和IP网特点而发展成熟的开放标准体制,代表着电信多媒体业务的大潮流。它的特别之处是吸取了许多电信网的组网,互联和运营经验,能与PSTN网,与窄带视频业务以及其它数据业务和应用网互联互通。这正是自1996年以来,多媒体业务几乎都用H.323标准在全世界广泛使用的一个重要原因。采用H.323技术体制,VoIP运营商可以基本上继承传统运营商的管理和运维模式,这对中国、东南亚等国家组建VoIP大网特别重要。在中国,运营商组建的H.323 VoIP和视频业务网都是全国性大网,而且对网络的扩展性和稳定性要求极高,组网必须多层多域,复盖城市多达数百,每个月的话务量在几亿分钟以上。对于组建这样的大网,H.323技术是适合和成功的。

二、关于SIP标准

SIP是Session Initiation Protocol的缩写,国内文献多译为会话启动协议或会话初始协议。SIP的概念最早出现在1996年在互联网的应用中并由IETF的多方多媒体会话控制(MMUSIC)首先提出。经过多年研究、探讨和协议雏形的开发试验,1999年3月,MMUSIC工作组正式提出了RFC2543有关SIP基本原则和机理的建议,供各互联网业界的厂商和研究机构讨论。MMUSIC工作组是IETF一个有相当历史和声誉的研究小组,这个工作组还同时提出过RFC2327会话描述协议SDP和SIP的MIME类型格式。1999年9月,介于大量的兴趣和工作,IETF将SIP的研发工作从MMUSIC中分离并独立出来,成立了SIP工作组,并于2000年7月发表了SIP的草案。随后,由成立了SIPPING工作组和SIMPLE工作组来特别关注SIP的扩展和多媒体系统应用和SIP的即时消息和在线业务。2002年6月,ITEF的SIP工作组又发表了更新版的SIP基本骨架和机理标准RFC3261建议,以取代RFC2543。
SIP的概念一经提出并立刻在互联网和电信业内受到了广泛重视和追捧。IETF在1999年RFC2543中提出的是在一个基于IP网络中,特别是在Internet这样一种结构的网络环境中,实现实时多媒体通信应用的一种信令协议。而所谓的会话(Session)就是指在应用层面用户之间的数据交换,SIP是会话的操作协议。SIP标准规定了建立、修改和终结多媒体会话的基本机制。这些多媒体会话包括多媒体会议、远程教育、IP电话和其它相类似的应用。在基于SIP协议的应用中,每一个会话可以是各种不同类型的应用内容,可以是普通的文本数据,也可以是经过数字化处理的音频、视频数据,还可以是诸如游戏等应用的数据,因此,SIP的应用具有巨大的灵活性和潜力空间。

SIP标准定义了多媒体通信及会议的信令机制,并借用到了以下IETF协议:消息的格式HTTP 1.1,媒体描述 (SDP),SIP消息的编码基于ASCII 文本格式以便于应用及纠错,应用编码(MIME),SIP的媒体流及其控制协议分别是RTP 和 RTCP。SIP建议与WWW相似利用Internet结构,通过智能SIP终端提供业务,SIP 可利用URI来动态组网。通常SIP终端同时包括UAC (用户代理客户端) 和 UAS (用户代理服务端), UAC用于发起请求,UAS用于落地请求。SIP的终端的注册和定位可用网络资源:注册服务器、代理服务器和重定位服务器。SIP的终端名称和地址解析可采用网络资源:定位服务器、DHCP、ENUM、 TRIP 和 DNS服务器。
SIP的主要功能是会话对象和资源的定位及应用的启动,以及和会话参数的约定。为了实现这一功能,SIP提供了在SIP网会话中对等体(用户终端EP的用户代理UA)间一组文本消息的独立操作交换。这样,SIP的基本呼叫可以用一个SIP的INVITE(邀请)请求消息的信令操作和其它的操作来提供。会话本身包括二层含义,SIP协议包括对象的地址和协议处理的特征,其的本身与其建立的会话内容并无必然关联。会话对象间的多媒体流描述的交换是由另一个规范来限定。IETF建议采用会话描述协议SDP,严格地说,SDP并不是协议,而是SIP消息里包含的一个文本格式结构化的媒体描述。SIP消息所传送的会话描述对于SIP而言是透明的,所以,SIP可支持的会话应用不只局限于电话或会议的能力,取决于是会话的描述,SIP还可支持信息的提取,广播或预订性会话。

SIP的基准骨架和原理是RFC3261建议,除此之外,还有一系列的RFC和浩瀚的与SIP相关草案来完善和补充SIP应用、业务、编程、会议、路由、监管和互联的结构问题。从这个意义上讲,SIP的IP电话和会议标准还处于“待完成”状态,ITEF的一系列工作组还在加紧修订和完成基准RFC,其它RFC和扩展草案。

三、两种协议的比较

H.323和SIP是两大标准阵营(电信领域与Internet领域)沿袭各自传统和理念的结果。H.323是国际电联提出来的,它注重把IP电话与众所周知的传统电话业务的兼容性;而SIP则偏重于将IP电话作为Internet上的一个应用。


表1 H.323和SIP体系架构的比较
体系架构 H.323 SIP
标准组织 ITU国际电信联盟SG16主导 IETF互联网工程任务组SIP工作组主导
设计理念 根据电信网的经验和要求,系统性地设计IP网上多媒体的语音、视频和数据会议及通信所需的组件、协议和规程。 根据互联网的经验和要求,模块性地设计IP网上建立“会话”通信所需的组件、协议和规程。
协议架构 协议体系架构包括多媒体会议及通信的各个业务领域,例如,端点的能力交换、会议控制、信令互操作、QoS控制、注册和业务发现。 协议体系以模块的形式包括基本信令、用户注册和位置。通过其他相关和独立的协议体系提供其他相关和独立的功能和业务。
架构组成 端点EP、网关GW和网守GK
多点控制单元MCU 用户代理UA和各类服务器

主要标准 H.323 v1-v5体系架构
H.225 v1-v5RAS和呼叫信令、
H.245 v2-v9多媒体控制协议
H.235 v1-v3安全机制协议
H.350 多媒体会议的目录架构
H.450 补充业务架构系列协议
H.460 通用扩展架构系列协议
H.246 互操作系列协议
H.248 媒体网关控制协议
RFC3261以取代RFC2543。
RFC2327(SDP)
RFC3266(SDP 的模型)
RFC2068 HTTP
RFC2045 MIME
RFC2396 URI
RFC2234 ABNF
2002年,有300多个SIP相关建议草案等待讨论通过。

国际电联ITU-T采用从上至下的方法来制定标准,由整体宏观的统一规则来限定具体的内容范围。从IP电话和多媒体通信的体系来言,H.323标准更为相对系统的、相对完整的和相对周密的规范了多媒体通信协议、状态机制和消息流程的架构。这个体系还包括了一些跨专题范围的专门的解决方案,如QoS和移动性。而另一方面,IETF的SIP更趋向于从下向上的方法来制定标准。由简单基本的要求来抽象和推演通信操作的一般性模型。因为,IETF推崇这样的理念:系统和应用是由基本的操作模块所组合而成的,IETF所制定的协议对特定的应用都是透明的,所以,严格地说,RFC3261只是SIP的基准骨架和模块原理,而不是SIP应用或业务的完整系统体系,SIP的应用或业务还需要其他RFC和许多SIP的扩展RFC及待成熟的建议草案组合而成。这种依赖通用标准模块组合操作而生成应用和业务的观念优势不仅在于基本的应用会非常简单易用,更在于这种方式会更开放、更灵活、更有利于创新和更富有生命力。但它的不足也很明显:标准模块及其操作是否具有多媒体通信的通用性和一般性?标准过程过长,标准范畴容易缺乏系统和完整性,分布的多元的复杂化的网络应用和业务的兼容和互操作性不易保证。2002年是SIP协议标准化任务艰巨的年,共有300多个SIP相关建议草案等待讨论通过。IETF最近坦言:SIP协议标准的完善期可能还需要6~7年时间。SIP协议标准所需要完善的领域主要还是与传统PSTN互联时协议一致性,计费的手段,以及紧急呼叫的处理。

表2 H.323和SIP系统体系的比较
系统体系 H.323 SIP
系统可靠性
网元容错 定义了一些机制,如备份网元(网守、端点)。 暂无。
负荷均衡 端点可以注册到一组GK中的机制 。 SIP本身暂无。但可以借用DNS服务器或HTTP的负荷均衡机制。
系统可扩展性
多域/多管域 网守和附件G互联支持地址解析、互联授权和呼叫使用报告。 通过重定位服务器支持地址解析/寻址。
无状态保持 支持,直接呼叫模式的网守组网。 支持,非分叉SIP代理人服务器可以是无状态。
地址解析 LRQ或附件G、TRIP、ENUM或DNS。 重定位服务器、或TRIP、ENUM或DNS服务器。
网关分离 H.323v4定义H.248。 暂无。
商用规模  大规模商业4~5年 小规模商业1~2年
系统安全性
鉴权 支持,采用H.235 支持,采HTTP,SSL,PGP,S/MIME或其它。
加密 支持,采用H.235 支持,采用SSL,PGP,S/MIME或其他。

许多人认为H.323标准的做法是太传统的思维,使得H.323协议变得太复杂,而SIP就简单的多。但支持H.323的人们认为通信系统本身就不简单,SIP将通信简单化其实是短视和对电信运营商的需求缺乏充分认识。H.323协议复杂但它能满足要电信运营商诸多的要求。当然,如果不考虑传统PSTN的互操作和电信运营商已有的商业模式或者不用于IP电话与PSTN的应用,SIP的简单和易用应该是受欢迎的, 例如,PC到PC的通话和通信。但如将SIP用于电信运营商IP电话或多媒体通信业务,现实将使SIP面临挑战。SIP协议定义本身不如H.323那种严密系统。SIP结构许多方面的开放灵活使得任意解释的空间较大,基于SIP协议网络的一些功能还需要许多补充协议。SIP的扩展标准和草案有数以百计,这不仅使SIP“系统”协议变得不简单,更为严重的是由于扩展标准和草案进展的不同步,互操作性面临极大的挑战。SIP倡导的模式组合式的应用设计灵活开放,但也有时带来问题,复杂的通信系统如果没有较好的整体架构和“统一”的标准,网元组件怎能很好地协调工作?另外,H.323能力交换和协商的机制有利于多媒体业务的控制:如打开或关闭任意媒体通道(语音、视频或数据)而不影响其它通道的正常工作。

表3 H.323和SIP协议特征的比较

协议特征 H.323 SIP
扩展和兼容性 通过ITU标准定期版本发布,新功能采用通用扩展架构GEF来扩充新功能,保障后向兼容。 通过IETF的不定期独立RFC的发布,来增添新的扩展模块。保障基本功能后向兼容。
厂商特定功能 设计厂商保留字段以避免冲突。 可用添加SIP的不同header line来为厂商所用。但有互操作兼容风险。
消息定义 ASN.1 ABNF-RFC2234
消息编码 紧凑型二进制 ASCII文本格式
消息包长 较短 较长
呼叫建立 RAS/H225/Q.931 RFC3261
媒体控制 H.245 SDP RFC2327 1998.4
传输协议 多数TCP或UDP 多数UDP或TCP
媒体传输 RTP/RTCP RTP/RTCP
编解码CODEC 支持所有的标准或非标准的编解码。可静态或动态设定。 IANA注册的编解码或相互约定的编解码名。可静态或动态设定。
业务加载 语音、视频电话业务以及语音、视频和数据会议及通信。 语音、视频电话业务以及综合互联网的即时消息、在线交谈业务。
消息种类 RAS-ARQ/RRQ/LRQ
SETUP/ALERT/PROGRESS
CONNECT/
RELEASECOMPLETE INVITE
OK
ACK/PRACK
BYE
寻址方式 支持多种形式,E.164或H H.225 H.323别名或URI,其中E164可以是H323ID,传输地址,EMAIL地址或被叫号。 只支持URI格式,E.164可以转为URI格式。
基本呼叫建立 ->SETUP
<-ALERT
->CONNECT/ACK
 ->INVITE
<-200 OK
->ACK

呼叫拆线 与PSTN方式相仿。 BYE消息可用于拆线,但拆线流程不够完整。
与PSTN互通 借用PSTN协议,互通处理较好。 非正常情況处理较弱,依赖新增协议模块来改善。
SS7透传能力 附加M SIP-T/SIP-I
计费能力 采用迂回方式网守和网关方式可计费。 采用保持呼叫状态的代理服务器可计费。
传真 T38 T38
DTMF双音多频 支持基准规范的二种H.245带外和附加带内RFC2833。 只支持带内RFC2833。带外规范还草案, 暂无基准规范。
能力协商 网元可灵活地交换和协商其能力:如打开或关闭任意媒体通道(语音、视频或数据)而不影响其它通道的正常工作。 网元不进行能力交换和协商,而简而代之为“建议/接受”的模型。

正因为如此,尽管H.323和SIP的观念和标准几乎在同一时间起步,解决同样的多媒体通信的应用和业务,但因为其理念不同,其刚开始的着手点不同,其结果和市场作用、效应也明显不同。H.323将注意力放在多媒体业务的基本功能,补充业务,互联互通(如PSTN),所以,H.323很快就能在多媒体通信中提供多种纵向的解决方案并进入商用市场。例如,H.323 IP电话和视频和数据会议及通信方案完整。但是,对于简单的呼叫,H.323的流程不必要地复杂了,H.323的后续版本增加了fast-connect/start的流程,使H.323简装呼叫流程与SIP的类似。目前,H.323由将注意力转移到解决诸如安全,移动和QoS问题的方案上。而SIP走了另一条路,SIP一开始将注意力放在抽象和定义业务会话的通用协议,SIP的基准骨架对于IP电话业务可能只完成了基本呼叫。由于IP电话必须面临传统PSTN的负担,所以,目前SIP也不得不花精力来考虑在基准SIP的模式增加SIP的扩展模块及其操作来解决IP电话的应用,这包括补充业务和与传统PSTN网的互联。所以,从这个角度来看,尽管在IP电话和视频和数据会议及通信应用上H.323领先SIP,H.323和SIP的标准化方式不同,但H.323和SIP工作方向是相互融合的。例如,H.323是对每个补充业务进行标准化,而SIP是将协议的操作进行标准化使其用来支持补充业务。另外,H.323对视频电话和视频会议,以及数据会议业务都能很好地支持,而SIP还没有完整的协议草案。

表4 H.323和SIP补充业务能力的比较

补充业务能力 H.323 SIP
呼叫转移 H.450.2 可用RFC3515组建
呼叫前转 H.450.3 可用RFC3261组建
呼叫保持 H.450.4 可用RFC3264组建
呼叫代答/
呼叫搁置 H.450.5 可用RFC3515组建
呼叫等待 H.450.6 可用RFC3261组建
待收消息显示 H.450.7 草案待讨论
姓名显示/限制 H.450.8 暂无
遇忙回呼 H.450.9 草案待讨论
遇忙讯呼 H.450.10 暂无
遇忙插入 H.450.11 暂无
高级功能
组播信令 可以,用LRQ和GRQ。 可以,用一组INVITE送发。
第三方呼控 可以,用H.323的暂停和重路由功能。复杂的功能可用H.450的有关标准和扩展。 可以,采用额外的SIP扩展标准草案。
呼叫分岔 标准没有描述,但若需要,网守可以支持。 SIP代理服务器可同时将呼叫分岔送发至任意多个网元上。
电话会议 支持。 支持。
视频会议 完整支持。包括窄带视频会议 部分支持。无同步和操控机制。
数据会议 用T.120完整支持。 暂无。
点击拨号 支持。 支持。
回路监测 支持。需用迂回网守监查LRQ。 支持。监查Via header。
开放源代码 有,如OpenH323。 有,如思科的Vovida.org。
四、结束语
正因为H.323和SIP标准的理念和进度的不同,它们的应用前景可能会有所不同,SIP的设计目标是通用会话建立和拆线的通用操作协议。IP电话和多媒体通信只是SIP的两种应用之一,SIP的其他应用可以不是IP电话和多媒体通信,那样的话,SIP的会话过程会非常简单。另一方面,H.323的设计目标是专注多媒体通信应用的系统控制协议群。H.323的IP电话和多媒体通信的功能体系会更为完备和全面。所以,H.323的发展会趋向系统的专用性,而SIP的发展会更具有通用性。特别值得一提的是,尽管简单的SIP视频电话之间的媒体通信完整可行,但SIP视频与H.323视频和窄带视频还不能兼容互通。SIP还没有完整的视频会议和数据会议系统协议框架。所以,H.323可能会在相当长的时期内主导视频电话和视频会议以及数据会议的多媒体业务。而SIP在控制非IP电话类型的业务中能发挥其简单高效的优势,可以灵活与PC的其它应用结合,例如与即时消息和在线,Email相结合可形成更富有创造性的新型业务。
虽然H.323和SIP的标准正逐步融合,但它们的作用在相当长的时期内仍然是相互补充,现在还看不出其中一种标准会完全取代另一种标准的迹象。在未来相当长的时间里,在不同的环境和实践中,H.323和SIP的标准将在业界共存共荣。

文章所缺图表请参见本期杂志。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您需要使用 Python 编写爬虫程序,使用 urllib3 库进行网页请求,使用 re 库进行网页内容的正则匹配,使用 json 库对匹配到的数据进行处理,最后将处理后的数据存储到 top100.txt 文件中。 以下是示例代码: ```python import urllib3 import re import json # 创建 urllib3.PoolManager 对象 http = urllib3.PoolManager() # 定义目标网页 URL url = 'https://movie.douban.com/top250' # 发送 HTTP 请求,获取网页内容 response = http.request('GET', url) html_content = response.data.decode('utf-8') # 使用正则表达式匹配电影信息 pattern = r'<li>.*?<em class="">' \ r'(?P<rank>\d+)</em>.*?' \ r'<img.*?src="(?P<image>.*?)".*?>.*?' \ r'<span.*?class="title">(.*?)</span>.*?' \ r'<p.*?class="">.*?<br>(?P<actors>.*?)   .*?' \ r'<span.*?class="rating_num" property="v:average">' \ r'(?P<score>.*?)</span>.*?' \ r'<span.*?class="inq">(.*?)</span>.*?</li>' matches = re.finditer(pattern, html_content, re.S) # 遍历匹配结果,构造电影字典,并将所有电影保存到列表中 movies = [] for match in matches: movie_dict = match.groupdict() movie_dict['actors'] = movie_dict['actors'].strip() movies.append(movie_dict) # 将电影列表保存到 top100.txt 文件中 with open('top100.txt', 'w', encoding='utf-8') as f: f.write(json.dumps(movies, ensure_ascii=False, indent=4)) ``` 该程序会爬取豆瓣电影 Top 250 网页,并使用正则表达式从网页内容中提取出电影排名、图片 URL、电影名称、主演、得分和简评等信息,最后将所有电影信息以 JSON 格式保存到 top100.txt 文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值