看了篇论文,发现里面有明显的错误!
来源:互联网 发布:java windows 换行符 编辑:程序博客网 时间:2024/04/29 07:24
发表于《计算机应用》,2003.8的第八期的一片文章《移动Ad hoc 网络AODV 路由协议安全性分析和改进》,我偶然在期刊网下了之后,看了一下,发现作者赖以发表核刊的改进方案是错误的,作者对AODV的了解不太透彻。
为了解决AODV路由协议的黑洞问题,,辛辛那提大学的Hongmei Deng 等人提出了一
种解决方案。即当中间节点应答(设为节点B) 时,必须把它的下一跳节点(设为节点C) 的信息附加在RREP 中发给源节点。源节点根据该信息从其它路由给节点C 发验证包以查询C 是否真有到目的节点和到该应答节点的可用路由。若C 确实存在到目的节点和应答节点的可用路由,则信任该应答节点并开始发送数据。若C 没有到目的节点或到应答节点的路由则忽略该应答,同时向全网发送警告信息孤立该应答节点。
当然这个解决方案有它的缺点,在这个解决方案的基础上,作者就提出了他的改进方案,来袮补那几个缺点,就是这个改进方案,是错误的,或者说是实现不了的!
作者对AODV 协议作如下修改:若应答节点为中间节点,则源节点发出测试数据包,要目的节点在收到第一个数据包(测试包)后必须给源节点返回一个收到确认信息。若源节点在一定的时间间隔内没收到来自目的节点的收到确认信息,则停止数据的发送。同时认为该应答节点是恶意的并发出警告信号。也就是说作者把上面的解决方案中的 “中间节点”改为了“目的节点”,也就是说源节点要从“其他路由”给“目的节点”发送测试包!
到这里,作者的错误就出来了。本来AODV发起一个RREQ,就是因为没有到该目的节点的路由,而且AODV协议是一个单路径路由协议,源节点路由表中不可能存在到某目的节点的2个或2个以上的路由。可见作者的“其他路由给目的节点发送测试包”是根本成立不了的!
相反,上面Hongmei Deng 等人提出解决方案是可行的!因为到“中间节点的下一跳”的其他路由是可能存在的,因为源节点发起的是到目的节点的RREQ,和“中间节点的下一跳”没有关系的,源节点的路由表中可能存在“中间节点的下一跳”的路由,或者可以重新发起一个到“中间节点的下一跳”的RREQ。所以是该方案是成立的!
笔者是AODV的初学者,接触不深。看完这片论文,真是又高兴又遗憾!高兴的是没想到发核刊文章这么好发,随便在某个想法的基础上,稍微加入自己的想法,也不管对不对,也不管犯的错误有多幼稚,基本是可以发表的!遗憾的是这篇文章是2003.8的,要是在2005.8,那我给《计算机应用》发篇《对 XXXXXXXXXXXX文章的1,2点看法》,那不铁能录用了,而且发表时间还快!
hehehehhe!
为了解决AODV路由协议的黑洞问题,,辛辛那提大学的Hongmei Deng 等人提出了一
种解决方案。即当中间节点应答(设为节点B) 时,必须把它的下一跳节点(设为节点C) 的信息附加在RREP 中发给源节点。源节点根据该信息从其它路由给节点C 发验证包以查询C 是否真有到目的节点和到该应答节点的可用路由。若C 确实存在到目的节点和应答节点的可用路由,则信任该应答节点并开始发送数据。若C 没有到目的节点或到应答节点的路由则忽略该应答,同时向全网发送警告信息孤立该应答节点。
当然这个解决方案有它的缺点,在这个解决方案的基础上,作者就提出了他的改进方案,来袮补那几个缺点,就是这个改进方案,是错误的,或者说是实现不了的!
作者对AODV 协议作如下修改:若应答节点为中间节点,则源节点发出测试数据包,要目的节点在收到第一个数据包(测试包)后必须给源节点返回一个收到确认信息。若源节点在一定的时间间隔内没收到来自目的节点的收到确认信息,则停止数据的发送。同时认为该应答节点是恶意的并发出警告信号。也就是说作者把上面的解决方案中的 “中间节点”改为了“目的节点”,也就是说源节点要从“其他路由”给“目的节点”发送测试包!
到这里,作者的错误就出来了。本来AODV发起一个RREQ,就是因为没有到该目的节点的路由,而且AODV协议是一个单路径路由协议,源节点路由表中不可能存在到某目的节点的2个或2个以上的路由。可见作者的“其他路由给目的节点发送测试包”是根本成立不了的!
相反,上面Hongmei Deng 等人提出解决方案是可行的!因为到“中间节点的下一跳”的其他路由是可能存在的,因为源节点发起的是到目的节点的RREQ,和“中间节点的下一跳”没有关系的,源节点的路由表中可能存在“中间节点的下一跳”的路由,或者可以重新发起一个到“中间节点的下一跳”的RREQ。所以是该方案是成立的!
笔者是AODV的初学者,接触不深。看完这片论文,真是又高兴又遗憾!高兴的是没想到发核刊文章这么好发,随便在某个想法的基础上,稍微加入自己的想法,也不管对不对,也不管犯的错误有多幼稚,基本是可以发表的!遗憾的是这篇文章是2003.8的,要是在2005.8,那我给《计算机应用》发篇《对 XXXXXXXXXXXX文章的1,2点看法》,那不铁能录用了,而且发表时间还快!
hehehehhe!
- 看了篇论文,发现里面有明显的错误!
- 看论文积累 发现错误
- JVM简介,写的挺好,虽然看评论有说里面有错误,但是可以参考
- 发现msdn里面的一个错误
- 看了下招聘广告,发现有很多能力需要提高
- 有段时间看bluetooth, 里面的东西比较多。总结了一下。
- 感觉英语听力水平明显有进步了
- 书刚出版,已经有网友反馈了发现的错误。
- 看了些别人怎样搞研究才发现自己跌跌撞撞的一年多犯了很多错误。。
- 悲哀不是看你有多不成功,而是想了半天,才发现找不到一件你想干的事。
- 通过Df-h发现有个硬盘占用率是100%,但是你在它挂载的分区看du,发现只占用了50%,
- 最近发现的网站,有时间可以去看一下
- [技术讨论]看了73篇极限编程论文后的感觉和一点总结
- 编写明显没有错误的代码-转载
- 封闭式基金的话题明显增多了
- 又发现了一个看网络电视的好软件
- 看了蛮久zhttty的《无限恐怖》才发现
- lua程序设计里面的调用Lua函数的小例子 有个错误被我找到了
- Visual C#的Excel编程
- ASP.net Logion用户登陆验证代码
- ASP.NET从SQL Server数据库提取图片并显示在DataGrid
- ASP.NET生成n位不同的验证码
- ASP.NET使aspx页面能接受HTML,asp的页面传送的文件
- 看了篇论文,发现里面有明显的错误!
- ASP.NET向SQL Server数据库添加图片
- 一个关于多对话框和CListCtrl控件的问题(棘手)。
- DataGrid全攻略
- DataGrid数据导入Excel
- DataGrid自定义分页以及几种常用的删除方法
- JavaScript实现DataGrid中的CheckBox全选与否
- 一种分布式计算技术构想
- SQL Server 的保留关键字一览