求教: 怎样将网卡的数据拷贝到内存中呢? 通过系统的软中断机制.
我想同过CPU的调度机制对网络流量进行管理,自己不用TC机制. 这个想法是中科院张焕强博士提出的,我感觉很不错
具体做法是1. 如果有包进入网卡,网卡就对CPU进行软中断(bottom half)机制,将数据抱拷贝给内存.
2. 然后处理以太网的头部, 将包送入分类器里,如根据TCP UDP的端口号进行分类,送入事先规定好的通道(forwarding)中去.
3. 最后对带宽进行限制,选择TBF(token bucket filter) 进行发送.
不知道有没有这方面的高手,理解呢?能给我些建议什么的. 最重要的是我对CPU的软中断机制不是很了解,网卡怎么能通知CPU进行软中断处理呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
有一些对低版本内核的改良方法不一定适合适合当前内核的。可能早就有了更好的方法。比如在2.4内核以前一直可以看到对内核调度程序的改良“用户均衡调度算法”。但是到了2.4内核以后,就没有人再去做这样的移植了。
十分感谢你给我的建议,我现在就着手看看这些书籍!
你能推荐几本好的电子图书吗?关于这个方面的? 谢谢
network soft interrput handler是属于内核的范畴。至于怎么改良TC,你只有去问那些改过的人了。我就不懂了。
我觉得你想研究这方面的话,最好先系统的了解一下内核和内核编程。再研究一下网络子系统:包括网卡驱动,协议栈,Inet socket层和BSD socket层。这样你才能对改良有一些自己的看法。
我是研究生, 就是将这篇论文的理论思想改一改,毕业论文用.
是Linux 2.4.0版本的, 不管新的还是老的,关键是者篇论文的思想是和Linux的TRAFFIC CONTROL 是不一样的,估计能有效果,对于网络的带宽管理. 你说的这些,我应该看看什么资料啊? 我现在就是不知道network soft interrput handler是内核的范畴吗? 还是别的,如果我要写代码改良TC的话,怎样做呢??
呵呵,终于,憋了好几天了,都快像卖拐的了!哈哈.终于有人能给我解释了!太感谢了!
我叫刘巍, 对了,如果不介意的话我想和你聊聊天,你能把手机号发给我吗(QQ83535299 或者 areavv@163.com)
自己的研究方向(Linux 环境下路由器中的网络带宽管理) ??
本科还是研究生?
我估计这篇论文的内核版本应该挺老的吧。我对这方面没有研究过,只是了解个大概而已。
soft interrupt是liunx协议栈中不同层之间的通讯方式。network soft interrupt handler就是相应的软中断处理函数。其中会调用相应层中的包处理函数。
谢谢版主的提示.
我是个初学者,所以对这些软中断机制还是很陌生的.
我是看了一篇张焕强博士的论文感觉挺有分量的,所以想作为自己的研究方向(Linux 环境下路由器中的网络带宽管理),对于这个方法是通过CPU软中断去处理traffic control的,不管有没有效果,是一个学习的过程.呵呵.
这篇论文里就是将有效的算法写入network soft interrput handler中去执行的, 对于这个英文我翻译不准,所以就用英文了,你知道这个吗?
十分感谢版主的意见,希望能和你多讨论讨论,我是在日本留学的学生,没有人教,自己摸索,无奈啊! 呵呵.
将网卡的数据拷贝到内存中,是网卡驱动做的事。linux2.2和linux2.4早期内核确实使用bottom half机制来处理底半部。而且bottom half机制好象被叫成软中断。但是从linux2.4开始引入更高效的tasklet来处理底半部。到linux2.6内核,bottom half机制被取消了。现在所指的软中断一般指softirq。