GOOSE报文解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GOOSE报文解析
GOOSE报文的结构,基于ISO/IEC 8802-3的帧格式
普通报文:
目的MAC+ 源MAC+ (TPID+ TCI) + 以太网类型+ APPID+APDU数据的长度(m+8)
TPID为0x8100 以太网类型为0x88B8(对于GOOSE报文)
TCI为用户优先级+CFI+VID
+ 00 00 + APDU(长度为m)
00 00 为保留位
注:( ) 中的部分可以不写,但强烈建议以以太网传输的时候,加入….
APDU Head : 格式为61 81 + GOOSEPDU的长度,从80开始算起
广播报文:
目的MAC + 源MAC + 以太网类型+ APPID + APDU数据的长度(m+8)
(目的MAC为FF FF FF FF)
+ 00 00 + APDU(长度为m)
ASN.1 的BE R编码形式为:
TLV形式,即Tag + Length + Value 的形式
Tag 与数据类型标记的编码一致
Length 表示后面Value的长度
Value 应用ASCII码进行编码解析
对于Tag 的解析:
Bit 7,6 Type of Tag
Bit 5 Primitive or Constructed Flag
Bit 4-0 Tag V alue
ASN.1 数据类型
83BOOL型
84 BIT-String 型
91 UTC 型(时间)
85 Int 型
86 Unsigned 型
8a Visble-String 型
翟大厨的报文分析:
0000: 01 00 00 00 00 0708 00 06 86 48 42 81 0040 03
目的MAC 源Mac TPID TCI
0010: 88 B800 0700 9000 00 00 0061 81 8580 2550
以太网类型APPID 长度保留位APDU Head gocbRef (80 表示数据类型Tag,25表示数据长度,从50开始都是后续数据)
0020: 32 41 31 4A 31 51 36 50 72 6F 74 65 63 74 69 6F
0030: 6E 2F 4C 4C 4E 30 24 47 53 45 70 72 6F 74 65 63
0040: 74 69 6F 6E81 02 05 0082 25 50 32 41 31 4A 31
timeAllowtoLive(81表示类型) dataSet(82表示类型)
0x0500---1280
0050: 51 36 50 72 6F 74 65 63 74 69 6F 6E 2F 4C 4C 4E
0060: 30 24 47 53 45 70 72 6F 74 65 63 74 69 6F 6E 83
goID(83表示类型)
0x37 对应ASCII码中的‘7’
0070: 01 3784 08 00 00 00 00 00 00 00 0085 01 0186
t(84表示类型) stNum(85表示类型) Num 为1
表示时间:01/01/1970_00:00:00.000000q00
0080: 03 02 70 A187 01 0088 01 01 89 01 008A 01 04numDatSetEntries(8A表示类型)值4 sqNum(86表示类型) test(87表示类型) ConfRev(88表示类型) ndsCom(89表示类型)
0x0270A1---159905 00 表示FALSE 为1 00表示FALSE
0090: AB 10 83 01 00 84 03 02 00 00 83 01 00 84 03 02
allData(AB表示类型)
allData为一个数据的集合10表示后面的数据长度内部分解为不同的小的数据集
如:83 01 00 83 (数据类型为boolean型) 01(数据长度为1) 00 (表示数据内容,对于boolean型表示为FALSE)
84 03 02 00 0084(数据类型为bit-string型)03(数据长度为03) 02 00 00(表示数据内容)
00A0: 00 00
注:其中numDatSetEntries表示了allData中的数据链的个数
报文解析出来为:
GoosePdu {
gocbRef "P2A1J1Q6Protection/LLN0$GSEprotection",
timeAllowedtoLive 1280,
datSet "P2A1J1Q6Protection/LLN0$GSEprotection",
goID "7",
t 01/01/1970_00:00:00.000000q00,
stNum 1,
sqNum 159905,
test FALSE,
confRev 1,
ndsCom FALSE,
numDatSetEntries 4,
allData {
boolean FALSE,
bit-string '00000000000000'B,
boolean FALSE,
bit-string '00000000000000'B }
}
Comgoose 中报文分析:
0000 01 0c cd 01 00 0401 0c cd 01 10 1088 b800 04