RPL协议仿真理解

实验说明

本实验主要通过cooja模拟器,完成对rpl协议的仿真

实验平台

VMware中InstantContiki3.0(使用Cooja模拟器)

实验过程

  1. 打开cooja模拟器
    在这里插入图片描述
  2. 在cooja模拟器中,点击File打开rpl工程
    在这里插入图片描述
  3. 出现窗口,Simulation control窗口可以控制仿真实验开始结束;Network窗口可以看到节点的状态数量以及通信的过程;Radio messages窗口可以看到数据包的发送接收;Mote output窗口可以看到节点的接入情况。
    在这里插入图片描述
  4. 如图,可以看到一共有30个节点,其中节点1为汇聚节点,其余节点为普通节点。
    在这里插入图片描述
  5. 点击start,仿真开始。
    在这里插入图片描述
  6. 查看Mote output窗口,可以看到在开始阶段,各节点在进行ipv6地址的分配,并且与server节点(汇聚节点1)建立通信连接,能够互相发送udp数据包。
    在这里插入图片描述
  7. 查看Radio messages窗口,可以看到节点发送DIS数据包,用于发现它们的邻居节点并请求邻居节点的DIO数据包。
    在这里插入图片描述
  8. 根节点(节点1)发出DIO数据包回应它的邻居节点,由图中可知节点23、节点5、节点14和节点20都在根节点的通信范围内。
    在这里插入图片描述
    同样的道理,对于节点5来说,节点1、节点23、节点24、节点30、节点14都是它的一跳邻居。
    在这里插入图片描述
  9. 对于节点1在00:08.292时刻发送给节点14的DIO包,
    在这里插入图片描述在00:10.627时刻,节点14发送给节点1一个DAO包,表示节点14告诉节点1它将把节点1作为它的父节点,下一个时刻,节点1发送给节点14一个ACK应答帧,表示接受节点14作为其子节点。从而建立起从节点14到根节点(节点1)的路径。
  10. 对于节点30而言,根节点不在其通信范围内,节点30将在自己的邻居节点24、节点10和节点5之中,选择它的根节点。节点30发送DAO包给邻居节点,根据目标度量函数,节点5的rank最小,选择节点5作为其父节点,节点5返回ACK帧,表接收节点30作为其子节点。
    在这里插入图片描述
  11. 1分钟后,路由路径已经形成,叶子节点可以向根节点发送数据包了。
    在这里插入图片描述
    可以看到,01:04.959时刻开始,节点29开始发送UDP数据包到根节点。
    在这里插入图片描述
  12. 节点29发送UDP数据包,它的下一跳节点7收到了它的数据包。
    在这里插入图片描述
  13. 节点7发送UDP数据包,它的下一跳节点26收到数据包。
    在这里插入图片描述
  14. 节点26发送UDP数据包,它的下一跳节点20收到数据包,节点20发送数据包,它的下一跳节点(根节点)收到了数据包。至此,完成从节点29到节点1的数据包发送过程。
    在这里插入图片描述

RPL组网过程

  • 节点加入网络,首先发送DIS包,征集邻居节点信息。
  • 邻居点接收到DIS开始发送DIO包。
  • 收到DIO包的节点更新自身邻居表,并选择合适的节点发送数据包。
  • 同时节点会向选中的父节点(选择的机制一般是ETX)发送DAO包,告知其是子节点。
  • 父节点更新了自身的路由表后,再向父节点的父节点发DAO,最后到达sink点后双向链路最终形成。

部分通信源码解析

  1. udp-server.c

根节点和其余节点建立udp连接,绑定端口,当发生tcp/ip事件时,调用handler在Mote output窗口打印出数据的接收/发送情况;当发生sensors事件,rpl结构需要重新建立。

在这里插入图片描述
2. udp-client.c

节点与节点建立udp连接,绑定端口,当发生tcp/ip事件时,调用handler在Mote output窗口打印出数据的接收/发送情况;当计时器过期时,需要重置。

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值