关于tcp/ip协议栈的问题

我是想自己写一个精简的UDP/IP协议栈,实现简单的UDP数据传输,主机和开发板通过交换机连在局域网中,硬件MAC层驱动已经有官方提供,暂时只实现一个ARP协议,开发板的... 我是想自己写一个精简的UDP/IP协议栈,实现简单的UDP数据传输,
主机和开发板通过交换机连在局域网中,
硬件MAC层驱动已经有官方提供,暂时只实现一个ARP协议,
开发板的ARP应答测试通过,
主机的ARP缓存列表已经可以看到开发板的MAC地址和IP地址,

在做UDP包接收测试的时候,发现开发板没有接收到包含UDP数据的IP数据报。
我是通过解析以太网帧头的协议类型字段来判断帧类型的,
ARP帧类型是0x0806,IP帧类型是0x0800
我的程序只接收以上两种类型的数据帧,

然后启动UDP包接收测试,通过wireshark抓包分析,
主机首先发出ARP包询问开发板MAC地址,然后主机收到ARP应答,
接着主机发送UDP包,但是我的开发板收不到包含测试数据的IP帧,
UDP包我也分析过,类型字段是0x0800,
但是我的开发板没有收到,会不会是交换机不知道开发板的MAC地址,
不知道从那个端口转发数据呢,
我的板子现在只能接收到ARP包,和一些SSDP包。
是不是少了一些步骤,或者缺少哪些协议,求高人解答,如何才能让开发板收到主机发出的数据。
展开
 我来答
半梦的看书亼
2011-11-07 · TA获得超过464个赞
知道小有建树答主
回答量:523
采纳率:0%
帮助的人:322万
展开全部
会不会是交换机不知道开发板的MAC地址?

这个不可能,交换机初次会所有端口转发的

wireshark 能在网络上抓到主机发出的包啊 最好用HUB(集线器)来测试

这样来来去去的包都可以用另一台电脑监测到

确认UDP包数据项都正常后,在你的开发板 MAC 作调试输或输出数据应该就能找出问题

有可能是最弱智的问题了: 用路由器来替交换机用,结果IP段不在路由的LAN段 所以所有IP包被路由去 WLAN口k
追问
怎么可能不设在同一个网段,
主机能收到开发板的ARP应答包,命令行arp -a显示开发板MAC地址和IP地址正确,
然后主机向开发板发送UDP数据包,但是开发板好像收不到打包好的IP帧,
感觉交换机没有转发到开发板连接的端口。

开发板能收到的数据包,我看了一下都是广播包,除了一些其他主机发的SSDP包,就是ARP包了

到底会是哪里出的问题呢,求教啊
晓网科技
2024-10-17 广告
ZigBee 协议属于高级通信协议,是基于上世界的IEEE协会制定的802协议,主要约束了网路的无线协议、通讯协议、安全协议和应用需求等方面的标准,其有效转播速率可以达到300Kbps (千比特率)。 和计算机通信的模式类似,ZigBee的... 点击进入详情页
本回答由晓网科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式