HI,欢迎来到好期刊网,发表咨询:400-888-9411 订阅咨询:400-888-1571证券代码(211862)

sip协议集锦9篇

时间:2022-11-04 18:47:28

sip协议

sip协议范文1

关键词:会话发起协议;安全;超文本传输摘要认证;安全/多用途邮件扩展协议

中图分类号:TN915文献标识码:A

文章编号:1004-373X(2009)05-072-03

Analysis and Research of SIP Protocol and Its Security

BAI Yunjie,MU Weixin,LIU Runjie,SHEN Jinyuan

(Information Engineering College,Zhengzhou University,Zhengzhou,450001,China)

Abstract:Session Initial Protocol(SIP)is currently replacing H.323 to be the promising signaling protocol for VoIP network.In this paper,the function,structure and work flow of SIP protocol are reviewed.Then the security problems faced by SIP,the security mechanisms of SIP,such as IPSec,TLS,HTTP-Digest,S/MIME and so on are analysed and introduced,the virtues and shortcomings of all kinds of security mechanisms are pointed out by comparasion.At last,a conclusion of SIP security and security improvement direction for the future research work is given.

Keywords:session initial protocol;security;HTTP-Digest;secure/multi-purpose Interned mail extesion protocol

0 引 言

SIP(Session Initial Protocol)是一种应用层协议,采用Client/Sever结构的消息机制,分布式控制模式,呼叫建立过程简单。使用SIP作为VoIP(Voice over IP)网络的核心信令控制协议,已成为未来发展趋势。

SIP的设计充分考虑了协议的易用性和灵活性,却在安全性方面存在缺陷。本文分析了基于

SIP网络的安全问题,并提出改进措施。

1 SIP介绍及其安全威胁

1.1 SIP简介

SIP是由IETF (Internet Engineering Task Force)的MMUSIC(Multiparty Multimedia Session Control)工作组于1999年提出的应用层控制协议[1]。SIP用来创建、修改和终结两个或多个参与者参加的会话。参与会话的成员可以通过组播方式、单播联网或者两者结合的形式进行通信。

SIP实体主要由四部分组成[2]:用户(User Agent,UA)、服务器 (Proxy Sever)、 重定向服务器 (Redirect Sever) 和注册服务器(Register)。

有两种类型SIP消息:请求消息和响应消息。请求消息包含一个请求行、几个消息头(header)、一个空行和一个消息体。如:INVITE SIP:bob@biloxi.eomSIP/2.0。响应消息包含状态行、消息头、空行和消息体。状态行的格式为:版本号、状态码和原因短语,如:SlP/2.0 180 Ringing[3]。图1是SIP的会话建立流程。

1.2 SIP安全问题

SIP协议采用文本形式表示消息的词法和语法,易于实现,但也因此使得SIP容易被攻击者加以模仿、篡改,加以非法利用。另外SIP用户广泛分布于IP网络上,所有影响数据网络的攻击都可能会影响到SIP的安全。具体来说,SIP的安全隐患有以下几方面:

(1) 注册攻击(Registration Hijacking)

SIP允许第三方代表用户注册联系信息,这就使攻击者恶意注册成为可能。攻击者为一个URI的所有Contact地址,这样所有到用户的呼叫就全部被转向攻击者的设备。

(2) 伪装服务器(Impersonating a Sever)

呼叫请求的目的域是在Request-URI中指定的。UA直接向域中的服务器发出呼叫请求,这就给攻击者机会来伪装成SIP服务器。

(3) 篡改消息体(Tampering with Message Bodies)

SIP的UA通过信任的Proxy来呼叫路由,UA通过SIP消息体来传送体来传送媒体会话加密的密钥时,恶意的Proxy就可以改动消息体,或者作为中间人,或者直接改写会话加密的安全特性。攻击者可以改动消息的SDP部分,将RTP媒体流指向分线设备,对通信进行搭线窃听。

(4) 终止会话(Tearing Down Sessions)

当会话建立以后,通过发送消息可以修改通话状态。例如会话被第三方截获,获得To,From内容,然后在消息中插入BYE请求,用户的正常会话就终止。

(5) 拒绝服务(Denial of Service,DoS)

DoS是指特定的网络接口发送大量的信息而使系统破坏或暂时不可用。攻击者要想攻击网络中的某台主机,可以通过伪造一条看似来自这台主机的SIP消息,然后将这条消息发往大量的SIP服务器,通过SIP服务器,向要攻击的目的主机发送大量的SIP应答消息,从而使目的主机遭受拒绝服务攻击。

2 SIP安全策略

防止攻击的最好方法是保证信息的私密性和完整性,防止重放攻击和信息欺骗,提供会话的验证和信息保密,防止拒绝服务攻击。理论上,信息的完全加密可以为信令的机密性提供最好的保护,但SIP请求和响应不能在端到端的用户之间完全加密,因为消息头域(如Request-URI和Via)对服务器来说必须是可见的,同时Proxy需要修改消息的某些参数(如增加Via头域值)。

SIP协议支持两种加密方式。第一种是端到端(End to End)加密,针对一些不需要中间服务器处理且包含用户信息的SIP消息头和消息体可以进行端到端的加密。另一种方法是逐跳(Hop by Hop)加密。这种加密方式可以通过SIP外部的安全机制来实现。

2.1 网络层IPSec协议

IPSec(Internet Protocol Security,Internet协议安全)是一种逐跳加密机制[4],IPSec安全协议工作在网络层,运行在它上面的所有网络通道都是加密的。IPSec为信息加密和鉴定提供许多选项,如访问控制,数据源认证和抗重播等。它可以创建安全隧道来通过不信任的网络,从虚拟专用网VPN中进行连接。一个加密的VPN隧道使得通信数据只能被通信双方理解,因此可以有效的防止窃听和其他攻击。图2为IPSec体系结构。

IPSec的缺点是网络实施复杂,实现代价较高,而且存在扩展性的问题,对于遍布在公网上的SIP终端来说建立IPSec通道是不现实的。

2.2 传输层TLS协议

TLS(Transport Layer Security,传输层安全)提供的是面向连接的传输层安全服务[5]。它是另一种逐跳加密机制。该协议分为两层:TLS握手协议和TLS记录协议。前者用于协商安全机制,后者具体执行该安全机制。

TLS的工作流程如图3所示。在SIP网络中应用TLS可以为需要逐条之间安全通信的主机提供安全服务,保证会话的安全。它也为SIP实体提供对临近服务器的鉴别服务。TLS的优点是高层协议可以透明地建立在TLS协议层之上,而且不依赖于低层的传输协议,可以建立在任何能够提供可靠连接的协议之上。其缺点是必须运行在TCP之上,对于通常运行在UDP之上的SIP服务器,同时维持大量的TLS连接会负荷较重。

2.3 PGP加密签名

PGP(Pretty Good Privacy)是一种端到端的加密签名算法[6]。SIP消息体和部分信息头可以通过PGP进行加密。PGP加密系统使用一对数学上相关的密钥,其中一个(公钥)用来加密信息,另一个(私钥)用来解密信息。PGP采用的传统加密技术部分所使用的密钥称为“会话密钥”(SEK)。每次使用时,PGP都随机产生一个128 b的IDEA会话密钥,用来加密报文。PGP的主要步骤如图4所示。

PGP的缺点是加密机制实现较为复杂,缺少有效的密钥分发和管理机制。

2.4 S/MIME

S/MIME(Secure/Multipurpose Internet Mail Extensions,安全/多用途Internet邮件扩展)[7]协议的一般功能和PGP相似,它提供电子邮件消息的数字签名和加密功能。

SIP消息可以携带MIME消息内容,也采用S/MIME安全机制为MIME消息内容提供安全保护。采用S/MIME可以为端到端的SIP消息内容提供机密性和完整。当UAS接到含有S/MIME的请求时,首先对其数字签名进行验证,验证通过后将X.509签名证书加入本地公钥圈进行保存。图5为S/MIME在SIP中的基本流程。

S/MIME的一个缺陷是缺乏有效的公钥基础设施,另一个缺陷是使用Tunneling SIP 时将产生非常长的消息,此时虽然可以采用TCP 作为传输层协议,但是从网络的利用率来讲,还是不理想。

2.5 HTTP-Digest摘要认证

HTTP摘要认证[8]是SIP协议的基本认证方式,它基于一种挑战/响应(challenge/response)模式,为SIP实体提供身份认证。在SIP网络中,HTTP摘要认证方式可以被用于用户到用户(User-to-User)的认证和服务器到用户(Proxy-to-User)的认证。图6是SIP注册用户鉴权过程。用户到用户的认证是指UAS、注册服务器或重定向服务器对于UAC的认证,使用401响应状态码,服务器到用户的认证是指服务器对于UAC的认证,使用407响应状态码。

目前,HTTP摘要认证仅能实现Server对本域内

UA的认证,无法实现UA对Server的认证、Proxy对

Proxy的认证和Proxy对域外UA的认证。

3 结 语

随着多媒体会议,VoIP,IMS等领域采用SIP协议为核心层信令控制协议,SIP成为一个应用广

泛、逐渐走向成熟的协议。

SIP协议虽然有开放、简易、可扩充等优点,但其自身并没有制定相应安全策略,现有的安全机制还有不完善的地方。许多人正在研究新的方法来提高SIP安全,例如在S/MIME的框架下,采用SigComp[9,10] (信号压缩)技术,选择合适的压缩算法(如基于字典模型的LZW或LZSS)压缩SIP/SDP消息体,然后有选择地加密部分消息体,这样可以提高SIP消息传输的有效性和安全性。这也是作者下一步的研究方向。

参考文献

[1]IETF.RFC 3261.SIP:Session Initiation Protocol.2002.

[2]白建军,彭晖.SIP揭秘[M].北京:人民邮电出版社,2003.

