4251|13

111

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

[KW41Z] 关于Thread协议若干问题 [复制链接]

 
在学习Thread过程中会碰到很多问题, 由于资料相对封闭, 而且使用的人较少导致有些问题很难通过文档(Thread API函数的说明基本就一句话)来找出来。如果有Thread的wiki就好了, 能让新手少走很多弯路。 现在还没解决的问题如下:
1. 各种地址的含义
Thread一个设备有好多个地址(LL64, ML64, ML16...), 其中比较实用的应该是16位地址(ML16)。 16位地址以ff:fe00:XXXX结尾, XXXX,其中XXXX就是16位地址, 问题是ML16的前缀比如”fdb6:ffe5:2bd3:ad8b::“代表什么?
$ ifconfig

Interface 0: 6LoWPAN
        Link local address (LL64): fe80::4c08:6123:7e73:4e9
        Mesh local address (ML64): fdb6:ffe5:2bd3:ad8b:2ca9:df49:86a9:99d2
        Mesh local address (ML16): fdb6:ffe5:2bd3:ad8b::ff:fe00:400
        Link local all Thread Nodes(MCast):  ff32:40:fdb6:ffe5:2bd3:ad8b::1
        Realm local all Thread Nodes(MCast): ff33:40:fdb6:ffe5:2bd3:ad8b::1
$  Mesh local address (ML16): fdb6:ffe5:2bd3:ad8b::ff:fe00:400


2. 设备类型发现
Zigbee协议中定义了设备类型, 用户可以查询特定设备的功能, 而Thread则没发现这个功能。
现在问题是Thread有没有一种比较通用的方法来查询特定设备的类型? 比如设备通过实现 “COAP CONN GET ... /DeviceTypeGuid”这种类似的方法来获取设备类型GUID, 然后通过网络查询这个id就可以获取到设备的具体信息了?

3. 多DHCP Server支持
Thread是否支持多个DHCP Server以实现No Single Node Failure? 在active DHCP Server离线的情况下其他后备的Server能够取代其工作? 或者是NXP thread sdk能否支持把DHCP的角色转接到HOST上来通过上位机控制? (查看了NXP的代码发现相应的函数实现并未公开。)

此帖出自NXP MCU论坛

最新回复

一般nwk stack而言NV是必备的 所以看你的需求了 断电后重启还是重新初始化网络,这个得区分开 一般nv会保存之前的参数的 同时短地址的生成策略也有很多方式,有一种是通过ieee地址自动生成的 但也不是唯一的方式  详情 回复 发表于 2017-7-12 13:14
点赞 关注
 

回复
举报

7608

帖子

2

TA的资源

五彩晶圆(高级)

沙发
 
http://threadgroup.org/ThreadSpec
1.1版的Specification,只能帮到这了。
此帖出自NXP MCU论坛

点评

这个找了, 没介绍那么仔细, 全部都打印出来了倒是没怎么看。  详情 回复 发表于 2017-7-5 12:28
你们都玩这种底层暗货 我要点灯  详情 回复 发表于 2017-7-5 09:48
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
freebsder 发表于 2017-7-5 08:51
http://threadgroup.org/ThreadSpec
1.1版的Specification,只能帮到这了。

你们都玩这种底层暗货
我要点灯
此帖出自NXP MCU论坛

点评

坚决不玩,只看热闹,下载浏览,只为装逼  详情 回复 发表于 2017-7-5 11:20
 
个人签名

So TM what......?

 

 

回复

6105

帖子

4

TA的资源

版主

4
 
本帖最后由 damiaa 于 2017-7-5 10:38 编辑

thread有邻居发现命令,好像。也可以发现父节点,等。具体有个文档说这个。

thr get neighbors
thr get parent
还有其他很多。。。
thr get - displays the value for the specified attribute
此帖出自NXP MCU论坛

点评

这个知道, 就是对地址有疑惑,Thread文档说16位地址是0000:00ff:fe00:xxxx这样的, 就是不明白前缀是什么。  详情 回复 发表于 2017-7-5 12:30
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

5
 
ljj3166 发表于 2017-7-5 09:48
你们都玩这种底层暗货
我要点灯

坚决不玩,只看热闹,下载浏览,只为装逼
此帖出自NXP MCU论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

111

帖子

0

TA的资源

一粒金砂(中级)

6
 
freebsder 发表于 2017-7-5 08:51
http://threadgroup.org/ThreadSpec
1.1版的Specification,只能帮到这了。

这个找了, 没介绍那么仔细, 全部都打印出来了倒是没怎么看。
此帖出自NXP MCU论坛
 
 
 

回复

111

帖子

0

TA的资源

一粒金砂(中级)

7
 
damiaa 发表于 2017-7-5 10:33
thread有邻居发现命令,好像。也可以发现父节点,等。具体有个文档说这个。

thr get neighbors
thr get ...

这个知道, 就是对地址有疑惑,Thread文档说16位地址是0000:00ff:fe00:xxxx这样的, 就是不明白前缀是什么。
此帖出自NXP MCU论坛
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

