IEC6180-MMS協議簡單解析 —— 利用Wireshark對報文逐字節進行解析詳細解析IEC6180-MMS所含功能碼


現在網上有很多類似的文章、其實這一篇也借鑒了很多其他博主的文章。

寫這篇文章的重點是在於解析功能和報文、對MMS這個協議並不會做很多介紹。

好了,我們開始吧。

MMS協議的協議規范取決於IEC61850規范

從報文來看mms協議共有tpkt cotp mms  下圖為mms協議整體報文結構

之前的tpkt 和 cotp這一塊的就不展開進行介紹了,可以自行去了解一下(我們主要是講MMS這一層)

Initiate

發包

Byte[0] a8 消息的類型

Byte[1]26 mms消息的大小

Byte[2]80 LocalDetailCalling參數的類型

Byte[3]03 LocalDetailCalling參數的長度

Byte[4]-[6]04 e2 00 LocalDetailCalling本地詳細信息調用參數的值 這個字節數不固定 取決於后面數字的大小

Byte[7]81 proposedMaxServOutstandingCalling參數的類型

Byte[8]01 proposedMaxServOutstandingCalling參數的長度

Byte[9]01 proposedMaxServOutstandingCalling譯提出的最大服務端呼叫數值的值

Byte[10]82 proposedMaxServOutstandingCalled參數的類型

Byte[11]01 proposedMaxServOutstandingCalled的長度

Byte[12]01 proposedMaxServOutstandingCalled譯提出的最大服務端被呼叫數值的值

Byte[13]83 proposedDataStructureNestingLevel 參數的類型

Byte[14]01 proposedDataStructureNestingLevel 參數的長度

Byte[15]05 proposedDataStructureNestingLevel 譯預先編碼的數據結構嵌套級別的值

Byte[16]a4 初始請求詳細信息類型

Byte[17]16 初始請求詳細信息的長度 也就是以后的字節長度

Byte[18]80 proposedVersionNumber參數的類型

Byte[19]01 proposedVersionNumber 參數的長度

Byte[20]01 proposedVersionNumber 譯 提出的版本號的值

Byte[21]81 padding參數的類型

Byte[22]03 padding和proposedParmeterCBB的長度 (這里為什么是兩個參數的長度呢,因為Wireshark解析錯了 這倆個參數是在一個結構體內的)

Byte[23]05 padding 譯 填充的值

Byte[24][25] f1 00 proposedParmeterCBB 譯 提出的參數cbb

Byte[26] 82 padding或servicesSupportedCalling參數的類型

Byte[27]0c 自此往后的長度

Byte[28] 03 padding 譯 填充的值

Byte[29]-[39] servicesSupportedCalling服務支持的呼叫的值

回包

 可以看到的是 基本是一收一發 所有的參數都是與發包時候對應 那么就不在一個字節一個字節的闡述了

需要注意的是mms協議Wireshark解析的並不完整、有很多字節是沒有解析到的,要注意觀察,比如某某值的長度某某值的type都是沒有解析到的。

Read

在介紹一個就夠了,這些都是互通的,能認出來一個那么就能認出來其它的。

發包

 上面的幾層我就不截圖了

這樣看會直觀一些,我現在點的是InvokeID這一塊,他的值為04 d0 但是他前面還有a0 27 02 02 是在mms協議的結構體內但是Wireshark沒有解析到,這種情況會很經常發生,基本上與我上面說的一樣,type和length都沒有解析到。

A0 也即為消息的類型 27也即為消息的長度 那么02也即為Invokid的類型 下一個02也即為Invokid的長度

 我現在點擊的是confirmedServiceRequest那么可以看到又有兩個數值沒有解析到 a4 與 21 直接拿之前的經驗往上套 那么a4 即為confirmedServiceRequest消息的類型 21即為confirmedServiceRequest消息的長度

Read是與confirmedServiceRequest一個結構體內所以他倆的數值是一樣。

現在我點擊的是 specificationWithResult 那么又可以看到遺留了兩個數值80 與 01,80還是為specificationWithResult類型 那么01即為mms.specificationWithResult消息的長度

按照這個找法其實這些都是一樣的 我就不繼續往下闡述了。

回包

與發包也是一發一收 沒有很大的變化 只是多了個讀取到的數值

剩下的自己對照Wireshark就可以發現 都是一致的,剩下的我也就不再說了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM