鮑 峰
(南京熊貓漢達科技有限公司,江蘇 南京 210000)
一種移動終端協(xié)議棧的消息處理方法研究
鮑 峰
(南京熊貓漢達科技有限公司,江蘇 南京 210000)
為了降低移動終端協(xié)議棧中消息編解碼的復(fù)雜度,豐富消息的處理方式,以及在消息的傳遞過程中,不考慮使用何種方式進行傳輸,通過對消息的結(jié)構(gòu)進行精心的設(shè)計以及對消息編解碼操作進行封裝,為承載信令提供豐富的接口(消息內(nèi)容的編碼和解碼),研究出一種移動終端協(xié)議棧的處理消息方法。實際應(yīng)用證實,這種方法使得消息的處理更加簡單、靈活、可靠、清晰,使得消息在層與層之間的傳遞更加便利、靈活、高效。
移動通信;協(xié)議棧;消息傳遞
移動終端協(xié)議棧中的消息在傳遞過程中,需要對消息進行編碼和解碼處理以及發(fā)送和接收等操作。由于消息的處理將涉及很多操作,因此,消息的處理常常作為協(xié)議棧設(shè)計的一大重點和難點。能否合理高效地對消息進行處理,將關(guān)系著整個協(xié)議棧的性能好壞。
現(xiàn)有的協(xié)議棧消息處理方法有很多,但是沒有通用性,而且實現(xiàn)復(fù)雜,容易出錯,效率低,往往依賴于某種傳輸方式。本文提出了一種終端協(xié)議棧處理消息的方法和裝置,通過對消息的結(jié)構(gòu)進行精心的設(shè)計以及對消息編解碼操作進行封裝,為承載信令提供豐富的接口(消息內(nèi)容編碼,解碼),從而實現(xiàn)在協(xié)議棧中所需要的對于消息處理的各種操作。
1.1 為消息申請內(nèi)存空間并初始化相關(guān)的標記
若要發(fā)送一條消息,首先應(yīng)為其申請一塊內(nèi)存空間。消息包含消息結(jié)構(gòu)體、消息類型和信令3個區(qū)域。申請空間的大小應(yīng)可以容納最長的消息內(nèi)容,消息類型和消息結(jié)構(gòu)體的總和,即所申請的消息總長度不小于消息類型,信令的長度和消息結(jié)構(gòu)體大小總和相同。
消息結(jié)構(gòu)體包含3個標記,其中標記1指向消息類型的真實位置,標志2指向消息承載的信令的結(jié)束位置,標記3始終指向消息類型和信令的分界位置。消息結(jié)構(gòu)和消息處理的結(jié)構(gòu)示意如圖1所示。
圖1 消息處理示意
申請空間之后,應(yīng)初始化相應(yīng)的標記。將3個標記同時指向消息類型和信令的分界位置,即標記3的固定位置,如圖2所示。
圖2 消息初始化
1.2 對消息進行編碼
將消息類型和信令放入消息內(nèi)。如果只需要消息類型不需要信令,則不編碼信令。
首先,將消息類型放入消息中的消息類型區(qū)域,再將標記1向前移動相應(yīng)消息類型的大小。同時該操作返回標記1移動之后的位置,這樣就可以把對應(yīng)的消息類型拷貝到從標記1開始的空間內(nèi)。我們將這些操作封裝起來,稱為PUSH操作,向用戶提供一個接口。
然后,將承載的信令放入消息中的信令區(qū)域,再將標記2后移寫入信令長度的大小,標記2的位置也就是信令的尾部,同時這一操作返回標記2后移之后的位置,這樣就可以將要寫入的信令拷貝到起始地址為標記2移動之前指向的空間。我們將這些操作封裝起來,稱為PUT操作,向用戶提供一個接口,如圖3所示。
圖3 編碼消息
對消息進行編碼,結(jié)束后就可以將消息發(fā)送出去。
1.3 對消息進行解碼
接收層收到消息后,需要對消息進行解碼。通過標記1可以找到消息類型,通過消息類型來判斷這個消息在通信流程中的功能以及消息中可能包含的信令。
1.4 傳遞消息
如果接收層是消息中承載的信令的目的層,就可以通過標記3來找到信令。
如果接收層不是消息中承載的信令的目的層,則接收層需要將消息類型從消息中取出來,然后將標記1向后移動取出消息類型的長度。我們將這些操作封裝起來,稱為PULL操作,如圖4所示。然后,再通過PUSH操作將新的消息類型放進消息中,組成新的消息,再將新的消息發(fā)送到下一個接收層。直到到達消息中所承載的信令的目的層為止。根據(jù)通信協(xié)議,消息中有時可能被PUSH操作多個消息類型在消息中,如圖5所示。
綜上所述,文章定義了一種消息結(jié)構(gòu),并將消息編碼、解碼、傳遞過程中的相關(guān)操作封裝起來,向使用者提供若干個接口(PUT,PUSH,PULL,GET_LENGTH)。使用本文提出的方法來處理消息,使得使用者可以簡單、靈活地對消息進行處理,無需關(guān)心消息的具體內(nèi)容。在消息傳遞過程中,對消息的處理更加可靠、方便。更重要的是,這種方法能夠應(yīng)用在任何需要進行內(nèi)部消息處理的系統(tǒng)中,具有很好的通用性。
圖4 解碼消息
圖5 編碼多消息類型的消息
[1]段荷香,楊旭,李宇洋,等.LTE信令消息傳輸格式的衛(wèi)星通信適用性分析[C].北京:第九屆衛(wèi)星通信學(xué)術(shù)年會,2013.
[2]劉佳楠.基于開源軟件的LTE協(xié)議棧研究與設(shè)計[D].北京:北京理工大學(xué),2015.
[3]黃曉瑩,程宇新,吳建軍.一種移動通信終端協(xié)議棧軟件架構(gòu)方案[C].北京:第七屆衛(wèi)星通信技術(shù)新業(yè)務(wù)年會,2011.
[4]黃波.GSM協(xié)議棧軟件的研究和實現(xiàn)[D].長沙:湖南師范大學(xué),2001.
[5]陳亞琳.Zigbee協(xié)議棧消息事件處理分析[J].南京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報,2014(4):44-48.
[6]吳德鳳.Android智能終端系統(tǒng)的GSM軟基帶設(shè)計與實現(xiàn)[D].廈門:廈門大學(xué),2014.
[7]張俊龍,張玉艷,靳松,等.基于OAI的LTE MAC層研究和實現(xiàn)[J].中國科技論文,2013(8):949-954.
[8]蔡國棟.七號信令系統(tǒng)中MTP3(B)協(xié)議棧的動態(tài)路由算法研究[J].現(xiàn)代電子技術(shù),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— ),男,遼寧朝陽,碩士,工程師;研究方向:衛(wèi)星移動通信協(xié)議棧,衛(wèi)星移動終端協(xié)議棧的開發(fā)。