协调器是如何获取终端的IEEE地址并自动对其分配网络短地址呢

协调器是如何获取终端的IEEE地址并自动对其分配网络短地址呢,第1张

猜想如下:终端上电后稳定后就开始寻找周围是否存在网络?向周围发射广播,该广播内容包含自己的身份信息,即MAC地址和其它相关的网络信息,并时刻等待协调器或路由器的回应,一旦收到父网确认加入网路的回应信号则停止广播自己的身份ID,转入定时询问父网是否有自己消息的状态,并一直持续下去,如果有自己的消息则进行消息接收或处理。协调器上电后首先组建网络,网络组建成功后就可以允许其它设备加入到该网路并对网络进行管理,一旦发现有新的设备加入到网络,则分析该设备的广播包并解析出它的IEEE地址,然后分配给它一个网络短地址,反馈给该设备加入确认信息,至此一个设备加入到了该网络中。实验与分析:1、分析终端上电后的行为 使用sniffer截取一部分采集到数据如下:1)dest pan ID 为0xffff,说明终端未加入到网络;2)dest address 地址为0xffff 说明终端目前以广播方式进行数据发送;偶然发现了frank写的一篇文章整好可以回答这个问题,引用一下大家参考参考,我就不继续写了,呵呵。网络地址的分配及获取[转] Zigbee2006通过分布式寻址方案来分配网络地址的,保证网络内地址的唯一性。这个寻址算法本身的分布特性保证设备只能与其父辈设备通讯来接受一个网络地址。不需要整个网络范围内通讯的地址分配,有助于网络的可测量性。在04协议栈里有这样一个公式,A=A(parent)+Cskip(d)Rm+n,Cskip(d)是不同深度的父设备分配地址时的偏移量,Rm是可以携带的最大路由数,n是第n个设备。其中如果Cskip(d)=0x5a6,Rm=4,则协调器的第一个RFD的地址为A=0+0x5a64+1=0x1699在06协议里看到这样一个描述:对于一个地址为A、深度为d的路由器,如果下式成立,则具有地址为D的目的地址设备为子设备:A<D<A+Cskip(d-1),假设父设备可拥有的最大子设备数为Cm,其拥有的最大路由子设备数为Rm,网络的最大深度为Lm,则父设备所能分配子区段地址数为:若Rm=1,Cskip(d)= 1+Cm(Lm-d-1);若Rm不为1,则Cskip(d)=(1+Cm-Rm-Cm( Rm)^(Lm-d-1))/(1-Rm)后来在另一本资料上见到一份资料:子节点为父设备的第n个子路由器的短地址分配:Achild =Aparent +(n-1)Cskip(d)+1,n=1Achild =Aparen +(n-1)Cskip(d),n>1子节点为父设备的第n个子终端设备的短地址分配:Achild = Aparent + RmCskip(d)+ n下图为Lm=3,Cm=6,Rm=4的网络地址分配示例。几个有用的关于物理地址和网络地址的函数:得到父节点的网络地址:uint16 NLME_GetCoordShortAddr( void );得到父节点的物理地址:void NLME_GetCoordExtAddr( byte );得到自己的网络地址:uint16 NLME_GetShortAddr( void );得到自己的物理地址:byte NLME_GetExtAddr( void );根据已知物理地址查询远程设备网络地址,作为一个广播信息发送给网络中的所有设备:afStatus_t ZDP_NwkAddrReq( byte IEEEAddress, byte ReqType,byte StartIndex, byte SecurityEnable )根据已知网络地址查询远程设备物理地址,作为一个广播信息发送给网络中的所有设备:afStatus_t ZDP_IEEEAddrReq( uint16 shortAddr, byte ReqType,快速查询(不启动无线查询,而是根据已存储于地址管理器中的网络(物理)地址查询物理(网络)地址):查找基于网络地址的物理地址:uint8 APSME_LookupExtAddr( uint16 nwkAddr, uint8 extAddr );查找基于物理地址的网络地址:uint8 APSME_LookupNwkAddr( uint8 extAddr, uint16 nwkAddr );一般发送消息,使用物理地址和网络地址都可以发送,但最好用网络地址,使用物理地址可能会出现问题。采用16bit网络地址可以降低功耗问题。如果采用64bit IEEE地址发送数据,首先其数据发送的最佳路径难以求得,势必会增加多次发送的功耗 其二 如果该数据接收设备离开网络(当机),发送之时也就不知道。 采用网络地址发送数据,可以采用路由算法 找到最佳路径 减其功耗。

linux# ifconfig -a

windows#ipconfig /all

#ps -e|grep ssh

运行后如果有结果显示就说明ssh服务开启,如果没有结果,运行:

service sshd start

或者service ssh start

如果系统提示unreconize service

#apt install openssh-client

#apt install openssh-server

安装以上deb包以后#service sshd/ssh start

启动服务以后远程未必能直接ssh ,需要修改sshd_config文件把默认passwordauthentication设置为yes(因为win10:ubuntu默认no)

以下为配置步骤,请参考:

刚解决此问题,纠结了一段时间,现给你解答:

#cd /etc/ssh/

#vim sshd_config

修改如下:

#PasswordAuthentication no

改为:

PasswordAuthentication yes

(注意前面的 # 去掉)

保存文件后记得:service ssh restart

(只有重启服务才能让配置生效嘛,hahahia)

课后问题总结:

遇到此问题由于对ssh配置不熟悉,一度以为是:防火墙、服务企停、ssh/sshd安装包等等bug导致,经历一系列lab后,把/etc/ssh/sshd_config文件与正常的ubuntu配置文件比对后发现问题根源(原来就是win10:ubuntu 虚机默认密码认证是关闭状态),通过开启此配置解决问题。

输入show arp会显示每个IP所对应的MAC地址和连接在设备上的端口号我给你看下我交换机上的端口SW-A#sho arp

Protocol Address Age(min) Hardware Type Interface

Internet 192168802 33 001aa907bffb arpa FastEthernet 0/10

Internet 192168801 -- 001aa91a09df arpa FastEthernet 0/10

Internet 1921685025 34 001aa93a4370 arpa FastEthernet 0/11

Internet 1921685026 -- 001aa91a09df arpa FastEthernet 0/11

Internet 19216820010 -- 001aa91a09df arpa VLAN 1

Internet 19216815254 -- 001aa91a09df arpa VLAN 15

Internet 19216820254 -- 001aa91a09df arpa VLAN 20

Total number of ARP entries: 7

请通过电信天翼网关客户端检查该终端是否在网关黑名单中,确认是否通过客户端或Web页面将该终端拉黑,如果终端未被拉黑且其他终端上网不存在问题,则可能是该终端网卡的问题。411号客服为你解答,以上信息仅供参考,宅在家涨流量,领48G流量用2年,每月2G全国流量不要白不要,登陆广西电信网上营业厅即可办理>

一种方法是 开启wifi 然后通过wifi获取Mac地址

public static String getLocalMacAddressFromWifiInfo(Context context){

WifiManager wifi = (WifiManager) contextgetSystemService(ContextWIFI_SERVICE);

WifiInfo info = wifigetConnectionInfo();

return infogetMacAddress();

}

第二种 是通过busybox ifconfig

public String getMacAddress() {

String result = "";

String Mac = "";

result = callCmd("busybox ifconfig", "HWaddr");

if (result == null) {

return "网络出错,请检查网络";

}

if (resultlength() > 0 && resultcontains("HWaddr")) {

Mac = resultsubstring(resultindexOf("HWaddr") + 6, resultlength() - 1);

if (Maclength() > 1) {

result = MactoLowerCase();

}

}

return resulttrim();

}

如果局域网上出现这个问题,应该是在这个局域网中有人使用这个2网段的路由,而他把网线插在了LAN口上,从他这个路由分配出了这个网段的IP,

你用这个2的网关打开路由试试,看是一个什么样的路由。

以上就是关于协调器是如何获取终端的IEEE地址并自动对其分配网络短地址呢全部的内容,包括:协调器是如何获取终端的IEEE地址并自动对其分配网络短地址呢、ubuntu使用ssh登陆时,如何能获得登陆终端的ip(急)、怎么在交换机上获取终端的MAC地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9776115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存