鮑 峰
(南京熊貓漢達科技有限公司,江蘇 南京 210000)
一種移動終端協議棧的消息處理方法研究
鮑 峰
(南京熊貓漢達科技有限公司,江蘇 南京 210000)
為了降低移動終端協議棧中消息編解碼的復雜度,豐富消息的處理方式,以及在消息的傳遞過程中,不考慮使用何種方式進行傳輸,通過對消息的結構進行精心的設計以及對消息編解碼操作進行封裝,為承載信令提供豐富的接口(消息內容的編碼和解碼),研究出一種移動終端協議棧的處理消息方法。實際應用證實,這種方法使得消息的處理更加簡單、靈活、可靠、清晰,使得消息在層與層之間的傳遞更加便利、靈活、高效。
移動通信;協議棧;消息傳遞
移動終端協議棧中的消息在傳遞過程中,需要對消息進行編碼和解碼處理以及發送和接收等操作。由于消息的處理將涉及很多操作,因此,消息的處理常常作為協議棧設計的一大重點和難點。能否合理高效地對消息進行處理,將關系著整個協議棧的性能好壞。
現有的協議棧消息處理方法有很多,但是沒有通用性,而且實現復雜,容易出錯,效率低,往往依賴于某種傳輸方式。本文提出了一種終端協議棧處理消息的方法和裝置,通過對消息的結構進行精心的設計以及對消息編解碼操作進行封裝,為承載信令提供豐富的接口(消息內容編碼,解碼),從而實現在協議棧中所需要的對于消息處理的各種操作。
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所示。
綜上所述,文章定義了一種消息結構,并將消息編碼、解碼、傳遞過程中的相關操作封裝起來,向使用者提供若干個接口(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— ),男,遼寧朝陽,碩士,工程師;研究方向:衛星移動通信協議棧,衛星移動終端協議棧的開發。