SIP事务的理解
来源:互联网 发布:淘宝客服一般什么待遇 编辑:程序博客网 时间:2024/06/08 15:01
转自:http://blog.sina.com.cn/s/blog_4b839a1b010007ts.html
事务(Transaction)的理解
Transaction有交易的意思,Sip是个事务型的协议,因为它需要各部件间互通消息来实现。
事务所处的位置如图:1)事务处理主要用于处理消息的交互,它的实现使用了状态机。向上它向事务使用者(TU)提交事务的触发事件(计时器超时和传输层消息),向下把所要发送的Sip消息包传送给传输层代为转发。
2)而在事务中一定有客户端和服务器端,两者没有必然的界限。只要是发起请求的,在该事务中充当的当然是客户端,接受请求的必然是服务器端。所以对于代理服务器来说,相对下面的请求来说它是服务器端,对于上面来说却是代发请求的客户端。
事务分类
事务根据类型还分Invite和Non-Invite型,即邀请和非邀请类型。Non-Invite类型事务主要处理的是除Invite和ACK类型外的所有Sip信息。而非Invite里的ACK信息要处理的话就不属于事务处理的范围了,一般由程序自己把信息发送给传输层直接发送。Invite需要三次握手,所以需要的时间比较长;而Non-Ivite类型只需两次握手,要求回应时间短。
所以由RFC3261规定,Sip中主要有四种事务,对应有四种状态机:
Invite ClientTransaction(ICT):
Non-Invite ClientTransaction(NICT):
Invite ServerTransaction(IST):
Non-Invite Server Transaction(NIST):
其中有个特别的地方在于:对于2**回应的ACK不属于ICT的事务处理范围
原因在于收到200(OK)的ACK上。
对于接收到这些ACK的用户来说,如果非最后的客户端,即UA接收到该消息的话将关掉该事务再转发该消息,不再理会之后的事情。而收到200的UAC可能把ACK直接发往真正的UAS,此时不再通过代理服务器或重定向服务器。而前面提到的事务的概念指的是两者之间的交互,可此时UAC要发往信息不再是之前存在的事务(交易者已变)。所以此时发送ACK已不是事务的范畴了,同样ACK的重发和UAS的200重发都不再是事务的范畴,因为发送200的UAS和接收到200的UAC的事务状态已置为结束。
- SIP事务的理解
- SIP事务的理解
- SIP 事务的解读
- VOIP SIP 事务的概念
- 理解SIP的认证
- 理解SIP的认证
- 理解SIP的认证
- sip协议中重要名词Session(会话)、dialog(对话)、transaction(事务)的理解
- sip 事务
- 【转载】理解SIP的认证
- sip里面的几个概念,会话 事务
- sip理解
- 我对sip的一点理解
- 对TCP上的SIP实现理解
- jain-sip 一些类的初步理解
- 对sip中outbound的理解
- 对SIP摘要认证方案的理解
- jain-sip 一些类的初步理解
- 解决gsoap中文乱码的问题
- SIP
- Java关键字final、static使用总结(推荐)
- 【追寻javascript高手之路02】变量、作用域知多少?
- LeetCode_Wildcard Matching
- SIP事务的理解
- Ubuntu 12.04 sudo 不输密码
- timus 1280 Topological Sorting
- 分布式数据库系统---商旅预定系统的实现(10)
- Linux网络编程系列-套接口选项控制
- C++静态成员
- 农夫养牛问题
- Java关键字final、static使用总结
- cmake2.8安装