darkme
驱动牛犊
驱动牛犊
  • 注册日期2004-07-17
  • 最后登录2006-03-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2065回复:9

我应该在哪一层实现截包?

楼主#
更多 发布于:2004-08-13 15:36
目的:实现无线网络上的动态源路由

原理:截获所有的IP包,修改IP包(在IP包头后加上自己的源路由表)。

参考模型:在Linux内核中,netfilter提供了5个钩子函数,通过挂载这些钩子函数可以捕获并修改IP包,还能自己组装和发送IP包。

我希望:
(1)、能够截获所有的网络包,并能对其进行修改;
(2)、能够发送自己组装的IP包;
(3)、能够成批的发送IP包,即如果需要,我能够编写一个函数一次发送一组IP包(内部调用发送一个IP包的函数);
(4)、尽量简化数据包的处理复杂度。最后有像netfilter那样的机制。NDIS截获的数据包过于复杂,虽然也能提取IP包,但我关心的只是IP包。如果我要自己发包的话,还得构造符合NDIS数据包格式的包,这明显增加了编程的复杂。

综上所述,我想请版主大人们和各位大侠给点意见和思路。
我应该采用哪种技术实现我的动态源路由协议?


小弟初来乍到,以后要向各位前辈虚心求教。在此谢过先。 :)

[编辑 -  10/1/04 by  darkme]

[编辑 -  10/1/04 by  darkme]
darkme
驱动牛犊
驱动牛犊
  • 注册日期2004-07-17
  • 最后登录2006-03-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-01 20:10
我觉得可以做一个协议驱动。
每次网卡收包时交给协议驱动
0.解析网络包(过滤掉非DSR包)
1.替换目的mac地址为广播地址(替换成destination的mac也成)
2.解析路由表,替换目的ip
3.重新计算校验和
4.发送
另外,在第2步中替换成什么mac都行,反正包的解析是由我们自己做的,肯定能发现我们的DSR包。
以上是个人观点,希望各位大牛批评。 :P


同意。
nolasterror
驱动牛犊
驱动牛犊
  • 注册日期2004-09-22
  • 最后登录2006-06-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-01 16:28
我觉得可以做一个协议驱动。
每次网卡收包时交给协议驱动
0.解析网络包(过滤掉非DSR包)
1.替换目的mac地址为广播地址(替换成destination的mac也成)
2.解析路由表,替换目的ip
3.重新计算校验和
4.发送
另外,在第2步中替换成什么mac都行,反正包的解析是由我们自己做的,肯定能发现我们的DSR包。
以上是个人观点,希望各位大牛批评。 :P
darkme
驱动牛犊
驱动牛犊
  • 注册日期2004-07-17
  • 最后登录2006-03-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-29 10:47
这篇帖子是关于费尔防火墙的技术介绍。
http://www.driverdevelop.com/forum/viewthread.php?tid=19422
这篇帖子是关于费尔防火墙的一些回帖。http://www.driverdevelop.com/forum/viewthread.php?tid=14840

最早我是希望采用Ipfilterhook来实现我的DSR,后来发现根本不行。这让我郁闷了很长一段时间。

感觉Ipfilterhook更适合作为编写防火墙的入门教材。个人观点:)
sleepgutar
驱动牛犊
驱动牛犊
  • 注册日期2004-05-16
  • 最后登录2004-10-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-28 19:36
[quote]用ndishook只能实现包的过滤哦,能修改吗?我看好像不行的...

ndishook应该能够实现包的修改,在"费尔个人防火墙核心技术简介"这篇帖子的回复中好像有提到.我是新手,所以也不懂得很多:)

我采用的并不是ndishook,只是普通的imd. [/quote]
我也是新手...所知不多
以前可能把Ipfilterhook下面的那个ndishook搞混了 ,不知道这两者有什么区别,那里有资料可以查
帖子在那,我没有找到, :(
正在努力学习中 喜欢beatles
darkme
驱动牛犊
驱动牛犊
  • 注册日期2004-07-17
  • 最后登录2006-03-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-27 22:54
用ndishook只能实现包的过滤哦,能修改吗?我看好像不行的...

ndishook应该能够实现包的修改,在"费尔个人防火墙核心技术简介"这篇帖子的回复中好像有提到.我是新手,所以也不懂得很多:)

我采用的并不是ndishook,只是普通的imd.
sleepgutar
驱动牛犊
驱动牛犊
  • 注册日期2004-05-16
  • 最后登录2004-10-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-09-27 19:27
用ndishook只能实现包的过滤哦,能修改吗?我看好像不行的...
正在努力学习中 喜欢beatles
darkme
驱动牛犊
驱动牛犊
  • 注册日期2004-07-17
  • 最后登录2006-03-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-27 10:50
这位朋友在做MANET路由协议在wince平台上的实现?个人认为你所说的MAC地址在RREQ/RREP过程中应该都是广播地址吧,这样不必担心什么了,反正都是要在中间层自己处理。
若是先在固定的win2k机器上模拟路由协议,倒是只需集中解决生成和插入源路由扩展头标的问题。完全模拟没有必要,毕竟网络拓扑与无线也不一样,同一网段上链路层的广播大家都能收到。

有联系方式吗,我最近也在调研MANET方面的内容,大家有空聊聊?

现在头疼的是如何在中间层设计数据包的缓存策略。你有什么设计方案吗?
kevinhu
驱动牛犊
驱动牛犊
  • 注册日期2004-08-12
  • 最后登录2009-04-23
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望11点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-09-25 02:12
这位朋友在做MANET路由协议在wince平台上的实现?个人认为你所说的MAC地址在RREQ/RREP过程中应该都是广播地址吧,这样不必担心什么了,反正都是要在中间层自己处理。
若是先在固定的win2k机器上模拟路由协议,倒是只需集中解决生成和插入源路由扩展头标的问题。完全模拟没有必要,毕竟网络拓扑与无线也不一样,同一网段上链路层的广播大家都能收到。

有联系方式吗,我最近也在调研MANET方面的内容,大家有空聊聊?
right_wind
驱动中牛
驱动中牛
  • 注册日期2001-10-12
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分60分
  • 威望66点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2004-08-26 14:48
我认为用中间层驱动程序实现比较好,在TCPIP程序之下,网卡驱动程序之上,可以对IP包自由修改。
good good study, day day up。
游客

返回顶部