808協議

808協議

 

4協議內容

41通信方式

    協議採用的通信方式應符合JT/T 794中的相關規定,通信協議採用TCP或UDP,平臺

作爲服務器端,終端作爲客戶端。當數據通信鏈路異常時,終端可以採用SMS消息方式進

行通信。

4. 2數據類型

協議消息中使用的數據類型見表1:

表1數據類型

數據類型

描述及要求

BYTE

無符號單字節整型(字節,8位)   

WORD

無符號雙字節整型(字,16位)     

DWORD

無符號四字節整型(雙字,32位)

BYTE[n]

n字節

BCD[n]

8421碼,n字節

STRING

GBK編碼,採用0終結符,若無數據,則放一個0終結符

4. 3傳輸規則

協議採用大端模式(big-endian)的網絡字節序來傳遞字和雙字。

約定如下:

——字節 (BYTE)的傳輸約定:按照字節流的方式傳輸;

——字(WORD)的傳輸約定:先傳遞高八位,再傳遞低八位;

——雙字(DWORD)的傳輸約定:先傳遞高24位,然後傳遞高16位,再傳遞高八位,

最後傳遞低八位。

4消息的組成

4. 1消息結構

每條消息由標識位、消息頭、消息體和校驗碼組成,消息結構圖如圖1所示:

標識位

消息頭

消息體

校驗碼

標識位

圖1 消息結構體

JT/T 808-2011

4. 4. 2標識位

    採用Ox7e表示,若校驗碼、消息頭以及消息體中出現0x7e,則要進行轉義處理,轉義

規則定義如下:

0x7e<——>0x7d後緊跟一個0x02;

0x7d<——>0x7d後緊跟一個0x01。

    轉義處理過程如下:

        發送消息時:消息封裝——>計算並填充校驗碼——>轉義;

        接收消息時:轉義還原——>驗證校驗碼——>解析消息。

      示例:

    發送一包內容爲0x30 0x7e 0x08 0x7d 0x55的數據包,則經過封裝如下:0x7e 0x30 7d 0x02 0x08 0x7d 0x01 0x55 0x7e。

4. 4. 3消息頭

消息頭內容詳見表2:

表2消息頭內容

起始字節

字段

數據類型

描述及要求 

0

消息ID

WORD

 

消息體屬性

WORD

消息體屬性格式結構圖見圖2

4

終端手機號

BCD[6]

根據安裝後終端自身的手機號轉換。手機號不足12位,則在前補充數字,大陸手機

號補充數字0港澳臺則根據其區號進行位數補充。

10

消息流水號

WORD

按發送順序從0開始循環累加

12

消息包封裝項

 

如果消息體屬性中相關標識位確定消息分包處理,則該項有內容,否則無該項

 

消息體屬性格式結構圖如圖2所示:

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

保留

分包

數據加密方式

消息體長度

圖2消息體屬性格式結構圖

    數據加密方式:

    —— bit10-bit12爲數據加密標識位;

    ——當此三位都爲0,表示消息體不加密;

    ——當第10位爲1,表示消息體經過RSA算法加密;

    ——其他保留。

    分包:

    當消息體屬性中第13位爲1時表示消息體爲長消息,進行分包發送處理,具體分包信

息由消息包封裝項決定;若第13位爲0,則消息頭中無消息包封裝項字段。

    消息包封裝項內容見表3

                                表3消息包封裝項內容

JT/T 808-2011

起始字節

字段

數據類型

描述及要求

0

消息總包數

WORD

該消息分包後的總包數

2

包序號

WORD

從1開始

 

4. 4. 4校驗碼

校驗碼指從消息頭開始,同後一字節異或,直到校驗碼前一個字節,佔用一個字節。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章