免费注册 查看新帖 |

Chinaunix

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

问一个关于以太网的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-30 11:48 |只看该作者 |倒序浏览
以太网字节序不是按照802.3的标准以太网帧格式,而是在标准格式的源地址后加入了几个控制字节,请问各位大牛们在linux内核中怎么修改和实现,并和现有的一些网络应用程序兼容?

标准帧格式如下:
struct ethhdr {
    unsigned char    h_dest[ETH_ALEN];    /* destination eth addr    */
    unsigned char    h_source[ETH_ALEN];    /* source ether addr    */
    unsigned short    h_proto;        /* packet type ID field    */
} __attribute__((packed));

目的的帧格式大致如下:
struct ethhdr {
    unsigned char    h_dest[ETH_ALEN];    /* destination eth addr    */
    unsigned char    h_source[ETH_ALEN];    /* source ether addr    */
    unsigned char    controls[4];
    unsigned short    h_proto;        /* packet type ID field    */
} __attribute__((packed));

而且这些controls能在应用程序中传递使用。
恳请大家给个意见和方向,谢谢大家。

[ 本帖最后由 saiwenth 于 2008-10-30 14:27 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-10-30 14:29 |只看该作者
顶一下。根据现有的以太网网络设备做一个虚拟网络设备,还是eth.c中进行字节处理?多谢关注。

论坛徽章:
0
3 [报告]
发表于 2008-10-30 14:34 |只看该作者
up

论坛徽章:
0
4 [报告]
发表于 2008-10-30 16:07 |只看该作者
谢谢luo118 ,不知道我描述的清楚不,顶一次,希望大家帮顶。

论坛徽章:
0
5 [报告]
发表于 2008-10-30 17:20 |只看该作者
你去看看linux内核中vlan相关模块(802.1q)实现吧

这四个字节对于上层应用程序是看不到的,协议栈收到报文后是逐层脱壳上送,高层看不到低层的内容(你自己顺着指针地址往回找不算)

你这么改了,中间如果经过了不认识你这内容的设备,这个packet指不定会被怎么处理

论坛徽章:
0
6 [报告]
发表于 2008-10-31 08:35 |只看该作者

回复 #5 Jobs.AE@ 的帖子

ok,多谢 Jobs.AE@ :)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP