SIP协议定义了一些实体,来帮助创建SIP网络。在SIP网络内每个网络元件被标识SIP URI(统一资源标识符),它是像一个地址或标识。下面是网络元素:
- 用户代理
- 代理服务器
- 注册服务器
- 重定向服务器
- 位置服务器
用户代理
它是终端和SIP网络中最重要的网络元件中的一个。终端可以启动,修改或终止会话。用户代理是SIP网络中的智能设备或网络元件。它可能是一个软电话,移动电话或平板电脑。
用户代理在逻辑上分成两部分:
用户代理客户端(UAC)- 发送请求和接收响应的实体。
用户代理服务器(UAS)- 接收一个请求,并发送应答的实体。
SIP是基于客户端/服务器的架构,其中来电者的电话作为其发起呼叫,被叫方的电话作为其响应的客户端。
代理服务器
它是从用户代理那里接收一个请求,并将其转发给另一个用户的网络元件。
简单说,一个代理服务器的作用很像一个路由器。
它可以智能的处理一个SIP请求,并根据URI的发送出去。
代理服务器位于两个用户代理之间。
在源和目的地之间,最大能有70个代理服务器。
有两种类型的代理服务器:
无状态代理服务器 - 它简单地转发接收到的消息。这种类型的服务器不存储呼叫或事务处理信息。
状态代理服务器- 这种类型的代理服务器会跟踪每个请求和响应的接收,并可以根据需要为将来使用。比如如果终端回应超时,服务器就可以重发请求。
注册服务器
注册服务器负责接收来自用户代理的注册请求。它可以帮助用户在自己的网络中进行身份验证。它会存储用户的URI和用户的位置,供其他SIP服务器来使用。
看看下面的例子,显示SIP注册的过程。
SIP Registration Example.JSP
在这里,主叫方想要向TMC域名注册。所以它发送一个REGISTER请求到TMC的注册服务器,注册服务器返回200 OK响应,标识注册成功。
重定向服务器
重定向服务器接收请求,并从注册服务器上寻找请求者的位置信息。
重定向服务器使用获取到位置信息,并响应使用3xx(重定向响应)给用户。我们将在本教程后面讨论响应代码。
位置服务器
位置服务器提供了对来电者的可能位置的重定向和代理服务器的信息。
只有一个代理服务器或重定向服务器可以连接一个位置服务器。
下图描述了每个网络元素在建立会话所扮演的角色。
Location Server.JPG
SIP系统架构
SIP协议为分层协议,这可以相对独立的处理每层的行为,保证了层次之间的松耦合。
System Architecture.jPG
- SIP的最下层是它的语法和编码。它的编码是用扩充Backus-Naur 范式语法(BNF)指定。
第二层是传输层。它定义了一个客户端发送请求和接收响应以及一个服务器如何接收请求和发送响应。所有的SIP网络元素都包含传输层。
第三层是事务层。事务是由客户端(使用传输层)发送到服务器的请求,还包含所有响应服务器给客户端发送的请求。用户代理客户端(UAC)包含一系列事物的处理。无状态代理不包含事务层。
事务层以上的层称为事务用户。每个SIP实体,除了无状态代理,都是一个事务用户。