1.一种下一代无线传感器网络路由通信的实现方法,其特征在于,所述无线传感器网络包括全功能节点和部分功能节点两类传感器节点;所述无线传感器网络划分为两个以上二维的正方形逻辑区域,每个逻辑区域的面积为l×l平方米,每个逻辑区域由坐标(x,y)标识,其中l为正整数,x,y为非负整数;传感器节点通过它的定位坐标(Lx,Ly)计算它所在逻辑区域的坐标(x,y),如公式(1)和公式(2)所示;
位于一个逻辑区域内的传感器节点组成一个簇,其中,簇首节点为固定的全功能节点,簇内节点为可移动的部分功能节点,同一时刻,一个逻辑区域内只有一个簇首节点;簇首节点具有两个通信半径,一个是用于与本簇簇内节点进行通信的半径r,另一个是用于与其他簇首节点进行通信的半径R,其中,l,r和R的关系如公式(3)和(4)所示,n为正整数;无线传感器网络通过接入路由器与下一代互联网相连,接入路由器与逻辑区域(0,0)的簇首节点直接通信;
R=n·r (4)
2 2
n 个逻辑区域组成的正方形构建成一个簇域,其面积为n×l×l,每个簇域有一个簇域首节点,簇域首节点同时也是簇首节点;
所述无线传感器网络传感器节点的IPv6地址由两部分组成,第一部分是全局路由前缀,一个无线传感器网络中所有传感器节点的全局路由前缀都相同,其值等于与无线传感器网络相连的接入路由器的全局路由前缀;第二部分为传感器节点ID,它由横坐标、纵坐标及簇内ID三个部分组成,其中,横坐标为传感器节点所在逻辑区域的横坐标,纵坐标为传感器节点所在逻辑区域的纵坐标,一个簇中所有传感器节点的横坐标和纵坐标都相同;
簇内ID唯一地标识一个簇的簇内节点,簇内ID在一个簇内具有唯一性;传感器节点ID在一个无线传感器网络中具有唯一性;
接入路由器的传感器节点ID为0,簇首节点的簇内ID为1;传感器节点ID是传感器节点的链路地址;
簇首节点定期在一跳范围内广播信标帧,信标帧的源链路地址为簇首节点的传感器节点ID,信标帧负载为所在簇域的簇域首节点的链路地址;如果簇首节点没有加入任何簇域,其信标帧负载为空;簇首节点通过侦听邻居簇首节点的信标帧获取邻居簇首节点所在逻辑区域的坐标;
如果簇首节点H1所在逻辑区域的坐标为(x1,y1),簇首节点H2所在逻辑区域的坐标为(x2,y2),那么簇首节点H1和簇首节点H2的权值比较方法如下:
1)如果x1小于x2,那么簇首节点H1的权值小于簇首节点H2;
2)如果x1大于x2,那么簇首节点H1的权值大于簇首节点H2;
3)如果x1等于x2且y1小于y2,那么簇首节点H1的权值小于簇首节点H2;
4)如果x1等于x2且y1大于y2,那么簇首节点H1的权值大于簇首节点H2;
每个簇首节点所在逻辑区域的坐标具有唯一性,任何两个簇首节点的权值都不相同;
如果簇首节点H收到了簇域首节点的信标帧,则加入到该簇域首节点的簇域;否则,簇首节点H比较自己与其他所有没有加入到簇域的邻居簇首节点的权值,如果簇首节点H的权值最小,那么簇首节点H发起簇域建立过程:步骤101:开始;
步骤102:簇首节点H向邻居簇首节点发送加入簇域命令帧;
步骤103:没有加入到簇域的邻居簇首节点收到加入簇域命令帧后,判断自己的权值是否比发送加入簇域命令帧的簇首节点的权值小,如果是,进行步骤104,否则进行步骤
105;
步骤104:没有加入到簇域的邻居簇首节点向簇首节点H丢弃加入簇域命令帧,进行步骤109;
步骤105:没有加入到簇域的邻居簇首节点向簇首节点H返回一个加入簇域响应命令帧;
步骤106:簇首节点H判断收到的加入簇域响应命令帧的数量是否等于其他所有没有加入到簇域的邻居簇首节点的总数,如果是,进行步骤107,否则进行步骤109;
步骤107:簇首节点H向所有返回加入簇域响应命令帧的邻居簇首节点发送一个加入簇域确认命令帧,同时将自己标识为簇域首节点H;
步骤108:邻居簇首节点收到加入簇域确认命令帧后,记录所在簇域的簇域首节点H的链路地址;
步骤109:结束;
如果簇首节点H建立簇域失败,那么簇首节点H等待邻居簇首节点发送新一轮的信标帧;如果簇首节点H仍然没有收到任何簇域首节点的信标帧且它的权值比所有没有加入到簇域的邻居簇首节点的权值都小,那么簇首节点H则重新发起簇域建立过程。
2.根据权利要求1所述的下一代无线传感器网络路由通信的实现方法,其特征在于,簇首节点采用定位算法判断邻居簇首节点和簇内节点与自己的相对角度和距离;当簇首节点检测到簇内节点要离开自己的通信范围时,通过该簇内节点与自己的距离以及角度来判断与该簇内节点距离最近的邻居簇首节点,从而获取该簇内节点所要进入的下一个簇的簇首节点。
3.根据权利要求2所述的下一代无线传感器网络路由通信的实现方法,其特征在于,簇域首节点保存一个簇内节点关联表,每个表项包括两个域:簇内节点域以及簇首节点域,其中簇内节点域记录簇内节点的链路地址,簇首节点域记录簇内节点所在簇的簇首节点的链路地址;
假设簇内节点M所在簇的簇首节点为簇首节点H1,簇内节点M即将进入的簇的簇首节点为簇首节点H2,簇首节点H1和簇首节点H2属于同一个簇域且该簇域的簇域首节点为H0,那么簇首节点H1进行下述移动切换操作:步骤201:开始;
步骤202:簇首节点H1向簇域首节点H0发送一条转交消息,消息负载为簇内节点M和簇首节点H2的链路地址;
步骤203:簇域首节点H0收到转交消息后,判断簇内节点M和簇首节点H2的横坐标和纵坐标是否相同,如果是,进行步骤204,否则进行步骤205;
步骤204:簇域首节点H0从簇内节点关联表中删除簇内节点M的表项,进行步骤208;
步骤205:簇域首节点H0判断簇内节点关联表中是否有簇内节点M的表项,如果是,进行步骤207,否则进行步骤206;
步骤206:簇域首节点H0建立簇内节点M的表项,簇首节点域为簇首节点H2的链路地址,进行步骤208;
步骤207:簇域首节点H0将簇内节点M的簇首节点从簇首节点H1更新为簇首节点H2;
步骤208:结束。
4.根据权利要求2所述的下一代无线传感器网络路由通信的实现方法,其特征在于,接入路由器保存一个簇域关联表,每个表项包括两个域:簇内节点域以及簇域首节点域,其中簇内节点域记录簇内节点的链路地址,簇域首节点域记录簇内节点所在簇域的簇域首节点的链路地址;如果一个簇首节点或者簇内节点的IPv6地址的横坐标为x,纵坐标为y,那么根据公式(5)和公式(6)计算该簇首节点或者簇内节点所在簇域的簇域首节点的IPv6地址的横坐标x’以及纵坐标y’:假设簇内节点M所在簇的簇首节点为簇首节点H1,簇内节点M即将进入的簇的簇首节点为簇首节点H2,簇首节点H1属于簇域CD1,其簇域首节点为H01,簇首节点H2属于簇域CD2,其簇域首节点为H02,簇内节点M所在无线传感器网络通过接入路由器AR1接入互联网,那么簇首节点H1进行下述移动切换操作:步骤301:开始;
步骤302:簇首节点H1向簇域首节点H01和簇域首节点H02分别发送一条转交消息,每条消息的负载都为簇内节点M和簇首节点H2的链路地址;
步骤303:簇域首节点H01收到转交消息后,从簇内节点关联表中删除簇内节点M的表项;
步骤304:簇域首节点H02收到转交消息后,判断簇内节点M和簇首节点H2的横坐标和纵坐标是否相同,如果是,进行步骤309,否则进行步骤305;
步骤305:簇域首节点H02在簇内节点关联表中建立簇内节点M的表项,簇首节点域为簇首节点H2的链路地址,然后向接入路由器AR1发送一条转交消息,消息负载为簇内节点M的链路地址;
步骤306:接入路由器AR1收到转交消息后,判断簇内节点M是否属于簇域首节点H02所在的簇域,如果是,进行步骤308,否则进行步骤307;
步骤307:接入路由器AR1在簇域关联表中增加或者更新簇内节点M的表项,表项中簇域首节点的地址为簇域首节点H02的链路地址,进行步骤309;
步骤308:接入路由器AR1从簇域关联表中删除簇内节点M对应的表项;
步骤309:结束。
5.根据权利要求1所述的下一代无线传感器网络路由通信的实现方法,其特征在于,所述无线传感器网络中数据帧格式由Mesh头部、MAC头部和数据负载构成,Mesh头部的长度为1个字节,其中,前两个比特值为固定值10,第三个比特位设置为目的地址的类型,该比特位0表示目的地址长度为2个字节,该比特位1表示目的地址长度为8个字节;第四个比特位设置为最终地址的类型,该比特位0表示最终地址长度为2个字节,该比特位1表示最终地址长度为8个字节;
假设在簇内节点M与IPv6互联网节点通信过程中,簇内节点M从簇首节点H1所在的簇移动到簇首节点H2所在的簇,在移动过程中的通信过程为:步骤401:开始;
步骤402:IPv6互联网节点向簇内节点M发送数据请求消息,该数据请求消息首先到达与簇内节点M所在无线传感器网络相连的接入路由器AR1;
步骤403:接入路由器AR1查看簇域关联表中是否有簇内节点M的表项,如果是,进行步骤404,否则进行步骤405;
步骤404:接入路由器将Mesh头部中的目的地址设置为簇内节点M对应表项中的簇域首节点的链路地址,进行步骤406;
步骤405:接入路由器AR1计算簇内节点M当前所在簇域的簇域首节点的链路地址,并将Mesh头部中的目的地址设置为簇内节点M当前所在簇域的簇域首节点的链路地址;
步骤406:接入路由器AR1用MAC头部和Mesh头部对数据请求消息封装为数据帧,其中Mesh头部中最终地址设置为簇内节点M的链路地址;
步骤407:接入路由器AR1将数据帧发送到距离簇内节点M所在簇域的簇域首节点最近的簇首节点;
步骤408:收到数据帧的簇首节点判断自己的链路地址是否等于数据帧中Mesh头部中的目的地址,如果否,进行步骤409,否则进行步骤410;
步骤409:收到数据帧的簇首节点将数据帧发送到距离簇内节点M所在簇域的簇域首节点最近的簇首节点,进行步骤408;
步骤410:簇域首节点收到数据请求消息后,查看簇内节点关联表中是否有簇内节点M的表项,如果是,进行步骤411,否则进行步骤412;
步骤411:簇域首节点将Mesh头部中的目的地址设置为簇内节点M对应表项的簇首节点的链路地址,进行步骤413;
步骤412:簇域首节点计算簇内节点M当前所在簇的簇首节点的链路地址,并将Mesh头部中的目的地址设置为簇内节点M当前所在簇的簇首节点的链路地址;
步骤413:簇域首节点将数据帧转发给簇内节点M当前所在簇的簇首节点;
步骤414:簇首节点收到数据帧后,将数据帧转发给簇内节点M,然后簇内节点M处理数据帧后,将响应信息封装为响应数据帧,该数据帧不包含Mesh头部,然后将数据帧发送给当前所在簇簇首节点;
步骤415:簇首节点将数据帧发送到距离接入路由器AR1距离最近的簇首节点,簇首节点收到数据帧后再将数据帧发送到距离接入路由器AR1最近的簇首节点,最终数据帧到达接入路由器AR1;
步骤416:接入路由器AR1将数据帧中的响应信息封装为IPv6数据包,将其发送到IPv6网络上,最终此数据包按照IPv6路由方式到达目的IPv6互联网节点;
步骤417:结束。