sip 协议原理和应用培训
DESCRIPTION
SIP 协议原理和应用培训. 郭忠军 2008.11.04. 本课程适用于: 对 SIP 原理及应用感兴趣的人员. 培训对象. 通过本课程的学习,您将能够: 理解 SIP 的作用 掌握 SIP 协议模型及主要信令 了解 SIP 常见应用模式 明白 SIP 和 H.323 的区别和联系. 培训目的. SIP 概述 SIP 协议模型 SIP 基本消息及流程 SIP 应用模式 SIP vs H.323. 培训大纲. Part 1: SIP 概述. 众多的多媒体应用,众多通信协议,为何 SIP 越来越流行? - PowerPoint PPT PresentationTRANSCRIPT
SIP 协议原理和应用培训
郭忠军 2008.11.04
培训对象
• 本课程适用于:– 对 SIP 原理及应用感兴趣的人员
培训目的
• 通过本课程的学习,您将能够:– 理解 SIP 的作用
– 掌握 SIP 协议模型及主要信令
– 了解 SIP 常见应用模式
– 明白 SIP 和 H.323 的区别和联系
培训大纲
• SIP 概述• SIP 协议模型• SIP 基本消息及流程• SIP 应用模式• SIP vs H.323
Part 1: SIP 概述
Why SIP
• 众多的多媒体应用,众多通信协议,为何 SIP 越来越流行?
实例: sip 被 IMS/NGN/3GPP/… 选为信令协议
• SIP :是否一旦拥有,别无所求?
SIP 概况
• SIP ( Session Initiation Protocol ,会话初始化协议 ) , IETF 提出并主持研究的信令控制协议
• 按 OSI 七层协议模型,属于会话层• 控制 IP 网络上多媒体应用会话过程,包括创建、
修改、终止等
SIP 主要特点
• 通用的信令控制协议,独立于具体的应用• 轻量级,但涵盖主要会话功能,如用户定位、会
话建立、修改、终止等• 灵活,扩展性好• 常常需要和其它协议配合,构成完整的信令系统• 很多优点,回头再看
Part 2: SIP 协议模型
SIP 基础概念 (1)—SIP URI
• SIP URI (SIP Uniform Resource Identifier) :用来区分终端用户的标识符。
• 一般格式:sip:user:password@host:port;uri-parameters?headers
• 示例 sip:[email protected]
sip: 128234@cnjy:9902;transport=tcp
• 逻辑地址和物理地址相隔离。支持移动性。
SIP 基础概念 (2)— 消息、事务、会话
• 消息: SIP 是请求 / 应答式的协议。一个请求或应答对应于一条消息
• 事务 (Transaction) :从一个请求发出至对该请求的最终响应为止的所有消息序列。
• 会话:若干实体交换数据的过程。由相互关联的多个事务构成
SIP 基础概念 (3)—SIP 实体
• 分为 UA (User Agent) 和 Proxy 两大类– UA :发出请求 / 处理请求 / 发送应答。– Proxy :主要承担实体注册、信令中继、呼叫管理、
位置查找等功能。 • 注册服务器• 代理服务器• 重定向服务器• 位置服务器
SIP 实体图
代理服务器
定位服务器
代理服务器UAC/UAS
注册服务器
定位服务器
重定向服务器
SIP协议通信
非SIP协议通信
UAC/UAS
SIP 协议模型
• SIP 协议本身分层,不同模块功能相对独立,各层之间松散耦合
• 语法和编码层:定义 SIP 消息语法,完成消息编解码。 BNF 范式定义,文本编码。
• 传输层 : 如何发送 SIP 请求和处理应答。注意同 TCP/IP 协议中传输层概念区别。
• 事务层:定义消息的重传,应答的匹配等工作。保证消息的可靠性。
• 事务用户层:供上层用户(程序)使用的事务层接口。
事务用户层(Transaction User
Level)
事务层(Transaction Level)
传输层(Transport Level)
语法和编码层(Syntax and
Encoding Level)
Part 3: SIP 主要消息及流程
SIP 消息
• 类型:分为请求和应答两类,文本编码• 结构: SIP 消息由起始行 / 消息头 / 消息体三部分组
成。– 起始行:区分请求和应答– 消息头:一系列属性值– 消息体:可选。 SIP 不限定消息体格式和内容。体现通用性。
一般用 SDP 协议来表述音视频媒体信息。
SIP 消息 - 请求
起始行格式:命令名称 对端 URI SIP/ 版本示例: INVITE sip:[email protected]
SIP/2.0
核心消息包括: INVITE , ACK , OPTI
ONS , BYE , CANCEL 和 REGISTER
请求消息 消息含义
INVITE
发起会话请求,邀请用户加入一个会话,会话描述含于消息体中。对于两方呼叫来说,主叫方在会话描述中指示其能够接受的媒体类型及其参数。被叫方必需在成功响应消息的消息体中指明其希望接受哪些媒体,还可以指示其行将发送的媒体。
如果收到的是关于参加会议的邀请,被叫方可以根据 Call-ID 或者会话描述中的标识确定用户已经加入该会议,并返回成功响应消息。
ACK证实已收到对于 INVITE 请求的最终响应。该消息仅和
INVITE 消息配套使用。
BYE 结束会话
CANCEL取消尚未完成的请求,对于已完成的请求(即已收到最
终响应的请求)则没有影响
REGISTER
注册
OPTIONS 查询服务器的能力
SIP 消息 - 应答
• 起始行格式SIP/ 协议版本 状态码 描述性短语示例: SIP/2.0 200 OK
• 状态码都有特定含义1xx: 临时应答2xx: 成功应答3xx: 重定向4xx: 客户端错误5xx: 服务器错误6xx:全局错误• 应答必须和请求匹配分析
SIP 基本消息流程—注册
• 设备(用户)告知注册服务器其最新地址 /SIP URI 等信息。
• 用于用户定位。 UA Registrar
1 REGISTER
2 401 Unauthorized
4 200 OK
3 REGISTER
SIP 基本消息流程—点对点呼叫
• 三次握手。保证会话双方都能确知• 不经过 Proxy 的情况如图所示
UA1 UA2
1 INVITE
2 100 Tring
4 200 OK
5 ACK
6 BYE
7 200 OK
3 180 Ring
Media Stream
SIP 基本消息流程—通过 Proxy 呼叫
• Proxy 中继信令。修改必要的 header ,如 Max-Forwards 。
• Proxy 也可能更改消息体。UA1 Proxy UA2
1 INVITE
3 INVITE2 100 Tring
4 100 Tring
7 200 OK8 200 OK
9 ACK10 ACK
11 BYE
13 BYE
14 200 OK
12 200 OK
5 180 Ring6 180 Ring
Media Stream
SIP 消息实例
• 见课件文档
SIP 消息扩展
• 消息类型可扩展:如 MESSAGE/INFO
• 消息头可扩展:自定义语法和语义
Part 4: SIP 应用模式
SIP 应用模式
1. 确定业务功能
2. 确定各业务功能采用的 SIP 消息(标准或扩展)
3. 确定业务功能的协议语法及语义
SIP 应用实例
• 湖北省教育考试巡考系统技术规范
Part 5: SIP vs H.323
对比表
SIP H.323
设计目标
通用的会话管理信令协议 单一性。面向 IP网络的多媒体会议应用
会话管理
简要 完备
会议控制
无 完备
媒体能力描述
粗糙。 SDP 缺乏对对媒体的精细描述能力
精细。能力集的设计相当精巧
媒体控制
媒体通道管理承载在会话信令中。没有单独的媒体控制信令。
单独的媒体相关信令,如 TCS/OLC 等
对于 SIP 的结语
• 轻量级,设计精巧• 纯粹的通用性 , 体现业务和承载分离思想• 吸收了 HTTP 协议的思想,是 IETF 开放灵活特性和古板的通信系统良好融合的样例
• 不是万能的,需要合理使用• 信令编码效率不高• 路还很长
参考文献
【 1】 RFC3261
【 2】 RFC2617
【 3】 RFC2327
【 4】 SIP Demystified , McGraw Hill Press
Part 5: Q & A