linux路由协议网络协议栈

迈普学习总结

经过在公司里学习了几个月,把大体的工作总结于下:

在参与1800-20 3G 路由的开发中,我参与了l2tp, gre ,静态路由, ipsec ,日志关键信息提取的编写。并同时参与了ipsec-tools 源码,linux kernel 网络协议栈源码,l2tpd 源码分析。并且同时了解了vrrp ,rip 等协议。

L2TP 模块:

L2tp 代码流程:

其中认证过程分为pap 和chap 认证: Pap 认证:

认证信息

Chap 认证:

大体过程应该是这样的,中间也许有错,主要是记不大清楚了。

Pppd 向内核注册过程如下图:

做lac 的路由器通过拨号到lns ,通过上面的连接认证后,lns 会给lac 分配一个私有ip 地址,该Ip 地址可以和2通信。 通过这个过程后,久可以让内网1的pc 访问内网2的pc 。

路由器

路由器

lac

lns

lac

lns

lac

lns

lac

lns

通过认证

发送加密数据,使LAC

认证信息

通过认证

inte

Gre 模块:

模型:

开始的时候,内网1和内网2是不能相互到达的,因为中间有许多中间网络。当建立好GRE 隧道后,内网1就可以和内网2通信了。

实现:GRE 脚本主要通过iproute2这个工具实现。使用的主要脚本命令: I p route add $name mode gre remote $remoteip local $localip ttl 255 I p route set $name up

I p route add net $net/$mask dev $name

脚本流程:脚本从lua 保存的配置文件中获取到上面的变量值,然后通过以上指令,将变量值设置到相应的隧道中。 责任:主要担任gre 模块的测试(与linux )。

DDNS 模块:

原理:DDNS 又叫动态域名解析。实用环境是在用户动态获取IP 地址的情况下。因为传统的DNS 只能与固定IP 地址绑定,一旦IP 地址发生变化,相应的域名将不能解析到变换后的IP 地址上。然后DDNS 改变了这一点。它以动态域名绑定的方式来完成这一点。什么叫动态域名呢?就是指在用户的IP 地址发生改变时,相应的DDNS 客户端会把自己现在的变化后的IP 地址传给DDNS 服务器,告诉它自己的IP 地址已经发生变化,需要服务器将以前绑定域名的IP 换成现在变化后的IP 地址。如果内部在加上端口映射,那么久可以实现路由器内部的主机间接与DNS 绑定,即其他人通过域名就能访问的内网的某台计算上的服务器。

责任:DDNS 的测试。

静态路由模块:

原理:举个例子,当一个路由器刚接入到一个网络中时,在这个陌生的环境中,它根本不知道去某个地址该怎么走,静态路由就相当于一个指路人,它告诉路由器某个IP 地址该怎么走。配置的时候,只需要告诉路由器到达某个网络需要从哪张网卡和相应网卡出去的网关地址就可以了。这样凡是到那个网络的IP 数据包,路由器都会将它从相应网卡转发出去(ttl-1)。它并不关心数据包能否真正的到达。

实现:具体命令:route add –net $net mask $netmask gw $gateway dev $device 责任:静态路由的脚本的基本框架。

Ipsec 模块:

原理:在内核2.6版本中已经存在ipsec 模块,该模块的主要作用是让数据包经过加密/认证从安全的隧道中到达指定的目标地址。它的有几种数据包格式,一种是esp,一种是ah,另一种是esp+ah 。他们的报文格式如下:

Ah 是一种用于认证报文,它主要是给数据包提供认证,防重放;ESP 是一种用于加密报文,当然它也有认证的功能,并且也具有抗重放的机制。它是一种更优越于AH 的报文结构。另外,esp+ah 则是一种集esp 和ah 于一身的格式,当然它的安全性就更不可否认了。

整个模块分为两大类:第一类,kernel ipsec 的实现,第二类上层应用程序ike 即为ipsec 模块协商认证算法和加密算法的协议。下面谈谈ike 协

议。

Ike协议分为两个阶段,第一阶段协商对对方的身份进行认证,并且为第二阶段的协商提供一条安全可靠的通道。第一个阶段又分为3种模式,我们常用的有两种模式,一个是主模式,一个是积极模式。第二阶段主要对IPSEC的安全性能进行协商,产生真正可以用来加密数据流的密钥。

主模式(IKE SA 阶段):

以上过程中包含验证信息,我就没特别指出了。具体参见如下:

发送cockie包,用来标识唯一的一个IPSEC会话。

IKE阶段一(主模式):发送消息1 initiator====>responsor

isakmp header

sa payload

proposal payload

transform payload

定义一组策略:

加密方法:DES

认证身份方法:预共享密钥

认证散列:MD5

存活时间:86400秒

Diffie-Hellman group:1

IKE阶段二(主模式):发送消息2 initiator<====responsor

同上

IKE阶段三(主模式):发送消息3 initiator====>responsor

通过DH算法产生共享密钥

KE(Key Exchang) Payload

nonce(暂时)Payload

DH 算法:

A: P(较大的质数) B: P(较大的质数) G G

PriA (随机产生) PriB (随机产生) PubA=G^PriA mod P PubB=G^PriB mod P 交换PubA 和PubB

Z=PubB^PriA mod P Z=PubA^PriB mod P

Z 就是共享密钥,两个自我产生的Z 应相同,它是用来产生3个SKEYID 的素材。 IKE 阶段四(主模式):发送消息4 initiator<====responsor 同上

主模式第3、4条消息其实就是DH 算法中需要交换的几个参数,然后路由器再通过DH 算法计算出的公共密钥计算出以下3个参数(这是在发送第5、6个消息前完成的):

SKEYID_d:留在在第二阶段用,用来计算后续的IKE 密钥资源; SKEYID_a:散列预共享密钥,提供IKE 数据完整性和认证;

SKEYID_e:用来加密下一阶段的message ,data, preshared key ,包括第二阶段。 IKE 阶段五(主模式):发送消息5 initiator====>responsor Identity Payload :用于身份标识 Hash Payload :用来认证

以上2个负载都用SKEYID_e 加密

IKE 阶段六(主模式):发送消息6 initiator<====responsor 同上

消息5、6是用来验证对等体身份的。至此IKE 协商第一阶段完成。

主要会发送6个报文,由于最后一组报文发送的是身份,此时身份已经加密,因此,只能采用地址进行认证,但其安全性高于积极模式。缺点是耗时比积极模式长。

积极模式:

主要发送3个报文,安全性没有主模式好,由于其ID 不加密,因此可用于移动客户端模式。即不用地址作为ID 。优点:速度快,缺点安全性不高。

第二阶段快速模式(IPSec SA 阶段):

所有二阶段参数,提议,算法

以上过程中包含验证信息(最开始如果支持PFS算法,那么还要协商DH算法),我就没特别指出了。具体参见如下:首先判断是否启用了PFS(完美转发安全),若启用了则重新进行DH算法产生密钥,若没有启用则是用第一阶段的密钥。

IPSec阶段一(快速模式):发送消息1 initiator====>responsor

同样定义一组策略,继续用SKEYID_e加密:

Encapsulation— ESP

Integrity checking— SHA-HMAC

DH group— 2

Mode— Tunnel

IPSec阶段二(快速模式):发送消息2 initiator<====responsor

同上,主要是对消息1策略的一个确认。

在发送消息3前,用SKEYID_d,DH共享密钥,SPI等产生真正用来加密数据的密钥。

IPSec阶段三(快速模式):发送消息3 initiator====>responsor

用来核实responsor的liveness。

