论坛风格切换切换到宽版
  • 747阅读
  • 5回复

[问题求助]linux如何确定把从网卡接收到的数据包交给不同模块处理 [复制链接]

上一主题 下一主题
离线qiusibo.
 
发帖
2049
C币
-559669
威望
386
贡献值
3
银元
0
铜钱
4557
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
请教各位高手啦。
linux内核.是如何确定把从网卡接收到的不同协议的数据包交给不同的模块处理的.。电脑

比如说,如果从网.卡接受到的是ip数.据包,就交给ip协议栈处理(转发    美容
,或转给上层协议);

但是如果接受到的不是ip.协议的数据包,linux怎么决定把它交给其它模块处.理;.

还有啊,如果接收到的不是ip协议的数据包(不过是.把ip数据包封装在.这个数据包里),我可以把ip数.据包从这个数据包里解出来,但是怎么做到把这个ip数据包转给ip协议栈做ip_forward呢?              乙肝

谢谢

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线b489355623.
发帖
2084
C币
-140685
威望
360
贡献值
1
银元
-4
铜钱
4611
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
看看《TCP/IP协议祥解》就明白了
链路层有一个帧协议字段,用于标记包发送端网络层的协议,到了接收端链路层将根据这个字段将数据送给相应的协议模块进行处理.

离线sfs041134.
发帖
2126
C币
-60295
威望
402
贡献值
1
银元
-1
铜钱
4790
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13


QUOTE:原帖由 "apollolegend" 发表:
看看《TCP/IP协议祥解》就明白了
链路层有一个帧协议字段,用于标记包发送端网络层的协议,到了接收端链路层将根据这个字段将数据送给相应的协议模块进行处理.

那我能不能将接收端链路层收到的数据包(非ip包)先解包,再交给ip协议模块处理呢?如果是这样,该从linux什么地方入手?

离线呼唤.
发帖
2030
C币
-60609
威望
360
贡献值
1
银元
-1
铜钱
4475
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
修改协议栈?

离线啊锐.
发帖
1953
C币
-60757
威望
356
贡献值
1
银元
-2
铜钱
4337
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
[quote]原帖由 "Elite"]修改协议栈?[/quote 发表:

好像有点夸张

离线皮子.
发帖
2090
C币
-60295
威望
420
贡献值
1
银元
-1
铜钱
4797
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
其实链路层是由网卡驱动来完成的,具体可以看看内核源代码,应该很清楚的。
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个