关于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包。
是不是少了一些步骤,或者缺少哪些协议,求高人解答,如何才能让开发板收到主机发出的数据。 展开
主机和开发板通过交换机连在局域网中,
硬件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包。
是不是少了一些步骤,或者缺少哪些协议,求高人解答,如何才能让开发板收到主机发出的数据。 展开
1个回答
展开全部
会不会是交换机不知道开发板的MAC地址?
这个不可能,交换机初次会所有端口转发的
wireshark 能在网络上抓到主机发出的包啊 最好用HUB(集线器)来测试
这样来来去去的包都可以用另一台电脑监测到
确认UDP包数据项都正常后,在你的开发板 MAC 作调试输或输出数据应该就能找出问题
有可能是最弱智的问题了: 用路由器来替交换机用,结果IP段不在路由的LAN段 所以所有IP包被路由去 WLAN口k
这个不可能,交换机初次会所有端口转发的
wireshark 能在网络上抓到主机发出的包啊 最好用HUB(集线器)来测试
这样来来去去的包都可以用另一台电脑监测到
确认UDP包数据项都正常后,在你的开发板 MAC 作调试输或输出数据应该就能找出问题
有可能是最弱智的问题了: 用路由器来替交换机用,结果IP段不在路由的LAN段 所以所有IP包被路由去 WLAN口k
追问
怎么可能不设在同一个网段,
主机能收到开发板的ARP应答包,命令行arp -a显示开发板MAC地址和IP地址正确,
然后主机向开发板发送UDP数据包,但是开发板好像收不到打包好的IP帧,
感觉交换机没有转发到开发板连接的端口。
开发板能收到的数据包,我看了一下都是广播包,除了一些其他主机发的SSDP包,就是ARP包了
到底会是哪里出的问题呢,求教啊
晓网科技
2024-10-17 广告
2024-10-17 广告
ZigBee 协议属于高级通信协议,是基于上世界的IEEE协会制定的802协议,主要约束了网路的无线协议、通讯协议、安全协议和应用需求等方面的标准,其有效转播速率可以达到300Kbps (千比特率)。 和计算机通信的模式类似,ZigBee的...
点击进入详情页
本回答由晓网科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询