SIP是一种分层的协议,SIP的协议描述的层次结构从下至上可以分为如下层次:
语法编码层:这一层指定了SIP使用ABNF编码格式。
注:所谓的ABNF编码格式是一种数据的表述方式,在互联网中具有广泛的应用,其结构为name = elements crlf,名称即为规则名称,elements是对规则的补充,crlf则为标准的结束指示符(即\r\n)
传输层:这一层负责定义客户端如何通过网络连接发送请求和接收响应,服务端如何接收请求和发送响应。
交易层(transaction层):transaction是SIP协议的基础组件。一个transaction包含了客户端发送的请求,和服务端回复的所有响应。Transaction负责应用层数据的重传,响应和请求之间的匹配。transaction同样是有状态代理和无状态代理的区分点。transaction的行为可以通过具体的有限状态机来描述。(会在transaction详解中完整讲述transaction的工作流程)
transaction user(TU):TU层是在transaction层之上的一层。每一个SIP实体(除了无状态代理)都是一个TU。当需要发送请求时TU负责生成client transaction,并且将请求发送向目的地址。