当前位置:文档之家› 链路状态路由算法

链路状态路由算法

链路状态路由算法
链路状态路由算法

路由算法

一链路状态路由算法的具体实现

(1)链路状态路由算法的原理

链路状态路由协议是目前使用最广的一类域内路由协议。它采用一种“拼图”的设计策略,即每个路由器将它到其周围邻居的链路状态向全网的其他路由器进行广播。这样,一个路由器收到从网络中其他路由器发送过来的路由信息后,它对这些链路状态进行拼装,最终生成一个全网的拓扑视图,近而可以通过最短路径算法来计算它到别的路由器的最短路径。运行链路状态路由协议的路由器, 每台路由器公在其接口的状态发生变化时,才将变化后的状态发送给其他所有路由器,每台路由器都使用收到的信息重新计算前往每个网络的最佳路径,然后将这些信息存储到自己的路由选择表中。

链路状态路由算法背后的思想非常简单,可以用5个基本步骤加以描述。

1、发现他的邻接点,并知道其网络的地址。

2、测量到各邻接点的延迟或开销。

3、构造一个分组,分组中包含所有他刚刚收到的信息。

4、将这个分组发送给其他的路由器。

5、计算出到每一个其他路由器的最短路径。例如,每个路由器运行

Dijkstra算法就可以找从它到每一个其他路由器的最短路径。

(2)程序源代码(c++语言,核心算法为迪杰斯特拉算法)

#include

#include

#define routeTable "routeTable.txt"

using namespace std;

const int MAX_NODES = 1024; //能接受的最大路由数

const int INFINITY = 100000; //权值

int dist[MAX_NODES][MAX_NODES]; //用于存放网络拓扑结构连接矩阵

int static Vnums; //总的节点(路由)数

void initDist(){ //初始化邻接矩阵

for(int i = 0; i < MAX_NODES; i ++)

for(int j = 0; j < MAX_NODES; j ++)

dist[i][j] = 0;

}

void creatRouteMap(int Vnums){ //创建网络拓扑结构的邻接矩阵,1.创建路由表函数

for(int i = 0; i < Vnums; i ++)

{

cout << "输入第" << i << "个节点\n" ;

for(int j = 0; j < Vnums; j ++)

{

cout <<"的第"<< j << "个节点的权值:" ;

cin >> dist[i][j];

}

}

}

void saveRoute(ofstream& routeTables){ //6.保存路由信息routeTables << "路由邻接矩阵为:";

routeTables << "\n";

routeTables << "**********************************"; routeTables << "\n";

for(int i = 0; i < Vnums; i ++)

{

for(int j = 0; j < Vnums; j ++)

{

routeTables<

}

routeTables << "\n";

}

}

void dijkstra(int s, int t, int path[]){ //迪杰斯特拉算法 s目的节点 t源节点

struct state{ //存放节点数据

int predecessor; //父节点

int length; //权值,存放最小权值

bool lable; //访问状态 false未被访问过,true访问过

}state[MAX_NODES];

int i,k,min,print;

struct state *p;

for(p = &state[0]; p < &state[Vnums]; p ++) //初始化节点数据

{

p->predecessor = -1;//类似存下一跳

p->length = INFINITY; //=100000

p->lable = false;

}

state[t].length = 0; //源节点的权值改为0

state[t].lable = true;

k = t;

cout << "最短路径为:" << endl;

do{ //dowhi le 先是把所有最短路径连起来

for(i = 0; i < Vnums; i ++) //找到与永久标定节点直接相连的节点,并改变其权值

{

if( (dist[k][i] != 0) && (state[i].lable == false))

{ //与源节点直接相连并且不是同一个源节点k源节点

if(state[k].length + dist[k][i] < state[i].length)

{

state[i].predecessor = k; //记录节点

cout << k << "->";

state[i].length = state[k].length + dist[k][i]; //路径长度总

}

}

}

k = 0;

min = INFINITY;

for( i = 0; i < Vnums; i ++) //找到与永久标定节点相邻的节点,并把与最小权值的相邻点改为永久标点

{

if((state[i].lable == false) && (state[i].length < min)) //找到与永久标点相邻的节点

{

min = state[i].length;

k = i;

}

}

state[k].lable = true; //新的永久标点也变为访问过

}while(k!=s); //新的永久标点是否为目的节点,不是继续循环cout << s <<"最小距离="<

}

