aodv目的节点地址是随机获取的吗

 我来答
山水阿锐
推荐于2016-08-08 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.4亿
展开全部
您好,1、路由表结构
AODV路由协议涉及路由表管理的处理,通常在路由请求发送RREQ过程中建立反向路由,在转发RREP的时候建立正向路由,当然在数据通信的过程中也会涉及到路由表的操作,如出现了路由出错的时候以及路由生命期的更新等。
下面对AODV路由条目中的几个重要字段进行介绍:
(1)目的节点地址n_dst:用于标志使用此路由的最终目的节点,决定了数据分组转发方向。
(2)目的节点序列号rt_seqno:反映此路由的新鲜度,一般序列号越大路由越新鲜, 这是保证开环的重要措施,在路由发现和路由应答更新路由时需要进行序列号的比较。
(3)路由状态标志rt_flags(有效、无效、正在修复等):反映此路由目前的状态,主要用于告知数据分组经过此节点的时候处理方式。如果路 由处于无效状态,那么数据分组将丢失;如果处于修复状态,那么数据分组进入等待路由队列中;如果有效状态,那么直接转发。
(4)网络接口rt_interface:移动节点访问信道的接口。
(5)跳数rt_hops:到达目的节点所需要的跳数。在断链时决定是否发起本地修复时会用到,目的是控制断链修复范围;在路由更新时也会用到,目的是选择最短路径,从而降低断链几率。
(6)下一跳rt _nexthop :数据分组经过本节点之后,数据分组将被直接转发的中继节点,通常下一跳节点应该出现在当前节点的邻节点列表中。
(7)前驱节点列表rt_pcliSt:使用这条路由的所有直接前驱节点列表。在出现断链的时候可以通过前驱节点列表中是否存有节点而决定是否广播RERR消息。
(8)路由生命期rt_expire:路由有效的生命期,在数据分组转发使用当前路由时会更新路由的有效生命期,当较长时间不使用此路由时,此路由的有效期将会过期,在路由管理时将会使路由失效。
/* Route table entries */
struct rt_table {
list_t l;
struct in_addr dest_addr; /* IP address of the destination */
u_int32_t dest_seqno;
unsigned int ifindex; /* Network interface index... */
struct in_addr next_hop; /* IP address of the next hop to the dest */
u_int8_t hcnt; /* Distance (in hops) to the destination */
u_int16_t flags; /* Routing flags */
u_int8_t state; /* The state of this entry */
struct timer rt_timer; /* The timer associated with this entry */
struct timer ack_timer; /* RREP_ack timer for this destination */
struct timer hello_timer;
struct timeval last_hello_time;
u_int8_t hello_cnt;
hash_value hash;
int nprec; /* Number of precursors */
list_t precursors; /* List of neighbors using the route */
};

2、.2路由请求RREQ消息结构
在源节点没有到达目的节点路由的时候,源节点会广播一个RI汪Q消息,这个RREQ消息中携带路由请求序列号、请求目的节点描述信息、源节点描述信息以及临时获得反向路由的简单信息(如跳数)。下面对I眦Q消息中几个重要字段进行介绍:
(1)路由请求编号rq_bcase_id:标识一个路由请求编号,以避免节点重复接收处理RREQ消息,用源节点和它组合可以唯一标志一个RREQ请求。RREQ消息经过某个节点后,路由请求编号会在节点中缓存一段时间,当再次接收到相同路由请求编号时,可以通过比较区别开是否需要发送这个RREQ消息。
(2)目标节点地址rq_dst:寻求的目的节点地址。是路由应答的主要依据,节点接收到RREQ消息时,会用rqdst在路由表中检索,检索到有效路由的目的节点和rq_dst相等那么将进行应答,否则转发RREQ消息。
(3)目标节点序列号rq
dst seqno:在转发RREQ过程中判断到达目的节点正向路由是否足够新鲜,确定能否用于应答。
(4)源节点地址rq_src:在接收到RREQ时候建立反向到达源节点的路由。
(5)源节点序列号rq_src_seqno:在建立反向路由时判断是否需要对已有的反向路由进行更新,此外在建立反向路由时需要保存到路由表中用于反应此反向路由的新鲜程度。
(6)跳数rq_hop_count:每转发一次RREQ将会增加1,用于记录当前节点到达源节点的跳数(距离)。当RREQ消息到达目的节点时,rq_hop_count中记录了从源节点到目的节点的总跳数。
/* RREQ Flags: */
#define RREQ_JOIN 0x1
#define RREQ_REPAIR 0x2
#define RREQ_GRATUITOUS 0x4
#define RREQ_DEST_ONLY 0x8

typedef struct {
u_int8_t type;
# if __BYTE_ORDER == __LITTLE_ENDIAN
u_int8_t res1:4;
u_int8_t d:1;
u_int8_t g:1;
u_int8_t r:1;
u_int8_t j:1;
# elif __BYTE_ORDER == __BIG_ENDIAN
u_int8_t j:1; /* Join flag (multicast) */
u_int8_t r:1; /* Repair flag */
u_int8_t g:1; /* Gratuitous RREP flag */
u_int8_t d:1; /* Destination only respond */
u_int8_t res1:4;
# else
# error "Adjust your <bits/endian.h> defines"
# endif
u_int8_t res2;
u_int8_t hcnt;
u_int32_t rreq_id;
u_int32_t dest_addr;
u_int32_t dest_seqno;
u_int32_t orig_addr;
u_int32_t orig_seqno;
} RREQ;
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式