SIP中松散路由(Loose Router)和严格路由(Strict Router)的概念
2015-11-03 13:48
381 查看
接下来谈谈松散路由(Loose Router)和严格路由(Strict Router),这其实也是SIP协议里的概念。
我们经常可以看到在Router字段中设置的SIP URI经常有一个lr的属性,例如<sip:a.b.c.d;lr>,这就是
表示这个地址所在的Proxy Server是一个Loose Router,如果没有lr属性,它就是一个Strict Router。
Loose Router实际上表示Proxy Server根据的是RFC3261处理Route字段的规则,而Strict Router表示
Proxy Server根据的是RFC2357处理Route字段的规则。Strict Router要求SIP消息的Request URI为其自
身的地址。
1、Loose Router和Strict Router首先都会检查Router字段的第一个地址是否为自己,如果是则从Router
字段中删除自己。
2、Strict Router在发往下一跳时将使用Router字段中的下一跳地址更新Request URI。
3、Loose Router首先会检查Request URI是否为自己:如果不是,则不作处理;如果是,则取出Route字
段的最后一个地址作为Request URI地址,并从Route字段中删去最后一个地址。
4、Loose Router其次会检查下一跳是否为Strict Router:如果不是,则不作处理;如果是,则将
Request URI添加为Route的最后一个字段,并用下一跳Strict Router的地址更新Request URI。
可以看到步骤3、4其实是Loose Router为了兼容Strict Router而做的额外工作。
我们经常可以看到在Router字段中设置的SIP URI经常有一个lr的属性,例如<sip:a.b.c.d;lr>,这就是
表示这个地址所在的Proxy Server是一个Loose Router,如果没有lr属性,它就是一个Strict Router。
Loose Router实际上表示Proxy Server根据的是RFC3261处理Route字段的规则,而Strict Router表示
Proxy Server根据的是RFC2357处理Route字段的规则。Strict Router要求SIP消息的Request URI为其自
身的地址。
1、Loose Router和Strict Router首先都会检查Router字段的第一个地址是否为自己,如果是则从Router
字段中删除自己。
2、Strict Router在发往下一跳时将使用Router字段中的下一跳地址更新Request URI。
3、Loose Router首先会检查Request URI是否为自己:如果不是,则不作处理;如果是,则取出Route字
段的最后一个地址作为Request URI地址,并从Route字段中删去最后一个地址。
4、Loose Router其次会检查下一跳是否为Strict Router:如果不是,则不作处理;如果是,则将
Request URI添加为Route的最后一个字段,并用下一跳Strict Router的地址更新Request URI。
可以看到步骤3、4其实是Loose Router为了兼容Strict Router而做的额外工作。
相关文章推荐
- Xcode中添加pch文件
- Unity3D脚本技术框架
- php脚本的执行过程(编译与执行相分离)
- 实现TXT转换PDF格式的方法有哪些
- 创建Ext菜单
- Win7下Android开发环境的搭建
- JavaScript定时调用函数 小知识
- 使用Gitolite搭建Git服务器
- ROS实际问题解决方法
- SpringAop_动态代理模式
- oralce sql练习
- 企业服务领域的O2O
- Transparent Hugepage造成带ToKudb引擎的Mysql无法启动
- 关于MediaPlayer中的getCurrentPosition()和seekTo(int)的总结
- 启停主从复制
- 【吐槽】关于VNCViewer的使用
- python3死活安装不了pil怎么办?
- AndroidTestCase单元测试框架用法
- U-boot中怎么添加配置菜单选项
- Bokeh快速入门(1)