至此,整个IPSec协商的两个过程已经完成,两端可以进行安全的数据传输。

实现:ike协议我们主要是通过利用开源软件ipsec-tools来实现的。

责任:负责ipsec的代码BUG解决(BUG数量多,就不列出了),ipsec的证书申请脚本编写(研究了openssl)。

Ipsec-tools流程:

eay_init();//opensll初始化

initlcconf();//本地配置文件初始化

initrmconf();//远端配置文件初始化

oakley_dhinit();//dh算法初始化

compute_vendorids();//dpd

parse(ac, av);//传进来的参数分析

ploginit();//本地日志初始化

pfkey_init()//内核接口af_key初始化,主要是向内核注册

isakmp_cfg_init(ISAKMP_CFG_INIT_COLD))//isakmp配置初始化

cfparse();//配置文件分析,别且赋值给相应结构体

session();//主要会话

下面是session函数里面的实现:

sched_init();//调度初始化

init_signal();//信号初始化

admin_init()//和setkey, racoonctl的连接口初始化

initmyaddr();//初始化本地地址

isakmp_init()//isakmp初始化

initfds();//初始化select的套接字

natt_keepalive_init ();//初始化nat协商的相关内容

for (i = 0; i <= NSIG; i++)//信号的相应保存变量初始化

sigreq[i] = 0;

check_sigreq();//检测是否收到有信号

error = select(nfds, &rfds, (fd_set *)0, (fd_set *)0, timeout);//多路监听

admin_handler();//监听到setkey和racoonctl的fd触发,调用该函数处理

isakmp_handler(p->sock);//监听到ike连接信息和ike协商信息处理函数

pfkey_handler();//监听的内核af_key发上来的信息处理函数(包含发起ike协商等)

isakmp_handler(p->sock);函数里最重要的函数是isakmp_main()

isakmp_handler(p->sock);()这个函数里面除了数据包有效性检查外,ph1_main()第一阶段函数,quick_main()第二阶段处理函数,这两个函数最重要。

这两个函数内分别用了一个重要的结构体:如下

ph1exchange[][] 整个racoon就靠这个结构体来进行协商。(可以说是贯穿整个racoon)

static int (*ph1exchange[][2][PHASE1ST_MAX])

__P((struct ph1handle *, vchar_t *)) = {

/* error */

{ {}, {}, },

/* Identity Protection exchange */

{

{ nostate1, ident_i1send, nostate1, ident_i2recv, ident_i2send,

ident_i3recv, ident_i3send, ident_i4recv, ident_i4send, nostate1, },

{ nostate1, ident_r1recv, ident_r1send, ident_r2recv, ident_r2send,

ident_r3recv, ident_r3send, nostate1, nostate1, nostate1, },

},

/* Aggressive exchange */

{

{ nostate1, agg_i1send, nostate1, agg_i2recv, agg_i2send,

nostate1, nostate1, nostate1, nostate1, nostate1, },

{ nostate1, agg_r1recv, agg_r1send, agg_r2recv, agg_r2send,

nostate1, nostate1, nostate1, nostate1, nostate1, },

},

/* Base exchange */

{

{ nostate1, base_i1send, nostate1, base_i2recv, base_i2send,

base_i3recv, base_i3send, nostate1, nostate1, nostate1, },

{ nostate1, base_r1recv, base_r1send, base_r2recv, base_r2send,

nostate1, nostate1, nostate1, nostate1, nostate1, },

},

};

可以看的到上面有第一阶段有三个模式的发送和接受函数(main , Aggressive, base);

其中有每一个模式下的交互消息一个函数。同时也有验证函数。如果熟悉几种模式的发包流程,

相信通过函数定义的名字就可以轻松知道函数是干嘛用的了。(注意存在状态判断函数,发送

和接收函数,每个阶段都不同)以上函数会在ph1_main()调用,在pfkey_handler()调用的则是

协商发起方。

static int (*ph2exchange[][2][PHASE2ST_MAX])

__P((struct ph2handle *, vchar_t *)) = {

/* error */

{ {}, {}, },

/* Quick mode for IKE */

{

{ nostate2, nostate2, quick_i1prep, nostate2, quick_i1send,

quick_i2recv, quick_i2send, quick_i3recv, nostate2, nostate2, },

{ nostate2, quick_r1recv, quick_r1prep, nostate2, quick_r2send,

quick_r3recv, quick_r3prep, quick_r3send, nostate2, nostate2, }

},

};

可以看到上面的第二阶段即快速模式下的发送和接受函数,这些函数就是ike第二阶段协商使用的。其中有二阶段的每个包的发送和接受,状态函数。具体是怎么实现的请参看相应的源代码。以上的ph2handle会在,quick_main()中调用。

各个处理方法和流程参考代码就可以了。这就是大概流程,其中可能会涉及到openssl编码问题(第一阶段的算法为二阶段的传递信息编码)。

日志分析:编写选出特定信息的脚本。通过awk 的传参和让AWK 进行处理。

Linux kernel 网络协议栈流程:

图1,tcp/ip 协议栈AF_INET运行结构图(包含IPSEC, netfilter,af_key)

Netfilter维护链表:

netfilter定义了一个二维的链表头数组struct list_head nf_hooks[NPROTO][NF_MAX_HOOKS]来表示所有协议族的各个挂接点,NPROTO值为32,可表示linux所支持所有32个协议族(include/linux/socket.h文件中定义),也就是使用socket(2)函数的第一个参数的值,如互联网的TCP/IP协议族PF_INET(2)。每个协议族有NF_MAX_HOOKS(8)个挂接点,但实际只用了如上所述的5个,数组中每个元素表示一个协议族在一个挂接点的处理链表头。

图2,netfilter 维护的链表结构图

例如:在IPv4(PF_INET 协议族)下,各挂接点定义在:NF_IP_PRE_ROUTING 中,在IP 栈成功接收

sk_buff 包后处理,挂接点在在net/ipv4/ip_input.c 的函数

int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt) 中使用:

return NF_HOOK(PF_INET, NF_IP_PRE_ROUTING, skb, dev, NULL, ip_rcv_finish);

挂接点的操作由结构struct nf_hook_ops 定义: include/linux/netfilter.h