void addRoute(){ //添加一个路由及结点信息2.增加路由char ch;

do{

cout << "添加一个路由:" << endl;

Vnums = Vnums + 1;

cout << "输入第" << Vnums - 1 << "个节点与第" ;

for(int j = 0; j < Vnums; j ++)

{

cout << j << "个节点的权值:" << endl;

cin >> dist[Vnums - 1][j]; //写入对应增加行的信息

dist[j][Vnums - 1] = dist[Vnums - 1][j]; //写入对应增加列的信息}

cout << "继续添加(y 或者 n):" << endl;

cin >> ch;

if(ch == 'n') break;

}while(ch == 'y');

}

void deleteRoute(){ //3.删除路由char ch;

int delNum;

do{

cout << "输入删除路由结点号:" << endl;

cin >> delNum;

for(int j = 0; j < Vnums; j ++)

{

dist[delNum - 1][j] = 0; //对应行的信息

dist[j][delNum - 1] = dist[delNum - 1][j]; //对应列的信息

}

cout << "继续删除(y 或者 n):" << endl;

cin >> ch;

if(ch == 'n') break;

}while(ch == 'y');

}

void changeRoute(){ //4.修改路由

int i,j;

cout << "输入要修改的结点1:" <

cin >> i;

cout << "输入要修改的结点2:" <

cin >> j;

cout << "输入修改的权值:" <

cin >> dist[i-1][j-1];

}

void displayRouteInfo(){ //7.显示路由表信息cout << "**********************************" << endl;

cout << "路由表信息:" << endl;

cout<<" ";

for(int j=0;j

cout<<"\t"<<(char)(j+65); //显示ABC..的对应数字为012..

cout<<" (目的节点)\n";

for(int i = 0; i < Vnums; i ++) {

int c=i+65;

cout<<(char)c<<"\t";

for(int j = 0; j < Vnums; j ++) {

cout << dist[i][j] << "\t";

}

cout << "\n";

}

}

int main(){

int desNode,rouNode;

int path[MAX_NODES];

int change;

char ch;

ofstream routeTables;

//初始化权值矩阵

initDist();

cout << "输入路由总节点数:" << endl;

cin >> Vnums;

do{

//主菜单界面

cout << "\t" <<"=============================" << endl; cout << "\t" <<"1.创建路由表" << endl;

cout << "\t" <<"2.增加路由" << endl;

cout << "\t" <<"3.删除路由" << endl;

cout << "\t" <<"4.修改路由" << endl;

cout << "\t" <<"5.找两个路由间的最短路径" << endl;

cout << "\t" <<"6.保存路由表到文件" << endl;

cout << "\t" <<"7.显示路由表信息" << endl;

cout << "\t" <<"8.退出" << endl;

cout << "\t" <<"=============================" << endl;

// cout << "输入路由总节点数:" << endl;

// cin >> Vnums;

cout << "选择操作(1-8):" << endl;

cin >> change;

switch(change)

{

case 1: creatRouteMap(Vnums); system("pause");

system("cls");break;

case 2: addRoute(); system("pause"); system("cls"); break;

case 3: deleteRoute(); system("pause"); system("cls"); break;

case 4: changeRoute(); system("pause"); system("cls");break;

case 5: cout << "输入目标节点和源节点:" << endl;

cin >> desNode;

cin >> rouNode;

dijkstra(desNode,rouNode,path); //求最短路径

system("pause");

system("cls");

break;

case 6:routeTables.open(routeTable);

if(routeTables==NULL)

{

cout << "打开文件夹错误:" << endl;

getchar();

exit(0);

}

//保存文件

saveRoute(routeTables);

routeTables.close();

system("cls");

break;

case 7: displayRouteInfo();system("pause");system("cls"); break; case 8: return 0;

default: system("cls"); break;

}

cout << "返回选择菜单(y 或者 n):" << endl; cin >> ch;

if(ch == 'n') break;

}while(ch == 'y');

system("pause");

return 0;

}

(3)网络拓扑结构

(4)实验运行截图

(5)分析与综述

本实验用手动输入方式来代替路由之间的分组发送消息,并可以用增加,删除,修改来模拟现实的情况。其核心是最短路径算法,本实验用的是的迪杰斯特拉算法。3-3-2-2-4-1-0表示算法的计算过程并不是实际的具体跳法。

优点:比距离矢量算法收敛速度快,没有路由环路。缺点:对cpu和内存要求高,占用网络资源(状态信息交换使用泛洪方式)。当网络中的路由较多时,每个路由计算最短路径的时间将大大增加,从而收敛变慢。适用网络:大型网络。

二关于几种核心最短路由算法想法

1、路由收到的数据是以一个数组方式存放的,能否通过矩阵变换等数学方法对数据进行变化,得到一个最短路径的矩阵。这样可以大幅度提高算法的速度,尤其在大型网络中。

2、评估每次的的决策的价值, 决定先尝试哪一种方案.

路由算法分类比较

路由算法是路由协议必须高效地提供其功能,尽量减少软件和应用的开销。 路由器使用路由算法来找到到达目的地的最佳路由。 关于路由器如何收集网络的结构信息以及对之进行分析来确定最佳路由,有两种主要的路由算法:总体式路由算法和分散式路由算法。采用分散式路由算法时,每个路由器只有与它直接相连的路由器的信息——而没有网络中的每个路由器的信息。这些算法也被称为DV(距离向量)算法。采用总体式路由算法时,每个路由器都拥有网络中所有其他路由器的全部信息以及网络的流量状态。这些算法也被称为LS(链路状态)算法。 收敛是在最佳路径的判断上所有路由器达到一致的过程。当某个网络事件引起路由可用或不可用时,路由器就发出更新信息。路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。收敛慢的路由算法会造成路径循环或网络中断。 路由算法的核心是路由选择算法,设计路由算法时要考虑的技术要素有: 1、选择最短路由还是最佳路由; 2、通信子网是采用虚电路操作方式还是采用数据报的操作方式; 3、采用分布式路由算法还是采用集中式路由算法; 4、考虑关于网络拓扑、流量和延迟等网络信息的来源; 5、确定采用静态路由还是动态路由。 各路由算法的区别点包括:静态与动态、单路径与多路径、平坦与分层、主机智能与路由器智能、域内与域间、链接状态与距离向量。 链接状态算法(也叫做短路径优先算法)把路由信息散布到网络的每个节点,不过每个路由器只发送路由表中描述其自己链接状态的部分。 距离向量算法(也叫做 Bellman-Ford算法)中每个路由器发送路由表的全部或部分,但只发给其邻居。 也就是说,链接状态算法到处发送较少的更新信息,而距离向量算法只向相邻的路由器发送较多的更新信息。 metric是路由算法用以确定到达目的地的最佳路径的计量标准,如路径长度。

路由算法分类

路由算法及分类 路由算法及分类: 1、非自适应算法,静态路由算法 不能根据网络流量和拓扑结构的变化更新路由表,使用静态路由表,也称为固定式路由选择算法。 特点:简单,开销少;灵活性差。 2、自适应算法,动态路由算法 可根据网络流量和拓扑结构的变化更新路由表。 特点:开销大;健壮性和灵活性好。 3、最优化原则(optimality principle) 如果路由器J 在路由器I 到K 的最优路由上,那么从J 到K 的最优路由会落在同一路由上。 4、汇集树(sink tree) 从所有的源结点到一个给定的目的结点的最优路由的集合形成了一个以目的结点为根的树,称为汇集树; 路由算法的目的是找出并使用汇集树。 几种典型的路由选择算法: 1、最短路径路由算法(Shortest Path Routing) 1)基本思想 构建子网的拓扑图,图中的每个结点代表一个路由器,每条弧代表一条通信线路。为了选择两个路由器间的路由,算法在图中找出最短路径。

2)测量路径长度的方法 结点数量 地理距离 传输延迟 距离、信道带宽等参数的加权函数 3)Dijkstra算法 每个结点用从源结点沿已知最佳路径到本结点的距离来标注,标注分为临时性标注和永久性标注; 初始时,所有结点都为临时性标注,标注为无穷大; 将源结点标注为0,且为永久性标注,并令其为工作结点; 检查与工作结点相邻的临时性结点,若该结点到工作结点的距离与工作结点的标注之和小于该结点的标注,则用新计算得到的和重新标注该结点; 在整个图中查找具有最小值的临时性标注结点,将其变为永久性结点,并成为下一轮检查的工作结点; 重复第四、五步,直到目的结点成为工作结点; 2、洪泛及选择洪泛算法 1)洪泛算法(Flooding) 属于静态路由算法 a)基本思想 把收到的每一个包,向除了该包到来的线路外的所有输出线路发送。

路由器原理及常用的路由协议、路由算法

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

