最近一直都在分析报文,在不同的文档里翻不同的报文格式,无用功做挺多的,这里干脆总结mark下6lowpan里常用的报文格式,省得后面又不停的翻文档
![](http://blog.chinaunix.net/kindeditor/plugins/emoticons/images/0.gif)
/*.......................................6LoWPAN报头类型.........................................................*/
类型字段8bit | 报头类型 |
00 xxxxxx |
NALP,非LoWPAN帧 |
01 000001 |
IPv6,非压缩IPv6报头(0x41) |
01 000010 |
LOWPAN_HC1, 压缩方式 |
01 010000 |
LOWPAN_BC0, 广播 |
01 1xxxxx | LOWPAN_IPHC,压缩方式 |
01 111111 |
ESC,接着又附加的消息字段 |
10 xxxxxx |
MESH,网状报头 |
11 000xxx |
FRAG1,分片报头(第一个) |
11 100xxx |
FRAGN,分片报头(后续) |
其他 |
保留 |
/*...........................................LOWPAN_IPHC............................................................*/
/*..............................................IPv6标准报头..............................................................*/
![](http://blog.chinaunix.net/attachment/201509/15/30010070_144228680968b6.jpg)
这里需要主要下 下一报头字段 的值与十六进制(8bit)
值 | 十六进制 | 下一报头类型 |
0 | 0x00 | 逐跳选项报头 |
6 | 0x06 |
TCP |
17 | 0x11 | UDP |
41 | 0x29 | 以封装的IPv6报头 |
43 | 0x2B | 路由包头 |
44 | 0x2C | 片段报头 |
50 | 0x32 | 封装安全有效载荷报头 |
51 | 0x33 | 身份验证报头 |
58 | 0x3A | ICMPv6报头 |
59/60 | 0x3B/0x3C | 没有下一报头/目标选项报头 |
/*.................................................ICMPv6 RPL..............................................................*/
![](http://blog.chinaunix.net/attachment/201509/15/30010070_14423040544fEL.jpg)
Code 指出RPL控制消息类型 0x00:DIS消息 0x01:DIO消息 0x02:DAO消息 0x03:DAO-ACK消息 0x8A:Consistency Check一致性检验
Base 字段即为DIS Base object,DIO Base object,DAO Base object...等
详见rfc6550--IPv6 Routing Protocol for Low-Power and Lossy Networks
/*...................................................邻居发现.................................................................*/
![](http://blog.chinaunix.net/attachment/201509/15/30010070_144230592438jb.jpg)
![](http://blog.chinaunix.net/attachment/201509/15/30010070_1442305964jexY.jpg)
![](http://blog.chinaunix.net/attachment/201509/15/30010070_1442305445dCSz.jpg)
![](http://blog.chinaunix.net/attachment/201509/15/30010070_1442306074dR22.jpg)
![](http://blog.chinaunix.net/attachment/201509/15/30010070_1442305446gHoZ.jpg)
ICMPv6 TYPE | 十六进制 | 消息类型 |
133 | 0x85 | RS |
134 | 0x86 | RA |
135 |
0x87 |
NS |
136 |
0x88 |
NA |
155 |
0x9B |
RPL |