Precondition资源预留

本文深入解析了移动通信网络中UE间基于PDP上下文的媒体流传输资源预留流程,包括SIP信令上的precondition扩展标识及SDP属性扩展,如qos前提类型的使用。详细介绍了从Invite请求到资源预留成功的整个过程,强调了资源预留功能在SIP流程中的作用。

https://blog.youkuaiyun.com/liujianfeng1984/article/details/35346141

在移动通信网络,UE之间传输媒体流基于PDP上下文,建立媒体PDP上下文的过程称为资源预留。


媒体PDP上下文建立会花费一些时间甚至失败,这意味着在资源被成功预留之前,无法保证协商的媒体会话是否可以建立起来。因此终端不应该在双方资源预留成功之前有任何通知指示产生,比如振铃提示、回铃提示等。

资源预留功能在SIP信令上体现为两个阶段,第一个阶段的所有媒体协商仅仅是为了双方进行资源预留准备(比如媒体协商如果承载在183响应中,终端不能将183做为回铃指示,因为资源预留还没有建立成功)。在资源预留建立成功之后,使用Update信令来表明资源预留建立完成,进入第二个阶段,之后的18X信令就可以像普通SIP流程一样,做为放回铃音的指示信息。

  1. US_A发起Invite请求

INVITEsip:ue_b@ ims.com SIP/2.0

Supported:precondition100rel

Require:precondition

Content-Type:application/sdp

v=0

o=a00008646 6672 IN IP4 1.1.1.1

s=SIPCall

c=INIP4 1.1.1.1

t=00

m=audio10054 RTP/AVP 8 0

a=rtpmap:8PCMA/8000

a=rtpmap:0PCMU/8000

a=curr:qoslocal none

a=curr:qosremote none

a=des:qosmandatory local sendrecv

a=des:qosnone remote sendrecv

针对资源预留功能,SIP信令上新增precondition扩展标识,指示支持资源预留功能。《中国电信IMS网络SIP协议总体技术要求》不建议初始Invite携带Require:precondition头域,主要考虑资源预留功能不能为现有业务或网络带来增值,而且还增加了信令交互的复杂性。

同时针对SDP属性也进行扩展,增加了“qos”一种前提类型。

a=curr:qoslocal none

a=curr:qosremote none

表示目前(curr),无论是主叫方(local)还是被叫方(remote)都还没有(none)任何资源预留。


a=des:qosmandatory local sendrecv

表示主叫用户(local)要求(des)在发送和接收两个方向(sendrecv)都要提供资源预留,并且不能成功预留资源,会话将不会建立(mandatory)


a=des:qosnone remote sendrecv

表示要示(des)被叫用户(remote)也需要提供双向(sendrecv)的资源预留,但还不确定被叫用户是否真的需要进行预留(none)。

   2.  UE_B回应183

UE_B在收到Invite请求后,得知主叫方支持资源预留功能,同时他也支持资源预留功能,则提供183响应,在SDP中包含UE_B支持的所有编码,并针对“qos”描述进行补充。


SIP/2.0183 Session Progress

Content-Type:application/sdp


v=0

o=a00008646 6672 IN IP4 2.2.2.2

s=SIPCall

c=INIP4 2.2.2.2

t=00

m=audio10054 RTP/AVP 8 0

a=rtpmap:8PCMA/8000

a=rtpmap:0PCMU/8000

a=curr:qoslocal none

a=curr:qosremote none

a=des:qosmandatory local sendrecv

a=des:qosmandatory remote sendrecv

a=conf:qosremote sendrecv

注意:

对端和本地的概念已经改变,因为从UE_B的角度来看,自己已经是本地,而UE_A是远端。

a=curr:qoslocal none

a=curr:qosremote none

表示目前(curr),无论是主叫方(local)还是被叫方(remote)都还没有(none)任何资源预留。


a=des:qosmandatory local sendrecv

表示强制要求自己在收发两个方向都进行资源预留,之后才允许进行会话。


a=des:qosnone remote sendrecv

表示从对方得知,对方也强制要求收发双向的资源预留。


a=conf:qosremote sendrecv

