一个路由节点如何判断所使用的路由算法仿真 matlab已经收敛?有哪些方法可以用来判断

君,已阅读到文档的结尾了呢~~
链路状态路由算法原理实验报告
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
链路状态路由算法原理实验报告
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口ONE路由协议模块分析与应用 - ShareIdeas - 博客园
一.缺省路由
1.4.1版本的ONE模拟器自带11种路由模块,模块定义了在整个仿真过程中如何收发和处理消息.包括
这些提供了大多数重要的 路由协议的原型 其中有单消息拷贝的,n消息拷贝的和消息无限拷贝的协议.另外还有基于统计的改进路由协议模型.routing包的结构如图
在one中添加自己的路由模块需要继承MessageRouter这个类,它定义了大量不同的消息相关事件和资源管理的回调函数,这些函数可以被模拟引擎调用.ActiveRouter是MessageRouter的子类,它提供了邻居节点传送消息以及处理成功传输和中断传输等情况的功能,同时还提供了FIFO和随机的缓存管理方式.开发人员所建立的路由模块,需要重写覆盖或扩展MessageRouter和ActiveRouter这两个模块的方法函数.其中创建自己新类的最简单方法就是覆写父类的update方法,其他如消息传输和交换方法可以全部继承于ActiveRouter类.
二.代码分析
MessageRouter.java:
路由模块的超类,所有添加的路由模块必需直接或间接的继承于这个类,
在这个类中定义了缓存大小,TTL,消息发送队列模式和一些定义消息状
态的变量.此外这个类还有一个构造函数public MessageRouter(
Settings s) {},通过传送Setting这个变量进行路由属性的设置.
public void update(){},这个方法是用来更新整个模拟器消息传输的
状态,需要在每个循环调用一次. protected Message getMessage(
String id) {},这个方法是通过传递ID号可以返回对应的报文.整个类中,基
本可以通过方法的名称和注释判断方法的作用,其大部分为对消息操作的
方法和返回路由信息,如消息的创建.
ActiveRouter.java:
这个类继承于MessageRouter这个类,是所有活动路由的超类,提供
一些查看消息状态和查看现有连接等信息的方法.该类有两个构造函数,可
以传递ActiveRouter,Settings两类参数进行路由对象的创建.除了继承于
MessageRouter的变量自已又定义了DELETE_DELIVERED_S,
boolean deleteDelivered(标记是否为传输最终结点用以删除),
String RESPONSE_PREFIX(回复信息的前缀修饰符),
int TTL_CHECK_INTERVAL(TTL检查时间间隔),double lastTtlCheck
(最后检查TTL的时间).
该类包含一些方法,如改变连接状态,请求传输消息,创建一个消息,接
收消息(重写),已传递消息(重写),开始传递消息,确定是否可以传递消息,
检查是否可以接收等方法.
DirectDeliverRouter.java:
这个路由类直接继承于ActiveRouter,没有定义多于的变量.重写了
update()这个方法.该方法如下:
public void update() {
super.update();& //调用父类方法
//判断是否可以传输,包括主机是否忙,是否能缓存,是否有可用连接
if (isTransferring() || !canStartTransfer()) {
return; // can't start a new transfer
// Try only the messages that can be delivered to final recipient
// exchangeDeliverableMessages() ,这个方法用于和目的主机交互消息
if (exchangeDeliverableMessages() != null) {
return; // started a transfer
EpidemicRouter.java:
该类继承于ActiveRouter,没定义多于变量,直接调用基类的构造函数,
重写了update()方法,该方法如下:
public void update() {
super.update();&&& //调用基类构造函数
//判断是否具备传输条件,包括主机是否忙,是否能缓存,是否有可用连接
if (isTransferring() || !canStartTransfer()) {
return; // transferring, don't try other connections yet
// Try first the messages that can be delivered to final recipient
//判断是否可以直接传输到目的结点
if (exchangeDeliverableMessages() != null) {
// started a transfer, don't try others (yet)
// then try any/all message to any/all connection
//尝试所有连接进行所有消息的传递,比DirectDeliverRouter多了这个方法.
this.tryAllMessagesToAllConnections();
}//这里需要强调一点,主机每次用可用连接只进行一组消息的传递,传递成功则返
//回,等待下一次update()方法的调用.
FirstContactRouter.java:
主机本地只有消息的单副本,一但有可用连接便进行传输且不接收已
经传递过的消息.该类继承于ActiveRouter,重写了
protected int checkReceiving(Message m){}了这个方法,用于判断是否
经过本节点,否则丢弃本消息.重写了update()方法,与EpidemicRouter
的update()方法一致. protected void transferDone(Connection con){}
这个方法用以清除已成功传递的消息,腾出缓存空间.
SprayAndWaitRouter.java
该算法将数据包的转发过程分为Wait 和Spray两个阶段,在不同阶
段采用不同的路由策略.该算法具有W,K,M 参数,恰当的参数设置可控
制Spray阶段的泛洪程度. Direct Delivery和Epidemic 算法分别代表了
两种极端情况,一种是不泛洪,另一种是无限制的泛洪.Spray and Wait
&算法是按照一定策略有限度泛洪,从泛洪程度角度讲是介于Epidemic
和Direct Delivery中间的一种算法.
本路由算法有两个重要参数protected int initialNrofCopies,
protected boolean isBinary,用于初始副本数和判断是否采用Binary模式
. public int receiveMessage(Message m, DTNHost from) {},这个方法尝
试从其它结点接收消息.比较前面提到的算法,多了这个主动接收的方法.
此外还有public Message messageTransferred(String id, DTNHost
&from) {},实现消息副本的减半; public boolean createNewMessage() {};
等多种方法.其update()方法中发送剩余消息的过程,为发送剩余消息副
本的过程(需要深入理解&散发-等待路由算法&).另外一个重要的方法是
protected void transferDone(Connection con) {},实现更新本地消息副
  总的概括来说,本路由的算法过程大概如:信源节点将产生的每个报文的
拷贝数初始化为L. 当 节点相遇并通信时,将自身报文拷贝数的一半转
发给相遇的中继节点即任何节点 A( 信源节点或中继节点) 中某个报
文的拷贝数为N ,如果遇到另一个没有该报文的节点 B,节 点会将此
报文拷贝一份给节点B ,并赋予的报文拷贝数N/2,同时节点A上的该报
文的拷贝数减为原来的一半.对于类似的算法完全可以借助这段代码的方
EpidemicOracleRouter.java
EpidemicOracleRouter是改进的传染病路由算法,当一个消息投递到
目的结点,其它结点将会移除此消息. 在代码中,首先定义了一个代表所有
路由器的变量private static List&EpidemicOracleRouter& allRouters .
static {//定义的静态方法,具体作用我也不是太清楚.
DTNSim.registerForReset(EpidemicOracleRouter.class.getCanonicalName());
reset(); }
使用本算法进行模拟,首先应调用构造函数把本结点的路由加入到
allRouters 中来.方法如下:
protected EpidemicOracleRouter(EpidemicOracleRouter r) {
allRouters.add(this); }
public void changedConnection(Connection con) {}//当有连接建立时,
进行消息传输.(这里的传输规则是什么,是否符合传染病算法??,接收本
地没有的消息),此外本算法还有
private void sendMessageToConnected(Message m) {}(利用连接发送
消息), public boolean createNewMessage(Message m) {}(新建消息.)
public Message messageTransferred(String id, DTNHost from) {},这个
方法首先判断是否为目的结点,如果是则删除所有路由上的该消息,否则进
行消息的投递. protected int checkReceiving(Message m) {},用于判断
主机是否想接收消息. protected void transferDone(Connection con) {}
,可以在这个方法里添加消息传输后的需要处理的事件(这个方法实际没有
概括来说,这个算法update()这个方法没有实际用途,而是当有一个新
的连接或生成一个新的消息和接收到一个新消息时,传输便会发生,随
及传输将被初始化.当一个消息传递到目的结点时,其它结点的副本将会
  分析模拟器自带代码的目的是为了能够更好的了解模拟器路由代码的
编写方式, 本人能力有限难免有错误,此文对于编写自己的路由算法有一定
的参考作用.如里路由算法与已提及的比较类似,大可以移植原有代码,提高
代码编写的效率.交流学习可以邮箱 .
博文为本人所写,转载请证明出处&,谢谢!!%ab%98速多媒体网络路由算法中的应用研究pdf下载_爱问共享资料
%ab%98速多媒体网络路由算法中的应用研究.pdf
简介:本文档为《%ab%98速多媒体网络路由算法中的应用研究pdf》,可适用于学术研究领域,主题内容包含上海交通大学博士学位论文计算智能在高速多媒体网络路由算法中的应用研究姓名:胡世余申请学位级别:博士专业:控制理论与控制工程指导教师:谢剑英申请上海交符等。
(window.slotbydup=window.slotbydup || []).push({
id: '4090793',
container: s,
size: '920,90',
display: 'inlay-fix'
%ab%98速多媒体网络路由算法中的应用研究.pdf
%ab%98速多媒体网络路由算法中的应用研究.pdf
简介:本文档为《%ab%98速多媒体网络路由算法中的应用研究pdf》,可适用于学术研究领域,主题内容包含上海交通大学博士学位论文计算智能在高速多媒体网络路由算法中的应用研究姓名:胡世余申请学位级别:博士专业:控制理论与控制工程指导教师:谢剑英申请上海交符等。
(window.slotbydup=window.slotbydup || []).push({
id: '4090793',
container: s,
size: '920,90',
display: 'inlay-fix'
该用户的其他资料
当前资料暂无简介~
当前资料暂无简介~
当前资料暂无简介~
当前资料暂无简介~
当前资料暂无简介~
当前资料暂无简介~
当前资料暂无简介~
当前资料暂无简介~
当前资料暂无简介~
当前资料暂无简介~
当前资料暂无简介~
当前资料暂无简介~
在此可输入您对该资料的评论~
阅读量:950
阅读量:893
阅读量:17
阅读量:284
阅读量:971
阅读量:424
阅读量:878
阅读量:466
阅读量:619
资料评价:
所需积分:0查看: 394|
摘要: 一、理想的路由算法 路由算法:网络节点在收到一个分组后,决定在那一条输出链路上传送下去所使用的策略。 理想的路由算法的一些特点:(1)正确性。必须是信息快速、正确的传输。(2)简单性。计算简单可以减少时延。另 ...
一、理想的路由算法 路由算法:网络节点在收到一个分组后,决定在那一条输出链路上传送下去所使用的策略。 理想的路由算法的一些特点:(1)正确性。必须是信息快速、正确的传输。(2)简单性。计算简单可以减少时延。另外,路由选择的计算不应使网络的通信量增加太多的额外开销。(3)坚固性。算法应能适应通信量和网络拓扑的变化,要有自适应性。有时称这种自适应性为“健壮性”(robustness)。(4)稳定性。当通信量和网络拓扑发生变化时,路由算法应收敛于一个可以接受的解,而不应产生过多的振荡。 (5)公平性。算法应对所有用户(除对少数优先级高的用户)都是平等的。(6)最佳性。是指以最低的费用来实现路由算法。实际上,所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。 二、最短通路路由选择 例:寻找从源节点A到网络中其他各节点的最短通路。 令D(ν)为源节点(节点A)到节点ν的距离;令N表示网络节点的集合,初始时令N={A};令l(i,j)为节点i至节点j之间的距离。
算法:(1)初始化 D(ν)= (A , ν) 若节点ν与节点A直接相连∞ 若节点ν与节点A不直接相连(2)寻找一个不在N中的节点ω,其D(ω)值为最小,把ω加入到N中,然后对所有不在N中的节点,用D(ν)和[D(ω)+λ(ω,ν)]中的较小的值去更新原有的D(ν)值,即:D(ν)←min[D(ν),D(ω)+λ(ω,ν)] (3)重复步骤(2),直到所有的网络节点都在N中为止。
三、路由选择的不同策略 1.非自适应路由选择——简单、开销小(1)洪泛法(flooding)策略:当某个网络节点从某条输入线路收到一个不是发给它的分组时,就向所有与此节点相连的其它链路转发出去。 优点:①算法简单,几乎不需要什么计算;②可以在最短的时间内接收方收到信息;③方便实现广播通信和多址通信,具有良好的健壮性,广泛应用于军事网中。缺点:①造成分组无休止的传输;②使接收方收到多个重复的分组;③网络中分组数目迅速增长,结果导致网络出现拥塞现象。改进:采用计数器或登记表法控制网络中分组数目的增长。(2)有选择的洪泛法策略:仅在满足某些事先确定的条件的链路上转发分组。好处:分组不会向不希望去的方向转发。 (3)固定路由法策略:在每个节点上保存一张由此节点到网络中其他节点的固定路由表(由网络设计人员或管理人员根据网络拓扑结构、流量分布和其他因素编制的,并且在此后的一段相当时间保持固定不变),表中规定一条或多条输出线。适用:当网络拓扑固定不变并且通信量也相对稳定时。(4)随机走动法(random walk)策略:当分组到达某个节点时就随机地选择应当走哪条链路作为转发的路由,因此又称为随机徘徊。适用:在非自适应的路由策略中,若可能发生节点或链路的故障,那么随机走动法巳被证明是非常有效的,它使得路由算法具有较好的健壮性。 (5)分散通信量法(traffic bifurcation)或查表选择路由(directory routing)策略:事先在每个节点的内存中设置一个路由表,路由表中给出几个可供采用的输出链路,并且对每条链路赋予一个概率;当一个分组到达该节点时,此节点即产生一个从0.00到0.99的随机数,然后按此随机数的大小,查表找出相应的输出链路。
2.自适应路由选择当网络拓扑发生变化时及网络某个节点或链路发生故障时,在网络的某个局部范围做出调整路由的决定。(1)孤立的路由选择策略策略:只根据本节点的状态来选择路由,而不和其它节点交换状态信息。“热土豆”算法:当收到一个分组时,不管其目的地址如何,把刚收到的分组以最快速度发往各链路中等待队列长度最短的等待队列中排队等候发送。 缺点:不准确,有时队列最短的方向井非正确的转发路由。改进:令队列长度为Q,在每个队列增加一个对于某一目的地址的偏移数B,取Q+B值为最小的队列作为转发方向。例如:对应于F,E,D和C的B值若分别为0,6,5和8.则算出相应的Q十B值分别为5,7,9和10,因此应把收到的分组送到发往F的队列中。
(2)分布式路由选择策略——是目前应用最广泛的路由算法特点:适应性较好,每个节点周期性地从相邻的节点获得网络状态信息,同时也将本节点做出的决定周期性地通知周围的各节点,以使这些节点不断地根据网络新的状态更新其路由选择决定。例:ARPANET使用算法是在每一个节点保持两个向量,即:
Di——节点i的时延向量; dij——节点i至节点j的最小时延当前估值(dij=0); n—— 网络中的节点数; Si——节点i的后继节点向量; SIJ——后继节点(节点i到节点j当前最小时延路由中的第二个节点。对于任一节点k每隔128ms与其所有相邻节点交换时延向量,按以下方法对本节点的时延向量和后继节点向量进行修改: dki= [dki+dij-] Ski==i,用这个i使[dki+dij-]为最小。A——节点k的所有相邻节点的集合; d&sub&ki&/sub&——节点k到节点i的时延的当前估值。
(3)集中式路由选择策略策略:利用网控中心NCC,专门收集各节点定期发来的状态信息,然后由它根据这些状态信息及网络拓扑结构,动态的计算出每个节点现时的路由选择表,再将新的路由选择表同时送回各个节点使用。优点:算法能定期按拓扑结构和信息量变化修改各节点的路由选择表; 容易得到精确的路由,消除了分组在网内“兜圈子” 及路由“振荡”的现象; 可起到对进入网络通信量的某种流量控制作用。缺点:在报告状态-计算-送回路由选择表的过程中花费了不少时间,因此在系统变化较快的网络中很难获得理想的控制效果;NCC的工作量大,因此需要采用速度快、可靠性高的机器;由于采用集中控制,因而NCC工作的可靠性尤为重要,所以应采用若干个级别的NCC协同控制,一旦高一级的NCC出现故障,低一级的NCC马上接替工作,但这种方法花费较大且仍不能满足全部要求;网中负载不平衡,靠近NCC的链路负担重,而远离NCC的链路负载较轻。(4)混合式路由选择策略
上一篇:下一篇:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:君,已阅读到文档的结尾了呢~~
链路状态路由算法原理实验报告[练习]
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
链路状态路由算法原理实验报告[练习]
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 自适应路由算法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信