[3]司端锋,韩心慧,龙勤,等.SIP标准中的核心技术与研究进展[J].软件学报,2005,16(2):239-250.

[4]Kent S,Atkinson R.Security Architecture for the Internet Protolol.RFC2401.1999.

[5]Dierks T,Allen C.TLS Protocol Version.RFC 2246, 1999.

[6]Zimmermann PR.The Official PGP User′s Guide.MIT Press,1995.

[7]Ramsdell B.S/MIME Version 3 Message Specification.RFC 2633,1999.

[8]Franks J,Hallam-Baker P,Hostetler J,et al.HTTP Authentication:Basic and Digest Access Authentication.Request for Comments 2617.Internet Engineering Task Force,1999:94-112.

[9]IETF.Signaling Compression (SigComp).RFC 3220,2003.

[10]IETF.The Session Initiation Protocol(SIP) and Session Description Protocol(SDP) Static Dictionary for Signaling Compression(SigComp).RFC 3485,2003.

作者简介 白芸洁 女,1981年出生,河南郑州人,硕士研究生。主要研究领域为下一代网络、信息安全。

穆维新 男,高级工程师,教授。主要研究领域为软交换、网络安全。

sip协议范文2

关键词:下一代网络(ngn);软交换;sip协议

引言

目前传统的公众交换电话网(pstn)上传送着许多数据业务,由于快速增长的数据业务给并不适合传送数据业务的电话网造成了很大的压力。因此,基于分组技术的数据网与电路交换网最终必将走向融合,产生下一代由业务驱动的网络。软交换是下一代网络交换的核心,如果说传统电信网络是基于程控交换机的网络,而下一代网络则是基于软交换的网络。

1系统开发的技术基础

1.1软交换的概念

我国信息产业部电信传输研究所对软交换的定义是:“软交换是网络演进以及下一代分组网络的核心设备之一,它独立于传送网络,主要完成呼叫控制、资源分配、协议处理、路由、认证、计费等主要功能,同时可以向用户提供现有电路交换机所能提供的所有业务,并向第三方提供可编程能力。”

1.2 sip协议介绍

会话初始化协议sip(session initiation protocol)是一个面向internet 会议和电话的简单信令协议,sip最初由ietf mmusic (multiparty multimedia session control) 工作组提出。它的主要目的是为了解决ip网中的

信令控制,以及同软交换机的通信,从而构成新一代的通信平台。

2 系统的总体设计和实现

2.1系统的层次结构

软交换采用业务与交换分离的设计思想,在系统设计结构上将软交换技术应用设计为三层结构,底层为用户接入层,中间为交换支撑层,最上面是业务实现层。系统的层次结构如图1所示。

2.2呼叫管理服务器的设计与实现

呼叫管理服务器处于该体系结构中的网络控制层,它是软交换系统的核心部分。呼叫管理服务器除了完成呼叫控制、连接控制和协议处理功能外,还将提供原来由网守设备提供的资源管理、路由以及认证、计费等功能。

软交换系统的运行需要sip协议栈和sdp协议栈。客户端应该能够产生invite和ack请求,能够产生和解析call-id,content-length,content-type,cseq,from和to头部字段。呼叫管理服务器应该能够接收invite,ack,bye,cancel和register请求,应该能够产生和解析call-id,content-length,content-type,cseq,expires,from,max-forwards,via和to头部字段。为了能够使客户端和服务端能够使用rtp传输语音流,sdp协议应该能够产生和解析v,o,s,c,t,m和a头部字段。

本系统以面向对象的方法设计了一个满足系统要求的最小sip和sdp协议栈。sip协议栈支持invite,ack,bye,register和cancel请求,支持100,180,200,300,400,500和600状态应答,支持subject,contact,call-id,content-length,content-type,cseq,expires,from,max-forwards,via和to头部字段。sdp协议栈支持v,o,s,c,t,m和a头部字段。sip和sdp中的头部字段都是以类的形式实现的,所支持的头部字段都是从一个抽象类header继承而来。抽象类header的定义如下:

class header

{

public:

header();

virtual ~header() = 0;

virtual string encode() const = 0;

virtual void decode(const string& headerstring) = 0;

virtual string getname() const = 0;

};

其中最主要的方法为decode,主要用来对相应的头部字段进行解析,getname方法返回当前的头部字段类的类名,encode方法用来产生相应的头部字段的字符串。

其中sip协议栈的结构如图2所示:

解析层是对sip消息进行解析和构造。解析层实现的关键在于各个头部字段类的设计及其相应decode方法的实现。解析层的实现借鉴了vocal开放源码中sipstack的头部字段类的设计方法,vocal的sipstack对rfc2543完全支持,但协议栈非常的庞大,设计的过程中参考了vocal的sipstack的头部字段类的设计形式实现了一个简洁,实用的sip协议栈,sip协议栈的大小还不到vocal的sipstack的1/10。

3 结束语

总之,基于sip协议软交换系统的前景非常广阔,在这个领域,有许多技术难题等待人们去解决。相信在大家的共同推动之下,软交换系统的应用将得到快速的发展。

参考文献

[1]强磊等编著.基于软交换的下一代网络组网技术[m].人民邮电出版社,2005

[2]秦维佳.c/c++程序设计教程[m].机械工业出版社,2007

sip协议范文3

关键词:SIP;IP;MPEG4;软交换;视频监控

中图分类号:TP393文献标识码:A 文章编号:1009-3044(2010)01-74-03

The Design and Implementation of Video Monitoring System Based on SIP

HUANG Lun-wen, CHENG Yong, LI Han

(Anhui Sun Create Electronics Co., Ltd, Hefei 230088, China)

Abstract: How to set up a remote network video connections, NAT penetration, efficient video stream encoding and decoding is the research in the field of video monitoring. MEPG4 video encoding formats, which is of high compression ratio, is used in the SIP-based network video monitoring system. The system supports multi-channel IP video, using soft-switching platform for centralized management of the video stream to achieve the establishment of a network video connection, video streaming encoding and decoding, encryption, transmission, and intelligent alarm, video capture, playback and other functions.

Key words: SIP; IP; MPEG4; soft switch; video monitoring

近年来,随着各类如地震、冰雪等自然灾害和恐怖事件频繁发生,公共安全已经得到世界各国的高度重视。各级政府和单位投入大量的人力、物力研究新型安全防范系统。其中视频监控是安全防范的重要组成部分,它是一种可靠、防范能力极强的综合系统[1-2]。

SIP(Session Initiation Protocol)会话初始协议是IETF制订的,用于多方多媒体通信,是一个基于文本的应用层控制协议,独立于底层传输协议TCP/UDP/SCTP,用于建立、修改和终止IP网上的双方或多方多媒体会话[3-4],与RTP、RTCP、SDP等协议结合可实现语音、视频通讯;SIP协议可在TCP或UDP之上传送,由于SIP本身具有握手机制,可首选UDP。

1 视频监控系统的构架和工作原理

1.1 系统构成

该视频调度监控系统由视频嵌入式终端、监控管理平台以及SIP服务器系统三部分组成。其结构如图1所示。

其中嵌入式终端是基于SIP信令构建的系统,在SIP网元中也可以把它看作是包含媒体通讯功能的UA客户端。主要完成信号的采集、信号处理和前端摄像机的控制工作。

SIP服务器系统主要包括信令服务器(定位、、注册)、媒体服务器(转发、存储等)以及报警服务器等。当有监控中心向服务器发出监控请求时能够找到相应的监控设备,并且把请求转发到嵌入式终端。

监控管理平台是一个标准的SIP设备,用户除了可以观看监控现场的图像以外,通过扩展SIP信令,还可以支持授权用户对云台系统的控制。这里的管理平台可分为监控中心(外接电视墙或电视机),软件管理平台(其中包括在本地局域网内的客户端)和支持SIP的移动设备,如笔记本电脑、可视电话、SIP手机等。

1.2 系统的工作原理

嵌入式终端注册到SIP服务器,如果监控管理平台需要监控某个终端,可以发出接入请求,SIP服务器可以找到终端所在地,然后建立连接。连接建立后,嵌入式终端系统采集音视频的模拟信号,然后转化为数字信号,经过编码器编码后(如MPEG-4编码)传送给视频监控服务器,视频监控服务器把视频数据进行IP封装后发送到监控管理平台。

2 嵌入式终端设计

嵌入式终端采用Z228芯片开发,Z228是上海杰得微电子自主开发的多媒体应用处理器,是中国第一款0.13微米的高度集成的低功耗的具有强大多媒体处理能力的 SoC 芯片,单芯片包含了ARM926EJ CPU和MPEG-4硬件编码器[5]。嵌入式终端的主要功能是视频的采集、A/D转换、编码、发送等功能。

2.1 硬件体系结构

如图2所示,摄像头连接到视频输入接口,采集到的模拟视频数据经过A/D转换后进入高性能处理芯片,高性能处理芯片集成了硬件编码芯片和ARM处理器,数据经过硬件编码后成为高压缩比的MPEG4数据,通过RJ45接口传送到网络上。摄像头连接到云台上,使云台带动摄像头移动,摄像头以及云台的控制接口和控制器相连,控制器再和集成电路板上的485接口相连,这样就可以用485协议通过控制器对云台进行移动控制以及对摄像头进行变焦等操作。

2.2 MPEG-4编码

系统采用的视频编码格式是MPEG-4。

编码的过程如图3所示:

1)初始化阶段:初始一个实例,调用函数:MP4EncInit;

2)选项配置:对编码的码率等参数进行配置,调用函数:MP4EncSetRateCtrl、MP4EncSetCodingCtr、MP4EnSetUsrData、MP4EncSetSmooth、MP4EncSetCrop;

3)采集视频流:获取产生MPEG4码流的头信息,调用函数:MP4EncStrmStar;

4)数据编码:每次得到YUV的图像帧后,产生这一帧的码流。调用函数:MP4EncStrmEncode;

