免费注册 查看新帖 |

Chinaunix

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

各位老大,网卡发送数据问题,期待解惑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-14 09:29 |只看该作者 |倒序浏览
我在NF_PRE_ROUNTING处注册了一个包转发程序
但为什么我修改了ip地址就 dev_queue_xmit(skb2) 后
收到的数据包后面多了 补齐位  ,我包总大小就43字节,可抓到的包都是60字节的,不够的都补成00了
为什么?

论坛徽章:
0
2 [报告]
发表于 2007-08-14 12:00 |只看该作者
网卡不太理解43字节,
但又必须执行你的TX操作,
补齐60字节,表示不想罢工,呵呵。

论坛徽章:
0
3 [报告]
发表于 2007-08-14 13:24 |只看该作者

回复 #2 sisi8408 的帖子

谢谢 风云使者的关注
但是 我的udp服务端不能正确接受这个包
虽然我已经可以抓到这个包了

后来我发了一个60字节的数据后,udp竟可以正确接收了,并且后面发的43字节的包也可以正确接收了,期待解惑

论坛徽章:
0
4 [报告]
发表于 2007-08-14 13:54 |只看该作者
你先把网卡整晕,后又把UDP整晕,
现在都晕了,呵呵。

论坛徽章:
0
5 [报告]
发表于 2007-08-14 14:03 |只看该作者
呵呵  赞...

论坛徽章:
0
6 [报告]
发表于 2007-08-14 16:33 |只看该作者
以太网帧最小是60字节,如果算上crc,那么最小是64字节, 不足的会自动已0填充.但是这个不应该影响上层协议的解析. UDP貌似也有最小和最大长度吧. 具体多少忘记了

论坛徽章:
0
7 [报告]
发表于 2007-08-14 20:08 |只看该作者
鲜花送上,值得思考

论坛徽章:
0
8 [报告]
发表于 2007-08-15 16:22 |只看该作者
from 8139.c


  1. /* Note: the chip doesn't have auto-pad! */
  2.         if (likely(len < TX_BUF_SIZE)) {
  3.                 if (len < ETH_ZLEN)
  4.                         memset(tp->tx_buf[entry], 0, ETH_ZLEN);
复制代码

论坛徽章:
0
9 [报告]
发表于 2007-08-15 17:25 |只看该作者
原帖由 yikaikai 于 2007-8-15 16:22 发表
from 8139.c


/* Note: the chip doesn't have auto-pad! */
        if (likely(len < TX_BUF_SIZE)) {
                if (len < ETH_ZLEN)
                        memset(tp->tx_buf[entry], 0, ETH_ZLEN);



Solaris维护一个最大和最小桢长度,这样可以丢掉长度非法的桢。最小的长度是不变的,最大长度根据硬件支持的情况动态得到,e1000上最大可以16k


> fffffffec020a9d0::print struct dev_info devi_driver_data|::print struct e1000g ! grep frame
            max_frame_size = 0x5ea
            min_frame_size = 0x40
> 0x5ea=D
                1514            
> 0x40=D
                64              


另外,IEEE对小尺寸的包的padding的规定其实也不是很严格,目前好多测试仪器不检测这个,导致有些驱动干脆不做zero padding.

论坛徽章:
0
10 [报告]
发表于 2007-08-16 21:13 |只看该作者
说得好,赞..................
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP