免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6591 | 回复: 26
打印 上一主题 下一主题

Linux内核协议栈编程问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-17 10:16 |只看该作者 |倒序浏览
最近做一个项目,需要在网络层和数据链路层之间增加一层,即2.5层:对TCP/IP驱动,它是NDIS驱动,对真实的以太网驱动,它又是一个协议驱动。总的来说,它实现的功能与IP协议类似,提供路由算法并找路。只是现在大多数应用都基于TCP/IP协议,所以不想更改IP协议就另加了一层。我的问题是,我们采用源路由策略,那么,我的路由算法应该在内核的那个位置加载呢

论坛徽章:
0
2 [报告]
发表于 2012-04-17 12:19 |只看该作者
回复 1# babycat_fei

最近做一个项目,需要在网络层和数据链路层之间增加一层,即2.5层:对TCP/IP驱动,它是NDIS驱动,对真实的以太网驱动,它又是一个协议驱动。总的来说,它实现的功能与IP协议类似,提供路由算法并找路。只是现在大多数应用都基于TCP/IP协议,所以不想更改IP协议就另加了一层。我的问题是,我们采用源路由策略,那么,我的路由算法应该在内核的那个位置加载呢

=============================
不知道我是否正确的理解了你的意思。你实现的层也提供路由算法——这个路由算法,我这样理解是不同于IP的路由,完全为你的层服务的。对于IP层透明。

正常来说,TCP/IP的路由查找在IP层完成的。
既然你新加的层是在2.5层。那么你的路由自然要在你的层次完成。
当IP层将包传到你的层次时,由你重新查找路由。并放弃之前的IP路由,即dst。

不过我有一个问题,如果IP层没有找到路由,那么数据包都不会传到你这个层。而你这层实际上是有可用的路由的。
这个问题你怎么解决?这个不修改IP层的代码不行了吧。


   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2012-04-17 12:29 |只看该作者
回复 2# GFree_Wind
嗯,确实是个问题。
这么实现之后,还要考虑 3 层的路由怎么处理


   

论坛徽章:
10
戌狗
日期:2013-10-17 09:43:0215-16赛季CBA联赛之广东
日期:2018-02-05 11:22:1215-16赛季CBA联赛之八一
日期:2016-07-04 12:26:1815-16赛季CBA联赛之青岛
日期:2016-06-08 11:15:4115-16赛季CBA联赛之辽宁
日期:2016-04-05 10:10:1415-16赛季CBA联赛之辽宁
日期:2016-03-11 11:11:48酉鸡
日期:2014-12-18 14:35:48狮子座
日期:2014-02-20 10:14:07寅虎
日期:2013-12-02 13:48:2915-16赛季CBA联赛之广夏
日期:2018-03-21 08:51:10
4 [报告]
发表于 2012-04-17 15:15 |只看该作者
如果自己要路由就不要用IP路由咯,如果只是路由不如修改IP route部分代码。
好奇是什么路由。。。这个题目不小

论坛徽章:
0
5 [报告]
发表于 2012-04-17 15:19 |只看该作者
回复 2# GFree_Wind

GFree_Wind你好,你理解得很对,路由就在我设定的这层实现,IP层仅用于IP地址识别,肯定是要改IP层代码的,但这些改动应该不会影响TCP/IP协议对上层应用的支撑。关于实现策略我还没有很成熟的想法,不知各位大侠有无建议可供我参考?多谢。


   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
6 [报告]
发表于 2012-04-17 15:21 |只看该作者
回复 5# babycat_fei

感觉可以这么搞,disable 掉 IP 层的 route 功能。

然后将你的 route 功能正确的处理好,让 IP 层认为路由都查好了。

不过既然这样改的话,那么还不如直接修改 IP 层呢。


   

论坛徽章:
0
7 [报告]
发表于 2012-04-17 15:24 |只看该作者
回复 4# daniel_11
服务器参与路由、转发包,而交换机相当于一个crossbar,自己做路由的原因是源路由算法中将服务器编号,通过编号进行选路,并维护一个编号与IP的映射表,不广播不建路由表。

   

论坛徽章:
0
8 [报告]
发表于 2012-04-17 15:30 |只看该作者
回复 6# Godbach

我的本意是设计服务器参与路由、进行包的转发,而交换机仅相当于一个crossbar,自己做路由的原因是源路由算法中是将服务器编号,通过编号进行选路的,并维护一个编号与IP的映射表,不广播不建路由表。如果直接改IP协议的话不仅要改很多东西,而且有可能影响上层应用
   

论坛徽章:
10
戌狗
日期:2013-10-17 09:43:0215-16赛季CBA联赛之广东
日期:2018-02-05 11:22:1215-16赛季CBA联赛之八一
日期:2016-07-04 12:26:1815-16赛季CBA联赛之青岛
日期:2016-06-08 11:15:4115-16赛季CBA联赛之辽宁
日期:2016-04-05 10:10:1415-16赛季CBA联赛之辽宁
日期:2016-03-11 11:11:48酉鸡
日期:2014-12-18 14:35:48狮子座
日期:2014-02-20 10:14:07寅虎
日期:2013-12-02 13:48:2915-16赛季CBA联赛之广夏
日期:2018-03-21 08:51:10
9 [报告]
发表于 2012-04-17 15:34 |只看该作者
说的还是有点模糊,可以贴个网络拓扑吗?
回复 7# babycat_fei


   

论坛徽章:
0
10 [报告]
发表于 2012-04-17 16:59 |只看该作者
本帖最后由 babycat_fei 于 2012-04-17 17:00 编辑

基本上是一个超立方结构。

拓扑.jpg (12.85 KB, 下载次数: 22)

拓扑.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP