当前位置: 技术问答>linux和unix
请教各位:关于linux处理从网卡接受到的数据包
来源: 互联网 发布时间:2015-06-24
本文导语: 请教各位高手啦。 linux内核是如何确定把从网卡接收到的数据包交给不同的模块处理的。比如说,如果从网卡接受到的是ip数据包,就交给ip协议栈处理(转发,或转给上层协议); 但是如果接受到的不是ip协议的数...
请教各位高手啦。
linux内核是如何确定把从网卡接收到的数据包交给不同的模块处理的。比如说,如果从网卡接受到的是ip数据包,就交给ip协议栈处理(转发,或转给上层协议);
但是如果接受到的不是ip协议的数据包,linux怎么决定把它交给其它模块处理;
还有啊,如果接收到的不是ip协议的数据包(不过是把ip数据包封装在这个数据包里),我可以把ip数据包从这个数据包里解出来,但是怎么做到把这个ip数据包转给ip协议栈做ip_forward呢?
谢谢
linux内核是如何确定把从网卡接收到的数据包交给不同的模块处理的。比如说,如果从网卡接受到的是ip数据包,就交给ip协议栈处理(转发,或转给上层协议);
但是如果接受到的不是ip协议的数据包,linux怎么决定把它交给其它模块处理;
还有啊,如果接收到的不是ip协议的数据包(不过是把ip数据包封装在这个数据包里),我可以把ip数据包从这个数据包里解出来,但是怎么做到把这个ip数据包转给ip协议栈做ip_forward呢?
谢谢
|
假设你使用的ethernet。网卡收到的数据帧的头部有协议标志,据此判断应该将其交给哪种协议栈处理。每一种协议都有唯一的标志,所以ip的数据包和ipx的协议包不会混淆。当然,你也可以注册自定义的协议。
|
建议看看