告知UE_A,如果它的双向资源预留完成后,必须发送确认(conf)信息。这里确认信息在SIP消息中体验为发送UPDATE信令。
 

3)UE_A发送PRACK请求,其中媒体仅包含他已确认的唯一编码。

PRACKsip:ue_b@ ims.com SIP/2.0

Supported:precondition,100rel

Require:precondition

Content-Type:application/sdp


v=0

o=a00008646 6672 IN IP4 1.1.1.1

s=SIPCall

c=INIP4 1.1.1.1

t=00

m=audio10054 RTP/AVP 0

a=rtpmap:0PCMU/8000

a=curr:qoslocal none

a=curr:qosremote none

a=des:qosmandatory local sendrecv

a=des:qosmandatory remote sendrecv


在SDP的“qos”描述中,双方都已经表示需要进行资源预留,并且当前都还没有资源预留完成。这里UE_A不再包含a=conf:qosremote sendrecv,因为他知道对方在等待他资源预留完成后的确认消息。

4)、UE_B给PRACK请求进行回应,其中“qos”描述没有任何变化。

SIP/2.0200 OK

Content-Type:application/sdp


v=0

o=a00008646 6672 IN IP4 2.2.2.2

s=SIPCall

c=INIP4 2.2.2.2

t=00

m=audio10054 RTP/AVP 8 0

a=rtpmap:8PCMA/8000

a=rtpmap:0PCMU/8000

a=curr:qoslocal none

a=curr:qosremote none

a=des:qosmandatory local sendrecv

a=des:qosmandatory remote sendrecv


5)、UE_A建立媒体PDP上下文,当资源预留成功后,UE_A发送UPDATE请求给远端进行确认。

UPDATEsip:ue_b@ ims.com SIP/2.0

Supported:precondition,100rel

Require:precondition

Content-Type:application/sdp


v=0

o=a00008646 6672 IN IP4 1.1.1.1

s=SIPCall

c=INIP4 1.1.1.1

t=00

m=audio10054 RTP/AVP 0

a=rtpmap:0PCMU/8000

a=curr:qoslocal sendrecv

a=curr:qosremote none

a=des:qosmandatory local sendrecv

a=des:qosmandatory remote sendrecv


其中a=curr:qoslocal sendrecv表明UE_A当前(curr)双向的资源预留建立成功。


    UE_B给UPDATE请求进行回应


SIP/2.0200 OK

Content-Type:application/sdp


v=0

o=a00008646 6672 IN IP4 2.2.2.2

s=SIPCall

c=INIP4 2.2.2.2

t=00

m=audio10054 RTP/AVP 8 0

a=rtpmap:8PCMA/8000

a=rtpmap:0PCMU/8000

a=curr:qoslocal sendrecv

a=curr:qosremote sendrecv

a=des:qosmandatory local sendrecv

a=des:qosmandatory remote sendrecv


其中a=curr:qoslocal sendrecv表明当前UE_B的双向资源预留也已经建立成功。


5、6、7、8、9)在UE_B得知双方的资源预留都已经建立成功后,UE_B开始振铃,同时给UE_A发送180,UE_A在了解双方的资源预留建立成功后,收到180则给当前用户回铃提示。后续流程同普通SIP软交换流程相同,不再详细描述。


备注:

当前实例讲解的资源预留的流程仅描述的在非早期媒体情况下,如果在早期媒体情况下处理资源预留,信令上会稍有一点不同,详见《中国电信IMS网络SIP协议总体技术要求》。
 

 

 
 


 

<think>我们正在讨论SIP资源预留的相关知识。根据用户的问题和之前的对话历史,用户希望了解SIP资源预留的介绍。我将结合引用内容和之前的回答来构建一个全面的解释。 关键点: 1. 资源预留的背景和目的:在实时通信中(如VoIP、视频通话),为了保证服务质量(QoS),需要在媒体流传输之前确保网络资源(如带宽)得到预留。 2. SIP协议本身并不直接处理资源预留,而是通过扩展(如RFC 3312)来支持资源预留的协商。 3. 资源预留通常与SDP(会话描述协议)结合使用,SDP在SIP消息体中用于描述媒体会话的参数。 根据引用[3]:SIP资源预留流程中,precondition流程(即资源预留流程)需要进行两次offer/answer协商(INVITE-183和UPDATE-200 OK),而普通流程只有一次(INVITE-200 OK)。这是因为资源预留需要在媒体建立前完成网络资源预留。 另外,引用[1]提到:在SDP/SIP中,对等方在会话设置期间协商资源,并在会话运行时根据条件变化重新协商。但是SDP需要重新协商所有资源,而不仅仅是变化的资源,因此有研究提出端到端协商协议(E2ENP)作为替代。 引用[2]则提到:在企业网络中,资源管理架构(RMA)运行在IP层之上,可与SIP协同工作,为实时流量提供QoS保障。 因此,我的回答将包括: 1. SIP资源预留的基本概念和目的 2. 关键协议:RFC 3312(Precondition机制) 3. 资源预留的工作流程(使用两次offer/answer模型) 4. 相关属性(如a=curr, a=des, a=conf) 5. 资源预留的挑战与替代方案(如E2ENP) 同时,我会生成相关问题供用户进一步探索。 注意:根据系统指令,数学公式使用LaTeX格式,但本问题中可能涉及较少数学表达,主要是协议流程。但如果有需要,比如带宽计算公式等,我们会使用。 现在构建回答: </think> ### SIP资源预留详解 SIP资源预留是**在媒体会话建立前确保网络资源(带宽/延迟等)可用的协商机制**,核心协议是**RFC 3312**(Integration of Resource Management and SIP)。以下是关键要点: #### 一、核心协议与机制 1. **RFC 3312 Precondition机制** - 通过SDP扩展属性实现QoS状态协商: - `a=curr:qos`:当前QoS状态(如`local none`表示本端未预留资源) - `a=des:qos`:期望的QoS目标(如`sendrecv`要求双向预留) - `a=conf:qos`:确认双方资源预留完成[^3] - 状态机驱动:端点通过交换SDP属性推进`none → local → remote → confirmed`状态迁移 2. **资源管理架构(RMA)** 在IP层之上部署资源管理器(RM),与SIP信令协同工作: ```mermaid graph TD SIP[SIP Proxy] -- QoS请求 --> RM[资源管理器] RM -- 资源分配策略 --> Router(核心路由器) Router -- 带宽/优先级配置 --> Media[媒体流通道] ``` 企业跨域通信时,RM间通过**COPS/RSVP协议**同步资源策略[^2] #### 二、工作流程(以Precondition为例) ```mermaid sequenceDiagram participant A as 主叫 participant B as 被叫 A->>B: INVITE (SDP: a=curr:qos local none) B->>A: 183 Session Progress (SDP: a=curr:qos remote none) Note right of B: 双方启动资源预留 B->>A: UPDATE (SDP: a=curr:qos local sendrecv) A->>B: 200 OK (SDP: a=curr:qos remote sendrecv) B->>A: 180 Ringing ``` - **两次协商必要性**: 首次协商(INVITE-183)确认QoS能力,第二次(UPDATE-200)验证资源预留成功,避免媒体流启动后因资源不足中断 #### 三、技术挑战与改进 1. **SDP局限性** 传统SDP需重新协商**全部资源参数**,即使仅少量变化,导致信令开销大。替代方案: - **端到端协商协议(E2ENP)**:增量式资源协商,仅更新变化部分[^1] - 示例:若仅需调整带宽,E2ENP发送差分更新: ```diff - b=AS:512 + b=AS:1024 ``` 2. **跨域优化** 企业多域部署时,通过**预配置资源策略模板**减少RSVP信令交互,降低呼叫建立延迟[^2] #### 四、典型应用场景 - **实时视频会议**:保障1080p视频需预留≥2Mbps稳定带宽 - **VoIP紧急呼叫**:确保99.999%可用性需严格QoS策略 - **5G超低延迟通信**:结合TSN(时间敏感网络)实现1ms级延迟预留 > 注:WebRTC默认不启用RFC 3312,改用ICE/DTLS实现NAT穿透,但企业级SIP话机(如Cisco IP Phone)广泛支持此机制。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值