SIP是一个分层协议,每层之间松耦合。SIP元素都是逻辑元素,而非物理元素。物理实现可以作为不同逻辑元素,甚至是基于事务的。
第一层:即SIP的最低层是语法和编码。其编码指定使用巴科斯范式(BNF)。
第二层:传输层。它定义在网络上客户端如何发送请求和接收响应,服务器如何接收请求和发送响应。所有的SIP元素都包含传输层。
第三层:事务层。事务层处理应用层转播、响应与请求的匹配、应用层超时。用户代理(User agents)包含一个事务层,如有状态代理(stateful proxies),无状态代理(Statelessproxies)不包含事务层。事务层有一个客户端组件(称为客户端事务)和服务器组件(称为服务端事务),它们都用有限状态机表示,来处理特殊请求。
第四层:事务层之上的层称为事务用户(TU)。每个SIP实体(SIP entity),除了无状态代理外,都是事务用户。当事务用户想发送请求时,它就创建一个客户端事务实例( transaction instance),并将请求与目的的IP地址、端口一起发送。创建客户端事务的TU也可以取消事务。客户端取消事务的时候,就要求服务器停止进一步的处理,并恢复到初始化事务前的状态,然后返回该事务的一个错误响应。可通过CANCEL请求完成取消事务,CANCEL请求包含自己的事务,同时也提及需要取消的事务。
SIP元素( SIP elements):用户代理客户端、用户代理服务器、无状态代理、有状态代理、注册服务器,包含区分这些元素的核心。(The SIP elements, that is, user agent clients and servers, stateless and stateful proxies and registrars, contain a core that distinguishes them from each other. )
事务:是客户端事务(使用传输层)想服务器事务发送的请求,以及服务器事务向客户端事务发回的该请求的响应。事务是SIP的基础组件。
ZhaiPillary
2015/06/03 于上海
博客地址:http://blog.csdn.net/pillary