5)输出数据:把编码过的数据打包,经过RTP传到SIP服务器;

6)停止数据流:一个码流数据的结束,调用函数:MP4EncStrmEnd;

7)释放资源:释放初始化的实例,调用函数:MP4EncRelease。

2.3 媒体数据的发送

SIP连接建立成功以后,双方视频通道建立,在IP层上进行视频数据传递,利用RTP(实时传输协议)和RTCP(实时传输控制协议)通过UDP传输数据。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据[6]。

RTP提供具有实时特征的、端到端的数据传输服务。在视频数据前插入包含有载荷标识、序号、时间戳和同步源标识符的RTP包头,然后利用数据报套接字(UDP)在IP网络上传输RTP包。

RTCP负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。SIP服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。

3 SIP服务器

SIP用来建立,改变,认证和终止基于IP网络的多个SIP的视频接入。在此接入过程的基础上很容易的实现多方的音视频、文本等各种类型的媒体会话。参与会话的成员可以通过组播方式、单播连网或者两者结合的形式进行通信。SIP服务器包括信令服务器、媒体服务器、监控服务器。

3.1 信令服务器

信令服务器用于响应SIP终端注册以及连接建立,图4是一个完整的SIP视频的建立流程[7-8]。

嵌入式终端和监控管理平台首先向Sip Proxy(SIP注册服务器)发起注册;当监控中心要接入某路视频时,监控软件经SIP服务器向特定嵌入式终端发起包含SDP(Session Description Protocol 会话描述协议)结构的INVITE请求,嵌入式终端返回180响铃消息,然后嵌入式终端返回包含SDP结构的200OK数据包表示同意接听,并且进行媒体协商,最后监控软件向嵌入式终端发送ACK确认包,此时通话建立;启动媒体和485总线的相关线程。

当断开某路视频时,监控软件向嵌入式终端发BYE消息,嵌入式终端返回200OK,则连接断开。

3.2 媒体服务器

媒体服务器的主要作用是媒体流数据的转发、录像、点播等功能。

当监控管理平台和嵌入式采集终端连接成功后,媒体服务器建立起映射关系,嵌入式采集终端采集现场实时图像,进行编码打包后发送到媒体服务器,媒体服务器根据该连接的映射关系,把IP视频包转发至监控管理平台;而监控管理平台通过同样的方法实现对嵌入式采集终端的各种控制命令的发送。

媒体服务器的另一个重要功能是视频流的存储点播。媒体服务器可以把经过该服务器的视频数据保存到硬盘中,用户可以对视频数据进行检索和回放。当监控系统比较庞大,一台媒体服务器无法满足整个系统需求时,可以对媒体服务器进行扩展,使用多台媒体服务器并发协作执行。

3.3 监控服务器

当摄像机收集到异常信号(如探测到了高温信号,认为发生了火灾)后,将其通过监控系统传至报警联动装置,再由报警联动装置通过某种通信手段(如手机短信、E-mail等)自动向监控人员发出报警信号,或者系统自动地处理现场(如火灾时断电等)。

4 监控管理平台

SIP监控平台的主要作用是连接并控制远程视频,视频流接收、解码、回放等。

4.1 平台构成

监控管理平台包含SIP模块、RTP模块、XVID模块、远程控制模块等。分别实现远程网络视频连接的建立、视频流接收、解码播放、远程控制等功能。每个监控平台可以同时监控多路视频,能够对视频数据进行拍照或录像,对摄像头和云台进行操控。对指定区域的情况实时监测报警。

监控平台另一个重要的功能是通过图像处理算法对比一段时间间隔的图像数据的相似性,来识别指定区域是否有异常活动,实现自动报警、抓拍、跟踪等功能。

4.2 MPEG-4解码

从SIP服务器转发过来的的视频流,需要解码后,才能呈现图象,解码包含Decoder 和VPD 2 部分。其中Decode 用于数据的读取和解码,而VPD 用于图像缩放、格式转换等处理。

解码流程如图5所示:

1)初始化:初始化Decoder和VPD实例,调用函数:MP4DecInit、VPDInit;

2)取数据头信息:启动接收MPEG-4数据流,解出视频数据的头信息,调用函数:MP4DecDecode;

3)预留视频图象处理空间;

4)配置VPD:根据头信息中码流的宽高等,配置VPD模块。根据需要,将输出配置为Framebuffer或者内存。调用函数:VPDGetConfig、VPDSetConfig;

5)解码:根据头信息接收解码单元(一段数据),解码单元内的数据。一帧图像解码完毕则输出显示,否则继续解码,调用函数:MP4DecDecode;

6)释放资源:结束时候,释放相关实例,调用函数:VPDRelease、MP4DecRelease。

5 结束语

该文设计和实现了一种基于SIP的视频监控系统。该系统使用嵌入式设备代替传统的监控系统,传输方式采用了集中管理代替点对点的方式,提高了监控设备的可靠性、灵活性、易管理性。SIP监控适合应用于大规模分布式监控,具有IPV4/IPV6双协议栈,不仅应用于现在的网络,也可平滑过度到下一代网络。随着SIP相关技术的成熟,SIP将成为视频监控领域主流信令控制协议之一,具有广阔的发展空间。

参考文献:

[1] 钱龙华,吕强,杨季文,等.基于ISP的嵌入式视频监控系统[J].计算机应用,2007,27(7):1786-1788.

[2] 朱校海,杨从保,杜治国.基于SIP的IP视频监控系统探讨[J].中国安防,2007(5):98-101.

[3] 司端锋,韩心慧,龙勤,等.SIP标准中的核心技术与研究进展[J].软件学报,2005,16(2):239-250.

[4] 张智江,张云勇,刘韵洁.SIP协议及其应用[M].北京:电子工业出版社,2005.

[5] 魏涛,柴晓东,王华彬,等.基于Z228嵌入式最小系统设计[J].电视技术,2007,31(8):32-34.

[6] 蒋建国,苏兆品,李援,等.RTP/RTCP自适应流量控制算法[J].电子学报,2006,34(9):1659-1662.

sip协议范文4

【关键词】 P2P-SIP VoIP会议系统

一、系统需求分析

传统C/S模式下基于SIP的VoIP会议系统,除了客户端外,还需要配置SIP注册服务器、位置服务器、重定向服务器以及会议服务器,因而会议系统的构建和管理维护都需要较大的费用代价。

二、P2P与SIP结合的设计方案

不同于传统的SIP系统结构,P2P-SIP系统不再区分服务器和用户,系统中每个结点既承担服务器的功能,同时也承担用户的功能。结点之间直接进行联系,一方面结点可扮演SIP网络电话中几乎所有实体的角色,不仅具有客户机方面的SIP用户功能,可以发起、接收呼叫,而且还具有传统SIP所需要的服务器功能,可以向用户提供注册、和重定向服务;另一方面结点还必须能够组织和管理P2P网络,具备处理结点的加入与退出、信息的路由、P2P网络稳定性保持等功能。P2P-SIP覆盖网络通过CHORD算法来组织和维护。系统中每个结点根据其结点IP地址和端口号使用Hash函数计算出一个Node-ID,并根据Node-ID的大小,首尾相连成一个的逻辑环结构。系统中电话用户的Resource-ID是根据用户名使用Hash函数计算得到的。一个Resource-ID为k的用户注册信息将存储在第一个Node-ID大于或等于(模运算)k的结点处。用户注册信息的存储位置会随着相关结点的加入和离开而发生变化。

三、会议模型的分析与选择

3.1 SIP会议模型分析

SIP会议模型按信令与媒体流的关系主要分为紧耦合和松耦合两种模型。紧耦合会议模型是指由一个中心结点实现信令集中控制,又分为端系统混合、集中混合和信令集中媒体流分布三种模式。松耦合会议模型则是指无需中央SIP信令的控制,终端直接进行交互,又分为组播会议和网状分布式单播会议两种模式。

3.2 会议模型的选择

本文网络会议模型采用信令集中、媒体流分布模型。由若干个核心管理结点组成SIP会议的信令控制中心,负责维护与所有参与会议结点间的SIP信令连接,而与会结点之间没有SIP信令的交互。音频流则由各个与会结点分别进行处理,每个参与会议的结点同时接收其它与会结点的音频流。作为会议管理结点不参与音频流的处理,每个会议的发起由CHORD逻辑环上的结点发出,CHORD逻辑环上的各结点可以发起多个会议,不同会议的管理将分布在不同的结点上,同一会议的管理结点将采用P2P备份策略。

3.3 系统逻辑架构

系统逻辑结构分为会议层、SIP层和DHT层。会议层用于处理与会议相关的操作;SIP层负责构造SIP信令消息,通过对SIP协议的扩展,CHORD逻辑环上结点间的信息交互可以SIP信令格式实现;DHT层负责结点的定位操作,可实现SIP协议中的结点发现、呼叫建立等功能。该结构只须对SIP协议进行扩展而无须修改,与现有采用C/S结构的SIP网络电话系统相兼容。

3.4 系统模块划分

系统可由以下几个模块组成。在整个系统设计方案中,用户界面主要提供用户登录界面,用户基本信息的输入等功能;注册模块负责新结点的注册加入以及用户信息的注册;定位模块负责用户定位,包括注册用户的定位和呼叫用户的定位;退出模块负责结点和用户的退出;DHT操作模块负责调用SIP协议栈实现基本的CHORD算法;会议模块负责会议的创建、用户的加入退出、用户会话等功能;媒体数据传输模块负责音频数据的编解码及媒体数据的收发。

3.5 SIP协议扩展设计

SIP协议具有良好的可扩展性,其扩展性体现在它与底层传输协议的无关特性上。SIP对消息的传输、理解和处理独立于支持它的下层协议。SIP扩展以模块化的风格实现,并且SIP使用的方法可以在会话建立期间协商,从而保证实现核心协议的简单用户能和更高级的用户实现互操作。

