SIP:松散路由与严格路由

SIP:松散路由(loose router)与严格路由(strict router)


前言

由于不了解松散路由与严格路由的区别,自行学习之后在这里进行总结。


一、什么是松散路由和严格路由?

SIP中的松散路由和严格路由是指对SIP信令中Request-URI和Route Header的两种不同的处理方法,rfc2543中的处理方法为严格路由,rfc3261中的处理方法为松散路由。

1.如何区分

通常根据SIP信令中的Route Header字段是否含有"lr"属性来区分,携带“lr”字段的为松散路由,否则为严格路由。

下图所示,其中proxy1与proxy3对应松散路由代理,proxy2对应严格路由代理。

INVITE sip:user@remoteuas SIP/2.0
Route: <sip:proxy1;lr><sip:proxy2>,<sip:proxy3;lr>

2.功能区别

严格路由是每次SIP请求经过UAS后,INVITE都会被重写。如下图所示:

全部为严格路由情况:
在这里插入图片描述
松散路由是每次SIP请求经过UAS后,INVITE不会改变。如下图所示:

全部为松散路由情况:
在这里插入图片描述

假定INVITE到达proxy1时,经过处理后的INVITE:

严格路由:

INVITE sip:sip:proxy2 SIP/2.0
Route: <sip:proxy3>,<sip:user@remoteuas>

松散路由:

INVITE sip:user@remoteuas SIP/2.0
Route: <sip:proxy2;lr>,<sip:proxy3;lr>

3.具体规则

1.松散路由和严格路由代理首先都会检查Route字段第一个地址是否为自己,如果是则从Route字段删除自己。

2.严格路由在发往下一跳时将使用Route字段下一跳地址更新Request-URI。

3.松散路由首先会检查Request-URI是否为自己,如果不是,则不作处理;如果是,则去除Route字段最后一个地址作为Request-URI地址,并从Route字段中删除最后一个地址。

4.松散路由会检查下一跳是否为严格路由,如果不是,则不作处理;如果是,则将Request-URI地址添加到Route字段最后一个地址,并用Route字段下一跳严格路由的地址作为Request-URI。


总结

以上就是总结的内容,本文仅仅简单介绍了SIP中松散路由和严格路由的区别,具体可以参考rfc了解。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值