网络协议栈设计与分析Word格式文档下载.docx

上传人:b****9 文档编号:13087272 上传时间:2022-10-04 格式:DOCX 页数:36 大小:879.87KB
下载 相关 举报
网络协议栈设计与分析Word格式文档下载.docx_第1页
第1页 / 共36页
网络协议栈设计与分析Word格式文档下载.docx_第2页
第2页 / 共36页
网络协议栈设计与分析Word格式文档下载.docx_第3页
第3页 / 共36页
网络协议栈设计与分析Word格式文档下载.docx_第4页
第4页 / 共36页
网络协议栈设计与分析Word格式文档下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

网络协议栈设计与分析Word格式文档下载.docx

《网络协议栈设计与分析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《网络协议栈设计与分析Word格式文档下载.docx(36页珍藏版)》请在冰豆网上搜索。

网络协议栈设计与分析Word格式文档下载.docx

2.2全局变量 5

2.3配置变量 6

第三章 OLSR部分消息包数据结构 7

3.1OLSR首部 7

3.2HELLO消息包 8

3.3TC消息包 9

第四章 邻居发现 9

4.1节点信息的存储 9

4.2关于节点的具体操作分析 11

4.3邻居表的操作 14

4.3.1邻居表的初始化 14

4.3.2删除节点 15

4.3.3邻居节点的查找与插入 17

4.3.4邻居表的更新 18

4.3.5其他操作 18

第五章 MPR选择 19

5.1MPR节点的添加和清除 19

5.2MPR算法 20

5.2.1olsr_find_2_hop_neighbors_with_1_link函数 21

5.2.2olse_chosen_mpr函数 22

5.2.3olsr_find_maximum_covered函数 22

5.2.4olsr_check_mpr_changes函数 23

5.2.5优化MPR集合 24

第六章 拓扑控制消息洪泛 24

6.1TC消息初始化与删除 24

6.2TC消息处理 26

2/36

第七章 路由表的计算 26

7.1主要数据结构分析 27

7.1.1rt_metric和rt_nexthop 27

7.1.2rt_entry 27

7.1.3路由类型 28

7.2路由表计算 29

7.2.1路由表的创建与删除 29

7.2.2最优路径 31

第八章 总结 32

3/36

组内分工

项目

参与者

数据结构部分代码分析

邻居发现部分代码分析

万宇腾、刘伟麟

MPR选择部分代码分析

TC消息洪泛部分代码分析

路由计算部分代码分析

论文撰写

肖明旺、万宇腾、丁英才、刘伟麟

论文汇总

第一章 引言

最佳链路状态路由协议(OptimizedLinkStatusRoutingProtocol,OLSR),是专门为无线移动AdHoc网络提出来的一种标准化的先验式的优化链路状态路由协议。

该协议的核心是使用了多点中继站(MPRs),MPRs是被选择的节点,具有转发网络控制消息的能力。

根据协议,每个节点之间周期性的交换控制信息,节点根据协议计算自己的网络拓扑。

OLSR向所有节点提供一个最短路径,该技术可以有效减少网络中数据传输的信息量。

每一个被邻居们选择的节点在控制信息里周期性的广播这一信息。

因此,可以说是由被选择的节点构成了主要的网络。

相比经典的链路状态算法,OLSR更适合移动无线局域网。

该协议比较适合大型密集的网络。

OLSR有以下优点:

1利用MPRs来重传控制消息可以减少网络间消息的发送数量。

4/36

2只需要部分链路状态洪泛就可以获取最佳路径。

3网络越大则OLSR可优化的范围就越大也就能得到更好的性能

在OLSR协议中,状态路由协议的网络信息状态由被推选的节点(MPR)掌控。

所以,优化的一条途径是减少网络中的控制信息。

只有被选择的MPR节点才

能被用做路由节点,非MPR节点不参与路由计算。

MPR可以减少网络中冗余消息的传送。

每个节点传送消息给一跳邻居,但是邻居并不能再将此消息传送给其他节点。

OSLR协议逐跳寻找路径,每个节点利用本地信息向邻居节点发送路由包来获取路径。

由于该协议在设计之初就考虑到协议的分布式工作,所以该协议不依赖于任何的中心,也不需要稳定的的控制信息的传播。

每一个节点都周期性的发送信息,这样也保证了一个在可以接受范围内的丢包率。

OLSR协议在设计之初就考虑了协议的独立性,因此OLSR协议独立工作于一些协议。

它对IP的包格式没有做任何改变,因此,任何IP协议栈都能在协议中正常使用。

第二章 代码介绍

2.1文件介绍

OLSR路由协议共有123个源文件。

我们将对部分源文件进行功能型介绍。

表格1OLSR协议部分源文件介绍

文件

描述

Olsrd-0.6.0/link_set.c

确定邻居表的信息