按照前文所讨论的P2P与SIP结合的设计方案,P2P-SIP网络的维护是通过结点之间的SIP消息交互完成的,因而必须对SIP协议进行扩展以支持DHT网络。除此之外,为了支持会议功能,还须对SIP协议进行会议消息方面的扩展。

参 考 文 献

sip协议范文5

关键词:会话建立协议;网络地址翻译;VoIP;STUN

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1480-05

Research on NAT Traversal Based on SIP

WANG Qing-nian

(School of Computer Science & Technology, Soochow University, Suzhou 215007, China)

Abstract: SIP is an IETF defined IP multimedia communication control protocol and the key protocol of the next generation network (NGN), As a result of the inconsistency between the rapid development of SIP-based audio/video communication applications and the shortage of IPv4 adresses, the NAT traversal problem has been raised , In the paper , the NAT traversal problem of SIP singnalling and media stream is explained firstly. Then an overview is given to the existing solutions of media stream traversal. Finally a STUN protocol based on implementation is detailed to be applicable to enterprise networks.

Key words: SIP; NAT; VoIP;STUN

相比较传统的公共交换网络(PSTN),VoIP的费用相对比较便宜,VoIP是以IP电话为主,并推出响应的增值业务的技术,VoIP可以便宜的传输语音,视频,传真和数据等业务。如:虚拟电话、电话会议、电子商务、Internet呼叫管理等。之所以VoIP相对便宜,是因为VoIP实际上是互联网上的一个应用。而VoIP最大的优势就是它可以利用庞大的现存的IP网络。

VoIP的基本原理是发送方的设备将语音进行采样编码压缩,之后通过IP封装成IP数据包传输到接收方,接收方将封包进行解码输出到相应的设备。设备还原输出模拟语音。VoIP技术的发展日趋成熟,VoIP技术可以分为三个方向。

1) 使用电话行业中的信令概念,譬如:H.323,MGCP,MEGACO/H.248。

2) 使用电话行业中的控制概念,譬如:中心控制和软交换。

3) 使用以Internet协议为中心的SIP(会话建立协议)。

其中SIP借鉴了其他Internet标准和协议的设计思想,相比其他技术有其突出的优点:

1) 它是基于文本的协议,因此,SIP对以文本形式表示的消息的词法和语法分析就比较简单。

2) SIP会话请求过程和媒体协商过程等是一起进行的,因此呼叫建立时间短,

3) SIP只要充分利用已定义的头域,必要时对头域进行简单扩展就能很方便地支持补充业务或智能业务。

在目前的网络环境中,出于安全性和IPv4地址资源问题的考虑,防火墙和NAT设备广泛使用。这样,如何使用SIP协议穿透防火墙和NAT已经成为SIP应用领域的一个重要课题。

1 SIP协议概述及其原理

1.1 SIP协议概述

会话建立协议(Session Initiation Protocol,SIP)是一种基于文本的应用层协议,类似于我们熟悉的并广泛使用的一些协议如HTTP, SMTP。它是由IETF(Internet Engineering Task Force)提出的IP电话信令协议。会话参与者可以使用SIP创建,修改和终止会话。这种会话可以是电话播叫,多媒体会议,和影音传输。会话参与方通常产生一个携带“媒体描述”的SIP包,以便参与者能够对媒体Codec(编解码)达成一致。SIP相对于H.323(另一种IP电话系统结构的信令协议,是由ITU制定的一整套庞大的标准)简洁,SIP通常可以和其他多种协议进行整合,以发挥更多更大的作用。

早在1996年IETF(Internet Engineering Task Force)中的多媒体工作组已经开发了在Internet上的多媒体基础,即Henning Schulzrinne教授的SCIP(the Simple Conference Invitation Protocol)和Mark Handley的SIP这两份提案,后来被宣布合并到会话建立协议(SIP)。新的协议也保留了SCIP提案中的HTTP定位功能。Schulzrinne,SIP协议经过发展在1999年首次被认可作为RFC(Request For Comments,意即“请求注解”)编号2543,也就是SIP的1.0版本,并在同年分离出一个独立的SIP工作组,对于即时消息和在线检测业务的工作组(SIP for Instant Messaging and Presence Leveraging, SIMPLE)成立了,在2000年,SIP工作组成立了,它主要是开发和完善SIP协议,比如SIP的方法,消息和事件等。随后在2002年专注应用和扩展的SIPPING(Session Initiation Proposal Investigation)工作组也成立了。2005年时,已经成立了多个工作组,如XCON(集中式的会议),ECRIT(紧急事件通讯), P2PSIP(Peer-to-Peer SIP)。SIP正受到越来越多企业和研究机构的重视,IETF继续进行制定SIP这项工作,在2001年了标志着SIP已经成熟的2.0版本的规范RFC3261。

RFC 3261的标志着SIP的基础已经确立。那个时候起,IETF又了一些RFC 3261的增补版本。例如,RFC 3262 对临时响应的可靠性作了规定。RFC 3263 确立了 SIP 服务器的定位规则。RFC 3264 提供了offer/answer模型,RFC 3265 确定了具体的事件通知。

1.2 SIP协议功能

SIP支持的主要功能:

用户定位:确定通信所用的端系统的位置。

用户可用性判定:确定被叫方是否空闲和是否愿意加入通信。

用户能力交换:确定所用的媒体类型和媒体参数。

会话建立:邀请和提示被叫,在主被叫之间传递和建立媒体会话参数。

会话管理:包括转移和终止会话,修改会话参数以及调用其他业务等。

SIP本身并不提供服务,但是SIP提供一个基础,用以用来实现不同的服务。

1.3 SIP网络元素

一个SIP网络中有四种SIP逻辑实体,每一种实体都有详细设定的功能,传统的SIP是基于C/S模型进行信息通讯,在SIP通信中的实体要么作为一个客户端,用来发送初始化请求,要么作为服务器端用于响应请求,或者同时集中客户端和服务器端的功能。四种类型的逻辑实体如下:

1) 用户(User Agent,UA),它是终端用户设备,如用于创建和管理SIP会话的移动电话、手持设备、PC、PDA等。UA又可以分为用户客户机和用户服务器,用户客户机用来发送消息,用户服务器对消息进行响应。

2) 服务器(Proxy Server),它管理着一个域的会话请求或者响应信息。服务器接受SIP UA的会话请求并查询SIP注册服务器,或其接收方UA的地址信息。然后,它将会话邀请信息直接发给接收方UA(若果它位于同一域中)或服务器(如果UA位于另一个域中)。

3) 重定向服务器(Redirect Server),它允许SIP服务器将SIP会话邀请信息定向到外部域。不像服务器,重定向服务器不会将传送请求到另一个重定向服务器上。

4) 注册服务器(Registrar),它是包含域中所有用户的位置信息的数据库。通常物理上SIP注册服务器与重定向服务器同在一个硬件上。

1.4 SIP消息的组成

SIP消息有两种类型:请求消息(从客户机发送到服务器)和响应消息(从服务器发送到客户机)。但这两种消息在结构上类似,只在起始行上有差别。

SIP消息的格式:

SIP 消息 =起始行(请求行/状态行)

*消息头部 (1..*头部)

CRLF(空行)

[消息体(可选,通常为SDP)]

请求消息行的格式:

请求行 =Method SP Request-URI SP SIP-Version CRLF

比如:INVITE sip: SIP/2.0

在请求行中,SIP-Version(遵循RFC3261协议)等于SIP/2.0(RFC2543是SIP/1.0),请求行中包含了一个方法(Method),它决定了消息的类型和目的。可以是REGISTER,INVITE,ACK,CANCEL,BYE,OPTIONS.(rfc3261中6种),SIP在其他的文档中还实现了若干个Method。

表1 SIP请求方法

响应消息行的格式:

响应行 =SIP-Version SP Status-Code SP Reason-Phrase CRLF

如:SIP/2.0 180 Ringing.

在响应行中,Status-Code(状态码)参数是从100~699的整数,共有6大类状态码定义了不同的类型的状态,而每一类又可以分为若干个子状态。

表2 SIP响应状态码

在响应行中的 Reason-Phrase(原因)参数用于对Status-Code(状态码)进行的简单文本描述。在消息头部中,是一些通用的头域,由用户客户机产生的SIP请求必须包含下列6个头域:To、From、CSeq、Call-ID、Max-Forwards和Via。

消息头部的格式

Header-Field = “header-name” “:” header-value *(COMMA header-value)

SIP消息示例:

INVITE sip: SIP/2.0

Via: SIP/2.0/UDP ;branch=z9hG4bK776asdhds

Max-Forwards: 70

To: Bob

From: Alice ;tag=1928301774

Call-ID:

CSeq: 314159 INVITE

Contact:

Content-Type: application/sdp

Content-Length: 142

(SDP 省略)

1.5 SIP会话呼叫流程

一次简单的建立会话过程如图1,简单的呼叫必须至少有呼叫方和被叫方,在两者之间通常有SIP服务器,所有的SIP信令都必须通过SIP修改和转发。在SIP终端启动时都会向SIP注册服务器(这里SIP同时也是注册服务器)发送REGISTER消息,而注册服务器响应200,表示注册成功。建立会话时,SIP终端A首先发起呼叫请求,向SIP发送INVITE消息,SIP向终端B发送INVITE请求。图1中100为临时响应,表示呼叫正在处理中。终端B振铃,向SIP服务器发送临时响应180,主叫(SIP终端A)收到180后听到铃音。SIP终端B向SIP发送成功响应200,表示被叫(SIP终端B)同意会话并摘机,SIP终端A在收到SIP转发的成功响应200之后发出ACK,至此两个SIP终端建立连接,两者之间可以进行媒体通信。

SIP终端A向SIP发送BYE消息请求释放连接,经过SIP的转发BYE传送到SIP终端B,在终端A收到200响应后,呼叫释放成功。