8
 
1、这个是ipv6地址,请参考ipv6的相关文档,::是一种缩写方式
2、设备类型发现,这个有什么意义,自己做coap暴露服务点即可
3、一般直接用root dag加上设备的短地址生成ipv6地址 ,可能这也是dhcp server的原理吧
重点是组网过程做根路由如何形成,一般只有一个根路由
此帖出自NXP MCU论坛

点评

多谢, 请问一下root dag是什么意思? 还有用coap暴露服务点的缺点就是如果节点断网了,然后有新的节点入网, 使用了断网节点的地址, 那么访问该结点就有可能出错。 除非每次访问前都需要确认下节点类型。目前想到  详情 回复 发表于 2017-7-5 23:33
 
个人签名电工
 
 

回复

111

帖子

0

TA的资源

一粒金砂(中级)

9
 
lyzhangxiang 发表于 2017-7-5 15:28
1、这个是ipv6地址,请参考ipv6的相关文档,::是一种缩写方式
2、设备类型发现,这个有什么意义,自己做co ...

多谢, 请问一下root dag是什么意思?
还有用coap暴露服务点的缺点就是如果节点断网了,然后有新的节点入网, 使用了断网节点的地址, 那么访问该结点就有可能出错。 除非每次访问前都需要确认下节点类型。目前想到一个办法就是设备入围都向网关注册节点类型, 缺点就是有可能节点入网的时候网关还没上电。
此帖出自NXP MCU论坛

点评

根路由的概念要深入人心啊 其次关于这种准静态地址的方式相对简单,根路由决定这个小网的地址前缀 每个设备的地址在网络形成的时候已经固定了,根路由+设备短地址 这种方式也就不存在你说的问题的  详情 回复 发表于 2017-7-7 13:52
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

10
 
allenliu 发表于 2017-7-5 23:33
多谢, 请问一下root dag是什么意思?
还有用coap暴露服务点的缺点就是如果节点断网了,然后有新的节点 ...

根路由的概念要深入人心啊
其次关于这种准静态地址的方式相对简单,根路由决定这个小网的地址前缀
每个设备的地址在网络形成的时候已经固定了,根路由+设备短地址
这种方式也就不存在你说的问题的
此帖出自NXP MCU论坛

点评

我的意思是一个Thread网络, 节点地址区别就是16位短地址吧? 这个是通过邻居发现来决定地址分配吧? 这样设备最多就是65535个。如果设备断电后重新初始化了, 那么地址还会是以前的地址么?  详情 回复 发表于 2017-7-12 12:18
 
个人签名电工
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

11
 
1:
Mesh local address (ML16): fdb6:ffe5:2bd3:ad8b::ff:fe00:400   
b6:ffe5:2bd3:ad8b 这个是基于 extend PAN ID 而来
ML64, Mcast 都包含这块地址。

2: Thread 协议本身不包含 APP层的设备类型发现

3: Thread 协议本身不包含DHCP Server, 你看到的 ML16 后面的16位地址不是 DHCP Server 分配的。
此帖出自NXP MCU论坛

点评

明白了, 非常感谢。 不过看代码里面有实现dhcp server。  详情 回复 发表于 2017-7-12 12:13
 
 
 

回复

111

帖子

0

TA的资源

一粒金砂(中级)

12
 
gogoer 发表于 2017-7-10 15:22
1:
Mesh local address (ML16): fdb6:ffe5:2bd3:ad8b::ff:fe00:400   
b6:ffe5:2bd3:ad8b 这个是基于 ex ...

明白了, 非常感谢。
不过看代码里面有实现dhcp server。
此帖出自NXP MCU论坛
 
 
 

回复

111

帖子

0

TA的资源

一粒金砂(中级)

13
 
lyzhangxiang 发表于 2017-7-7 13:52
根路由的概念要深入人心啊
其次关于这种准静态地址的方式相对简单,根路由决定这个小网的地址前缀
每个 ...

我的意思是一个Thread网络, 节点地址区别就是16位短地址吧? 这个是通过邻居发现来决定地址分配吧? 这样设备最多就是65535个。如果设备断电后重新初始化了, 那么地址还会是以前的地址么?
此帖出自NXP MCU论坛

点评

一般nwk stack而言NV是必备的 所以看你的需求了 断电后重启还是重新初始化网络,这个得区分开 一般nv会保存之前的参数的 同时短地址的生成策略也有很多方式,有一种是通过ieee地址自动生成的 但也不是唯一的方  详情 回复 发表于 2017-7-12 13:14
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

14
 
allenliu 发表于 2017-7-12 12:18
我的意思是一个Thread网络, 节点地址区别就是16位短地址吧? 这个是通过邻居发现来决定地址分配吧? 这 ...

一般nwk stack而言NV是必备的
所以看你的需求了
断电后重启还是重新初始化网络,这个得区分开
一般nv会保存之前的参数的
同时短地址的生成策略也有很多方式,有一种是通过ieee地址自动生成的
但也不是唯一的方式
此帖出自NXP MCU论坛
 
个人签名电工
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表