Olsrd-0.6.0/lq_packet.h

对olsr,hello,TC数据包以及其他一些数据结构的

定义

Olsrd-0.6.0/mpr.c

关于MPR的一些操作

Olsrd-0.6.0/mpr_selector_set.h

定义了结构体mpr_selector表示MPR选择源节

点的集合

Olsrd-0.6.0/neighbor_table.h

对邻居信息数据结构的定义

Olsrd-0.6.0/neighbor_table.c

对一跳邻居和二跳邻居的处理

Olsrd-0.6.0/olsr.c

实现一些全局函数,比如网络拓扑结构的计算、路由表的计算与更新和错误处理函数等等

Olsrd-0.6.0/olsr_cfg.h

定义大部分常量,比如DEF_WILLINGNESS等

Olsrd-0.6.0/olsr_spf.c

实现spf树的构造从而实现迪杰斯特拉算法计

算路由表

5/36

Olsrd-0.6.0/routing_table.c

路由表的处理

Olsrd-0.6.0/TC_set.c

TC消息的洪泛

2.2全局变量

在olsr路由协议中使用的全局变量有许多,我们在这里只介绍部分重要的全局变量。

表格2OLSR协议部分全局变量介绍

全局变量

数据类型

olsrport

nit16_t

OLSR消息发送接收的端口号

rt_proto

nit8_t

路由表计算的所遵循的协议

willingness

WILL_ALWAYS的邻居节点集合

use_hysteresis

bool

判断消息是否迟滞

min_tc_vtime

float

TC消息vtime的最小取值

max_tc_vtime

TC消息vtime的最大取值

max_jitter

消息传播的最大抖动

changes_topology

判断拓扑信息是否变化

changes_neighborhood

判断邻居信息是否变化

2.3配置

表格3OLSR路由协议配置

名称

默认值

DEF_IP_VERSIONDEF_USE_HYSTDEF_LQ_LEVELDEF_OLSRPORTDEF_MIN_TC_VTIMEDEF_GW_TYPEDEF_DOWNLINK_SPEEDMAX_LQ_LEVELMIN_LQ_LEVEL

DEF_RTPROTO

缺省ip协议域缺省消息迟滞

缺省链路质量等级缺省olsr端口号

TC消息vtime最小取值缺省网关类型

缺省的链路下载速度缺省链路质量最高等级缺省链路质量最高等级

缺省的路由协议

AF_INET

False2

698

0.0

GW_UOLINk_IPV46

1024kb/s2

MAX_TTL

MAXJITTER

定义ttl最大值

Olsr消息传播最大抖动

0.165ms

HELLO_INTERVAL/4

COOKIE_ID_MAX

系统cookie数量最大值

25

MAXMESSAGESIZE

广播数据包大小的最大值

1500kb

6/36

OLSR_LINK_JITTEROLSR_LINK_HELLO_JITTEROLSR_LINK_SYM_JITTEROLSR_LINK_LOSS_JITTER

olsr消息抖动时间

HELLO消息抖动时间系统抖动时间

数据包丢失抖动时间

5s0s0s0s

第三章 OLSR部分消息包数据结构

OLSR使用统一的数据包格式,使用UDP通信,数据包嵌入到UDP数据报在网络上传输。

每个数据包封装一个或多个消息,邮件分享通用报头格式,使节点能够正确接收和重传一个未知类型的消息。

如果数据包不包含任何信息(数据包的长度小于或等于该数据包报头的大小),数据包就会默默的丢弃。

每一个消息都会分配一个唯一的标识号,用来确保消息不重传。

OLSR数据包一般包含以下几部分:

消息类型,VTIME邮件大小,发端地址,生存时间,跳数,消息序列号和消息。

其中VTIME是表示接收后很长时间节点如何,确保数据包中的消息有效;

生存时间包含最大跳数,如果被重发,则减1;

消息序列号被用来确保给定的消息被节点转发的次数不超过一次。

3.1OLSR首部

-------------------------------------------------Olsr-lq_packet.h

olsr_common是OLSR协议基本数据包。

其中包含以下几部分:

type,消息类型;

vtime,表示接收后很长时间节点如何,确保数据包中的消息有效;

size,消息大小;

orig,发端地址;

ttl,跳数,消息在传递过程中最大跳数,每转发一次,ttl减1;

hops,此消息在传递过程中经历的跳数;

seqno,消息的序列号,这是唯一不变的,以确保消息不回被重发。

表格4OLSR协议数据包

PacketLength

PacketSequenceNumber

MessageType

Vtime

MessageSize

7/36

OriginatorAddress

TimeToLive

HopCount

MessageSequenceNumber

MESSAGE

3.2HELLO消息包

HELLO用于建立一个节点的邻居表,其中包括邻居节点的地址以及本节点到邻居节点的延时和开销,OLSR采用周期性

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1