文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» 网络工程 » 系统集成 » 视频会议协议栈SIP简介       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [转载] 视频会议协议栈SIP简介  ( 查看:68  回复:1 )   
 
panyifu
初级工程师  点击可查看详细



帖子 1286
精华 0
无忧币 13701
积分 3421
阅读权限 50
注册日期 2006-5-4
最后登录 2008-5-22 离线

[查看资料]  [发短消息]  [Blog
[个人主页]         
发表于:2008-5-4 12:50   标题:视频会议协议栈SIP简介
上一帖 |
一、SIP协议的背景和功能

SIP( 会话初始协议)的开发目的是用来帮助提供跨越因特网的高级电话业务。因特网电话(IP电话)正在向一种正式的商业电话模式演进,SIP就是用来确保这种演进实现而需要的NGN(下一代网络)系列协议中重要的一员。

SIP被描述为用来生成,修改和终结一个或多个参与者之间的会话。这些会话包括因特网多媒体会议,因特网(或任何IP网络)电话呼叫和多媒体发布。会话中的成员能够通过多播或单播联系的网络来通信。SIP支持会话描述,它允许参与者在一组兼容媒体类型上达成一致。它同时通过代理和重定向请求到用户当前位置来支持用户移动性。SIP不与任何特定的会议控制协议捆绑。

本质上,SIP提供以下功能:

名字翻译和用户定位:无论被呼叫方在哪里都确保呼叫达到被叫方。执行任何描述信息到定位信息的映射。确保呼叫(会话)的本质细节被支持。

特征协商:它允许与呼叫有关的组(这可以是多方呼叫)在支持的特征上达成一致(注意:不是所有方都能够支持相同级别的特征)。例如视频可以或不可以被支持。总之,存在很多需要协商的范围。

呼叫参与者管理:呼叫中参与者能够引入其它用户加入呼叫或取消到其它用户的连接。此外,用户可以被转移或置为呼叫保持。

呼叫特征改变:用户应该能够改变呼叫过程中的呼叫特征。例如,一呼叫可以被设置为“voice-only”,但是在呼叫过程中,用户可以需要开启视频功能。也就是说一个加入呼叫的第三方为了加入该呼叫可以开启不同的特征。

二、SIP网络元素

SIP中有两个要素。SIP用户代理和SIP网络服务器。用户代理是呼叫的终端系统元素,而SIP服务器是处理与多个呼叫相关联信令的网络设备。

用户代理本身具有一客户机元素(用户代理客户机UAC)和一服务器元素(用户代理服务器UAS)。客户机元素初始呼叫而服务器元素应答呼叫。这允许点到点的呼叫通过客户机-服务器协议来完成。

SIP服务器元素提供多种类型的服务器。有三种服务器形式存在于网络中--SIP有状态代理服务器,SIP无状态代理服务器和SIP重定向服务器。由于呼叫者未必知道被呼叫方的IP地址或主机名,SIP服务器的主要功能是提供名字解析和用户定位。可以获得的是email形式的地址或与被呼叫方关联的电话号码。使用该信息,呼叫者的用户代理能够确定特定服务器来解析地址信息--这可能涉及网络中很多服务器。

SIP代理服务器接收请求,决定将这些请求传送到何处,并且将它们传送到下一服务器(使用下一跳路由原理)。在网络中可以有多跳。

重定向服务器接收请求,但不是将这些请求传递给下一服务器而是向呼叫者发送响应以指示被呼叫用户的地址。这使得呼叫者可以直接联系在下一服务器上被呼叫方的地址。

三、SIP协议的实现机制

SIP是一个分层结构的协议,这意味着它的行为根据一组平等独立的处理阶段来描述,每一阶段之间只是松耦合。协议分层描述是为了表达,从而允许功能的描述可在一个部分跨越几个元素。它不指定任何方式的实现。当我们说某元素包含某层,我们是指它顺从该层定义的规则集。

不是协议规定的每个元素都包含各层。而且,由SIP规定的元素是逻辑元素,不是物理元素。一个物理实现可以选择作为不同的逻辑元素,甚至可能在一个个事务的基础上。

SIP的最底层是语法和编码。它的编码使用增强Backus-Nayr形式语法(BNF)来规定。

第二层是传输层。它定义了网络上一个客户机如何发送请求和接收响应以及一个服务器如何接收请求和发送响应。所有的SIP元素包含传输层。

第三层是事务层。事务是SIP的基本元素。一个事务是由客户机事务发送给服务器事务的请求(使用传输层),以及对应该请求的从服务器事务发送回客户机的所有响应组成。事务层处理应用层重传,匹配响应到请求,以及应用层超时。任何用户代理客户机(UAC)完成的任务使用一组事务产生。用户代理包含一个事务层,有状态的代理也有。无状态的代理不包含事务层。事务层具有客户机组成部分(称为客户机事务)和服务器组成部分(称为服务器事务),每个代表有限的状态机,它被构造来处理特定的请求。

SIP通过EMAIL形式的地址来标明用户地址。每一用户通过一等级化的URL来标识,它通过诸如用户电话号码或主机名等元素来构造(例如:SIP:usercompany.com)。因为它与EMAIL地址的相似性,SIP URLs容易于用户的EMAIL地址关联。

SIP提供它自己的可靠性机制从而独立于分组层,并且只需不可靠的数据包服务即可。SIP可典型地用于UDP或TCP之上。

SIP提供必要的协议机制以保证终端系统和代理服务器提供以下业务:

● 用户定位

● 用户能力

● 用户可用性

● 呼叫建立

● 呼叫处理

● 呼叫前转,包括:(1)等效800类型的呼叫,(2)无应答呼叫前转,(3)遇忙呼叫前转,(4)无条件呼叫前转

● 呼叫号码传递,该号码可以是任何命名机制。

● 个人移动性,例如通过一个单一的、位置无关的地址来到达被呼叫方,即使被呼叫方改变了终端。

● 终端类型的协商和选择:呼叫者可以给出选择如何到达对方,例如通过因特网电话,移动电话或应答业务等。

● 终端能力协商

● 呼叫者和被呼叫者鉴权

● 不知情和指导式的呼叫转移

● 多播会议的邀请

四、SIP消息的组成

有两种类型的SIP消息:

● 请求:从客户机发到服务器

● 响应:从服务器发到客户机

SIP请求消息包含三个元素:请求行、头、消息体。

SIP响应消息包含三个元素:状态行、头、消息体。

请求行和头域根据业务、地址和协议特征定义了呼叫的本质,消息体独立于SIP协议并且可包含任何内容。

SIP定义了下述方法:

INVITE——邀请用户加入呼叫。

BYE——终止一呼叫上的两个用户之间的呼叫。

OPTIONS——请求关于服务器能力的信息。

ACK——确认客户机已经接收到对INVITE的最终响应。

REGISTER——提供地址解析的映射,让服务器知道其它用户的位置。

INFO——用于会话中信令。

SIP 可以结合其它 IETF 协议来建立完善的多媒体结构,如提供实时数据传输和服务质量(QOS)反馈的实时传输协议(RTP)、提供流媒体发送控制的实时流协议(RTSP)、为公用交换电话网络(PSTN)提供网关控制的媒体网关控制协议(MEGACO),以及描述多媒体会话的会话描述协议(SDP)。因此, SIP 需要与其它协议协同作用来为用户提供完善的服务。然而 SIP 的基本功能和操作并不依赖于这些协议。

SIP 提供了一组安全服务,包括防止拒绝服务攻击、认证(用户对用户和代理对用户)、完整性保护和加密及隐私服务。

SIP 同时支持 IPv4 and IPv6 。关于因特网电话会话, SIP 做如下工作:

通过 SIP 地址识别主叫方和被叫方。当建立一个 SIP 呼叫时,主叫方首先定位适合的服务器,然后发出一个 SIP 请求。最通常的 SIP 行为是邀请。 SIP 请求会被代理重定向或者触发一系列的新 SIP 请求,而不是直接到达目的被叫方。用户可以通过 SIP 服务器注册他们的位置。 SIP 地址 (URL) 可以嵌入到网页中,因此只要点击一下就可以和对方建立呼叫会话。  

SIP 信息可以在 TCP 上传输也可以在 UDP 上传输。 SIP 信息是基于文本的,采用 UTF-8 编码中的 ISO 10646 字符集。信息的每一行必须通过 CRLF 终止。大多数信息语法和头字段类似于 HTTP 。 SIP 信息可以是请求信息也可以是响应信息。

一个请求信息具有以下格式:

Method

Request URI

SIP version

Method ― 资源上所执行的方法。可能的方法有: Invite 、 Ack 、 Options 、 Bye 、 Cancel 和 Register 。
Request-URI ― 指一个 SIP URL 或一个通用 URI ;是请求要被寻址到用户或服务 。
SIP version ― 正在使用的 SIP 版本。

响应信息头的格式见下图:

SIP version

Status code

Reason phrase

SIP version ――正在使用的 SIP 版本。
Status-code ―― 3 位整数结果代码,用于试图了解和满足请求要求。
Reason-phrase ―― status code 的原文描述。

查看详细资料

TOP



千里之外,传递你对震灾人民的关怀
2008-5-4 12:501楼
[ 顶部 ]
 
iters
新新人类  点击可查看详细



帖子 12
精华 0
无忧币 8
积分 12
阅读权限 20
注册日期 2007-5-30
最后登录 2008-5-5 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-5-5 17:04 
GOOD!!!!



千里之外,传递你对震灾人民的关怀
2008-5-5 17:042楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号