2 SDP(会话描述协议)概述

2.1 SDP协议介绍

SDP是由IETF定义用来描述流媒体会话初始化参数的。例如,在多媒体会话中包括音频和视频编码类型,采样率等。SDP不是一个通讯协议,它的描述语言采用文本模式,所以使用者很容易了解SDP包中所包含的信息。

2.2 SDP与SIP关系

SDP纯粹是一种会话描述的格式,它可以使用不同的传输协议,如会话通告协议SAP、会话建立协议SIP和超文本传输协议HTTP等。

在SIP包的消息体中通常携带SDP的内容,并在SIP消息体中用Content-Type: application/sdp指示。这行之后,就是纯粹的SDP消息。

图1 SIP呼叫流程

SDP文本信息包括:

1) 会话名称和意图;

2) 会话持续时间;

3) 构成会话的媒体;

4) 有关接受媒体的信息(地址等)。

协议结构

SDP 信息是文本信息, SDP 会话描述如下:(标注 * 符号的表示可选字段):

会话描述:

v = (协议版本)

o = (所有者/创建者和会话标识符)

s = (会话名称)

i = * (会话信息)

u = * (URI 描述)

e = * (Email 地址)

p = * (电话号码)

c = * (连接信息 D 如果包含在所有媒体中,则不需要该字段)

b = * (带宽信息)

一个或更多时间描述(如下所示):

z = * (时间区域调整)

k = * (加密密钥)

a = * (0 个或多个会话属性行)

0个或多个媒体描述(如下所示)

时间描述

t = (会话活动时间)

r = * (0或多次重复次数)

媒体描述:

m = (媒体名称和传输地址)

i = * (媒体标题)

c = * (连接信息 ― 如果包含在会话层则该字段可选)

b = * (带宽信息)

k = * (加密密钥)

a = * (0 个或多个会话属性行)

其中,c=<network type> <address type> <connection address>: “c=”域包含链接的信息,“连接地址”指的是传输流媒体的IP地址。m=<media> <port> <transport> <fmt list>:每个媒体描述域由多个子域组成。<meidia>可以是“audio”、“video”、“application”、“data”和“control”五种形式。<port>是媒体流发送的传输端口;<transport>是传输媒体时所用的传输协议,通常为UDP.。该子域的值依赖于“c=”;<fmt list>表示媒体格式。

3 NAT的网络概念

在计算机网络中,为了节约公网IP地址和基于一些安全性考虑,通常局域网内使用内部私有地址,局域网内的主机若要访问INTERNET网,则IP包必先经过NAT(网络地址转换)设备,NAT设备通常是路由器或者防火墙设备,在INTERNET上大多数系统使用NAT是为了使多个主机上使用一个单一的公共IP地址,从而节约一大部分资金以及方便管理和隐藏内部主机的地址。NAT对于内部主机是透明的,同一个局域网内的主机访问外网使用同一个地址,这个地址也就是NAT设备的连接公网的接口地址,使用不同的端口来区分不同的主机的请求。同时NAT会记录下内外网地址的映射关系。以便外部接收外部传输来的连接发到正确的内网设备。

3.1 NAT的类型

根据NAT的对于内外网的映射关系的不同和是否允许外网主动连接内网主机,NAT可以分为下面三种。

1) 静态NAT(Static NAT)

静态NAT是指内部网络中的每个主机都被永久映射成外部网络的某个合法地址。

2) 动态NAT(Pooled NAT)

与静态NAT不同的是动态地址NAT则是外部网络中定义了一系列的合法,采用动态分配的方法映射到内部网络。

3) NA(P)T

NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上,不用的内网机器对应一个外部IP的不同的端口。

绝大部分的NAT使用的这种方式,通常可将NAPT分为四种类型。

1) 完全锥形NAT

完全锥形NAT把所有来自一个内部私网地址/端口的请求,都映射到同一个外部公网地址/端口。并且,任何外部主机可以通过映射得到的该外部地址发送数据包,从而NAT接收数据包并发送到该内网主机。

2) 受限锥形NAT

只有当私网IP向外发出数据包时,NAT才会进行该私网IP/端口与公网IP/端口的映射,这时目标公网IP的返回数据包能通过NAT到达私网设备,而其他公网IP所发送的数据包会被拒绝。也就是,只有当NAT后面的主机主动与其通信时,该IP设备发出的数据包才能获得通过。

3) 端口受限锥形NAT

图2 NAT(P)T示意图

与受限锥形NAT类似,除了NAT后面的主机(私网主机)主动发送数据包到外网IP地址/端口,该IP地址/端口可以发送数据包通过NAT设备到达私网主机,相比受限锥形NAT更严格,即使来自相同外网IP但是用不同的端口发送数据给NAT,NAT就会将该数据包丢弃。

4) 对称NAT

一个私网设备同时与不同的两个公网设备进行通信时,NAT需要提供两组公网IP地址及端口。这种情况下通常是分配给同一个私网设备数据包发送出外网同一个IP不同的端口。

4 现有SIP穿越NAT技术概述

基于SIP协议的NAT穿越主要指的是RTP流的穿越问题,对于这一问题,业界提出了多种不同的技术。

4.1 应用层网关(ALG)

在NAT/Firewall上加入能够用于具体应用协议(如SIP)感知的模块,通过对具体协议的感知,进行针对不同协议的具体NAT/Firewall穿越处理。对于每一种应用协议都需要一个ALG实例来支持,因此每增加一个应用层协议的支持,或者现有的协议修改了,都需要一个新的ALG来支持,因此这种穿越NAT机制在实现中复杂度高,需要升级NAT设备,成本也大,可扩展性差,这种方式在应用中受到很大的限制。

4.2 MIDCOM控制协议

MiddleBox Communications(MidCOM)是通过在受防火墙/NAT信任的第三方实体(MIDCOM Agent)和防火墙/NAT(MiddleBox)之间建立中间盒通信,使中间盒设备(防火墙/NAT)变成可控制的一种新概念。这些信任的实体通过MDCOM协议与防火墙/NAT进行通信。这种方式允许受防火墙信任的第三方实体代表NAT做出决定,强制其开放端口传送媒体流或数据流,但是并非所有的防火墙/NAT都能够支持某种MIDCOM协议,因此这类技术在实际中的应用也存在一定的局限。

4.3 STUN(UDP的NAT简单穿越)

RFC 3489中提出来一种穿越NAT的一种方式,就是在公网上设置一个STUN服务器,用于与私网终端通讯,在发送数据包之前,终端用户先与STUN服务器通讯,在通信的过程中STUN服务器得知终端的外网地址和出口端口号,并告诉给终端,最终修改SDP数据包的是终端,终端与外网服务器之间使用RFC 3489中定义的STUN协议。但是因为STUN告诉内网终端的端口是UDP目的地为STUN服务器的数据包出外的端口,在对称NAT下真正的媒体流出去则分配一个不同的端口号,所有终端修改了数据包也是没有用的,因而,STUN这种方式不能解决在对称式的NAT下的数据包的穿越问题。

4.4 TURN(STUN Relay Usage)

TURN的全称为Traversal Using Relay NAT,及通过Relay方式穿越NAT。这种方式可以解决对称式NAT下的穿越问题,TURN方式解决NAT问题的思路与STUN相似,不同的是,所有的媒体流都需要经过TURN服务器进行Relay转发。

实现TURN的穿越方式需要终端支持TURN Client,这一点同STUN一样对网络终端有要求;此外,所有报文都经过TURN服务器,特别是语音流,这样增大了网络延时和丢包的可能性。

sip协议范文6

关键词:sip、用户、sip消息、voip、ngn

1      前言

正如dynamicsoft公司首席科学家jonathan rosenberg博士所说的“在电信界以外毫无所知的情况下,一场静悄悄的革命发生了”。而领导这场静悄悄革命的是会话初始化协议(session initiation protocol,sip),它是由ietf提出的ip电话信令协议。sip的出现打破了传统电信业务的传输模式,它用基于internet的准则为电信业带来了新的生机。sip作为第三代移动系统的信令协议,能够提供ip多媒体服务,可以将蜂窝系统与internet应用领域融合在一起。它的主要目的是为了解决ip网中的信令控制,以及同软交换机(softswitch)的通信,从而构成下一代的增值业务平台,对电信、银行、金融等行业提供更好的增值业务。

2      sip简介

2.1      sip系统结构

按逻辑功能区分,sip系统由4种元素组成:用户,sip服务器,重定向服务器以及sip注册服务器,如错误!未找到引用源。所示。

sip用户,又称为sip终端,是sip系统中的端用户,在rfc3261中将它们定义为一个应用。根据它们在会话中扮演的角色的不同,又可分为用户客户机(uac) 和用户服务器(uas)2种。其中前者用于发起呼叫请求,后者用于响应呼叫请求。

sip服务器,是一个中间元素,它既是一个客户机又是一个服务器,具有解析名字的能力,能够前面的用户向下一跳服务器发出呼叫请求。然后服务器决定下一跳的地址。

重定向服务器,是一个规划sip呼叫路径的服务器,在获得了下一跳的地址后,立刻告诉前面的用户,让该用户直接向下一跳地址发出请求而自己则退出对这个呼叫的控制。

sip注册服务器,用来完成对uas的登录,在sip系统的网元中,所有uas都要在某个登录服务器中登录,以便uac通过服务器能找到它。

2.2      sip的主要功能

sip具有如下基本功能:

1.      用户定位(user location):决定哪个终端系统参加通信;

2.      用户能力(user capabilities):决定通信所采用的媒体和媒体参数;

3.      用户可用性(user availability):决定被叫方是否愿意加入通信过程;

4.      呼叫建立(call setup):振铃、主叫方和被叫方的连接和参数的建立;

5.      呼叫处理(call hangling):呼叫前转或终结呼叫。

