起始標記
傳輸資料頭
資料體
校驗資料
結束標記
0xf0
38位元組
不定長,資料體長度在傳輸資料頭中確定
如果沒有資料體,本部分長度為0
0/4位元組
0xff
訊息的總長度:
起始標記(1)+ 協議資料頭位元組數(38)+ 前置處理頭位元組數 + 資料體位元組數 + 校驗資料位元組數 + 結束標記(1)
起始標記:用於標識乙個訊息的開始,固定值:0xf0。該值不正確時,斷開連線。
傳輸資料頭:用於描述傳輸協議控制以及訊息的唯一性控制。
資料體:包含傳輸資料內容,資料體的大小由所傳輸資料的內容決定。
校驗資料:採用crc32方式對傳輸的資料體內容進行校驗。
結束標記:用於標識乙個訊息的結尾,固定值:0xff。
訊息的唯一標識:由傳輸資料頭中「傳輸命令編碼」、「訊息時間戳」、「訊息序號」、「裝置id」、「裝置分組編碼」這五個部分共16個位元組確定。當接收方收到這16個位元組相同的兩個訊息時,即可認定是重複訊息。
分類
欄位名
長度
資料型別
描述傳輸
資料頭訊息總長度
4hex
訊息整體長度
協議標識
4hex
0x00000001
協議版本號
1hex
用於確定傳輸協議版本號:0x01
資料格式版本號
1hex
用於確定資料體中的資料編碼格式版本號
:0x01
資料傳輸型別
1hex
0x00:協議資料;0x01:預留資料;
0x02:交易資料;0x03:業務資料;
0x04:控制資料;0x05:狀態資料。預留1
hex0xff
訊息唯一
標識傳輸命令編碼
1hex
區分不同的傳輸命令
訊息時間戳
7bcd
訊息序列號
2hex
由訊息發起方產生。初值為1,從程式啟動後開始遞增,到達65535後歸1。
裝置id
41hex+2bcd+1hex
訊息傳送方的標識
裝置分組編碼
21hex+1hex
訊息傳送方的分組標識,確認裝置分組和組內編碼。
會話生存週期(改為命令**)
2hex
本次會話的生存週期。用於確定是否檢查超時及超時限制的時間。單位:秒。
分包總數
1hex
分包序號
1hex
當前資料分包序號,如果總包數=1,序號為1;如果總包數》1,分包序號從1開始遞增。
前置處理標識
1hex
0x00
加密演算法
1hex
0x00
加密演算法補位長度
1hex
金鑰版本
1hex
加密資料體採用金鑰版本號
校驗碼演算法
1hex
目前系統間資料互動時採用0x00。
0:不採用;1:crc32;其它值無效。crc32的初值是用0x000000000。
預留欄位2
1hex
預留字段 0xff
傳輸命令區分:
協議命令
編碼
命令用途
連線請求
0x01
建立初始合法連線
連線確認反饋
0x02
對連線請求的確認
資料傳遞
0x03
用於各類資料傳輸
資料傳遞反饋
0xfd
用於對需要反饋的「資料傳遞」中指定的內容進行反饋資料傳遞
連線存活確認
0x08
用於無訊息傳輸時的連線確認
連線存活確認反饋
0xfc
僅用於對連線確認的反饋
訊息正確應答(ack)
0xfb
用於正確接收確認
訊息錯誤應答(nack)
0x00
用於出現接收錯誤和收到非指定反饋資料時的錯誤應答
業務正確處理完成反饋
0xfa
用於收到資料後業務正確處理完成的反饋
業務處理出錯反饋
0xf9
用於收到資料後業務處理出錯的反饋
mysql報文格式 Mysql 報文格式
mysql client和server端之間的的資料根據不同的協議規則的進行組織傳送。每包資料在傳送的時候都要新增上協議頭。mysql原始碼採用5.7.10版本 協議頭 每個協議頭共4個位元組 包資料長度 前三個位元組表示資料部分的長度 不包括協議頭 三位元組能表示的最大長度是16m 1 2 24 ...
mysql報文格式 Mysql 報文格式
mysql client和server端之間的的資料根據不同的協議規則的進行組織傳送。每包資料在傳送的時候都要新增上協議頭。mysql原始碼採用5.7.10版本 協議頭 每個協議頭共4個位元組 包資料長度 前三個位元組表示資料部分的長度 不包括協議頭 三位元組能表示的最大長度是16m 1 2 24 ...
Http報文組成部分
它們由三個部分組成 這是請求報文的格式 是為伺服器端提供一些額外的資訊 這是響應報文的格式 注意,只有起始行的語法有所不同 為客戶端提供一些額外的資訊 下面是對各部分的簡要描述。客戶端希望伺服器對資源執行的動作。是乙個單獨的詞,比如get head或post。本章稍後將詳細介紹方法。命名了所請求資源...