struct nf_hook_ops {

struct list_head list;// 链表头,用于将此结构接入操作链表

/* User fills in from here down. */ nf_hookfn *hook;//钩子函数 int pf; //协议族

int hooknum;//挂接点如:PREROUTING /* Hooks are ordered in ascending priority. */ int priority;//优先级 };

优先级列表:

NF_IP_PRI_FIRST = INT_MIN, NF_IP_PRI_CONNTRACK = -200, NF_IP_PRI_MANGLE = -150, NF_IP_PRI_NAT_DST = -100, NF_IP_PRI_FILTER = 0, NF_IP_PRI_NAT_SRC = 100, NF_IP_PRI_LAST = INT_MAX

af_inet 模块挂接(详细运转关系,由于时间原因,就不在叙述):

af_key模块挂接(详细运转关系,由于时间原因,就不在叙述):

内核中PF_KEY实现要完成的功能是实现维护内核的安全联盟(SA)和安全策略(SP)数据库, 以及和用户空间的接口。

详细过程略

xfrm_state表:

xfrm状态用来描述SA在内核中的具体实现

struct xfrm_state

{

/* Note: bydst is re-used during gc */

// 每个状态结构挂接到三个HASH链表中

struct hlist_node bydst; // 按目的地址HASH

struct hlist_node bysrc; // 按源地址HASH

struct hlist_node byspi; // 按SPI值HASH

atomic_t refcnt; // 所有使用计数

spinlock_t lock; // 状态锁

struct xfrm_id id; // ID

struct xfrm_selector sel; // 状态选择子

u32 genid;

/* Key manger bits */

struct {

u8 state;

u8 dying;

u32 seq;

} km;

/* Parameters of this state. */

struct {

u32 reqid;

u8 mode;

u8 replay_window;

u8 aalgo, ealgo, calgo;

u8 flags;

u16 family;

xfrm_address_t saddr;

int header_len;

int trailer_len;

} props;

struct xfrm_lifetime_cfg lft; // 生存时间

/* Data for transformer */

struct xfrm_algo *aalg; // hash算法

struct xfrm_algo *ealg; // 加密算法

struct xfrm_algo *calg; // 压缩算法

/* Data for encapsulator */

struct xfrm_encap_tmpl *encap; // NAT-T封装信息

/* Data for care-of address */

xfrm_address_t *coaddr;

/* IPComp needs an IPIP tunnel for handling uncompressed packets */ struct xfrm_state *tunnel;

/* If a tunnel, number of users + 1 */

atomic_t tunnel_users;

/* State for replay detection */

struct xfrm_replay_state replay;

/* Replay detection state at the time we sent the last notification */ struct xfrm_replay_state preplay;

/* internal flag that only holds state for delayed aevent at the

* moment

*/

u32 xflags;

/* Replay detection notification settings */

u32 replay_maxage;

u32 replay_maxdiff;

/* Replay detection notification timer */

struct timer_list rtimer;

/* Statistics */

struct xfrm_stats stats;

struct xfrm_lifetime_cur curlft;

struct timer_list timer;

/* Last used time */

u64 lastused;

/* Reference to data common to all the instances of this

* transformer. */

struct xfrm_type *type;

struct xfrm_mode *mode;

/* Security context */

struct xfrm_sec_ctx *security;

/* Private data of this transformer, format is opaque,

* interpreted by xfrm_type methods. */

void *data;

};

xfrm_policy表:

安全策略表

struct xfrm_policy

{

struct xfrm_policy *next; // 下一个策略

struct hlist_node bydst; // 按目的地址HASH的链表

struct hlist_node byidx; // 按索引号HASH的链表

/* This lock only affects elements except for entry. */

rwlock_t lock;

atomic_t refcnt;

struct timer_list timer;

u8 type;

u32 priority;

u32 index;

struct xfrm_selector selector;

struct xfrm_lifetime_cfg lft;

struct xfrm_lifetime_cur curlft;

struct dst_entry *bundles;

__u16 family;

__u8 action;

__u8 flags;

__u8 dead;

__u8 xfrm_nr;

struct xfrm_sec_ctx *security;

struct xfrm_tmpl xfrm_vec[XFRM_MAX_DEPTH];

};

esp模块挂接(向安全路由注册,向传输层操作链注册):

ah模块挂接(方法雷同ESP,略)

linux kernel重要结构体struct sk_buf(由于时间关系昝略):

managle表挂接(主要向netfilter中注册相关的处理函数,是上层iptables与netfilter的接口,实现流程,略)

filter表挂接(主要向netfilter中注册相关的处理函数,是上层iptables与netfilter的接口,实现流程,略)

nat表挂接(主要向netfilter中注册相关的处理函数,是上层iptables与netfilter的接口,实现流程,略)

raw表挂接(主要向netfilter中注册相关的处理函数,是上层iptables与netfilter的接口,实现流程,略)

其他正在研究中的暂略。

路由协议的分类

路由协议的分类。什么是自治域系统、IGP、EGP。 自治域(自治系统),在同一种路由协议上使用不同的自治域,可以有效的分割 路由信息,即自治域A中的路由器不会与自治域B中的路由器交换路由 信息。一个AS是一组共享相似的路由策略并在单一管理域中运行的路由器的集合。一个AS可以是一些运行单个IGP(内部网关协议)协议的路由器集合。也可以是一些运行不同路由选择协议但都属于同一个组织机构的路由器集合。不管是哪种情况,外部世界都将整个AS看作是一个实体。按照工作区域,路由协议可以分为IGP和EGP: IGP(InteriorGateway Protocols)内部网关协议 在同一个自治系统内交换路由信息,RIP、OSPF和IS—lS 都属于IGP。IGP的主要目的是发现和计算自治域内的路由信息。 EGP(Exterior Gateway Protocols)外部网关协议 用于连接不同的自治系统,在不同的自治系统之间交换路由信息,主要使用路由策略和路由过滤等控制路由信息在自治域间的传播 什么是管理距离,有什么作用。 管理距离是指一种路由协议的路由可信度。每一种路由协议按可靠性从高到低,依次分配一个信任等级,这个信任等级就叫管理距离。对于两种不同的路由协议到一个目的地的路由信息,路由器首先根据管理距离决定相信哪一个协议。 防止环路的方法有哪些? RIP:有六种防止环路的措施:设定无穷大的值(16)路由毒化水平分割毒化反转触发更新抑制计时器 OSPF有哪些状态,在每种状态下进行哪些操作?OSPF有哪三个表?为什么需要DR、BDR,如何选择。 OSPF路由器在完全邻接之前,所经过的几个状态: 1.Down:此状态还没有与其他路由器交换信息。首先从其ospf接口向外发送hello分组,还并不知道DR(若为广播网络)和任何其他路由器。发送hello分组使用组播地址224.0.0.5。 2.Attempt: 只适于NBMA网络,在NBMA网络中邻居是手动指定的,在该状态下,路由器将使用HelloInterval取代PollInterval 来发送Hello包. 3.Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来. 4.two-way: 双向会话建立,而RID彼此出现在对方的邻居列表中。(若为广播网络:例如:以太网。在这个时候应该选举DR,BDR。) 5.ExStart: 信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DD Sequence Number,路由器ID大的的成为Master. 6.Exchange: 信息交换状态,本地路由器和邻居交换一个或多个DBD分组(也叫DDP) 。DBD包含有关LSDB中LSA条目的摘要信息)。 7.Loading: 信息加载状态:收到DBD后,将收到的信息同LSDB中的信息进行比较。如果DBD中有更新的链路状态条目,则向对方发送一个LSR,用于请求新的LSA 。 8.Full: 完全邻接状态,邻接间的链路状态数据库同步完成,通过邻居链路状态请求列表为空且邻居状态为Loading判断。

基于位置的Adhoc网络路由协议研究报告

基于位置的Ad hoc网络路由协议研究 【摘要】基于位置的ad hoc网络路由协议利用节点地理位置信息指导数据包的转发,具有可扩展性强,路由效率高等优点。分析了ad hoc网络中基于位置的路由协议以及位置信息服务,对几种协议进行了分析比较,并指出了基于位置的路由协议的研究重点。 【关键词】ad hoc网络;路由;协议;位置 【abstract 】ilocation-based unicast routing protocol uses geographical location information of nodes to direct the forward of data package, superior to scalability and high efficiency in routing. in this paper, we introduced location-based unicast routing protocols and location information services for ad hoc network. analysed and pared several protocols, we pointed at the research emphasis on location-based unicast routing protocol. 【keywords 】ad hoc network;routing;protocol;location 1 引言 ad hoc网络是由一组带有无线收发装置的移动终端组成的多跳临时自治系统。路由协议一直是ad hoc网络研究的重点。根据不同的路由策略,ad hoc网络的路由协议可以分为基于拓扑的路由协议和基于位置的路由协议。与传统的基于拓扑的路由协议相比,基于位置的路由协议利用节点的位置信息来指导包的转发,其基本思想是利用节点的位置信息来选择下一跳,将包向目的节点的方向上进行

