工具:WireShark 2.6.4
一、抓取报文
从ONU侧抓取报文如图所示:本次抓取报文为ONU上线注册。
二、分析
这里以实体ONT2-G为例:
上图所示即为整个OMCI报文段,前两个字节为Transaction correlation identifier,第3个字节,49意思是OLT发送请求到ONU,类型是为GET,这点wireshark已经解析,具体字节含义和参考ITU-T988.x相关协议。
如下图:
第三个字节相关说明:AR=1,请求,AK=1,响应。再看action,由该字节的5-1位标识,定义如下:
因此49 >>> 0100 10001 ,即OLT向ONU请求。
0a是OMCI GPON设备标识。
0101 >> 257,十六进制换算成十进制,查找此实体ID。
发现此实体类型为ONT2-G。
其详细定义为:
再看后两个字节:
这里实际是该实体的索引,即Managed entity ID。
继续往后看:
这里就是mask;e0 00 >> 1110 0000 0000 0000
也就是请求其实体对应的前三项。
后面的全0,和帧尾可不理会(帧尾为校验码)。
再看ONU回应的报文:
同理,前两个字节为Transaction correlation identifier;第三个字节29 >> 0010 1001,是ONU回应OLT的GET,AK = 1。
response报文格式如下:
跟请求报文一样,0a为omci 设备标识。01 01 为实体类型,00 00 为ME ID,00 标识get成功,e0 00为属性掩码。
后面的即为ONU上报的数据,如下图:
根据其实体字节定义来分析回的报文中包含哪些数据。