对GPSR协议的理解一

本文介绍了GPSR协议的工作原理,每个节点如何维护neighborhood表和sinklist表。节点通过周期性发送hello分组来更新邻居列表,并使用query分组与GPSRQueryTimer来维护sinklist,确保网络中节点位置信息的更新与传播。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          GPSR协议是基于地理位置的协议。GPSR协议每个节点需要维护两个表,一个是neighborhood表,存储邻居节点;一个是sinklist表,用来存放数据接收节点,存放了本网络当中的所有节点。

下面谈一下,这两个表的建立以及维护工作。

对于邻居节点列表,节点会周期性的向其所有邻居节点广播hello分组,周期性由GPSRHelloTimer定时器控制,由以下代码实现:

void

GPSRAgent::hellotout(){

  hellomsg();

  hello_timer_.resched(hello_period_);

}

hellotout()函数第一条语句hellomsg()填充hello分组后,然后将hello分组广播出去;第二条语句hello_timer_.resched(hello_period_),调用hello_timei_对象(该对象是GPSRHelloTimer定时器类)。每个节点都会周期性的发送helo分组,用来告知其邻居节点。邻居节点收到hello分组后,调用recvHello()函数,具体代码如下:

void

GPSRAgent::recvHello(Packet*p){

  struct hdr_cmn *cmh = HDR_CMN(p);

  struct hdr_gpsr_hello *ghh =HDR_GPSR_HELLO(p);

 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值