文件名称:NS2中AODV主要函数介绍
文件大小:34KB
文件格式:DOC
更新时间:2016-06-19 11:08:00
AODV NS2 自组网
AODV中aodv.cc是最重要的,通过了解几个重要的函数,可以进一步理解AODV的基本思想。 1. Void AODV::recv(Packet *p, Handler*) //判断是否是aodv包,是则调用函数recvAODV(p) if(ch->ptype() == PT_AODV) { recvAODV(p); //本节点产生的数据包,添加IP头 if((ih->saddr() == index) && (ch->num_forwards() == 0)) Add the IP Header //收到本节点发送的包,说明有路由环路,丢包 else if(ih->saddr() == index) drop(p, DROP_RTR_ROUTE_LOOP); //本节点是中间节点 else {//TTL是分组最多能转发的次数 if(--ih->ttl_ == 0) drop(p, DROP_RTR_TTL); //收到的不是广播分组,解析分组 if ( (u_int32_t)ih->daddr() != IP_BROADCAST) rt_resolve(p); //转发 else forward((aodv_rt_entry*) 0, p, NO_DELAY);