網路邏輯封包的解析抽象

2021-04-12 19:40:05 字數 1157 閱讀 2932

一、概念

封包原子

結構定義:資料名稱 資料型別、位元組長度、資料個數、是否為常量、常量值

資料型別支援long,int,float,double,bool,string等

資料個數》1時,是陣列

常量原子

是否為常量 = true,且常量值有意義的封包原子

封包結構

由opcode和若干個封包原子組成

封包結構文字描述

例:op_team, int,float,bool, string

op_team, int,float,bool, ushort, [int,float,string]

注意:bool、bool 和 bool 是三個不同的封包原子

是陣列分支

兩個封包結構的opcode相等,但是封包原子不完全一樣,稱為 這兩個封包結構為該opcode的分支 (分支與邏輯密切相關)

封包

伺服器或者客戶端接收到的邏輯包

匹配

已知乙個封包二進位制資料a,用某個封包結構b去解析裡面的資料,稱為b去匹配a。一般來說,解析過程是順序下來的,解析伴隨著邏輯分析的過程

匹配文字描述

例:op_team, int(5),float(3.2),bool(1), string(『aaa』)

op_team, int(5),float(3,2),bool(0), ushort(2), [0,int(4),float(2.22),string(『』)], [1,int(78),float(4.22),string(『aaaa』)]

匹配過程與匹配結果

匹配過程就是順序拿封包裡的指定長度資料去套用封包結構裡面的資料定義,產生值。匹配到常量原子時,如果值不等於常量原子,那麼匹配失敗;如果封包裡的資料沒有把原子匹配完,或者有多餘的資料,也匹配失敗。否則匹配成功。

二、用途

用於開發過程中需要的發包工具,可先建立乙個封包結構知識庫,然後根據接收過來的封包與知識庫進行匹配識別,再傳送特定的測試封包資料。另外也可以在研發過程中作為封包測試排錯的機制。

網路快取的邏輯

網路快取很多方式都可以實現,有時候,可以將快取寫在本地檔案中,以md5 url 為檔名,以json為檔案內容儲存,如果快取寫在檔案中,先找檔案md5 url 存不存在,如果存在,說明有快取.今天不用這一種 因為我們快取的資料並不大 新建乙個工具類cacheutils 原則 以url 引數為key,以...

網路 解析網路中的資料

在網路上傳輸資料時最常用得方式有兩種 xml和json 解析xml的方式有很多,這裡記錄比較常用的兩種 sax和pull解析的方式 待解析的xml檔案示例 sax解析name 18age person xml1name 43age person persons 核心工具類 public class ...

實現SDN網路的邏輯隔離

1.場景 設有一台 pc機,兩台伺服器a b與同一交換機直連,伺服器a和 b都提供遠端桌面登入服務。這裡的 pc機 伺服器 交換機可以選擇物理裝置或者虛擬機器實現 2.目的 通過控制層對網路的控制,實現 pc機可以分別登入伺服器a和 b,但是a 和b之間相互訪問不了 無論是在實際環境還是在 環境實現...