Adhoc网络TORA和DSR路由协议的分析比较

Ad hoc网络TORA和DSR路由协议的分析比较 郑创明 张升华 (中国电子科技集团公司第七研究所 广州510310) 摘 要: T ORA和DSR路由协议是Ad hoc网络中具有成果性的两种后应式路由协议。分别对两种路由协议的建立、维护方面进行了分析对比,并给出了两种协议的优缺点。最后通过仿真从路由分组开销、路由建立时间和发送数据分组信息几个方面进行分析论证。 关键词: TORA DSR 路由协议 Ad hoc网络 在Ad hoc网络的路由协议中普遍认可的代表性成果有DSR[1]、TORA[2]、DSDV[3]、WRP[4]、AODV[5]、和ZRP[6]等。源头性的创新性研究主要集中在2001年以前,后续的成果多为这些协议的改进,目前路由协议的研究仍然是Ad Hoc网络成果最集中的部分。这些路由协议根据不同的角度进行分类,从路由发现策略的角度可分为先应式的路由协议(主动路由)和后应式的路由协议(按需路由)两种类型。DSR和T ORA是MANET工作组提出的比较具有成果性的后应式路由协议,本文通过深入研究DSR和T ORA的实现方法,对DSR和TORA 的性能进行分析比较,并通过仿真进行论证。 1 动态源路由协议(DSR) 动态源路由协议DSR(Dynamic Source Rout ing)最重要的一个特点是利用了源路由[1]。也就是说,发送包的源节点知道到达目的地的完整路径,即路径所经过的节点地址有序列表。这些路径存于路由缓存器中,数据分组的包头携带该源路由。这种源路由的方法避免了数据分组经过的中间节点不停更新路由的需要,而且允许节点在转发或无意中收到数据分组时,将最新的路由信息存于它的路由缓存器中以备将来所需。协议的所有操作都是基于按需求的,允许数据分组动态的根据需要对当前路径的变化做出反应。DSR协议包含两个重要的机制:路由搜索和路由维护。 1.1 路由搜索机制 当在MANET中的一个节点要发送数据分组给一个目的节点时,路由搜索程序向网络广播路由请求RREQ(Route Request)包(该包会记录下经过的节点地址有序列表),每个接到RREQ包的节点又重广播它(但丢弃收到的重复的路由搜索包)。RREQ包格式如图1所示。 分组类型分组ID其他控制信息源地址目的地址经过的节点列表信息 图1 RREQ数据分组格式 当目的节点或路由缓存中存在通向目的地的路径的中间节点收到RREQ时,发送一个路由应答包RACK(Route Acknow ledge),把RREQ包中的路由发回给源节点。由于无线链路存在不对称性,因此RACK包不能简单的按RREQ来时的路径发回源节点,若该节点的路由缓存器内已存在回源节点的路由,则RREQ可经这条路径回源节点;否则,要启动路由搜索程序,为了避免相互寻找对方,造成路由搜索循环,在此路由搜索报文中必须附带想要发送到源节点路由应答包RACK。源节点收到RACK 包后将此路径加入其路由缓存器中。RACK格式如图2。 分组类型分组ID其他控制信息源地址目的地址路径节点列表 图2 RACK数据分组格式 1.2 路由维护机制 只有当路由在使用时,才对它进行维护。即当路径上某个节点发现数据分组无法发送到下一跳节点,从自己路由缓存中找出路由,并向源节点发送一个路由出错包(RERR),使源节点将自己的路由缓 收稿日期:2005 01 22

常用路由协议的分析及比较

路由分为静态路由和动态路由,其相应的路由表称为静态路由表和动态路由表。静态路由表由网络管理员在系统安装时根据网络的配置情况预先设定,网络结构发生变化后由网络管理员手工修改路由表。动态路由随网络运行情况的变化而变化,路由器根据路由协议提供的功能自动计算数据传输的最佳路径,由此得到动态路由表。 根据路由算法 动态路由协议可分为距离向量路由协议(Distance V ector Routing Protocol)和链路状态路由协议(Link State Routing Protocol)。距离向量路由协议基于Bellman-Ford算法,主要有RIP、IGRP(IGRP为Cisco公司的私有协议);链路状态路由协议基于图论中非常著名的Dijkstra 算法,即最短优先路径(Shortest Path First,SPF)算法,如OSPF。在距离向量路由协议中,路由器将部分或全部的路由表传递给与其相邻的路由器;而在链路状态路由协议中,路由器将链路状态信息传递给在同一区域内的所有路由器。 根据路由器在自治系统(AS)中的位置 可将路由协议分为内部网关协议(Interior Gateway Protocol,IGP)和外部网关协议(External Gateway Protocol,EGP,也叫域间路由协议)。域间路由协议有两种:外部网关协议(EGP)和边界网关协议(BGP)。EGP是为一个简单的树型拓扑结构而设计的,在处理选路循环和设置选路策略时,具有明显的缺点,目前已被BGP代替。 EIGRP是Cisco公司的私有协议,是一种混合协议,它既有距离向量路由协议的特点,同时又继承了链路状态路由协议的优点。各种路由协议各有特点,适合不同类型的网络。下面分别加以阐述。 2 静态路由 静态路由表在开始选择路由之前就被网络管理员建立,并且只能由网络管理员更改,所以只适于网络传输状态比较简单的环境。静态路由具有以下特点: ·静态路由无需进行路由交换,因此节省网络的带宽、CPU的利用率和路由器的内存。 ·静态路由具有更高的安全性。在使用静态路由的网络中,所有要连到网络上的路由器都需在邻接路由器上设置其相应的路由。因此,在某种程度上提高了网络的安全性。 ·有的情况下必须使用静态路由,如DDR、使用NA T技术的网络环境。 静态路由具有以下缺点: ·管理者必须真正理解网络的拓扑并正确配置路由。 ·网络的扩展性能差。如果要在网络上增加一个网络,管理者必须在所有路由器上加一条路由。 ·配置烦琐,特别是当需要跨越几台路由器通信时,其路由配置更为复杂。 3 动态路由

相遇信息估算概率的机会网络路由协议

相遇信息估算概率的机会网络路由协议 引言 机会网络是一种不需要在源节点和目标节点之间存在完整路径,利用节点移动带来的相遇机会实现通信的,具有时延和分裂可容忍的自组织网络。它是移动自组织网络的一种演化,其概念源于早期的延迟容忍网络(delay tolerant net?work,简称 DTN),是延迟容忍网络的一个分支。机会网络中,节点之间不存在完整的路径,节点的通信机会是间断的,网络中通过存储-携带-转发模式传输信息实现节点间的通信,因此机会网络能在网络链路断开和分裂的情况下完成通信任务。这些特性,使得机会网络能满足恶劣条件下的通信需要,能应用于缺乏通信基础设施、网络环境恶劣的场景。比如,野生动物监控,偏远地区网络连接等。 1 相关研究 在机会网络中,由于节点移动不可预测、能量和存储受限等因素导致网络拓扑出现割裂,使源和目标节点位于不同的连通域,导致传统网路由协议无法有效运行,因此设计高效的路由转发协议成为机会网络中关键和研究的热点之一。近几年来,国内外研究人员提出了较多的路由协议,其中较经典的如传染转发(epidemic forward?ing)、Spray and wait、PROPHET。文献[6]根据转发策略的不同将目前的机会网络路由协议主要分为 4 类:基于冗余机制、基于效用机制、冗余效用混合机制和基于主动运动机制。

