一种移动终端协议栈的消息处理方法研究
2017-08-08鲍峰
鲍 峰
(南京熊猫汉达科技有限公司,江苏 南京 210000)
一种移动终端协议栈的消息处理方法研究
鲍 峰
(南京熊猫汉达科技有限公司,江苏 南京 210000)
为了降低移动终端协议栈中消息编解码的复杂度,丰富消息的处理方式,以及在消息的传递过程中,不考虑使用何种方式进行传输,通过对消息的结构进行精心的设计以及对消息编解码操作进行封装,为承载信令提供丰富的接口(消息内容的编码和解码),研究出一种移动终端协议栈的处理消息方法。实际应用证实,这种方法使得消息的处理更加简单、灵活、可靠、清晰,使得消息在层与层之间的传递更加便利、灵活、高效。
移动通信;协议栈;消息传递
0 引言
移动终端协议栈中的消息在传递过程中,需要对消息进行编码和解码处理以及发送和接收等操作。由于消息的处理将涉及很多操作,因此,消息的处理常常作为协议栈设计的一大重点和难点。能否合理高效地对消息进行处理,将关系着整个协议栈的性能好坏。
现有的协议栈消息处理方法有很多,但是没有通用性,而且实现复杂,容易出错,效率低,往往依赖于某种传输方式。本文提出了一种终端协议栈处理消息的方法和装置,通过对消息的结构进行精心的设计以及对消息编解码操作进行封装,为承载信令提供丰富的接口(消息内容编码,解码),从而实现在协议栈中所需要的对于消息处理的各种操作。
1 消息处理方法
1.1 为消息申请内存空间并初始化相关的标记
若要发送一条消息,首先应为其申请一块内存空间。消息包含消息结构体、消息类型和信令3个区域。申请空间的大小应可以容纳最长的消息内容,消息类型和消息结构体的总和,即所申请的消息总长度不小于消息类型,信令的长度和消息结构体大小总和相同。
消息结构体包含3个标记,其中标记1指向消息类型的真实位置,标志2指向消息承载的信令的结束位置,标记3始终指向消息类型和信令的分界位置。消息结构和消息处理的结构示意如图1所示。
图1 消息处理示意
申请空间之后,应初始化相应的标记。将3个标记同时指向消息类型和信令的分界位置,即标记3的固定位置,如图2所示。
图2 消息初始化
1.2 对消息进行编码
将消息类型和信令放入消息内。如果只需要消息类型不需要信令,则不编码信令。
首先,将消息类型放入消息中的消息类型区域,再将标记1向前移动相应消息类型的大小。同时该操作返回标记1移动之后的位置,这样就可以把对应的消息类型拷贝到从标记1开始的空间内。我们将这些操作封装起来,称为PUSH操作,向用户提供一个接口。
然后,将承载的信令放入消息中的信令区域,再将标记2后移写入信令长度的大小,标记2的位置也就是信令的尾部,同时这一操作返回标记2后移之后的位置,这样就可以将要写入的信令拷贝到起始地址为标记2移动之前指向的空间。我们将这些操作封装起来,称为PUT操作,向用户提供一个接口,如图3所示。
图3 编码消息
对消息进行编码,结束后就可以将消息发送出去。
1.3 对消息进行解码
接收层收到消息后,需要对消息进行解码。通过标记1可以找到消息类型,通过消息类型来判断这个消息在通信流程中的功能以及消息中可能包含的信令。
1.4 传递消息
如果接收层是消息中承载的信令的目的层,就可以通过标记3来找到信令。
如果接收层不是消息中承载的信令的目的层,则接收层需要将消息类型从消息中取出来,然后将标记1向后移动取出消息类型的长度。我们将这些操作封装起来,称为PULL操作,如图4所示。然后,再通过PUSH操作将新的消息类型放进消息中,组成新的消息,再将新的消息发送到下一个接收层。直到到达消息中所承载的信令的目的层为止。根据通信协议,消息中有时可能被PUSH操作多个消息类型在消息中,如图5所示。
2 总结
综上所述,文章定义了一种消息结构,并将消息编码、解码、传递过程中的相关操作封装起来,向使用者提供若干个接口(PUT,PUSH,PULL,GET_LENGTH)。使用本文提出的方法来处理消息,使得使用者可以简单、灵活地对消息进行处理,无需关心消息的具体内容。在消息传递过程中,对消息的处理更加可靠、方便。更重要的是,这种方法能够应用在任何需要进行内部消息处理的系统中,具有很好的通用性。
图4 解码消息
图5 编码多消息类型的消息
[1]段荷香,杨旭,李宇洋,等.LTE信令消息传输格式的卫星通信适用性分析[C].北京:第九届卫星通信学术年会,2013.
[2]刘佳楠.基于开源软件的LTE协议栈研究与设计[D].北京:北京理工大学,2015.
[3]黄晓莹,程宇新,吴建军.一种移动通信终端协议栈软件架构方案[C].北京:第七届卫星通信技术新业务年会,2011.
[4]黄波.GSM协议栈软件的研究和实现[D].长沙:湖南师范大学,2001.
[5]陈亚琳.Zigbee协议栈消息事件处理分析[J].南京工业职业技术学院学报,2014(4):44-48.
[6]吴德凤.Android智能终端系统的GSM软基带设计与实现[D].厦门:厦门大学,2014.
[7]张俊龙,张玉艳,靳松,等.基于OAI的LTE MAC层研究和实现[J].中国科技论文,2013(8):949-954.
[8]蔡国栋.七号信令系统中MTP3(B)协议栈的动态路由算法研究[J].现代电子技术,2007(7):112-114.
Study on a processing method of message for the protocol stack of a mobile terminal
Bao Feng
(Nanjing panda handa technology co., LTD, Nanjing 210000, China)
In order to reduce the complexity of the coding and decoding message in the mobile terminal protocol stack, rich message handling manners, and regardless of the manner of the transmission in the transmission process of the message. Through the careful design of the structure of the message and the encapsulation of the coding and decoding message operation, it provides a rich interfaces(encoding and decoding of message content)for carrying signaling, and develops a processing message method of the mobile terminal protocol stack.The practical application shows that this method makes the processing of messages more simple, fl exible, reliable and clear, so that the message between the layers and the transfer between the more convenient, fl exible and ef fi cient.
mobile communication; protocol stack; message transmission
鲍峰(1983— ),男,辽宁朝阳,硕士,工程师;研究方向:卫星移动通信协议栈,卫星移动终端协议栈的开发。