2.3      sip消息机制

sip是一个基于文本的协议,它的消息分为两大类:从客户端到服务器的请求(request)和从服务器到客户端的响应(response)。

无论请求消息还是响应消息都是由起始行(start-line)、消息头部(message-header)和可选的消息体(message-body)构成。sip消息的头部字段主要有from、to、call-id、cseq、via、contact等,用于标识会话的各种相关参数,而可选的消息体部分用于描述会话双方的通信能力。

请求消息的起始行称为请求行(request-line),其中的“方法”(method)字段表明了请求消息的功能。

sip协议定义了6种方法:register:用于登记联系信息;invite:用于邀请用户加入会话;ack:用于对邀请做出响应;cancel:用于取消未完成的请求;bye:用于终止会话;options:用于询问服务器的性能。

响应消息的起始行称为状态行(status-line),其中的状态码字段指示了被叫方对请求的响应结果。

2.4      sip呼叫举例

如错误!未找到引用源。所示描述了一个典型的sip呼叫。user1@sip1.com作为uac希望同user2@sip2.com通话,他首先发出一个invite请求,本地的sip服务器sip1.com接受到这个invite请求后,经过地址解析,将其发送至sip服务器sip2.com,同时sip1.com返回给user1 一个 100 trying消息。sip2.com接收到sip1.com的invite请求后,将其转发给user2@sip2.com,并返回给sip1.com一个trying消息。user2接受到invite请求后,在应答之前,将返回给sip2.com一个180ringing消息,此ringing消息将依次转发给sip1.com、user1。如果user2决定应答呼叫,则返回一个200 ok消息,此消息经过sip2.com、sip1.com最后到达user1。user1在收到200ok消息后,直接发送一个ack确认消息给user2。至此呼叫建立过程完成,user1和user2之间可以建立媒体通道进行对话。当一方想结束通话时,发送一个bye消息给对方,对方返回一个200 ok消息,sip呼叫即被终止。

2.5      sip的优越性

sip是为voip电话,尤其是结合internet设计的协议,它拥有明显的优越性。

1.      sip拥有优异的可扩展性,原因在于,大大降低了对中心节点(核心网络服务器)的压力,在同样情况下,可大幅提高系统对呼叫的处理能力。

2.      sip与现有的internet应用紧密结合,包括web以及email业务,而点击拨号(click to dial)和点击传真(click to fax)等协议都是基于sip的。

3.      对于工程师而言,sip具有非常简单的优势,可以松实现internet电话。

sip具有更高的功能性和增长潜力,但sip获得普遍接受的前提是整个分组语音承载技术先被人们接受。现在,这些条件已越来越成熟,sip的发展正面临着一个大好时机。

3      sip发展现状

在现阶段,sip已经得到了业界的普遍认同:

1.      标准组织:ngn论坛、3gpp、3gpp2等标准组织已确定sip为多媒体会话标准,cdma、ngn、wcdma核心网将走向融合和统一;

2.      制造商:业界纷纷推出基于sip的多媒体解决方案,包括电信设备厂商(nortel、ericsson、huawei)、数据通信厂商(cisco)以及软件厂商(microsoft);

3.      运营商:基于sip的ngn voice方案已经成为发展趋势,各大运营商普遍接受,美洲运营商招标建设基于sip的ngn voice网络,embratel认同基于sip的voip解决方案,日本宽带运营商的voip网关设备均基于sip;

4.      软件厂商:固定和移动终端操作系统win xp、win ce、symbian宣布支持sip,企业办公系统notes、exchange、groupwise支持基于sip协议与包括电信运营商在内的第三方互通通信与状态信息

基于sip协议的多媒体业务平台是未来ngns(下一代网络的新型业务next generation network-based service)的主流业务平台,尤其在ngn(下一代网络)更为合适。

4      支持sip的产品

目前,已经有不少值得关注的、比较有代表性的sip应用,例如:

1.      sip产品开发商dynamicsoft是cegetel的合作者,该公司致力于为sip产品设计和制造开发平台,供其他厂商在其基础上开发市场需要的新兴语音服务。

2.      3com公司已完成其sip产品的第四次测试,其目的是为了检验软件和硬件的sip互操作性。这是第一次整个电话系统都建立在sip基础上的测试,比如通过一台sip网关访问pstn等。

3.      siemens已经正式向业界推出了采用sip协议的voip电话。该产品完全符合sip的要求,呼叫可以从pstn、intranet或者internet发起。此类电话产品,包括电话机、客户程序和通信服务器、网关都可应用于企业通信系统和电信规模的ip电话系统。

4.      cisco 将sip功能嵌入了其接入服务器和系列路由器,这些嵌入功能负责ip网络语音和多媒体呼叫的信令控制,而cisco的sip软件具备sip协议的固有优势,在个人移动服务上功能强大。

5.      lucent实现了一套供第三方开发者采用sip的可编程软件平台,支持sip全部标准服务和组成元素。

5      结束语

本文简单介绍了sip的基本知识和发展现状,以及它在电信界中的应用。sip技术现在还处于发展阶段,可以预料,当sip技术成熟并市场化后,将会给电信界带来一次革命,给银行、金融等行业提供更好的增值业务。

 

参考文献:

1.      [rfc 2543] m. handley, h. schulzrinne, e. schooler, and j.rosenberg.“sip: session initiation protocol, ” ietf. march 1999

2.      [rfc 3261]g.camarillo,a.johnston,m.handley,j.peterson,h.schulzrinne, e.schooler, r.sparks,and j.rosenberg, “sip: session initiation protocol,”ietf. june 2002

3.      [rfc 2327] m. handley, v. jacobson. “sdp: session description protocol,” ietf. april 1998

4.      [rfc 793] j. postel. “transmission control protocol,” ietf. september 1981

5.      [rfc 1889] h. schulzrinne, s. casner, r. frederick, v. jacobson. “rtp: a transport protocol for real-time applications,” ietf. january 1996

6.      [rfc 768] j. postel. “user datagram protocol,” ietf. august 1980

7.      《sip揭密》gonzalo camarillo著,白建军 彭晖 田敏等译    人民邮电出版社 2003

8.      《以软交换为核心的下一代网络技术》赵慧玲 叶华等编著    人民邮电出版社 2003

9.      《ip网络多媒体通信技术》黄永峰等编著                   人民邮电出版社 2003

10.      《软交换与下一代网络》陈建亚 余浩编著                   北京邮电大学出版社2003

sip协议范文7

【关键词】远程多媒体教学;H.323;SIP

一、引言

远程多媒体教学是一种全新的教学方式,相比传统教学,它充分合理地利用网络、媒体等介质,使得教学活动的开展不受时间空间的限制,优化了教学资源配置,提高了教学效率。

远程多媒体教学的上述特点和优势使得它成为多媒体通信在教育领域研究的热点,目前的发展方向是基于IP网络的远程多媒体教学。由于多媒体信息具有数据量大、实时性、同步性和突发性强的特点,多媒体通信系统具有集成性、交互性和同步性的特点,因此对多媒体通信的硬件和软件系统提出了很高的要求。

二、SIP协议及其特点

SIP(Session Initialization Protocol,会话发起协议)是一个由IETF MMUSIC (Multiparty Multimedia Session Control)工作组提出,面向Internet会议和电话的简单应用层信令协议,用于建立、调整和终止多媒体会话。

相比多媒体通信的另外一种流行协议H.323,SIP协议有如下5个特点:

第一,与H.323采用二进制方法表示消息不同,SIP消息基于文本,采用UTF-8字符集编码,具有词法和语法简单、可读性好的优点。

第二,H.323中的呼叫建立和媒体逻辑信道建立的过程是分离的,呼叫建立时延较长。SIP系统的呼叫控制信令由SIP传送,由会话描述协议SDP完成媒体能力交换和RTP地址信息获取的任务。SDP消息作为SIP的消息体来发送,会话控制和媒体能力交换同时进行,会话建立的时延较短。

第三,H.323网络中各元素均为对等实体,实体间传送的是对等控制信令消息,而SIP网络则采用IP网络常用的C/S(客户机/服务器)结构。

第四,定位用户、支持用户移动性。SIP利用注册服务器将用户的实际物理位置与用户的SIP地址相绑定,便于在定位用户时实现地址映射功能;利用重定向服务器将目标用户地址信息返回给服务器。

第五,协议简单,有良好的扩展性。SIP是在诸如SMTP、HTTP的基础上建立起来的,借鉴了其它Internet标准和协议的设计思想。由于SIP与HTTP非常相似,许多解析HTTP协议的程序只要经过少许修改就可以用到SIP中。

SIP消息分为SIP请求消息和SIP应答消息两大类。所有的SIP消息都是由一个起始行、一个或多个标题头、一个表示标题头结束的空行和可选的消息体组成。

SIP核心规范定义了6种基本请求方法:INVITE(邀请)、ACK(确认)、OPTIONS(可选项)、BYE(再见)、CANCEL(取消)和REGISTER(注册)。其中,REGISTER方法用于向服务器注册用户位置信息;INVITE、ACK和CANCEL用于会话的建立;BYE用于结束会话;OPTIONS用于向服务器咨询服务器的性能。

SIP核心规范定义了如下几种实体:

用户(User Agent):用户的系统接口,负责与终端用户进行交互。可分为用户客户端(UAC,User Agent Client)和用户服务器(UAS,User Agent Server)。

服务器(Proxy Server):用于转发SIP消息,代表UAC发起请求,并向UAC返回响应,既充当客户机又充当服务器。可分为无状态服务器和保留状态服务器两类。

重定向服务器(Redirect Server):重定向服务器通过提供可能的位置来帮助定位目标SIP用户。它不发出任何定位目标的行为,而仅仅返回目标可能的出现位置信息。