1.1 Epidemic Forwarding 传染转发通过洪泛的方式将消息转发给所有相遇的节点,以期望能有更多的节点参与消息的转发,最终以较高的成功传达率到达目的节点。其主要思想是2个相遇的节点交换对方没有的信息,节点将消息副本传递给它所遇到的节点。该协议中由于洪泛而使网络中存在大量的消息副本数,会大量消耗网络的资源,且扩展性差。 1.2 Spray and wait Spray and wait 协议(以下简称SW)是一种基于受限洪泛的路由协议。该协议分为喷射(Spray)阶段和等待(Wait)阶段。在Spray阶段,源节点使用交换机制将部分报文扩散到邻居节点;Wait 阶段,若Spray 阶段没有发现目的节点,那么包含报文的节点通过直接传输(direct deliv?ery)方式把报文传送到目的节点。该协议提供了 2 种转发策略,Binary 模式和非 Binary 模式。在Binary模式下k=L/2(L 为消息的副本数),即将一半的副本数交由中继节点转发。当携带数据包的节点中的转发副本数降为 1 时,节点转到Wait阶段,在此阶段下,节点采用和直接传输协议相同的策略等待与目标节点的相遇机会。 2 相遇信息估算概率的路由协议 在PROPHET和SW协议的基础上,本文提出一种基于相遇信息的路由协议 BPAS(based onprophet and spray and wait),以节点间的相遇频率、网络连接时间和断连时间作为依据,计算节点的转发概率,将消息由概率值低的节点向概率值高的节点转发,并采用类似于SW

四种路由协议比较

内部网关协议RIP:基于距离向量的路由协议。(1)仅和相邻路由器交换信息,交换的信息是自己的路由表。(2)按固定的时间间隔交换信息。RIP协议用UDP报文进行传送。 RIP实现简单,但它能使用的最大距离为15,16是不可到达,所以RIP只适用于小规模网络。RIP还有一个特点就是好消息传播的快,坏消息传播的慢。 RIP为了防止成环:可以用水平分割的方法,即从本端口接收到的路由,不再从本接口发送出去。 内部网关协议OSPF:使用分布式的链路状态协议。(1)向本自治系统内的所有路由器发送信息,用洪泛法。,路由器向所有相邻的路由器发送信息,这个相邻的路由器再向所有它相邻的路由器发送信息。(2)发送的信息是与本路由器相邻的所有路由器的链路专题。(3)只有链路状态变化时,才用洪泛法发送信息,OSPF没有RIP那样坏消息传播的慢的问题。而不像RIP那样每隔30s交换一次路由信息。OSPF协议知道全网的拓扑结构图。OSPF更新收敛的快是重要特点。OSPF不用UDP而是直接用IP数据报传送。OSPF的数据包很短,这样可以减少路由信息的通信量。 注:RIP交换的是路由表,即到目的网络的最短距离,RIP就是根据最短距离选路的。OSPF发送的信息是与本路由器相邻的链路状态,即与本路由器都和哪些路由器相邻以及该链路的度量,如距离,费用带宽。所以交换完路由信息以后,形成数据库,然后利用SPF算法(如Dijkstra静态路由算法)再算出路径,形成SPF树。每个路由单元根据SPF树生成自己的路由表。对OSPF而言,主要的消耗就在SPF的算法处理中,最常用的是Dijkstra静态路由算法。当一条链路down,每台路由器都会获得变化的信息,在网络拓扑更新之后,每台路由器就会重新计算SPT。这样计算SPT的计算量特别大,消耗CPU。。在目前的实际应用中,重新计算SPT就是删除当前的SPT,调用最短路径优先算法重新构造SPT。所以需要提出一种快速收敛的算法,来消除冗余存储或冗余计算。如下图我们只需要计算第二张图中区域的节点,即只对部分变化的节点重新计算路径,大大减少了计算量。

Ad Hoc网络技术

Ad Hoc网络技术 随着人们对摆脱有线网络束缚、随时随地能够实行自由通信的渴望,近几年来无线网络通信得到了迅速的发展。人们能够通过配有无线接口的便携计算机或个人数字助理来实现移动中的通信。当前的移动通信大多需要有线基础设施(如基站)的支持才能实现。为了能够在没有固定基站的地方实行通信,一种新的网络技术——AdHoc网络技术应运而生。AdHoc网络不需要有线基础设备的支持,通过移动主机自由的组网实现通信。AdHoc网络的出现推动了人们实现在任意环境下的自由通信的进程,同时它也为军事通信、灾难救助和临时通信提供了有效的解决方案。 1AdHoc网络的概念 AdHoc网络是一种没有有线基础设施支持的移动网络,网络中的节点均由移动主机构成。AdHoc网络最初应用于军事领域,它的研究起源于战场环境下分组无线网数据通信项目,该项目由DARPA资助,其后,又在1983年和1994年实行了抗毁可适合网络 SURAN(SurvivableAdaptiveNetwork)和世界移动信息系统 GloMo(GlobalInformationSystem)项目的研究。因为无线通信和终端技术的持续发展,AdHoc网络在民用环境下也得到了发展,如需要在没有有线基础设施的地区实行临时通信时,能够很方便地通过搭建AdHoc 网络实现。 在AdHoc网络中,当两个移动主机(如图1中的主机A和B)在彼此的通信覆盖范围内时,它们能够直接通信。但是因为移动主机的通信覆盖范围有限,如果两个相距较远的主机(如图1中的主机A和C)要实行通信,则需要通过它们之间的移动主机B的转发才能实现。所以在AdHoc网络中,主机同时还是路由器,担负着寻找路由和转发报文的工作。在AdHoc网络中,每个主机的通信范围有限,所以路由一般都由多跳组成,数据通过多个主机的转发才能到达目的地。故AdHoc网络也被称为多跳无线网络。其结构如图2所示。

移动adhoc网络HOLSR路由协议研究与实现

