LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 803|回复: 5

请教,网卡接管的问题

[复制链接]
发表于 2005-3-25 17:59:01 | 显示全部楼层 |阅读模式
现在正在做一个应用层的TCP/IP协议栈,由于平台基础是依赖于操作系统的,在系统初启时,网卡已经被kernel 的协议栈初始化并控制。现在我想在用户态下完全获取对网卡的控制权,并且不能让kernel受到任何影响,不知道该如何实现,愁苦得不行,哪位老大指教一下,谢了先。
发表于 2005-3-25 18:44:23 | 显示全部楼层
Post by bayesian
现在正在做一个应用层的TCP/IP协议栈,由于平台基础是依赖于操作系统的,在系统初启时,网卡已经被kernel 的协议栈初始化并控制。现在我想在用户态下完全获取对网卡的控制权,并且不能让kernel受到任何影响,不知道该如何实现,愁苦得不行,哪位老大指教一下,谢了先。

请教一下,何为应用层的TCP/IP协议栈?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-25 20:26:18 | 显示全部楼层
就是运行在user level的一个应用程序,可以提供类似于kernel的接口,应用程序可以调用它(与调用kernel所提供的系统调用并没有差别,当然也可以针对特定的应用程序对接口进行定制)完成socket 的收发。
回复 支持 反对

使用道具 举报

发表于 2005-3-25 20:38:27 | 显示全部楼层
可你应该知道网卡的数据接收是通过中断实现的,你要完全控制网卡,就意味着需要自己处理中断,你认为不改内核有可能吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-25 22:08:49 | 显示全部楼层
嗯,我现在要做的是通过应用层的TCP/IP协议栈来旁路掉Kernel的协议栈,只有应用层协议栈发现数据包不是自己想要的情况下,才将其交给kernel。数据的接收可以由中断来处理,也可以用轮询去做,如果按照这个思路去做的话,应该是可以不去过多的修改内核的。
回复 支持 反对

使用道具 举报

发表于 2005-3-26 12:42:52 | 显示全部楼层
Post by bayesian
嗯,我现在要做的是通过应用层的TCP/IP协议栈来旁路掉Kernel的协议栈,只有应用层协议栈发现数据包不是自己想要的情况下,才将其交给kernel。

tcp/ip协议栈可是包括从物理层到应用层的,你都要旁路掉吗?
感觉你只是希望旁路掉一些较高层,比如从ip层开始以上,需要自己来接手

Post by bayesian

数据的接收可以由中断来处理,也可以用轮询去做,如果按照这个思路去做的话,应该是可以不去过多的修改内核的。

轮询?你想自己写网卡驱动?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表