同或相似结构的数据帧),如以太网之间、以太网与令牌环(token ring)之间的互连,对于不同类型的网络(数据帧结构不同),如以太网与X.25之间,网桥就无能为力了。 网桥扩大了网络的规模,提高了网络的性能,给网络应用带来了方便,在以前的网络中,网桥的应用较为广泛。但网桥互连也带来了不少问题:一个是广播风暴,网桥不阻挡网络中广播消息,当网络的规模较大时(几个网桥,多个以太网段),有可能引起广播风暴(broadcasting storm),导致整个网络全被广播信息充满,直至完全瘫痪。第二个问题是,当与外部网络互连时,网桥会把内部和外部网络合二为一,成为一个网,双方都自动向对方完全开放自己的网络资源。这种互连方式在与外部网络互连时显然是难以接受的。问题的主要根源是网桥只是最大限度地把网络沟通,而不管传送的信息是什么。 1.2 路由器互连网络 路由器互连与网络的协议有关,我们讨论限于TCP/IP网络的情况。 路由器工作在OSI模型中的第三层,即网络层。路由器利用网络层定义的“逻辑”上的网络地址(即IP地址)来区别不同的网络,实现网络的互连和隔离,保持各个网络的独立性。路由器不转发广播消息,而把广播消息限制在各自的网络内部。发送到其他网络的数据茵先被送到路由器,再由路由器转发出去。 IP路由器只转发IP分组,把其余的部分挡在网内(包括广播),从而保持各个网络具有相对的独立性,这样可以组成具有许多网络(子网)互连的大型的网络。由于是在网络层的互连,路由器可方便地连接不同类型的网络,只要网络层运行的是IP协议,通过路由器就可互连起来。 网络中的设备用它们的网络地址(TCP/IP网络中为IP地址)互相通信。IP地址是与硬件地址无关的“逻辑”地址。路由器只根据IP地址来转发数据。IP地址的结构有两部分,一部分定义网络号,另一部分定义网

对路由算法讨论

对路由算法的讨论 电气学院自动化1313 金莉萍131001260305 摘要:路由算法是提高路由协议功能,尽量减少路由时所带来开销的算法。路由算法在路由协议中起着至关重要的作用,采用何种算法往往决定了最终寻径结果。本文就对各路由算法在不同模型下,综合对比它们路径选择的差异以展开研究讨论。 关键词:路由算法差异不同模式研究讨论 随着科学技术的飞速发展,不仅传统业务流量大大增加,而且出现了许多新业务,如语音、数据和多媒体应用等对网络传输质量的要求差别很大,关于IP网络相关问题变得日益尖锐,特别是宽带业务,对网络性能加转发速度、流量控制以及网络的可扩展性等提出了较高的要求、随着主干网链路传输速度的不断提高,IP网络中节点上的包转发成了网络的瓶颈,在不断地需求下,人们提出了新的高效的路由算法,这种算法是通过提高网络的调节和控制功能使流量分布更加合理,以达到尽可能减少网络阻塞、最小的网络代价、分布的网络负载等目标。路由算法,又名选路算法,可以根据多个特性来加以区分。实现路由算法的软件必须运行在物理资源有限的计算机上时高效尤其重要。路由算法必须健壮,即在出现不正常或不可预见事件的情况下必须仍能正常处理,例如硬件故障、高负载和不正确的实现。因为路由器位于网络的连接点,当它们失效时会产生重大的问题。最好的路由算法通常是那些经过了时间考验,证实在各种网络条件下都很稳定的算法。 就我看来,一个理想的路由算法应该在计算上应简单。路由选择的计算不应使网络通信量增加太多的额外开销。 算法应具有稳定性。在网络通信量和网络拓扑结构相对稳定的情况下,路由算法应收敛于一个可以接受的解,而不应使得出的路由不停的变化。 算法必须是正确的和完整的。这里,“正确”的含义是指沿着各路由表所指引的路由,分组一定能够最终到达目的网络和目的主机。 算法应能适应通信量和网络拓扑的变化,这就是说要有自适应性。当网络中的通信量发生变化时,算法能自适应的改变路由以均衡个链路的负载。等某个或某些节点、链路发生故障不能工作,或者修理好了再投入运行时,算法也能及时的改变路由。有时称这种自适应性为“稳健性”。 算法应是最佳的。路由选择算法应当能够找出最好的路由,使得分组平均延时最小而网络的吞吐量最大。我们希望得到“最佳”的算法,但这并不是最重要的。对于某些网络,网络的可靠性有时要比最小的分组平均延时或最大吞吐量更加重要。因此,所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。 一个实际的路由选择算法,应尽可能接近于理想算法。在不同的应用条件下对以上提出的六个方面也可有不同的侧重。 所以,路由是个非常复杂的问题,因为它是网络中的所有结点共同协调工作的结果。 路由算法应是公平的。路由选择算法应对所有用户(除了少数优先级高的用户)都是平等的。例如,若仅仅使某一对用户的端到端时延为最小,但却不考虑其他的广大用户,这就明显的不符合公平性的要求。 路由算法的核心是路由选择算法,常见的路由选择算法有最短路径法、扩散法、基于流量的路由选择、距离向量路由选择、链路状态路由选择、分级路由选择、移动主机的路由选择、组播路由选择、广播路由选择。 这种算法是个非常复杂的问题,因为它是网络中的所有节点共同协调工作的结果。其次,路由选择的环境往往是不断变化的,而这种变化有时无法事先知道,例如,网络中出现了某些故障。此外,当网络发生拥塞时,就特别需要有能缓解这种拥塞的路由选择策略,但恰好在这种条件下,很难从网络中的各结点获得所需的路由选择信息。

无线传感器网络中AODVjr路由算法改进-

无线传感器网络中AODVjr路由算法改进* 摘要:目前无线传感器网络主要采用zigbee协议,而zigbee 协议中aodvjr路由算法查找路由时容易引起广播风暴。根据aodvjr 算法中路由请求命令帧结构和路由应答命令帧结构的特点,研究出一种改进的aodvjr路由算法。改进算法中通过命令帧结构中的命令选项保留字,取保留字第0位控制命令帧传输的方向性,该位为1表示向该节点的子节点方向传输,该位为0表示目的地不在该节点的子节点范围内。利用omnet++4.1进行的仿真实验结果表明,改进的aodvjr路由算法能有效减少通信量,降低跳数,节约网络的整体能量,同时提高了网络的传输效率。 关键词: zigbee; aodvjr;广播风暴; omnet 中图分类号:tp393 文献标志码:a 文章编号:1006-8228(2013)01-09-03 improvement of aodvjr routing algorithm in wireless sensor network zou guoxia, tang jianqing (guilin university of aerospace technology, guilin,guangxi 541004, china) abstract: at present, zigbee protocol is mainly applied in wireless sensor network. however, it is easier to arouse a broadcast storm when using the aodvjr routing algorithm.

经典路由算法

经典路由算法 一、先验式路由协议(DSDV) 先验式路由协议是一种基于表格的路由协议。在这种协议中,每个节点维护一张或多张表格,这些表格包含到达网络中其它所有节点的路由信息。当检测到网络拓扑结构发生变化时,节点在网络中发送路由更新信息。收到更新信息的节点更新自己的表格,以维护一致的、及时的、准确的路由信息。 不同的先验式路由协议的区别在于拓扑更新信息在网络中传输的方式和需要存储的表的类型。先验式路由协议不断的检测网络拓扑和链路质量的变化,根据变化更新路由表,所以路由表可以准确地反映网络的拓扑结构。源节点一旦需要发送报文,可以立即得到到达目的节点的路由。 (DSDV、OLSR路由协议等很多普通的因特网路由协议)它们查找路由是不依赖于路径上的节点是否要发包,而是每个节点维护一张包含到达其它节点的路由信息的路由表。节点间通过周期性的交换路由信息来不断更新自身的路由表,以便能够及时的反映网络拓扑结构和变化,以维护一致的、及时的、准确的路由信息。

DSDV:目的节点序列距离矢量协议(待补充) 可以解决路由成环问题,每一个节点维持一个到其它节点的路由表,表的内容为路由的“下一跳”节点。 1)给每条路径增加了一个序列号码 2)每个目的节点会定期广播一个单调递增的偶数序列号号码 3)当一个节点发现它到某个目的节点的路径断开时,它把到这个节点的距离 设为无穷大。并且将这条路径的序列号加1(此时为奇数),然后向网络中 广播这个更新包。当这条路径修复时,它又将序列号加1然后广播出去。 换另一种方式来说,每个节点都保持着一张路由表,路由表中的每一项记录了 它到目的节点的距离和序列号,也就是(s,d)。我们假设有一目的节点为D, 当以下任何一情况发生时,都会发送更新: 1)D定期将自己的序列号加2并广播出去,即(S,0) 2)如果节点X要通过Y到达节点D,当X和Y之间的连接断开后,X将到D的路径的序列号加1,同时将路径值设为∞,然后将信息发送给邻居。 参考资料:https://www.doczj.com/doc/835045427.html,/candycat1992/article/details/8100146CSDN博客DSDV协议 DSDV创新之处是为每一条路由设置一个序列号,序列号大的路由为优选路由,序列号相同时,跳数少的路由为优选路由。正常情况下,节点广播的序列号是单调递增的偶数,当节点B发现到节点D的路由(路由序列号为s)中断后,节点B 就广播一个路由信息,告知该路由的序列号变为s+l,并把跳数设置为无穷大,这样,任何一个通过B发送信息的节点A的路由表中就包括一个无穷大的距离,这一过程直到A收到一个到达D的有效路由(路由序列号为s+1-1)为止。 在此方案中,网络内所有的移动终端都建立一个路由表,包括所有的目的节点到达各个目标节点的跳跃次数(或标识距离矢量的路径矩阵)。每个路由记录都有一个由目标节点设定的序列号。序列号使移动终端可以区分当前有效路由路径和已过时的路由路径。路由表周期性地做全网更新以维护全网的通信有效性。通常,为了减少由于路由表更新而产生的大量路由信息传递,减少网络路由开销,可以采用两种路由更新方式。 1)第一种是全清除方式: 即通过多个网络协议数据单元将路由更新信息在全网中传输。如果网络内终端出现移动,则产生的新路由分组信息不定期的传达至网络内所有终端。 2)第二种是部分更新方式: 或称为增量更新方式,即在最后一次全清除传输后,只传递那些涉及变化了的路

车载网络概述及相关路由算法分析

车载网络综述及相关路由算法分析 Overview of V ANET and analysis of relevant routing algorithm 软网1301 王建帮 201192181 软网1301 张凯源 1车载网络综述 1.1相关概念 随着相关技术的发展,越来越多的无线设备开始被应用在汽车上,如远程钥匙、PDAs、 智能手机等,车载网络(英文术语为Vehicular Ad hoc Network,即VANET)的概念因而被 提出。在Vehicular ad hoc networks(VANETS):status, results, and challenges一文中,作者从 以下四个方面对VANET作出了较为全面的阐述: 1)Intelligent transportation systems (ITSs) VANET中节点可分为vehicles和Roadside Units(RSUs), 它们各自都有接收,存储,转发数据 以及路由的功能。两者区别在于,vehicles代表着移动的车辆,其位置是不断变化的,而 RSUs则是固定在路边的节点。 Fig. 1 Inter-vehicle communication

Fig. 2 Vehicle-to-roadside communication Fig. 3 Routing-based communication 由于实际应用的需要,在ITSs中存在三种可能的通信结构(communication configure-tion):inter-vehicle, vehicle-to-roadside, and routing-based communication。这三者的实现都依赖于有关周围环境的精确且即时的信息,而要获取这样的信息,则需要精确的定位系统(如Bluetooth, Ultra-wide Band, ZigBee等)以及智能的通信协议(如GPS, DGPS)来提供支持。 2)Inter-vehicle communication The inter-vehicle communication configuration (Fig. 1) uses multi-hop multicast/broadcast to transmit traffic related in- formation over multiple hops to a group of receivers. 3)Vehicle-to-roadside communication The vehicle-to-roadside communication configuration (Fig. 2) represents a single hop broadcast where the road- side unit sends a broadcast message to all equipped vehicles in the vicinity. 4)Routing-based communication

关于几种路由算法的比较