计算机工程与设计ComputerEngineeringandDesign2009。30(9)2147II ?网络与通信技术? 移动ad.hoc网络HOLSR路由协议研究与实现 黄娟,余敬东 (电子科技大学通信抗干扰技术国家级重点实验室,四川成都610054) 摘要:根据移动ad.hoe网络的特点分析了HOLSR分级路由协议的工作原理,在控制网络中群的数量及规模、减少冗余控制分组两方面进行了改进,并基于C语言提出了一种HOLSR路由协议的实现方案。该方案结合了c语言特点主要完成了消息处理、拓扑计算、群成员管理、路由计算等功能。最后在Linux系统下实现了该方案,基于对实验结果的分析,验证了HOL-SR路由协议简单、实用、性能优越. 关键词:Ad-hoe网络;HOLSR;分级路由;群;Linux 中图法分类号:TP393.02文献标识码:A文章编号:1000-7024(2009)09.2147.04 ResearchandimplementationofHOLSRroutingprotocolforAd—hocnetworks HUANGJuan.YUJing—dong (NationalLaboratoryofCommunication,UniversityofElectronicScienceandTechnologyofChina, Chengdu610054,China) Abstract:AccordingtotheattributeofmobileAd—hoenetworks.theprincipleofHOLSRhierarchicalroutingprotocolisstudied,thentwoaspectsisimproved,thatistheclusternumberandscalecontrol,controlpacketredundancyreducing.AnimplementationofHOLSRroutingprotocolispresented.TheimplementationisdonecombinedwiththecharacteristicsofC,includingmessagemanagement,topo—logycalculation,clustermembermanagement,routingcalculation.Basedontheresultsanalysis,theresultshowHOLSRroutingprotocolissimple,practicalandsuperiorperformance. Keywords:Ad-hoenetworks;HOLSR;hierarchicalmutingprotocol;cluster;Linux 0引言 移动AdHoe网络“1是由一组可移动的无线节点组成的多跳无线网络。这种多跳无线网络没有基站一类的基础通信设施,依靠节点之间在无线信道上的相互感知与协调,构成网络通信环境,移动节点既是主机也是路由器。与有中心网络相比,移动AdHoe网更坚固,更耐用,而且不需要提供固定的骨干设施,用户就可以通过无线网络瓦通。因此移动AdHoe网主要应用于军事l二,以及一些紧急情况,如受灾地区的通信、边远地区和勘探等场合的通信。 l移动Adhoe网络的路由技术 在多跳和移动通信环境下,节点间的通信关系随时都可能发生变化,需要采用一定的自组织算法,及时掌握动态变化中的网络拓扑结构,为网络中的通信寻找路由。 大部分移动AdHoe网络的路由协议假设节点具有相用的处理和通信能力,即网络是同构的。对于同构的网络,路由协议根据路由发现策略可分为:主动路由协议(如optimizedlinkstateroutingo“,0LSR)和按需路由协议(如011.demanddis—taaceVOCt一,AODV)两种类型嘲。OLSR、AODV的节点都有多个接口,然而都采用了平面结构,这种方法没有考虑接口的通信能力,增加了控制开销。 然而,在大多数军事战术情况下,AdHoe无线网络是异构的,组成的移动设备的配备接口具有不同的通信能力,频带,电池寿命等。为了在异构AdHoe网络解决这一复杂问题的路由,可将网络细分为一个层次规模较小的网络,每个一级负责自己的路由嘲。在分级路由协议中,节点根据自己的地理位置进行分群,每个群由一个群首和多个普通节点组成。普通节点只知道其群内的所有信息,群首节点除了知道其群内的所有信息,还知道其它对等群的成员信息。这种方法每个节点只用维护一个比较小的路由表,减小了资源开销,缩短了路南收敛时间。 目前提出的针对异构移动Adhoe网络的分级路由协议主要有:HSR用(hierarehkalstaterouting)、LANMAR蚓(1andmarkromagprotoc01)、HOLSRI”oghieraarhicaloptimizedlinkstateroutingprotoc01)。 2HOLSR路由协议 2.1协议概述 HOLSR协议是以节点性能的高低来进行群组的划分和 收稿日期:2008-05.19:修订日期:2008.08.05。 基金项目:国家自然科学基金项目(10577007)。 作者简岔:黄娟(1982一),女,硕士研究生,研究方向为无线移动自组织网的组网与路由技术;余敬东(1968~),男,副教授,研究方向为无线移动自组网、通信信号侦察、通信中的信号处理。E-mail:live6743@,sina.coin 万方数据

路由协议有哪些

什么是路由协议? 路由器提供了异构网互联的机制,实现将一个网络的数据包发送到另一个网络。而路由就是指导IP数据包发送的路径信息。路由协议就是在路由指导IP数据包发送过程中事先约定好的规定和标准。 路由协议有哪些? 路由协议主要运行于路由器上,路由协议是用来确定到达路径的,它包括RIP,IGRP(Cisco私有协议),EIGRP(Cisco私有协议),OSPF,IS-IS,BGP。起到一个地图导航,负责找路的作用。它工作在网络层。 路由选择协议主要是运行在路由器上的协议,主要用来进行路径选择。 路由协议作为TCP/IP协议族中重要成员之一,其选路过程实现的好坏会影响整个Internet网络的效率。按应用范围的不同,路由协议可分为两类:在一个AS(Autonomous System,自治系统,指一个互连网络,就是把整个Internet划分为许多较小的网络单位,这些小的网络有权自主地决定在本系统中应采用何种路由协议)内的路由协议称为内部网关协议(interior gateway protocol),AS之间的路由协议称为外部网关协议(exterior gateway protocol)。这里网关是路由器的旧称。正在使用的内部网关路由协议有以下几种:RIP-1,RIP-2,IGRP,EIGRP,IS-IS和OSPF。其中前3种路由协议采用的是距离向量算法,IS-IS和OSPF采用的是链路状态算法,EIGRP是结合了链路状态和距离矢量型路由选择协议的Cisco私有路由协议。对于小型网络,采用基于距离向量算法的路由协议易于配置和管理,且应用较为广泛,但在面对大型网络时,不但其固有的环路问题变得更难解决,所占用的带宽也迅速增长,以至于网络无法承受。因此对于大型网络,采用链路

基于AdHoc和移动IP的无线移动网络技术分析与研究

?42? 计算机与信息计术 网络天地 基于Ad Hoc 和移动IP 的无线移动 网络技术分析与研究 许绘香 张 慧 (中州大学信息工程学院 河南 郑州 450015) 摘 要 简要介绍了Ad Hoc 和移动IP 的工作原理,探讨了一种基于Ad Hoc 和移动IP 集成的无线移动网络体系结构, 并分析了其工作过程和服务性能。 关键词 Ad Hoc 移动IP 无线移动网络 0 引言 随着互联网和移动通信技术的飞速发展,无线移动互联网(Wireless Mobile Internet)正日益受到人们的关注。它使全球网络基础设施可以实现随时、随地、无缝地接入,从根本上改变了全球通信业的面貌。目前,通过移动IP 实现Ad Hoc 接入Internet 以拓展互联网的无线应用范围,正成为无线移动网络技术的研究热点。 1 Ad Hoc 网络和移动IP 技术概述 1.1 Ad Hoc 网络概述 Ad Hoc 网络即自组网(Self Organized Network),是一种特殊的对等式网络,它使用无线通信技术,由一组带有无线收发装置的移动节点组成,网络中所有节点的地位平等,无需设置任何的中心控制节点,也被称为多跳无线网(Multihop Wireless Network )、无固定设施的网络(Infrastructureless Network),具有无中心、自组织、多跳路由、动态拓扑等特点。Ad Hoc 网络通过移动节点间的相互协作来进行网络互联,而不依赖于任何固定的网络基础设施,每个移动节点都具有报文转发能力;当一个节点需要和另一个节点通信时,它或使用直接的无线链路,或通过到目的节点的多个中间节点的转发,即经过多跳路由,从而实现网络的自动组织和运行。Ad Hoc 网络路由协议通常被分为两类:先验式(proactive)和反应式(reactive)。先验式协议通过周期性路由控制信息的交换,每个节点始终维护到网络中所有节点的路由,如DSDV 和OLSR;反应式协议在节点需要时才发现路由,并且仅维护活动路由,如AODV 和DSR。 1.2 移动IP 概述 移动 IP 是用于移动主机移动性管理的一组网络层协议,其目的是使移动中的主机在保持原IP 地址不变的条件下能保持通信,类似于移动电话系统中的漫游,可适用于各种不同类型的移动通信系统。它定义了四个功能实体:移动主机(mobile host)、通信主机(corresponding host)、家乡代理(home agent)和外地代理(foreign agent)。移动主机是一个能在子网间移动的主机,当Internet 上的通信主机向移动主机发送IP 数据包时,数据包将交付到移动主机的家乡网络, 若移动主机离开了家乡网络,数据包将通过隧道(tunnel)机制交付到外地网络,外地代理负责拆封数据包并转发到移动主机。 2 Ad Hoc 和移动IP 集成原因分析 Ad Hoc 网络有很强的独立性,但它所使用的路由算法大多数只适用于单个Ad Hoc 网络,很少涉及如何实现Ad Hoc 网络与Internet 的互联,这些因素使它难以大范围与互联网通信。 移动IP 使节点在不同的子网间切换时仍可保持正在进行的通信,它提供了一种IP 路由机制,使移动节点能够以一个永久的IP 地址连接到任何子网中,它的扩展性使其能在整个Internet 上应用。 为了达到Ad Hoc 网络中的移动主机可以在不同的Ad Hoc 网络间移动和随时接入互联网,我们利用移动IP 的可扩展及可在不同网络中漫游的特性,从而实现Ad Hoc 网络与Internet 的互联。 3 Ad Hoc 和移动IP 结合的体系结构及工作过程 近几年,许多国内外学者从事Ad Hoc 网络和移动IP 集成方面的研究,并且提出了不同的解决方案。在此我们以图1所示的简单结构模型为例来探讨Ad Hoc 和移动IP 的结合思想及工作过程。 图1 体系结构 3.1体系结构 在图1所描述的体系结构中,无线移动网络由多个Ad Hoc 网组成,每个Ad Hoc 网相当于一个子网,它们都通过相应的网关(即基站)接入Internet,每个网关需配置两块网卡:

