n1 n2
1.一种无线网络的通信实现方法,其特征在于,所述无线网络的活动区域由2 ×2 个二维的正方形网格构成,n1和n2为正整数,边长为 r为移动节点的传输半径,每个网n1 n2格的坐标为(x,y),x<2 ,y<2 ,x和y为非负整数;移动节点通过GPS技术获取自己的地理坐标(Gx,Gy),然后根据公式(1)和(2)获取其所在网格的坐标(x,y);
无线网络的分裂与合并过程都在活动区域内进行;
无线网络包括两类节点:新节点和已配置节点,新节点为没有获取IPv6地址的节点;
已配置节点为已经获取IPv6地址的节点,已配置节点保存一个分配变量,用以记录当前所在无线网络的地址配置情况;
无线网络中节点的IPv6地址由三部分组成,第一部分是网络前缀,网络前缀由随机函数随机产生,一个无线网络中所有节点的IPv6地址的网络前缀都相同;第二部分为节点类型,长度为1比特,该值为1时,表明是已配置节点,该值为0时,表明为新节点;第三部分为节点ID,长度为i比特,它在一个无线网络内具有唯一性,唯一标识一个已配置节点;
每个已配置节点保存一个分配变量,该变量的长度为2i-2,即不包括0和2i-1,i为大于1且小于127的正整数,每个比特位唯一对应一个节点ID,从左到右依次递增1,每个比特位的值表示相应节点ID是否被分配,1代表已分配,0代表未分配;
分配变量采用下表形式:
2i-2 …… 3 2 1
0 …… 0 1 0
,i n1 n2节点ID的地址分配空间为2-2,均分分布于2 ×2 个二维正方形网格中,网格坐标为(x,y)的节点ID空间长度S(x,y)如公式(3)所示,节点ID区间为[P(x,y),E(x,y)],P(x,y)和E(x,y)的计算如公式(4)和(5)所示;
每个节点广播或单播信标帧来实现地址配置和通信,信标帧负载的前四个比特代表信标帧的类型;
0000类型信标帧:负载为广播该信标帧的节点所在网格的坐标;
0001类型信标帧:负载为广播该信标帧的节点分配变量中对应所在网格的节点ID区间的比特值;
0010类型信标帧:负载为广播该信标帧的节点所在网格的坐标以及分配变量中对应所在网格的节点ID区间的比特值;
0011类型信标帧:负载为空;
0100类型信标帧:负载为广播该信标帧的节点的分配变量值;
0101类型信标帧:负载为网络ID、已分配地址数量以及广播该信标帧的节点的分配变量中对应所在网格的节点ID区间的比特值;
0110类型信标帧:负载为新分配的节点ID;
0111类型信标帧:消息负载为分配变量和网络前缀,其中网络前缀为可选项;
1000类型信标帧:负载为空;
1001类型信标帧:消息负载为空,用于确认目的节点是否失效或者离开;
1010类型信标帧:消息负载为空,该消息是1001类型信标帧的响应帧。
2.根据权利要求1所述的一种无线网络的通信实现方法,其特征在于,如果节点Z1所在网格的坐标为(x1,y1),节点Z2所在网络的坐标为(x2,y2),那么网格坐标值的比较算法如下所示:1)如果x1
2)如果x1=x2且y1
3)如果x1=x2且y1=y2,那么Z1和Z2在同一个网格内;
在初始状态,所有节点均为新节点;新节点通过网格初始化和节点地址初始化实现地址配置;
新节点首先获取自己的地理坐标并根据公式(1)和(2)获取所在网格的坐标(x,y),然后采用随机函数产生一个网络前缀,同时从所在网格节点ID区间[P(x,y),E(x,y)]中随机选取一个节点ID,将网络前缀与节点ID形成一个临时地址,其中节点类型为0;在新节点获取IPv6地址之前,由临时地址唯一标识;
新节点获取临时地址后,开始广播0000类型信标帧,消息源地址为其临时地址,消息负载为所在网格的坐标值;
新节点在等待规定时间后判断是否满足下述条件之一:
条件1,新节点没有收到任何一个信标帧;
条件2,新节点收到的信标帧的源节点均为新节点,与这些信标帧的源节点所在网格的坐标值相比,它自己所在网格的坐标值最小,且在自己网格内发送的信标帧的时间戳最早;
如果一个新节点X满足上述条件之一,它则将自己标记为已配置节点,将自己的IPv6地址的网络前缀和节点ID设置为临时地址的网路前缀和节点ID,节点类型为1,同时构建分配变量,将自己节点ID相对应的比特位值设置为1;
网格初始化:位于不同网格的新节点收到已配置节点的信标帧后,将已配置节点的网络前缀设置为自己的网络前缀;如果新节点发送的信标帧在本网格内时间戳最早,那么它将自己标记为已配置节点,并将网络前缀与自己临时地址的节点ID相结合产生一个IPv6地址,节点类型为1,同时构建分配变量,将自己节点ID相对应的比特位值设置为1;
重复上述网格初始化过程,直到每个网格内发送信标帧时间戳最早的新节点获取IPv6地址并转换为已配置节点;
在一个网格内,第一个已配置节点获取IPv6地址后,它广播一个0001类型信标帧,消息负载为分配变量中对应所在网格的节点ID区间的比特值;
节点地址初始化:同一个网格内的已配置节点和新节点收到0001类型信标帧后,根据信标帧负载内容更新自己的分配变量;同一个网格内的新节点收到类型为0001类型信标帧后,从本网格对应的节点ID区间中随机选取一个未分配的节点ID,并将分配变量中相应比特位设置1,,然后将节点ID与信标帧的源地址的网络前缀相结合形成自己的地址,其中节点类型为1,并转换为已配置节点,然后广播0001类型信标帧;
同一个网格内的新节点重复上述节点地址初始化过程,直到本网格内所有新节点都获取IPv6地址并变成已配置节点;
一个网格内所有新节点获取IPv6地址后,第一个已配置节点Y广播一个0010类型信标帧,消息负载为节点Y所在网格的坐标以及分配变量中对应所在网格的节点ID区间的比特值;该信标帧在网络内广播,每个收到该信标帧的已配置节点和新节点用负载中的比特值更新自己的分配变量中对应该网格的节点ID区间的比特值;
网络内所有新节点获取IPv6地址后,它们的分配变量都相同,然后利用网络前缀和分配变量获取网络ID。
3.根据权利要求2所述的一种无线网络的通信实现方法,其特征在于,已配置节点获取网络ID,开始定期广播0101类型信标帧;
新节点加入网络后,首先获取自己的地理坐标并获取所在网格的坐标,同时侦听来自相同网格内的邻居已配置节点的0101类型信标帧;
新节点Z收到相同网格中的邻居已配置节点M的0101类型信标帧后,根据下述过程获取IPv6地址:步骤101:开始;
步骤102:新节点Z用信标帧中的分配变量值更新自己的分配变量,然后从本网格对应的节点ID区间中随机选取一个未分配的节点ID,将分配变量中相应比特位设置为1,将选取的节点ID与邻居已配置节点M的网络前缀相结合形成自己的IPv6地址,节点类型为1,将自己标记为已配置节点,然后广播0010类型信标帧,同时向已配置节点M发送类型为0011类型信标帧;
步骤103:无线网络内的节点收到已配置节点Z广播的0010类型信标帧后,用消息负载更新自己的分配变量;
步骤104:已配置节点M收到0011类型信标帧后,向已配置节点Z返回一个类型为0100的信标帧,消息负载为自己的分配变量;
步骤105:已配置节点Z收到已配置节点M的信标帧后,用信标帧负载中的分配变量来更新自己除本网格以外的其他网格对应的节点ID区间的比特值;
步骤106:结束。
4.根据权利要求1所述的一种无线网络的通信实现方法,其特征在于,如果已配置节点Z检测到所在网格中节点ID区间对应的分配变量值都为1,那么它发起下述地址回收操作:步骤201:开始;
步骤202:已配置节点Z向在本网格内获取节点ID的每个已配置节点发送1001类型信标帧;
步骤203:已配置节点收到1001类型信标帧后,向已配置节点Z返回1010类型信标帧;
步骤204:判断已配置节点Z是否收到在本网格内获取节点ID的已配置节点返回的1010类型信标帧,如果是,进行步骤206,否则进行步骤205;
步骤205:已配置节点Z将为返回1010类型信标帧的节点的节点ID对应的分配变量中的比特位设置为0;
步骤206:判断已配置节点Z的分配变量是否发生变化,如果是,进行步骤207,否则进行步骤208;
步骤207:已配置节点Z广播0010类型信标帧,无线网络内的已配置节点和新节点收到已配置节点Z广播的0010类型信标帧后,更新自己分配变量中的相应比特位;
步骤208:结束。
5.根据权利要求1所述的一种无线网络的通信实现方法,其特征在于,当以下两种条件之一发生时,判定为两个网络合并:条件1,已配置节点X与已配置节点Y的网络ID不一致,包括两种子条件,两种子条件只要满足其一即为满足条件1:子条件1,已配置节点X的网络前缀与已配置节点Y的网络前缀不同;
子条件2,已配置节点X的网络前缀与已配置节点Y的网络前缀相同,但是已配置节点X的分配变量和已配置节点Y的分配变量不同;
条件2,已配置节点X与已配置节点Y的网络ID相同且已配置节点X与已配置节点Y的地址相同;
如果已配置节点X位于无线网络1中,已配置节点Y位于无线网络2中,已配置节点X收到已配置节点Y的0101类型信标帧后,且已配置节点X检测到已配置节点Y的网络ID与自己的网络ID不同,且无线网络1已配置地址数小于无线网络2中已配置地址数,那么已配置节点X发起下述合并操作:步骤301:开始;
步骤302:已配置节点X向已配置节点Y发送0011类型信标帧,已配置节点Y收到该0011类型信标帧后,向已配置节点X返回一个0100类型信标帧,0100类型信标帧负载为已配置节点Y的分配变量;
步骤303:已配置节点X比较自己的分配变量以及已配置节点Y的分配变量的每个比特位;
步骤304:判断已配置节点X是否与无线网络2中的已配置节点具有重复的节点ID,如果是,进行步骤305,否则进行步骤306;
步骤305:已配置节点X为自己分配一个在无线网络1和无线网络2中都未分配的节点ID,并将自己的分配变量中相应的比特位设置为1;
步骤306:已配置节点X为无线网络1中每个具有重复节点ID的已配置节点分配一个在无线网络1和无线网络2中都未分配的节点ID,并将自己的分配变量中相应的比特位设置为1,最后向每个具有重复节点ID的已配置节点发送一个0110类型信标帧,消息负载为分配的节点ID;
步骤307:具有重复节点ID的已配置节点收到0110类型信标帧后,更新自己的地址,即将原来地址的节点ID设置为消息负载中的节点ID;
步骤308:已配置节点X广播0111类型信标帧,消息负载为无线网络2的网络前缀以及自己的分配变量和已配置节点Y的信标变量的或操作值;
步骤309:无线网络1中的节点收到0111类型信标帧后,将自己IPv6地址中的网络前缀更新为信标帧中的网络前缀,同时将自己的分配变量值设置为信标帧中的分配变量值,无线网络2中的节点收到0111类型信标帧后,将自己的分配变量设置为信标帧中的分配变量值,地址保持不变;
步骤310:结束;
假设已配置节点X位于无线网络1中,已配置节点Y位于无线网络2中,已配置节点X收到已配置节点Y的0101类型信标帧后,检测到已配置节点Y的网络ID与自己的网络ID不同但是网络前缀相同,如果无线网络1中已配置地址数小于无线网络2中的已配置地址数,那么已配置节点X发起下述合并操作:步骤401:开始;
步骤402:已配置节点X向已配置节点Y发送0011类型信标帧;
步骤403:已配置节点Y收到该信标帧后,向已配置节点X返回一个0100类型信标帧,0100类型信标帧的负载为已配置节点Y的分配变量;
步骤404:已配置节点X广播类型0111类型信标帧,负载为自己的分配变量和已配置节点Y的分配变量的或操作值;
步骤405:无线网络1和无线网络2中的节点收到0111类型信标帧后,将自己的分配变量设置为信标帧中的分配变量值,地址保持不变;
步骤406:已配置节点X比较自己的分配变量以及已配置节点Y的分配变量的每个比特位,向两个网络中每个具有重复节点ID的已配置节点发送1000类型信标帧;
步骤407:具有重复节点ID的已配置节点收到1000类型信标帧后,将自己标记为新节点,执行步骤101到步骤106重新获取地址;
步骤408:结束;
如果已配置节点X检测到它与已配置节点Y的网络ID和地址都相同,那么已配置节点X广播1000类型信标帧,无线网络1和无线网络2中的节点收到该1000类型信标帧后,将自己标记为新节点,然后重新执行网络初始化。