我需要创建一个由10个节点组成的网络。我希望每个mote提供3个服务,其中s1 = 0.25,s2 = 0.5,s3 = 0.025。此外,我想识别/选择自私/恶意的mote。
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
解决这个问题的方法不应该是自己写的,但我想你可以考虑在contiki中使用服务注册和传播hack(servreg-hack)应用程序。应用程序的操作非常简单,所有应用程序都通过广播SERVICE_ID
(这只是一个无符号的8位整数)使节点能够通告它们提供的服务。当广播节点附近的另一节点接收到消息时,它存储SERVICE_ID
和发送该消息的节点的地址。如果节点需要服务,则可以通过调用servreg_hack_lookup
函数查找提供服务的节点的地址。
contiki发行版(Contiki/examples/ipv6/simple-udp-rpl
)的示例部分中的unicast-sender
和unicast receiver
应用程序使用servreg_hack。
因此,在两个节点上,您都可以通过调用
来初始化servreg应用程序servreg_hack_init();
然后在服务提供商处,您将通过调用
来注册服务servreg_hack_register(SERVICE_ID, service_provider_ip_addr);
然后,将在服务用户节点上接收并注册该服务。然后服务用户可以调用
service_provider_ipaddr = servreg_hack_lookup(SERVICE_ID);
获取提供由SERVICE_ID
标识的服务的节点的地址。