1.Invoke PDU
Invoke PDU的格式如图3-3所示。
图3-3 Invoke PDU
(1)事务级别(TCL)
事务级别表示发起者在调用消息中希望的事务级别,TCL类型和编码如表3-4所示。
·第0级事务:发起者发起一个第0级事务(Invoke)。
·第1级事务:发起者发起一个第1级事务(Invoke);响应者确认所收到的调用消息(ACK)。
·第2级事务:发起者发起一个第1级事务(Invoke);响应者收到调用请求后返回结果消息(Result);发起者确认收到的结果消息(ACK)。
表3-4 TCL类型和编码
(2)TIDnew标志位
当会话发起者已经使用了所有的TID值时设置此标志位,即下一个TID比上一个小。当响应者接收到Invoke PDU并且TIDnew标志位被设置时,它使发起者缓存的TID值无效。
(3)版本
版本为0x00。
(4)U/P标志位
“1”表示发起者请求一个来自服务器WTP用户的用户确认,表明WTP用户要确定每一条收到的消息。“0”表示WTP提供者可以在没有WTP用户确定的情况下响应一个消息。
2.Result PDU
Result PDU如图3-4所示。
图3-4 Result PDU
3.ACK PDU
ACK PDU如图3-5所示。
Tve/Tok标志位在响应者到发起者的方向上,Tve标志位(TID验证)的含义是“是否携带该TID的未完成事务”;在相反的方向,Tok(TID OK)标志位的含义是“携带该TID的未完成事务”。
图3-5 ACK PDU
4.Abort PDU
Abort PDU如图3-6所示。(www.xing528.com)
图3-6 Abort PDU
Abort Type和Abort Reason分别表示会话放弃类型和放弃原因。
(1)Abort Type
Abort Type如表3-5所示。
表3-5 Abort Type
(2)Abort Reason
Abort Reason如表3-6所示。
表3-6 Abort Reason
续表
5.Segmented Invoke PDU
Segmented Invoke PDU如图3-7所示。
图3-7 Segmented Invoke PDU
分组序列号(Packet Sequence Number,PSN)表示一个分组在被分组消息中的位置。
如果消息的长度超过了现有承载者的MTU,那么此消息就被WTP分割成多个分组来发送。被分割消息的几个分组可以按照一个群的方式发送和响应。Invoke消息分割过程如下。
当Invoke消息超过承载者MTU时,Invoke消息被分割成一个有顺序的序列,此序列由一个Invoke PDU和随后的一个或者多个Segmented Invoke PDU组成。在初始的Invoke PDU中,跟踪标志位是00表示Invoke消息被分割,在随后的Segmented Invoke PDU中,跟踪标志位是00表示分组尚未结束。从第一个Segmented Invoke PDU开始,PSN从1依次递增(PSN和TID作为判断分组是否乱序的依据)。如果出现跟踪标志位10,表示一个群结束,响应端发回一个ACK确认消息,在TPI数据字段部分标识当前的PSN(注意:在上一个群被确认前,发送者不能发送同一个事务的新的分组)。如果丢失了一个或多个分组,则接收者返回一个Negative ACK PDU。丢失的分组以原来的PSN重传,RID位置1。当接收端收到的数据包中,跟踪标志位是01时,表示收到了分组群中的所有分组,此时接收端可以重组消息。如果发送者在重传计时器达到阈值时还没有收到确认消息,则发送端只重传该分组。
6.Segmented Result PDU
Result分割过程与Invoke分割过程相同,用于Result响应数据包被分割的情况。Segmented Result PDU如图3-8所示。
图3-8 Segmented Result PDU
7.Negative ACK PDU
当分组接收端收到的分组不全时,发送Negative ACK数据包,给出丢失分组的信息。Negative ACK PDU如图3-9所示。
图3-9 Negative ACK PDU
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。