搭建Adhoc无线网络

实训项目18搭建Ad-hoc无线对等网络【实验目的】 掌握Ad-hoc无线对等网络的基本原理。 掌握组建Ad-hoc无线对等网络基本方法。 【实验仪器和设备】 计算机3台、TP-LINK TL-WN821N 无线网卡2块。每3名同学为一组。 实验组网图如图18-1所示。 STA STA 图18-1实验组网图 【实验步骤】 Ad-hoc模式无线网络架设步骤如下: 1 ?安装无线网卡及驱动程序 如果客户端没有内置的无线网卡,则首先需要安装无线网卡TP-LINK TL-WN821N 。安装好硬件后,操作系统自动识别到新加硬件,提示安装驱动程序。若未提示,可在“控制面 板”的“系统”中的“设备管理器”,如图18-2、18-3所示。

图18-3安装无线网卡驱动( 2) 在图18-3中可以看到新设备名称,但工作不正常,是因为 没有安装网卡驱动 图18-2安装无线网卡驱动( 1 )

这时需要安装此网卡驱动程序TL-WN821N.rar 中的setup.exe。安装过程如下图18-4、图18-5、图18-6、图18-7、图18-8 所示。 图18-4无线网卡驱动程序安装(1) 图18-5无线网卡驱动程序安装(2) 图18-6无线网卡驱动程序安装(3)

图18-7无线网卡驱动程序安装(4) 图18-8无线网卡驱动程序安装(5) 此时在设备管理系中可以看到 如图 18-9 所示设备。

图18-9无线网卡安装完成 2.查看"无线连接”图标 单击桌面右下角无线网络图标,出现如图18-9所示信息。 图18-9查看无线网络3?在Win7中配置无线网络

路由器原理及路由协议

路由器原理及路由协议 本文通过阐述TCP/IP网络中路由器的基本工作原理,介绍了IP路由器的几大功能,给出了静态路由协议和动态路由协议,以及内部网关协议和外部网关协议的概念,同时简要介绍了目前最常见的RIP、OSPF、BGP和BGP-4这几种路由协议,然后描述了路由算法的设计目标和种类,着重介绍了链路状态法和距离向量法。在文章的最后,扼要讲述了新一代路由器的特征。 ——近十年来,随着计算机网络规模的不断扩大,大型互联网络(如Internet)的迅猛发展,路由技术在网络技术中已逐渐成为关键部分,路由器也随之成为最重要的网络设备。用户的需求推动着路由技术的发展和路由器的普及,人们已经不满足于仅在本地网络上共享信息,而希望最大限度地利用全球各个地区、各种类型的网络资源。而在目前的情况下,任何一个有一定规模的计算机网络(如企业网、校园网、智能大厦等),无论采用的是快速以大网技术、FDDI技术,还是ATM技术,都离不开路由器,否则就无法正常运作和管理。 1 网络互连 ——把自己的网络同其它的网络互连起来,从网络中获取更多的信息和向网络发布自己的消息,是网络互连的最主要的动力。网络的互连有多种方式,其中使用最多的是网桥互连和路由器互连。 1.1 网桥互连的网络 ——网桥工作在OSI模型中的第二层,即链路层。完成数据帧(frame)的转发,主要目的是在连接的网络间提供透明的通信。网桥的转发是依据数据帧中的源地址和目的地址来判断一个帧是否应转发和转发到哪个端口。帧中的地址称为“MAC”地址或“硬件”地址,一般就是网卡所带的地址。 ——网桥的作用是把两个或多个网络互连起来,提供透明的通信。网络上的设备看不到网桥的存在,设备之间的通信就如同在一个网上一样方便。由于网桥是在数据帧上进行转发

adhoc网络层路由协议总结

移动Ad Hoc网络层路由协议总结 描述Ad Hoc路由质量指标: 快速自适应链路变化; 达到目标节点的最少跳数路径; 传播时延; 开环; 链路质量; Ad Hoc网络中,由于通信半径的限制,网络节点之间是通过多跳数据转发机制进行数据交互的,需要路由协议完成分组转发决策。与传统路由协议相比,Ad hoc路由协议的设计面临着网络拓扑动态变化、带宽受限、信道容量变化、移动终端有限的可用资源等新的问题和挑战。 1.移动Ad Hoc网络的主动式路由协议 1.1最优化链路状态路由(OLSR)协议 协议概念 OLSR路由协议是由IETF MANET(Mobile Ad hoc NETwork)工作组为无线移动Ad Hoc网提出的一种标准化的表驱动式优化链路状态路由协议。节点之间需要周期性地交换各种控制信息,通过分布式计算来更新和建立自己的网络拓扑图,被邻节点选为多点中继站MPR(MultipointRelay)的节点需要周期性地向网络广播控制信息。控制信息中包含了把它选为MPR的那些节点的信息(称为MPR Selector),只有MPR节点被用作路由选择节点,非MPR节点不参与路由计算。OLSR还利用MPR节点有效地广播控制信息,非MPR节点不需要转发控制信息。 OLSR主要采用两种控制消息分组,HELLO分组和TC(Topology Control)分组。 HELLO 消息用于建立一个节点的邻居表,报文中可以包括邻居节点的地址以及本节点到邻居节点的延迟或开销,OLSR采用周期性地广播HELLO分组来侦听

邻居节点的状态。HELLO分组只在一跳的范围内广播,不能被转发。与HELLO消息相反,TC分组必须被广播到全网。 节点在从自己的一跳邻居节点中选择MPR时计算的原则是:节点与MPR之间必须是双向对称链路,节点所发送的分组通过MPR的中继,能够到达所有对称的两跳邻居节点,如果能够满足这一点,那么MPR就能有效地进行TC分组的转发,同时,应该使MPR的数量尽量的少。 OLSR路由协议 优缺点 WRP的优点是当节点检测到任何链路变化时便检查邻居的一致性,有助于消除环路以及加速算法收敛。缺点是由于WRP需要保存四张路由表且依赖于周期性的Hello消息,这些需要大量的存储空间和计算资源,浪费了内存和带宽。另外,WRP的可扩展性不强,不适用于大型的Ad Hoc网络。 1.节点之间需要周期性地交换各种控制信息:使接入Ad Hoc网的结点所处环境比较嘈杂; 2. TC分组必须被广播到全网。全网处于动态游走的状态,需要周期性更新TC 分组;占用带宽比较严重。

路由协议有哪些分类

