打印

数据包接收问题

[复制链接]
1078|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋天落叶|  楼主 | 2011-12-18 19:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开发板裸机跑网卡MAC层驱动,外加自己写的一简易ARP协议栈,
和以太网帧统计程序,通过串口输出接收到的以太网帧长度。

然后局域网测试,开发板只能接收到广播包(主要是ARP包和一些SSDP包)。
主机端向开发板发送UDP包,数据包大小1040Byte,一次发一个UDP包,发送间隔100ms。

开发板那网卡灯狂闪,但是开发板并没有接收到打包好的以太网帧,
我的统计程序直接调用网卡驱动的接收函数,函数的返回值是接收到的以太网帧的长度,仅此而已。
数据接收采用的轮询模式,没有使用中断。
串口输出的结果基本都是ARP包的长度,没有收到长度超过1000字的数据帧,

刚开始我以为是ARP协议栈有问题,但是通过wireshark抓包分析,
主机接收到了开发板的ARP应答包,而且UDP包也能正常发出,
然后查看主机的ARP缓存表,存在开发板的IP地址和MAC地址,
都没有问题。

但是为什么开发板收不到包含UDP数据的以太网帧呢,求解哪个环节出了问题,
这个问题困扰了我好多天了,先谢谢了。

最后说下我的ARP协议处理流程,
首先判断以太网帧头的类型字段,如果是0x0806则是ARP帧,然后判断接收帧的目标IP地址,如果是0.0.0.0(未填写)或者是开发板IP,就构造ARP包应答。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:落叶很美

138

主题

3044

帖子

1

粉丝