1.一种高效的无线传感网地址配置实现方法,其特征在于,所述无线传感网包括传感节点构成,传感节点简称为节点;传感节点包括新节点和已配置节点,新节点为未配置地址的传感节点,已配置节点为配置地址的传感节点;一个地址包含前缀和后缀;
一种消息由消息类型唯一定义,如下表所示:
消息类型值 消息名称
1 初始化消息
2 前缀消息
3 邻居消息
4 地址消息
5 重复消息
一个新节点保存一个初始化表,一个初始化表项包含坐标和生命周期;一个初始化消息包含消息类型和坐标;所述无线传感网启动后,所有节点均为新节点,每个节点具有唯一的坐标,每个新节点执行下述操作:步骤101:开始;
步骤102:新节点发送一个初始化消息,该初始化消息的消息类型值为1,坐标为当前坐标;
步骤103:新节点接收到初始化消息后,创建一个初始化表项,该初始化表项的坐标等于该初始化消息的坐标,生命周期设置为最大值;
步骤104:结束。
2.根据权利要求1所述的一种高效的无线传感网地址配置实现方法,其特征在于,一个节点保存一个前缀二元组<前缀,地址>;一个节点保存一个消息表,一个消息表项包含消息域和生命周期域值;
节点坐标(x1,y1)和节点坐标(x2,y2)根据下述过程判断大小:如果x1≤x2且y1
如果x1
如果x2≤x1且y2
如果x2
一个前缀消息包含消息类型、地址和前缀;一个新节点建立初始化表后,执行下述操作:步骤201:开始;
步骤202:新节点启动时钟T1,查看初始化表;如果至少存在一个初始化表项,该初始化表项的坐标小于该新节点的坐标,则执行步骤208,否则执行步骤203;
步骤203:该新节点产生一个随机数R1并构建一个地址A1,地址A1的前缀为R1,后缀为该新节点的坐标;该新节点发送一个前缀消息,该前缀消息的消息类型值为2,地址为A1,前缀为R1;该新节点创建一个消息表项,该消息表项的消息域值为该前缀消息,生命周期为最大值;
步骤204:新节点接收到前缀消息后查看消息表,如果存在一个消息表项,该消息表项的消息域值的地址等于该前缀消息的地址,则执行步骤208,否则执行步骤205;
步骤205:接收到该前缀消息的新节点创建一个消息表项,该消息表项的消息域值等于该前缀消息,生命周期设置为最大值;如果该新节点的坐标小于该前缀消息的地址中的后缀,则执行步骤208,否则执行步骤206;
步骤206:接收到该前缀消息的新节点查看消息表,如果该前缀消息地址域值中的后缀小于或者等于任一个消息表项中消息域值的地址后缀,则执行步骤207,否则执行步骤208;
步骤207:接收到该前缀消息的新节点转发该前缀消息,执行步骤204;
步骤208:时钟T1到期后,新节点查看消息表,选择一个消息表项,该消息表项中消息域值的地址的后缀最小,将自己的前缀二元组中的第一个元素设置为该消息表项中消息域值的前缀,将该前缀二元组中的第二个元素设置为该消息表项中消息域值的地址;该新节点构建一个地址,该地址的前缀等于该前缀二元组的第一个元素,后缀等于该新节点的坐标,将该地址设置为自己的地址并转换为已配置节点;
步骤209:该新节点删除自己的初始化表;
步骤210:结束。
3.根据权利要求1所述的一种高效的无线传感网地址配置实现方法,其特征在于,每个已配置节点保存一个邻居表,一个邻居表项包含地址、坐标和生命周期;一个邻居消息包含消息类型、坐标和地址;已配置节点CN1定期执行下述操作:步骤301:开始;
步骤302:已配置节点CN1发送一个邻居消息,该邻居消息的消息类型值为3,坐标等于已配置节点CN1的坐标,地址为已配置节点CN1的地址;
步骤303:节点接收到该邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的地址等于该邻居表项的地址,则将该邻居表项的坐标更新为该邻居消息的坐标,将生命周期设置为最大值,否则,该节点创建一个邻居表项,该邻居表项的地址等于该邻居表项的地址,该邻居表项的坐标为该邻居消息的坐标,将生命周期设置为最大值;
步骤304:结束。
4.根据权利要求1所述的一种高效的无线传感网地址配置实现方法,其特征在于,新节点ND1启动后,侦听邻居已配置节点发送的邻居消息,并设置前缀二元组,该前缀二元组的第一个元素等于该邻居消息地址的前缀,第二个元素等于该邻居消息的地址;
一个地址消息包含消息类型、测试地址、序列号和源地址;
一个重复消息包含消息类型、测试地址、序列号和目的地址;
一个节点保存一个重复表,一个重复表项包含测试地址、序列号、目的地址和生命周期;
新节点ND1执行下述操作获取地址:
步骤401:开始;
步骤402:新节点ND1启动时钟T2,构建一个地址A2,地址A2的前缀等于自己的前缀二元组的第一个元素,后缀等于随机数R2,随机数R2符合条件1;新节点ND1发送一个地址消息,该地址消息的消息类型值为4,测试地址和源地址均为地址A2,序列号为随机数R3;
条件1:随机数R2与新节点ND1所侦听到的任一个邻居消息地址域值的后缀都不相同;
步骤403:判断是新节点还是已配置节点接收到该地址消息,如果是新节点则执行步骤
415,否则执行步骤404;
步骤404:已配置节点接收到该地址消息,如果该已配置节点的地址等于该地址消息中的测试地址,则执行步骤407,否则执行步骤405;
步骤405:接收到地址消息的已配置节点查看邻居表,如果存在一个邻居表项,该邻居表项的地址等于该地址消息中的测试地址,则执行步骤407,否则执行步骤406;
步骤406:接收到地址消息的已配置节点查看重复表,如果存在一个重复表项,该重复表项的测试地址等于该地址消息中的测试地址且序列号不等于该地址消息中的序列号,则执行步骤408,否则执行步骤409;
步骤407:接收到地址消息的已配置节点发送一个重复消息,该重复消息的消息类型值为5,测试地址和序列号分别为该地址消息的测试地址和序列号,目的地址为该地址消息的源地址,执行步骤411;
步骤408:接收到地址消息的已配置节点发送一个重复消息,该重复消息的消息类型值为5,测试地址和序列号分别为该地址消息的测试地址和序列号,目的地址为该地址消息的源地址;该已配置节点选择一个重复表项,该重复表项的测试地址等于该地址消息中的测试地址且序列号不等于该地址消息中的序列号,该已配置节点发送一个重复消息,该重复消息的消息类型值为5,测试地址和序列号分别为该重复表项的测试地址和序列号,目的地址为该重复表项的目的地址,删除该重复表项,执行步骤411;
步骤409:接收到地址消息的已配置节点查看重复表,如果存在一个重复表项,该重复表项的测试地址等于该地址消息中的测试地址且序列号等于该地址消息中的序列号,则执行步骤415,否则执行步骤410;
步骤410:接收到地址消息的已配置节点创建一个重复表项,该重复表项的测试地址等于该地址消息中的测试地址,序列号等于该地址消息中的序列号,目的地址等于该地址消息中的源地址,生命周期等于最大值;该已配置节点将该地址消息的源地址更新为自己的地址,转发该地址消息,执行步骤403;
步骤411:节点接收到该重复消息后,如果该节点为新节点,则执行步骤415,否则执行步骤412;
步骤412:接收到该重复消息的节点判断自己的地址是否等于该重复消息的目的地址,如果等于,则执行步骤413,否则执行步骤415;
步骤413;接收到该重复消息的节点查看重复表,如果存在一个重复表项,该重复表项的测试地址和序列号分别等于该重复消息的测试地址和序列号,则执行步骤414,否则执行步骤415;
步骤414:接收到该重复消息的节点选择一个重复表项,该重复表项的测试地址和序列号分别等于该重复消息的测试地址和序列号,将该重复消息的目的地址更新为该重复表项的目的地址,删除该重复表项,发送该重复消息,执行步骤411;
步骤415:时钟T2到期后,新节点ND1判断自己是否接收到目的地址等于自己的地址的重复消息,如果是,则执行步骤402,否则执行步骤416;
步骤416:新节点ND1将地址A2标记为自己的地址并转换为已配置节点;
步骤417:结束。