注册服务器(Register Server):注册服务器存储用户的位置信息,负责将用户的SIP地址与用户当前所在的物理地址进行绑定,这样就能够向服务器提供用户的位置信息,协助服务器在转发SIP请求消息时能够迅速定位用户。

三、SIP远程多媒体教学系统的设计

(一)基本概念和术语

课堂实例:一个由唯一资源标识符标识,由一组SIP用户、媒体流和通信网络组成的多媒体会话,参与成员有教师和学生;

课堂系统:由一个或多个课堂实例组成;

FOCUS:中心SIP用户,是一个课堂实例的管理者;

课堂策略:课堂运作和进行的规则总称,包括成员策略和媒体策略;

成员策略:管理课堂成员的规则总称,包括身份鉴别、角色控制及权限控制;

媒体策略:处理媒体流的规则总称;

课堂状态:包括管理各个课堂实例的FOCUS的状态和课堂策略的状态;

课堂URI:课堂实例的唯一标识符。

(二)总体结构

依据DYNAMICSOFT公司首席科学家Jonathan Rosenberg博士提出的紧耦合SIP多媒体会议系统结构模型,我们设计并提出教学系统的以下结构。

系统为集中服务器体系结构,一个中心服务器对应一个课堂实例。从逻辑上划分,中心服务器分为管理服务器和控制服务器。在物理实现上,采用管理服务器和控制服务器分离、一台管理服务器配合多台控制服务器的方式。因此,从拓扑结构上看,系统为星型结构。

从功能上看,系统分管理子系统和控制子系统。管理子系统负责存储管理课堂状态信息数据、课堂策略信息数据和用户信息数据;课堂控制系统要负责与一个或多个终端进行SIP消息流和媒体信息流的交换,并对其进行控制,以保证课堂实例的正常运行。

除管理服务器和控制服务器外,系统还包含SIP服务器和终端。终端是师生参与课堂并获取课堂功能服务的接口,SIP服务器协助控制服务器完成与参与课堂的师生之间的SIP会话的建立和维护。

SIP服务器可分为注册服务器、服务器和重定向服务器,它们分别完成用户地址注册、SIP消息的路由和转发、返回目标SIP用户地址信息的任务。

终端与控制服务器除了通过SIP服务器交换SIP消息外,还直接通过建立RTP会话交换实时媒体流消息;终端与管理服务器之间、控制服务器与管理服务器之间则采用课堂信令和自定义接口交换消息。

(三)各子系统的设计

1.管理子系统

管理服务器是管理子系统的主体,它管理一个或多个控制服务器并与之交互,协助完成课堂基本功能;与一个或多个终端交互,提供接口供终端用户以不同的权限操纵控制课堂功能、查询课堂各种信息;存储管理课堂策略信息数据、课堂状态信息数据和用户信息数据。

管理服务器根据自身存储的最新课堂策略信息,生成课堂配置和控制命令并传送给控制服务器;控制服务器则是命令的具体执行者。控制服务器利用FOCUS的课堂状态通知服务功能获取最新的课堂状态信息,上传给管理服务器。两者合作完成课堂的基本功能。另外,管理服务器提供接口,设置不同的权限供终端操纵和修改课堂策略。

由于用户普遍习惯使用Web浏览器,因此,本文加入一个中间层-Web服务器,作为管理服务器与终端交互的中介和纽带。管理服务器与Web服务器的交互也采用简单的自定义接口规范,利用请求/应答模式完成。同时,管理服务器向用户提供课堂信息的查询功能服务,使用户能够了解最新的课堂策略信息和最新的课堂状态信息。

考虑到存取数据的效率问题,并为了降低系统的复杂性,管理服务器上课堂信息数据的存储采用XML技术来实现。课堂信息数据包括当前运行的课堂实例数目、每个课堂实例的URI、中心控制服务器的IP、开始时间、结束时间、课程名称、教师URI、教师使用的媒体类型信息、学生数目以及每个学生使用的媒体类型信息等。

2.控制子系统

该子系统是系统的重点和核心部分,控制服务器与管理服务器交互,获取最新的课堂配置和控制命令,并执行命令;与各终端交互,进行SIP消息和媒体流信息的交换,并对其进行控制;获取最新的课堂状态信息,上传给管理服务器。

在逻辑结构上,控制服务器包括FOCUS、SIP协议栈、媒体处理器、传输层及底层通信网络。其中,FOCUS是一个课堂实例的中心SIP用户,其作用是:通过服务器、重定向服务器和注册服务器与终端用户保持信令连接,维护管理SIP会话;将接收到的媒体配置和控制命令传送给媒体处理器,由媒体处理器集中处理来自各个终端的媒体流,进行混合和转发,实现媒体信息的控制和交换;利用自身的课堂状态通知服务功能从终端获取最新课堂状态信息,上传给管理服务器。

四、系统工作流程

整个系统的工作步骤分以下几步:教师预约新课堂实例、创建课堂实例、成员加入课堂、课堂实例运行、课堂实例结束、成员退出课堂和销毁课堂实例。

系统管理员启动系统后,教师首先向SIP注册服务器注册自己的当前位置,注册成功后,根据本人的教学课程安排向管理子系统提出新课堂预约申请。管理子系统根据成员策略对教师身份的合法性进行鉴定,身份验证通过后,向教师返回包含申请成功ID号、新课堂实例开始和结束时间信息的成功消息。当预约课堂的开始时间到了后,教师即可利用申请成功ID号向管理子系统申请创建课堂实例,管理服务器创建新的课堂实例(即生成一个课堂URI),分配一台新的控制服务器,并指示控制服务器上的FOCUS向申请教师发送SIP的INVITE消息,邀请教师加入课堂。教师回送ACK消息后即加入课堂实例,此时的课堂实例状态为运行状态,但还没有学生加入。

学生在使用系统前,也要首先向SIP注册服务器注册自己的当前位置。注册成功后,学生加入课堂实例有两种方法:一是主动加入,即通过Web浏览器查询课堂信息,找到自己要加入的课堂并且当该课堂实例已经运行后,向该课堂实例URI(也就是FOCUS URI)发送INVITE消息申请加入。FOCUS根据成员策略鉴定学生身份后,向学生返回允许或拒绝的应答。二是被动加入,即FOCUS向所有符合成员策略要求的学生多播发送邀请的SIP消息,收到邀请的学生对其作出应答后即可建立连接并加入。

课堂实例运行过程中,经过教师批准后,学生可以重新设置自己的媒体参数并且可以提前离开课堂实例。学生向FOCUS发送Re-INVITE(重新邀请)方法的SIP消息(消息体中包含调整后的媒体描述信息),即可改变自己使用的(下转第66页)(上接第60页)媒体参数。学生向FOCUS发送带有BYE方法的SIP消息就可离开课堂实例。

教师也可以设置自己授课使用的媒体参数,同样只需向FOCUS发送Re-INVITE(重新邀请)方法的SIP消息即可。当发现有不合格的学生后,只需向其发送带有BYE方法的SIP消息就可将其逐出课堂。

与加入课堂相似,课堂结束时学生退出课堂的方法也有两种:一是主动退出。教师宣布下课后,成员终端可分别向FOCUS发送带有BYE方法的SIP消息并退出课堂。二是管理服务器根据课堂实例的结束时间指示FOCUS向所有课堂成员终端发送带有BYE方法的SIP消息,终端作出应答,断开与FOCUS的连接,退出课堂。

FOCUS利用课堂状态通知服务的功能及时把正在结束的课堂实例中还未退出课堂的人数信息传送给管理服务器。当未退出课堂人数变为零时,管理服务器销毁该课堂实例,释放该课堂实例占用的所有资源。

五、总结

本系统有如下特点:

第一,系统采用集中服务器方式的体系结构,具有简单清晰、便于管理等优点。

第二,集中服务器在物理实现上又采用控制服务器和管理服务器相分离的方式,整个系统中由一台主服务器-管理服务器和多台控制服务器组成,控制服务器集中进行SIP会话管理和媒体流的处理,这有利于减轻系统负荷,达到平衡系统负载的目的。

第三,系统提供给用户的功能服务接口大多采用Web方式,这符合用户的操作习惯,降低了终端实现的复杂性。

第四,系统数据采用XML文件的形式来存储,可以提高数据存取的效率,优化系统性能。

六、结语

SIP协议还处于不断的研究和发展中,有关SIP运用于远程多媒体教学系统的实际例子也很少,本文对SIP运用于远程多媒体教学系统作了一定的探讨和研究,系统很多方面需要完善和改进。

参考文献

sip协议范文8

基于H.323的可视电话技术

在基于H.323技术实现的IP可视电话网络中,通过驻地网守(在驻地IP网中所设的用户网守,同时完成呼叫功能),将设在用户端的IP可视电话终端接入IP可视电话网。包括本地网守和骨干网守的体系可以根据网络规模的需要进行分级管理。在驻地网中设置认证/计费系统和网管系统(可以由多个驻地网共用)。基于H.323技术实现的IP可视电话网络的体系结构如图1所示。

驻地网守指网守体系中本地网守下面所带的,位于驻地IP网中的一级特殊网守,它负责呼叫控制(IP终端的地址解析和认证)和计费信息的采集和上报。IP可视电话业务采用网守迂回呼叫方式,由驻地网守负责尸终端呼叫的接入认证、地址解析和信令转接等。驻地网守和IP可视电话终端间采用标准的RAS消息。

呼叫是将IP可视电话终端间的媒体流作转接的设备,它应有对没有经过驻地网守认证的用户流进行丢弃的能力。呼叫应完成驻地网内的媒体流至城域网的转接和释放任务,并实时监测用户终端的状态和网络的资源情况,报告驻地网守。

IP可视电话终端是支持H.323协议的多媒体终端,负责完成语音和图像的编解码等功能;完成媒体流的传送;能够自动识别语音、图像业务;根据网络采用的技术不同支持相关协议;提供用户交互信息和查询;向网管系统上报相关信息;向呼叫上报QoS信息。目前此类终端有可视电话机和电脑终端等形式。