第26卷第6期 2008年6月 河南科学HENANSCIENCEVol.26No.6Jun.2008 收稿日期:2008-01-07 基金项目:郑州市技术研究与开发项目(074SCCG38111) 作者简介:曹 敏(1970-),男,山东曹县人,工程师,硕士,主要从事网络技术研究苏玉(1968-),女,河南郑州人,副教授,主要从事网络技术及数据库方向研究. 文章编号:1004-3918(2008)06-0691-04关于几种路由算法的比较 曹敏,苏玉 (中州大学信息工程学院,郑州450044) 摘要:通过几种路由算法在静态和动态的不同模型下的仿真实现,综合对比它们在不同模式下路径选择的差异, 从中选出目前解决网络瓶颈的较理想的流量控制算法. 关键词:实现;路由算法;比较 中图分类号:TN915.01文献标识码:A 近年来Internet不断速度发展,不仅传统业务流量大大增加,而且出现了许多新业务(如语音、数据和多媒体应用等)对网络传输质量的要求差别很大,如果ISP依旧基于传统路由器发展大规模的IP网络,相关问题(如路由器转发部件的软件操作,构造高速路由器组件的开销,传统路由寻径机制在传输时难以预计的网络性能,网络无法提供针对特定业务的QoS等)将变得日益尖锐[1].特别是宽带业务,对网络性能加转发速度、流量控制以及网络的可扩展性等提出了较高的要求、随着主干网链路传输速度的不断提高,IP网络中节点上的包转发成了网络的瓶颈[2].除了开发使用高速ASIC的路由器或采用新的转发模型,人们还提出了新的高效算法,如最小干涉路由算法、流量工程的约束路由算法等.这些算法都是通过提高网络的调节和控制功能使流量分布更加合理,以达到尽可能减少网络阻塞、最小的网络代价(cost)、分布的网络负载等目标[3]. 通过模拟仿真研究几种路由的算法在路径选择上的差异,从中比较它们的不同状态下的优缺点,评估出目前较为理想流量控制算法.这几种算法包括最小干涉路由算法(MinimumInterferenceRoutingAlgorithm,MIRA)、最宽最短路径算法(Widest-ShortestPath,WSP)、最小临界K最短路由算法(LeastCriticalKShortestRoutingAlgorithm,LCKS)和流量工程的的约束路由算法(TrafficEngineeringBandwidthConstrainedRoutingAlgorithm,TE-B). 需要说明的是:文中选路时考虑的QoS约束条件仅为带宽要求,这是由于其他QoS要求(如时延、丢包率等),可以转化为等效带宽的形式. 1几种路由算法 1.1最小干扰路由算法 算法是基于控制的约束路由算法寻址请求根据“最少的干扰”概念,以便网络能接受更多新的请求[3].首先,为了满足所需带宽要求,要检查在每个网络上链路残余的带宽.可利用的带宽比所需的带宽小的链路将被剔出,所有能满足所需带宽的链接将作为候选链路被保留在一个链路集中.接着,优化网络的链路,这种路径选择算法的宗旨是在源和目的节点选择受其它链路流量干扰影响最少链路.通过将链路关键度映射为链路权重,然后用Dijkstra算法实现干扰的最小化.1.2最宽最短路径算法 这是最短的路径算法一种改进算法[4].首先它检查可利用的带宽确定是否能满足新的寻址请求,还有当有一个以上最短路径存在在源和目的节点之间时,根据链接花费,算法会选择可利用带宽最大的链路,而不是像传统最短路径算法任意选择其中的一个. 1.3最小关键链路k最短路由算法 这是对最宽最短路径算法的一种改进算法[5].这种算法不仅能发现SD之间具有相同花费的多个最短

10种常用典型算法

什么是算法? 简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。(来源:homas H. Cormen,Chales E. Leiserson《算法导论第3版》) 可以这样理解,算法是用来解决特定问题的一系列步骤(不仅计算机需要算法,我们在日常生活中也在使用算法)。算法必须具备如下3个重要特性: [1]有穷性。执行有限步骤后,算法必须中止。 [2]确切性。算法的每个步骤都必须确切定义。 [3]可行性。特定算法须可以在特定的时间内解决特定问题, 其实,算法虽然广泛应用在计算机领域,但却完全源自数学。实际上,最早的数学算法可追溯到公元前1600年-Babylonians有关求因式分解和平方根的算法。 那么又是哪10个计算机算法造就了我们今天的生活呢?请看下面的表单,排名不分先后: 1. 归并排序(MERGE SORT),快速排序(QUICK SORT)和堆积排序(HEAP SORT) 哪个排序算法效率最高?这要看情况。这也就是我把这3种算法放在一起讲的原因,可能你更常用其中一种,不过它们各有千秋。 归并排序算法,是目前为止最重要的算法之一,是分治法的一个典型应用,由数学家John von Neumann于1945年发明。 快速排序算法,结合了集合划分算法和分治算法,不是很稳定,但在处理随机列阵(AM-based arrays)时效率相当高。 堆积排序,采用优先伫列机制,减少排序时的搜索时间,同样不是很稳定。 与早期的排序算法相比(如冒泡算法),这些算法将排序算法提上了一个大台阶。也多亏了这些算法,才有今天的数据发掘,人工智能,链接分析,以及大部分网页计算工具。 2. 傅立叶变换和快速傅立叶变换 这两种算法简单,但却相当强大,整个数字世界都离不开它们,其功能是实现时间域函数与频率域函数之间的相互转化。能看到这篇文章,也是托这些算法的福。 因特网,WIFI,智能机,座机,电脑,路由器,卫星等几乎所有与计算机相关的设备都或多或少与它们有关。不会这两种算法,你根本不可能拿到电子,计算机或者通信工程学位。(USA) 3.代克思托演算法(Dijkstra‘s algorithm)

距离矢量协议和链路状态协议的区别

距离矢量协议和链路状态协议的区别 一.什么是距离向量路由协议以及什么是链接状态路由协议? (1.)这类协议使用贝尔曼-福特算法(Bellman-Ford)计算路径。在距离-矢量路由协议中,每个路由器并不了解整个网络的拓扑信息。它们只是向其它路由器通告自己的距离、也从其它路由器那里收到类似的通告。(如果在90秒内没有收到相邻站点发送的路由选择表更新,它才认为相邻站点不可达。每隔30秒,距离向量路由协议就要向相邻站点发送整个路由选择表,使相邻站点的路由选择表得到更新。这样,它就能从别的站点(直接相连的或其他方式连接的)收集一个网络的列表,以便进行路由选择。距离向量路由协议使用跳数作为度量值,来计算到达目的地要经过的路由器数。) 每个路由器都通过这种路由通告来传播它的路由表。在之后的通告周期中,各路由器仅通告其路由表的变更。该过程持续至所有路由器的路由表都收敛至一稳定状态为止。 这类协议具有收敛缓慢的缺点,然而,它们通常容易处理且非常适合小型网络。距离-矢量路由协议的一些例子包括:路由信息协议(RIP)内部网关路由协议(IGRP) (2.)链接状态路由协议更适合大型网络,但由于它的复杂性,使得路由器需要更多的C P U 资源。 在链路状态路由协议中,每个节点都知晓整个网络的拓扑信息。各节点使用自己了解的网络拓扑情况来各自独立地对网络中每个可能的目的地址计算出其最佳的转发地址(下一跳)。所有最佳转发地址汇集到一起构成该节点的完整路由表。 与距离-矢量路由协议使用的那种每个节点与其相邻节点分享自己的路由表的工作方式不同,链路状态路由协议的工作方式是节点间仅传播用于构造网络连通图所需的信息。最初创建这类协议就是为了解决距离-矢量路由协议收敛缓慢的缺点,然而,为此链路状态路由协议会消耗大量的内存与处理器能力。 (它能够在更短的时间内发现已经断了的链路或新连接的路由器,使得协议的会聚时间比距离向量路由协议更短。通常,在1 0秒钟之内没有收到邻站的H E L LO报文,它就认为邻站已不可达。一个链接状态路由器向它的邻站发送更新报文,通知它所知道的所有链路。它确定最优路径的度量值是一个数值代价,这个代价的值一般由链路的带宽决定。具有最小代价的链路被认为是最优的。在最短路径优先算法中,最大可能代价的值几乎可以是无限的。) 如果网络没有发生任何变化,路由器只要周期性地将没有更新的路由选择表进行刷新就可以了(周期的长短可以从3 0分钟到2个小时)。 链路状态路由协议的例子有:开放式最短路径优先协议(OSPF),中间系统到中间系统路由交换协议(IS-IS) 二.具体理解链路状态和距离矢量路由协议 距离矢量(DV)是“传说的路由”,A发路由信息给B,B加上自己的度量值又发给C,路由表里的条目是听来的,虽说“兼听则明,偏信则暗”,但是选出最优路径的同时会引发环路问题,当然,DV协议也使用水平分割,毒性逆转,触发更新等特性来避免,无奈的是,

分布式路由算法分析与设计

一、路由器简介 (1).基本概念 路由器是工作在网络层上,可以连接不同类型的网络,能够选择数据传送路径并对数据进行转发的网络设备。路由器工作的目的就是选择最佳路径,把数据传递到目的地。 (2).路由表 路由器在接收到数据时,要对其传输路径进行选择。为了实现这一目标,路由器需要维护一个称为“路由表”的数据结构。概括来讲,路由表就是包含若干条目、供路由器选路时查询数据包传输路径的表项。 (3).选路策略和选路机制 一般来说,路由器要实现数据转发的功能,至少需要完成两方面的工作: a)根据数据包的目的地址和网络的拓扑结构选择一条最佳路径,把对应不同目的地址的最 佳路径存放在路由表中(找最佳路径的过程就相当于更新路由表的过程); b)搜索路由表,决定向哪个接口转发数据,并执行相应的操作。 在上面的两方面工作中,前者是选路策略(Routing policy, 也称为路由选择策略)问题,而后者是选路机制(Routing mechanism, 也称为路由选择机制)问题。 选路策略的实质就是如何确定数据传送的最佳路径,它是通过建立并维护路由表开实现的。选路策略的不同,从本质上讲就是建立和维护路由表的方式不同;选路机制实际上就是如何查找路由表,并根据查表的结果把数据转发出去。 (4).自治系统和路由域 由于Internet规模太大,分布范围太广,所以所有路由器的路由表中对应每一个目的网络都有一个条目是不可能的,同样,也不可能采用一个全局的路由算法或协议。因此,Internet 将整个网络划分为若干个相对自治的局部系统,即自治系统(Autonomous System, AS)。自治系统可以定义为同一机构下管理的路由器和网络的集合。 世界各地的自治系统都通过自己的边界路由器连接到Internet的核心网上。一般来说,一个自治系统可以配置一个或多个边界路由器,自治系统内部的路由器或者网络通过边界路由器与其他自治系统或者Internet核心网进行通信。

路由算法介绍

路由算法介绍 网络层的作用:1、路由选择 2、网络互连 3、拥塞控制 4、为上层提供服务 网络层的主要功能是将分组从源机器路由到目标机器。完成路由选择的路由算法是网络层设计的最主要内容。 路由算法:它负责确定一个进来的分组应该被传送到哪一条输出线路上。 如果是数据报子网,将在每一个分组到达时作此决定 如果是虚电路子网,是在虚电路建立时决定,该连接上所有分组都将沿此线路传输 路由算法设计必须考虑的问题:正确性简单性健壮性稳定性公平性最优性路由算法的原则:按照某种指标(传输延迟,所经过的站点数目等)找到一条从源节点到目标节点的较好路径。 静态算法:不会根据当前测量或者估计的流量和拓扑结构,来调整它们的路由决策,所有的路由选择是预先在离线情况下计算好的,在网络启动的时候被下载到路由器中。 1、最短路径路由:

如图所示,图中的每个节点代表一台路由器,每条弧代表一条通信线路,线路上的数字是它的开销。现在我们想找到从A到D的最短路径。过程: (1)节点A标记为永久节点,依次检查每一个与A相邻的节点,并检查它们与A之间的距离。 (2)如果新的标记距离小于该节点原来的标记,说明找到了一条更短路径,该节点需要重新标记,作为暂时性标记 (3)检查整个图中所有有暂时性标记的节点,使其中具有最小标记的那个节点成为永久节点,并且作为下一个工作节点。 (4)重复上述过程,直到没有新的永久节点为止。 如下图所示 2、扩散法:每一个进来的分组将被发送到除了它进来的那条线路之外的每一条输出线路上。 产生的问题:会产生大量的重复分组。

解决办法: 在数据包头设一个计数器初值,每经过一个节点自动减1,计数值 为0 时,丢弃该数据包 在每个节点上建立登记表,则数据包再次经过时丢弃 缺点:重复数据包多,浪费带宽 优点:可靠性高,可用于并发数据库更新。极好的健壮性,可用于军事应用。常作为衡量标准,评价其它路由算法 现代计算机网络通常使用动态的路由算法(自适应算法),而不是上面介绍的静态路由算法,因为静态路由算法不会考虑到网络的当前负载情况。 自适应算法:随拓扑结构和流量的变化改变它们的路由决策,又称为动态路由算法。 1、 距离矢量路由:每个路由器维护一张表(即一个矢量),表中列出了当前抑制的到每个目标的最佳距离,以及所使用的线路。通过邻居之间互相交换信息,路由器不断更新它们内部的表。 举例: B A E F D C 2 3 7 6 1 8 5 4 延迟信息B

链路状态路由协议

