没有合适的资源?快使用搜索试试~ 我知道了~
RFC3263(sip)中文.doc
需积分: 9 25 下载量 126 浏览量
2009-05-06
15:18:50
上传
评论
收藏 98KB DOC 举报
温馨提示
试读
14页
sip定位服务协议sip定位服务协议sip定位服务协议sip定位服务协议
资源推荐
资源详情
资源评论
Session Initiation Protocol (SIP):SIP 服务器定位
本文档状态
本文档为 Internet 团体定义了一个 Internet standards track 协议。并且
请求对这个文档进行讨论以便改进。请参阅当前版本的”InternetOffical
Protocol Stands”(STD1)来确认本文档的标准化状态以及本协议的状态 。
对本文档的发布是没有限制的。
版本信息
Copyright (C) The Internet Society(2002). All Rights Reserved.
概述
SIP 协议使用了 DNS 步骤来使得客户端能够把一个标准的 SIP 格式的资源(SIP
URI)解析成为 IP 地址,端口,以及使用的协议。同样 SIP 也支持服务端在客户端的主机
失效的情况下使用 DNS 来向备份的客户端发送应答。本文档描述了这些 DNS 的详细过程。
1.介绍
SIP(RFC3261)是一个客户端/服务端的协议,它用来创建用户之间的通讯会话和管
理用户之间的通讯会话的。SIP 的终端系统叫做 UA(用户代理),中间的结点叫做 proxy
服务器。一个典型的 SIP 配置,叫做一个 SIP”梯形”,就像在图 1 中表示的一样。在这个图
中,呼叫方在 domain A(UA1),希望呼叫在 domain B 的用户 Joe(Joe@b)。为了完成这个呼
叫,他首先和在自己域内部的 proxy1(domain A 中的 proxy 1)。 Proxy1 向被叫方域的
proxy 服务器(proxy2)转发这个请求。Proxy2 转发这个请求到被叫方,UA2。
作为呼叫流的一部分,proxy1 需要确定 domain B 的 SIP 服务器。为了能够确定这个,
proxy1 使用 DNS 的步骤,使用 SRV[2]和 NAPTR[3]记录来确定这个地址。本文档描述了
SIP 使用 DNS 的相关问题,并且提供了解决方法。
2.DNS 需要解决的相关问题
为了能够解决上边介绍的一般呼叫流所需要确定的呼叫双方两方面的问题,我们需要
使用 DNS。第一个方面的问题就是帮助 proxy1 来确定 domain B 的 SIP 服务器,然后才能
通过这个 proxy 转发呼叫到 joe@B。第二个方面的问题是帮助 proxy2 来确定 proxy1 的备
份,以防 proxy1 失效的时候能够正确回送请求。
对于第一点来说,proxy1 明确需要知道 domain B 的 SIP 服务器的 IP 地址,端口和通
讯协议。选择通讯协议是需要特别注意的。不想很多其他的协议,SIP 可以运行在不同的
通讯协议之上,包括了 TCP/UDP 和 SCTP。SIP 也可以使用 TLS。目前只有 TCP 才能使
用 TLS。因此,客户端需要能够自动确定有哪些可以使用的通讯协议。经由 proxy 发送的
请求都有特定的通讯协议集合以及首要的通讯协议。Proxy2 有它自己支持的通讯协议集合,
以及这些通讯协议相关的参数。所有的 proxy 都必须支持 UDP 和 TCP,以及基于 TCP 的
TLS。这样就始终使得 proxy 之间有支持的协议的交集。Proxy1 需要某些形式的 DNS 步骤
来确定 domain B 的 SIP 服务器所支持的通讯协议,以及相关的参数。Proxy1 根据自己的
协议以及 proxy2 支持的协议集合来进行选择一个两个 proxy 都支持的协议进行通讯。
图 1。SIP 梯形
在一个呼叫中,可以通过 DNS 来进行多次查找,这一点很重要。总的来说,一个元素
Domain A Domain B
Proxy 1 Proxy2
UA1 UA2
希望发送一个请求(叫做客户端)可能需要进行 DNS 查找来决定请求应该向哪里发出的
IP 地址,端口以及相关的协议,这个目的地就叫做一个服务端(可以是一个 proxy 服务器
或者一个 UA)。这样的处理步骤原则上可以在任意两个节点之间进行。
因为 SIP 用来建立交互式通讯服务的,所以呼叫方和被叫方完成一个事务的时间就十
分重要。一般来说,呼叫方建立一个呼叫到被叫方的振铃的时间不应当超过数秒钟。允许
这样的一个时间间隔是因为中间可能经历数个节点,每一个节点都可能进行 DNS 的查找,
这样会增加额外的耗时操作,每一个节点的 DNS 查找操作的时间是被限制的。
扩展性和高可用性在 SIP 中十分重要。SIP 服务通过 cluster 技术来提高处理容量。通
常,在一个图 1 所示的真实运行环境中,proxy2 可能是一组类似配置的服务器。DNS 应当
支持 domain B 配置一群服务器,并且支持配置不同的优先级和容量,这样可以提供一个
初级的基于容量的任务负载均衡。
SIP 通过提供上行元素失效检测来提供高可用性。例如,假定 proxy2 是用两个 cluster
的 proxy:proxy2.1, proxy2.2 来实现的。如果 proxy1 发送一个请求到 proxy2.1 并且失败
了,他会重新向 proxy2.2 来重新尝试。在很多情况下,proxy1 不会知道最终是和哪个
domain 进行通讯。当用户呼叫的被叫方实际上在那个 domain 的时候,这个信息才会知道。
当呼叫完成之后,Proxy1 可能永远不会和那个 domain 进行通讯。在数分钟内 proxy1 也可
能和上千个不同的 domain 进行通讯,proxy2 也可以在数分钟内,接受从上千个不同的
domain 发出的请求。基于这样的"多对多"的关系,以及可能服务器之间有长时间的不通讯
的间隔,这样使得对于某一个节点来说,保持他将要通讯的 proxy 的状态是基本上不可能
的事情。当一个 proxy 接受到发送往某个 domain 的第一个请求,他会根据某种顺序来尝试
对方 domain 的服务器(组),直到找到了一个可用的服务器。这个 domain 的这个可用服
务器会被 cache 一段时间,这样可以降低后续呼叫的建立时间。客户端不能一直查询一个
失效的服务器来决定它什么时候能重新有效,因为这样的方法不够经济。而且,当失效的
元素最后恢复正常上线以后,这个有效状态必须最终刷新,以便能够重新分配负载到这个
恢复的元素上。
某 一 个 节 点 在 一 个 事 务 中 , 可 能 会 失 效 。 比 如 , 当 proxy2 发 送 了 请 求 到
UA2,proxy1 down 了,这样就是在事务中失效了。UA2 发送了他的应答到 proxy2,这个
proxy2 会尝试发送这个应答到 proxy1,但是这个 proxy1 失效了。在前边介绍中提及的
DNS 需要支持的第二个方面就体现了他的重要性。这时候就需要 proxy2 来确定 proxy1 的
备份,这样可以把应答发送到 proxy1 的备份上去。这个问题在 SIP 中比在其他事务协议中
更加现实。因为某些 SIP 应答可能会经过很长时间才产生,因为人类用户通常要考虑一下
才决定是否接听/挂机。同样的,在呼叫请求和接受呼叫之间有数十秒的间隔也并非罕见的
情况。
3.术语
MUST,MUST NOT 等描述略。
剩余13页未读,继续阅读
资源评论
sansong089
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功