基于SIP的可视电话技术

基于SJP协议构建可视电话的系统结构如图2所示,slP网络中的主要功能实体包括:SIP服务器、用户终端(SIP可视电话)、用户(UA)、AAA服务器、网管服务器、应用服务器、域名服务器和媒体服务器等。该系统以SIP服务器为核心,它完成呼叫控制、呼叫路由、注册管理等功能。

SIP服务器是基于SIP协议的可视电话系统的核心设备,它完成呼叫控制、呼叫路由、用户终端的注册管理、用户终端的接入控制等功能,可以向用户提供多种音频和视频业务。

AAA服务器是完成该系统中认证和计费的重要设备,它管理用户数据信息,对用户的接入进行认证以验证其合法性,同时完成业务的计费。

网管服务器是完成该可视电话系统设备的配置管理、安全管理、性能管理、告警管理等管理功能的设备。

应用服务器负责各种增值业务和智能业务的逻辑产生和管理,并且还提供各种开放的API,为第三方业务的开发提供创作平台。应用服务器是一个独立的组件,与控制层无关,实现了业务与呼叫控制的分离,有利于新业务的引入。

域名服务器用来完成系统中SIP终端或服务器的域名管理和域名解析。

位置服务器用来管理用户的位置信息,或用来完成一定的呼叫路由功能。

媒体服务器是该体系中提供专用媒体资源功能的独立设备,提供基本和增强业务中的媒体处理功能,包括业务音提供、会议、交互式应答(IVR)、通知、高级语音业务等。

两种技术的比较分析

基于H.323协议簇的IP电话网络无论是从技术还是标准的角度来说都比较成熟,但是在部署和实施的时候也带来一些问题:协议过程复杂,设备成本高,投资建设成本高,因此也导致了假IP电话(就是用已有的PSTN冒充IP电话)的出现。网关之间一旦获知彼此的路由信息,便可以直接通信,运营商无法收取通话费用,从而滋生了一些非法IP电话经营者。协议扩展性较差,到目前有停止不前的感觉,IP电话从业务开展以来一直是单一的业务形式,就是简单的打电话,而运营商的业务开展需要更丰富的业务形式。

正是面临这些问题使得已铺设的IP电话网络停止不前,没有得到更好的发展。另外由于基于H.323协议簇的IP电话更多考虑的是PSTN用户如何接入IP电话网,随着网络IP化的趋势,用户终端也将尸化,而基于H.323的IP终端因为开发较复杂而成本较高,因此在可视电话的技术选择中,如果没有已有的IP电话网络基础,就可以抛开H.323协议簇,选用一种更加符合发展趋势的技术。目前来看,SIP协议是符合技术发展趋势的,原因是SIP协议具有下列优点:

首先SIP协议是基于文本方式的协议,这一点受到大量设备开发厂商的欢迎,因为这种方式便于理解且实现简单。协议考虑了并支持用户的移动性,SIP协议定义了注册服务器、重定向服务器等不同的功能,当用户的位置发生变化时,其位置信息将随时登记到注册服务器,因此网络随时可以找到移动的用户,只要该用户在线。SIP协议采用了HTTP协议CLient—Server的消息处理方式,但这种CIient—Server的关系又不是固定的,其工作方式实际上是对等的,也就是说A向B发送请求消息时,A作为CIlent,而B作为Server,下一次,当B向A发起请求时它们之间的C[1ent—Server关系又相反。SIP消息本身就具有一定的定位能力,SIP消息头中cal]er@这种域名的标识方式可包含用户号码信息、位置信息、用户名及其归属信息等,这是SlP消息表述方式的一大优点。

SIP协议可与其他很多IETF协议集成向提供各种业务,比如:SDP、RSVP、RTSP、MIME、HTTP等,这使得SIP协议在业务的实现方面具有很大的灵活性。具有Forking(分路)的特征,使得SIP协议实现一号通一类的业务非常方便。另外SIP协议的可扩展性较强,该协议自以来根据业务需求和一些特征要求扩展定义了多个新消息,消息扩展时其前后兼容性较好。终端智能化,sIP协议所定义的终端具有一定的智能性,而并不像传统的电话机那样完全是傻的,这是完全符合终端发展趋势的。

总结一下,就是SIP协议本身在消息发送和处理机制上具有一定的灵活性,使得用SIP协议可以很方便的实现一些补充业务,比如各种情况下的呼叫前转、呼叫转接、呼叫保持、Presence、即时消息等业务;再加上SIP协议是基于会话定义的用来建立、修改和终止IP网上的多媒体会话的宗旨,它可以很灵活的与其他多种协议集成,通过集成其他应用层协议,就可以提供更多的增值业务,由此可见,SIP协议将使可视电话业务无论在业务个性化方面还是各种业务关联使用方面更具吸引力,就其本质而言,SIP协议与目前最大的IP网一互联网有着密不可分的近亲关系,这就使SIP协议在下一代网络中成为人们关注的重点。

基于SIP协议进行构建,但是目前来说仍然存在一些问题或技术难点,这些问题需要在初期的规划和网络部署中做一定的考虑。

1.在保证网络功能无损的情况下大规模网络架构如何部署

尽管SIP协议有诸多的优点,但是如何基于SIP协议构建一个大规模的网络,其架构仍不明确,这在中国的电信运营中又是需要现实面对的一个问题,中国的地域辽阔,网络部署和构建的覆盖面积大,另一方面,潜在的可视电话用户数也是非常可观的,因此在网络规划时必须在保证网络功能和业务质量无损的前提下考虑大规模的网络架构如何部署的问题。

2.如何穿越NAT和防火墙

现有网络面临着地址空间紧缺的现状,目前支持IPv6的设备非常少,在网络和业务部署的过程中,仍然有大量用户将使用IPv4地址也是不争的事实,因此就必然面对穿越NAT和防火墙的问题,采取何种方式才能高效的穿越NAT和防火墙,又保证业务质量不受影响,这将是近期内需要不断去探索和研究的课题。

3.如何提高网络效率保证业务质量

大规模的网络中开展业务时,业务的寻址和路由将会更复杂,这难免会带来更大的处理时延从而影响业务质量,因此如何提高网络效率,尽可能的缩短寻址和路由的时间以保证业务质量也将是需要进一步研究的问题。

sip协议范文9

关键词:即时消息 ;SIMPLE ; 传输机制

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)27-6116-02

即时消息是一种基于互联网的实时消息交换服务,网络上的用户可以利用即时消息软件实现多媒体信息的交换。

自从上个世纪90年代出现ICQ软件后,即时消息软件得到飞速发展,被政府、企事业单位、个人用户广泛使用。具有代表性的即时消息软件有OICQ,MSN,Gtalk等,可以部署于手机或PC平台上。SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions )协议是由IETF组织制定的标准化协议,是SIP协议针对即时消息业务的扩展。微软和IBM都致力于在它们的即时通信系统中实现这个协议。该文对SIMPLE协议中的消息传输机制进行了分析和比较。

1 基于SIMPLE协议的消息传输机制

1) 呼叫模式

从图中可以看出,与SIP协议中的INVITE请求消息不同,MESSAGE请求消息不会触发一个新的会话,每条MESSAGE消息之间没有联系。User1充当UAC,User2充当UAS的角色,服务器Proxy收到User1发来的消息后,根据消息头部Request-URI字段的值在数据库中查找目的地信息,找到后将该请求消息转发给User 2。User 2收到后回200 OK响应消息,说明请求消息已经被成功接收,并将显示给用户看。考虑到拥塞控制的因素, UAC在没有收到最终响应之前,不能开始针对相同的用户的MESSAGE事务。

2) 会话模式

流程图中包含有SIP协议和MSRP协议的消息。User1和User2开始即时通讯之前需要建立MSRP会话。在User1发送给User2的INVITE请求消息和User2回送的200 OK 响应消息中带有SDP会话描述信息,借助于SDP的提供/响应模型,User1和User2成功交换了MSRP会话协商信息。接下来User1向User2发起TCP连接,User2接受后,MSRP会话关系就建立了。MSRP SEND请求消息中包含有双方实际交换的即时消息文本,MSRP 200 OK响应消息仅仅用于确认已经收到对端发来的请求消息,不能携带及时消息文本。即时消息通话结束后,某一方发送SIP BYE请求消息结束会话。可以看出,MSRP会话信息对于SIP协议而言不过就是普通的媒体流,和语音呼叫时传输的媒体流没有任何区别。

2 结论

SIMPLE协议的呼叫模式是将用户之间交互的即时消息放在信令消息MESSAGE的消息体当中来传输的,信令流和媒体流走的是相同的路径。这种消息传输机制实施起来比较简单,也不会触发SIP会话,适用于用户之间少量消息的传输。如果用户之间传输大量即时消息,且即时消息中除了文本还包含有音频视频之类的多媒体信息时,可能会影响到其他信令消息的传输。

SIMPLE协议的会话模式是将用户之间交互的即时消息放在媒体流当中来传输的,信令流和媒体流走的是不同的路径。MSRP协议具体负责即时消息的会话协商工作,SIP协议仅仅负责信令的传输,起的是沟通桥梁的作用。呼叫模式中用户交互的即时消息需要经过服务器的中继传输,而会话模式不需要,从而减轻了服务器的负担。因此,会话模式更能够适应用户之间大量多媒体消息或者是多个用户群组模式消息的传输。如果考虑到安全因素,呼叫模式中每传输一次MESSAGE消息就需要对用户进行安全认证,而会话模式只需要在会话建立的时候对用户进行安全认证,开销要小的多。

参考文献:

[1] Rosenberg J, Schulzrinne H, “SIP: Session Initiation Protocol”. RFC 3261. (Standards Track). 2002

精品推荐
相关期刊