基于WSP/WTP的MMS传输(5)——WTP协议的实现

本文详细介绍了WTP协议的实现,包括其数据单元结构、编码、分组传输控制及重传机制。WTP在WSP层的基础上增加了数据完整性和正确传输的保障,通过WTP Header的固定域和可变域实现对每个PDU的精细控制。在分组传输中,WTP使用PSN、TID等标识来确保数据的正确顺序和重传。WTP还提供了Invoke、Result、Ack等PDU类型以适应不同的传输需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WTP协议的实现

      前面给出了一个WSP/WTP/WDP层次结构示意图,采用该协议实现的任何会话都必须通过WTP层,与WSP层不同,WTP没有连接——传输数据——断开连接的过程,它是实现数据的完整正确传输的这样一套协议。WTP有着一整套的完善的分包、丢包检测、重传,数据重组机制。而WSP并不实现这些的功能。其它的话不多说,让我们来看看WTP PUD的结构。

       WTP协议只是在WSP PDU的前面加一个HeaderWSP PDU作为WTPData域,WTP PDU可以没有Data域。WTP Header包括34个字节个固定域和一个不固定的可变域。WTP协议在WAP-224-WTP-20010710-a.pdf里有详细的描述,固定域有下表列出的7种类型PDU

3 WTP PDU类型及其编码

       Note 2 所示的是WTP可选的支持功能,但也是比较重要的几种PDU,它们用于分组传输。由于无线网络的特殊性,为了对传输的数据进行精确的控制,WTP允许对每个PDU进行单独而复杂的控制(如包的大小,允许传输延迟时间等),这通过在每个WTP Header的第一个字节置位,然后在Header可变域填充一节或多节称之为TPI的结构进行控制,每个TPI的长度为28Byte,同样,TPI是可选的。

5.1 WTP 协议数据单元结构和编码

通用Header

Continue 标志(CON)

       在每个WTP Header的最开始一个固定的1bitContinue 标志指出了后面是否接有TPI。如果该标准置位,表示后面有一个或多个TPI,如果清零,则表示WTP Header的可变域是空的,即没有TPI结构。这个标志同样用于每个TPI,用于指定该TPI后面是否还有TPI。置位则表示有,清零表示没有。

Group Trailer (GTR) and Transmission Trailer (TTR) Flag

       翻译成中文就是组尾标记和传输尾标记,这两个标记用于分组传送控制。GTR表明这个WTP PDU包是这组最后一个PDUTTR表明这个WTP PDU是整个消息的最后一个PDU,一个消息里面可包括多个组,一组里面可以最多有255PDU。通常GTRTTR标记组合起来使用,它们的编码如表4所示:

4  GTR/TTR标志组合

 

       一般的,应该置GTRTTR位为1,即分组和重传功能无效。在分组传送和重传过程中,如果TTR置位,则GTR标志将被忽略。

Packet Sequence NumberPSN

       包的顺序号,在分组传送中,这个值用于指定分割包在整个消息中的位置。注意的是该值用一个字节来表示,并且这个域的值不能循环打卷,即如果PSN到了255以后,下一个包不能重新从0开始,所以一个组中最多只能有255个包。

PDU类型

       该域用来指定前面列出来的PDU TypeInvokeAck等等)。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值