链路状态路由协议 百科名片 链路状态路由选择协议又称为最短路径优先协议,它基于Edsger Dijkstra的最短路径优先(SPF)算法。它比距离矢量路由协议复杂得多,但基本功能和配置却很简单,甚至算法也容易理解。路由器的链路状态的信息称为链路状态,包括:接口的IP地址和子网掩码、网络类型(如以太网链路或串行点对点链路)、该链路的开销、该链路上的所有的相邻路由器。 链路状态路由协议 链路状态路由协议是层次式的,网络中的路由器并不向邻居传递“路由项”,而是通告给邻居一些链路状态。与距离矢量路由协议相比,链路状态协议对路由的计算方法有本质的差别。距离矢量协议是平面式的,所有的路由学习完全依靠邻居,交换的是路由项。链路状态协议只是通告给邻居一些链路状态。运行该路由协议的路由器不是简单地从相邻的路由器学习路由,而是把路由器分成区域,收集区域的所有的路由器的链路状态信息,根据状态信息生成网络拓扑结构,每一个路由器再根据拓扑结构计算出路由。 编辑本段链路状态的工作过程 1、了解直连网络 每台路由器了解其自身的链路(即与其直连的网络)。这通过检测哪些接口处于工作状态(包括第3层地址)来完成。对于链路状态路由协议来说,直连链路就是路由器上的一个接口,与距离矢量协议和静态路由一样,链路状态路由协议也需要下列条件才能了解直连链路:正确配置了接口IP地址和子网掩码并激活接口,并将接口包括在一条network 语句中。 2、向邻居发送Hello数据包 每台路由器负责“问候”直连网络中的相邻路由器。与EIGRP路由器相似,链路状态路由器通过直连网络中的其他链路状态路由器互换Hello数据包来达到此目的。路由器使用Hello协议来发现其链路上的所有邻居,形成一种邻接关系,这里的邻居是指启用了相同的链路状态路由协议的其他任何路由器。这些小型Hello数据包持续在两个邻接的邻居之间互换,以此实现“保持激活”功能来监控邻居的状态。如果路由器不再收到某邻居的Hello 数据包,则认为该邻居已无法到达,该邻接关系破裂。 3、建立链路状态数据包 每台路由器创建一个链路状态数据包(LSP),其中包含与该路由器直连的每条链路的状态。这通过记录每个邻居的所有相关信息,包括邻居ID、链路类型和带宽来完成。一旦建立了邻接关系,即可创建LSP,并仅向建立邻接关系的路由器发送LSP。LSP中包含与该链路相关的链路状态信息、序列号、过期信息。 4、将链路状态数据包泛洪给邻居 每台路由器将LSP泛洪到所有邻居,然后邻居将收到的所有LSP存储到数据库中。接着,各个邻居将LSP泛洪给自己的邻居,直到区域中的所有路由器均收到那些LSP为止。每台路由器会在本地数据库中存储邻居发来的LSP的副本。路由器将其链路状态信息泛洪到路由区域内的其他所有链路状态路由器,它一旦收到来自邻居的LSP,不经过中间计算,立即将这个LSP从除接收该LSP的接口以外的所有接口发出,此过程在整个路由区域内的所有路由器上形成LSP的泛洪效应。距离矢量路由协议则不同,它必须首先运行贝尔曼-福特算法来处理路由更新,然后才将它们发送给其他路由器;而链路状态路由协议则在泛洪完成后再计算SPF算法,因此达到收敛状态的速度比距离矢量路由协议快得多。LSP在路由器初始启动期间、或路由协议过程启动期间、或在每次拓扑发生更改(包括链路接通或断开)时、或是邻接关系建立、破裂时发送,并不需要定期发送。

ZigBee路由算法分析培训资料

Z i g B e e路由算法分析

摘要基于IEEE802.15.4标准的ZigBee网络是一种具有强大组网能力的新型无线个域网,其中的路由算法是研发工作的重点。本文介绍了IEEE802.15.4标准及ZigBee规范的协议模型,重点研究了ZigBee协议网络层的路由算法,分析了Tree路由及Z-AODV路由算法,在此基础上提出了ZigBee网格型网络中基于数据特性的路由选择机制,该机制在网络性能和低功耗方面有明显的优势,并且可以平衡节点能量,最后简单介绍了ZigBee节点的硬件实现。 关键词 ZigBee协议;网络;IEEE802.15.4;路由算法;Tree路由;Z-AODV路由 1 概述 ZigBee技术是由英国Invensys公司、日本三菱电气公司、美国摩托罗拉公司以及荷兰飞利浦等公司在2002年10月共同提出设计研究开发的具有低成本、体积小、能量消耗小和传输速率低的无线通信技术。 2000年12月,IEEE 802 无线个域网(WPAN,Wireless Personal Area Network)小组成立,致力于WPAN无线传输协议的建立。2003年12月,IEEE正式发布了该技术物理层和MAC层所采用的标准协议,即IEEE 802.15.4协议标准,作为ZigBee技术的网络层和媒体接入层的标准协议。2004年12月,ZigBee联盟在IEEE 802.15.4 定义的物理层(PHY)和媒体接入层(MAC)的基础上定义了网络层和应用层,正式发布了基于IEEE 802.15.4的ZigBee标准协议。 2 网络层的研究

ZigBee技术的体系结构主要由物理层(PHY)、媒体接入层(MAC)、网络/安全层以及应用框架层组成,各层之间的分布如图1所示。 图1 ZigBee技术协议组成 PHY层的特征是启动和关闭无线收发器、能量检测、链路质量、信道选择、清除信道评估(CCA)以及通过物理媒体对数据包进行发送和接收。MAC层可以实现信标管理、信道接入、时隙管理、发送确认帧、发送连接及断开连接请求,还为应用合适的安全机制提供一些方法。它包含具有时间同步信标的可选超帧结构,采用免碰撞的载波侦听多址访问(CSMA-CA)。安全层主要实现密钥管理、存取等功能。网络层主要用于ZigBee的LR-WPAN网的组网连接、数据管理等。应用框架层主要负责向用户提供简单的应用软件接口(API),包括应用子层支持APS(Application Sub-layer Support)、ZigBee设备对象ZDO (ZigBee Device Object)等,实现应用层对设备的管理,为ZigBee技术的实际应用提供一些应用框架模型等,以便对ZigBee技术的开发应用。 网络层的定义包括网络拓扑、网络建立、网络维护、路由及路由的维护。 2.1 ZigBee的网络拓扑结构 ZigBee定义了三种拓扑结构:星型拓扑结构(Star),主要为一个节点与多个节点的简单通信设计;树型拓扑结构(Tree),使用分等级的树型路

链路状态路由协议

FormB ERouting v4.0 Chapter 10 1 请参见图示。当使用链路状态路由协议的路由器 D 添加到网络中后,在它了解网络拓扑结构的过程中,其所做的第一件事是什么? A.它向路由器 B 和 C 发送 LSP 数据包。 B.它向网络中的所有路由器发送 LSP 数据包。 C.它向网络中的所有路由器发送 Hello 数据包。 D.它向路由器 A 和 E 发送有关其直连邻居的信息。 E.它向网络中的所有路由器发送有关其直连邻居的信息。 F.当其接口处于 up 状态时,它便能获知自己的直连网络。 2 哪两种事件将会导致链路状态路由器向所有邻居发送 LSP?(选择两项。) A.30 秒计时器超时 B.网络拓扑结构发生变化时 C.运行贝尔曼-福特算法之后立即发送 D.DUAL FSM 建立拓扑数据库之后立即发送 E.路由器或路由协议初次启动时 3 链路状态路由过程的最后一步是什么? A.将后继路由加入路由表中 B.SPF 计算到达每个目的网络的最佳路径 C.向所有邻居发送 LSP 以收敛网络 D.运行 DUAL 算法以找出到达目的网络的最佳路径 4 哪两项陈述正确描述了链路状态路由过程?(选择两项。) A.区域中的所有路由器都有链路状态数据库 B.区域中的每个路由器都将向所有邻居发送 LSP C.LSP 使用保留的组播地址 224.0.0.10 来访问邻居 D.通过运行扩散更新算法 (DUAL) 来防止路由环路 E.可靠传输协议 (RTP) 是用于发送和接收 LSP 的协议 5

请参见图示。在从路由器 JAX 发送到路由器 ATL 的 LSP 中,可以看到哪种类型的信息? A.跳数 B.路由的正常运行时间 C.链路的开销 D.正在使用的所有路由协议的列表 6 现代链路状态协议通过哪些功能来尽可能降低处理器和内存要求? A.将路由拓扑结构分割成更小的区域 B.为路由计算分配较低的处理优先级 C.使用更新计时器限制路由更新 D.严格执行水平分割规则以减少路由表条目 7 为使网络达到收敛,每台链路状态路由器会执行哪三个步骤?(选择三项。) A.使用自动总结缩小路由表大小 B.构建一个链路状态数据包 (LSP),其中包含每条直连链路的状态 C.向所有邻居发送 LSP,邻居随后把接收到的所有 LSP 存储到数据库中 D.按一定时间间隔发送 Hello 数据包来发现邻居并建立相邻关系 E.构建完整的拓扑图并计算到达每个目的网络的最佳路径 F.使用 DUAL FSM 选择有效且无环路的路径,并将路由插入到路由表中 8 在使用链路状态路由的网络中,什么可以加速收敛过程? A.由网络变更触发的更新 B.按固定间隔发送的更新 C.仅发送给直连邻居的更新 D.包含完整路由表的更新 9 为什么使用链路状态路由的网络中很少发生路由环路? A.每台路由器都根据跳数建立起对网络的直观印象。 B.路由器在网络中发送大量 LSA 以检测路由环路。 C.每台路由器都建立起对网络的完整而且同步的印象。 D.路由器使用抑制计时器来防止路由环路。 10 与距离矢量路由协议相比,链路状态路由协议有哪两项优势?(选择两项。)

AdHoc中的常用路由算法分析

Ad Hoc 中的常用路由算法分析 孙晓艳,李建东,张光辉,田红涛 (西安电子科技大学信息科学研究所 陕西西安 710071) 摘 要:在传统的移动无线In ternet 接入方式中,通常是以宽带有线接入网为支撑,无线用户只通过一跳(不需要在无线网中多次转接)就可以接入固定网络。在很多应用场合,如个人区域网、家域网、军事应用、抢险救灾等,无线网络没有固定的基础设施作支撑,移动用户的信息需要通过移动用户之间的多次中转才能到达目的用户,这种网络通常称为分布式或无中心式(A d hoc )网络。本文首先介绍了A d Hoc 网络,然后介绍了目前运用于A d Hoc 网络中的几种路由算法,并指出其优缺点。 关键词:A d Hoc ;D SDV ;CGSR ;W R P ;D SR ;AODV ;TORA 中图分类号:T P 30116 文献标识码:B 文章编号:1004373X (2003)1301804 Ana lysis of the Severa l Routi ng A lgor ith m s i n Ad Hoc SUN X iaoyan ,L I J iandong ,ZHAN G Guanghu i ,T I AN Hongtao (Institute of Info r m ati on Science ,X idian U niversity ,X i ′an ,710071,Ch ina ) Abstract :In traditi onal access m ethods to In ternet in mob ile and w ireless environm en t ,u ser can access to fixed netw o rk by one hop (w ithou t m u lti relay )based on w ideband access netw o rk 1In som e app licati on s ,such as personal local netw o rk ,hom e local netw o rk ,m ilitary app licati on ,em ergency rescue patien t care operati on s ,m essages from sou rce u sers can on ly arrive at destinati on term inals by m u lti relay (m u lti hop )among several mob ile u sers becau se w ireless netw o rk is infrastructu ral ,w h ich is so called distribu ted o r A d Hoc netw o rk 1Fo llow ing in troducti on to A d Hoc netw o rk concep ts ,rou ting algo rithm s u sually u tilized in A d Hoc 1 Keywords :A d Hoc ;D SDV ;CGSR ;W R P ;D SR ;AODV ;TORA 收稿日期:20030424 1 引 言 在通信基础设施很少或没有通信基础设施的地方,在现存的基础设施很昂贵或不方便使用的地方,例如学生使用笔记本电脑进行交互式的讲座时,商家在会议当中共享信息时,战士在战场上需要依靠信息获得地形状况[1,2]时,以及当洪水或地震后的紧急灾难援救人员共同协作时,如何来进行通信联系呢?这时就需要用A d Hoc 的思想来实现通信。A d Hoc 网络是在没有任何现存网络基础设施或是集中管理的情况下动态形成的暂时网络。由于无线节点的发射功率和无线网络接口传输范围的限制,多跳网络可能需要有一个节点或多个节点来和网络中的其他节点交换数据,而且网络中的移动节点动态的在他们之间建立路由以形成动态变化的网络。A d Hoc 网络的这个思想也称为无基础设施的网络[3]。所以由于A d Hoc 的存在,无线移动用户可能(在某种情况下)仍然可以通过一个A d Hoc 网络来交换信息。 在这种网络中,每一个移动节点不仅作为主机而且还作为路由器来为网络中的其他不 能直接通信的节点转发分组信息。通常,在A d Hoc 网络中需要考虑的移动性有:源节点的移动性(当源节点移动时必须把这种变化通知路由上游的节点)、目的节点的移动性(当目的节点移动时必须通知路由下游节点这种变化)和中转节点的移动性(对于路由中的这种变化,采用不同协议处理的方式也不同)。由于A d Hoc 网络中的节点并不是物理上相互连接,因此通信节点就必须寻找到网络的连接。通信节点寻找网络连接是通过发现来实现的。一个新节点可以通过检测其他节点发出的信标来和这个节点相连接,然后这个新加入的节点就通知主节点这条新的连接,这个信息就会在网络中得到进一步的广播(到协议所认为必要的范围内)。现在,当源节点试图建立到这个新加入节点的链路时,查询过程就可以通过广播消息的节点来进行。每一个A d Hoc 网络路由协议的节点都允许通过网络中的其他节点发现路由。随着通信技术的发展,人们对网络更大的移动性要求和军队对于传感器网络的 8 1

相关主题
文本预览
相关文档 最新文档