●1路由协议有哪些分类? (从至少两个方面进行描述) 1)IGP和EGP 2)距离向量和链路状态型的路由协议3)有类和无类的路由协议 ●2.简单描述距离矢量型协议和链路状态型协议的区别? 1)距离矢量路由协议更新的是路由条目,链路状态路由协议更新的是拓扑 2)距离矢量路由协议发送周期性的更新、完整路由表更新,链路状态路由协议更新是非周期性的,部分的有边界的 3)距离矢量路由协议运行矢量路由协议会将,所有它知道的路由信息与邻居共享,但是只与直连邻居共享,运行链路状态路由协议的路由器只将他所直连的链路状态与邻居共享,这个邻居是指一个域内或区域内一个的所有路由器。 运行距离矢量型协议的路由器并不了解整个网络的拓扑,它们只知道自己直连的网络,和去往目的网络的吓一跳地址,而且距离矢量型协议是以条数作为选路的度量;运行链路状态型协议的路由器都有整个网络的拓扑,它们根据自己的所维持本地链路状态数据库来选择到达目的网络的最佳路径,链路状态型协议会根据链路上的时延带宽等因素算出一个开销最小的路径作为最优路径。 ●3.简单描述EIGRP协议中DUAL有限状态机的决策过程? 当运行eigrp协议的路由器失去和后继路由器的连接时,路由器首先回查找自己的可行性后继路由器,如果存在可行性后继的话就把可行性后继提升为后继路由器,若没有的话就向所有的邻居路由器发送查询,每个接受到查询的路由器会查看自己的路由表,若有一条替代路由,则向发送查询的源路由器发送这条路由的信息,若没有就继续向自己的邻居发送查询,当发送查询的源路由器收到所有邻居路由器的回复后悔重新计算以选取新的后继。 ●4.EIGRP需要维护几张表? 每张表的作用分别是什么? EIGRP能够快速收敛的关键在于什么? 邻居表:确保直接邻居之间能够双向通信,保存邻居的IP等信息 拓扑表:拓扑表中存放着前往目标地址的所有路由的 路由表:从拓扑表中选择到达目标地址的最佳路由放入路由表 eigrp能够快速收敛关键:使用扩散更新算法(DUAL) ●5.EIGRP协议有哪几种Packet类型?每种类型的Packet的作用是什么? 1)Hello packet:以组播的方式定期发送,用于建立和维护邻居关系 2)ACK(acknowledgement) packet:以单播的方式发送HELLO包,包含一个不为零的确认号,用来 更新、查询和答复数据包。 3)Update packet:当路由器收到某个邻居路由器的第一个HELLO包时,以单播传送方式发送一个包含他所知道的路由信息的更新包。当路由信息发生变化时以组播方式发送只包含变化路由信息的更新包 4)Query(查询))packet:当一条链路失效,并且在拓扑表中没有任何可行后继路由器时,路由器需要重新进行路由计算,路由器就以组播的方式向它的邻居发送一个查询包。 5)Request(请求)packet最初是打算提供给路由服务器(server)使用的,但是从来没实现过. )& Reply(应答):以单播的方式回复查询方,对查询数据包进行应答。 ●6.OSPF协议中链路状态通告有几种类型? 它们的作用分别是什么? 1)路由器LSA:由区域内所有路由器产生,并且只能在本个区域内泛洪广播。 2)网络LSA :由区域内的DR或BDR路由器产生,报文包括DR和BDR连接的路由器的链路信息。网络LSA也仅仅在产生这条网络LSA的区域内部进行泛洪。 3)网络汇总LSA :由ABR产生,可以通知本区域内的路由器通往区域外的路由信息。 4)ASBR汇总LSA :由ABR产生,但是它是一条主机路由,指向ASBR路由器地址的路由。 5)自治系统外部LSA :由ASBR产生,告诉相同自治区的路由器通往外部自治区的路径。 6)组成员LSA 7)NSSA外部LSA :由ASBR产生,几乎和LSA 5通告是相同的,但NSSA外部LSA通告仅仅在始发这个NSSA外部LSA 通告的非纯末梢区域内部进行泛洪。 ●7.OSPF协议有哪几种Packet类型? 每种类型的Packet的作用是什么? 1)hello:用于建立和维护ospf邻接关系 2)DBD数据库描述:检查链路状态数据库是否同步。

路由协议原理

第八章 第八章 路由协议原理

Network Protocol Destinati on Network Connected RIP IGRP 10.120.2.0172.16.1.0172.17.3.0Exit Interface E0S0S1被动路由协议: IP ,IP IPX X ,APPLETalk 主动路由协议: RIP ,E IGR IGRP P ,OSPF 172.17.3.0 172.16.1.0 10.120.2.0E0S0

在TCP/IP 协议栈中,Rout Routing ing ing Protocol Protocol 工作在网络层,而Rout Routed ed ed Protocol Protocol 工作在传输层或者应用层 ,他们之间的关系为:Routing Protocol 负责学习最佳路径,而Routed Protocol 根据最佳路径将来 自上层的信息封装在IP 包里传输 路由协议和被路由协议的区别

路由器是如何进行选路? ?路由器转发数据包的关键是路由表。 ?每个路由器中都保存着一张路由表,表中每条路由项都指明数据包到某子网或某主机应通过路由器的哪个物理端口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。

要实现路由要实现路由,路由器,路由器,路由器必须知道必须知道必须知道::目的地址所有可能的路由路径最佳路由路径管理路由信息172.16.1.010.120.2.0

管理距离 Administrative Distances ?管理距离主要用于不同路由协议之间的可信度。 ?可信度的范围是:0 到255 之间,它表示一条路由选择信息源的可信性值.该值越小,可信度越高.0 为最信任,255 为最不信任.

无线Adhoc网络技术

无线Adhoc网络技术 摘要: 无线Adhoc网络是随着无线通信技术的快速发展而出现的一种新型网络。文章详细介绍了无线Adhoc网络的由来、主要特征、关键技术和应用等方面,并展望了它的发展前景。 关键词: Adhoc网络;路由技术;安全问题;互联;分层自组网;多跳网 ABSTRACT: Withtherapiddevelopmentofwirelesscommunicationtechnologi es,thewirel essAdhocnetworkcomesupasanewtypeofnetwork.Thispaperdes cribestheorig in,features,keytechnologiesandapplicationsoftheAdhocnetworki ndetail ,andforecastsitsdevelopmenttrends. KEYWORDS: Adhocnetwork;Routingtechnology;Securityproblem;Interconnec

tion;Hier archicalself-organizingnetworks;Multi-hopnetwork 近几年,无线网络在支持移动性方面的发展非常迅速。按照移动通信系统是否具有基础设施,可以把移动无线网络分成两类。 第1种类型是具有基础设施的网络。移动节点借助于通信范围内最近的基站实现通信。在这样的网络里,移动节点相当于移动终端,它不具备路由功能,而只有移动交换机负责路由和交换功能。这种类型网络的典型例子有蜂窝无线系统、办公室无线局域网等。 移动无线网络的第2种类型是一种无基础设施的移动网络,也就是无线Adhoc网(见图1)。它是一种自治的无线多跳网,整个网络没有固定的基础设施,也没有固定的路由器,所有节点都是移动的,并且都能以任意方式动态地保持与其它节点的联系。在这种环境中,由于终端的无线覆盖范围的有限性,两个无法直接进行通信的用户终端可以借助于其它节点进行分组转发。每一个节点都可以说是一个路由器,它们要能完成发现和维持到其它节点路由的功能。典型例子有交互式的讲演,可以共享信息的商业会议,战场上的信息中继,以及紧急通信需要。

相关文档
最新文档