搜索
bottom↓
回复: 14

裸帧以太网通讯,中间有两层交换机,怎么实现组播通讯?

[复制链接]

出5入4汤圆

发表于 2022-11-24 00:35:33 | 显示全部楼层 |阅读模式
有个产品,只能裸机,无TCPIP协议栈,产品之间,通过2层交换机级联,互相传输MAC层报文
老板说,未来要兼容性好,OK,我手工做了ARP和UDP,和电脑上的网络调试助手可以通讯
新需求来了,需要一个设备发送报文,若干设备收到,而不是全部设备收到,也就是组播
我研究了一下,发现IGMP内容不少啊,要加入通知交换机加入组播组,离开组播组之类的过程,非常复杂啊
请问有谁做过类似的东西吗?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入12汤圆

发表于 2022-11-24 07:29:10 | 显示全部楼层
本帖最后由 KirkY 于 2022-11-24 07:38 编辑

是有点复杂,不过组播已经是个老协议了,很久没有更新了。
自己实现麻烦。简单需求还不如自己写个协议从2层解决算了(例如直接写icmp帧)。

出300入477汤圆

发表于 2022-11-24 08:05:48 来自手机 | 显示全部楼层
最简单的实现方法是发送方直接发广播地址,由目标端过滤。自己明显知道什么时候需不需要收这种数据包啊,不想收就自己忽略呗

出0入0汤圆

发表于 2022-11-24 08:10:22 | 显示全部楼层
纯纯的好奇,都实现了ARP和UDP。 那也默认有 DHCP 是吗。
另外,2层交换机+自定义的设备,这样的系统,谁做DHCP service呢。
或者说,干脆直接固定IP地址吗

出0入16汤圆

发表于 2022-11-24 08:32:23 | 显示全部楼层
自己造轮子的确苦逼

出0入85汤圆

发表于 2022-11-24 08:34:08 来自手机 | 显示全部楼层
udp 不是本来就支持组播么,不跨三层,组播这玩意我记得就是靠接受的那方自己过滤的。

出0入0汤圆

发表于 2022-11-24 08:37:14 来自手机 | 显示全部楼层
之前弄过 你只是节点 自己构造一个组播加入桢和退出桢发送就行 别的都不用管
组播有版本的  我那个环境 开始用v3不行 后面又改成v2

出0入0汤圆

发表于 2022-11-24 08:40:55 来自手机 | 显示全部楼层
收和发就不用说了嘛 发裸包构造振头  收裸包一步步的分支判断  这些本来你就做了

出5入4汤圆

 楼主| 发表于 2022-11-24 11:32:12 来自手机 | 显示全部楼层
huangqi412 发表于 2022-11-24 08:37
之前弄过 你只是节点 自己构造一个组播加入桢和退出桢发送就行 别的都不用管
组播有版本的  我那个环境 开 ...

(引用自7楼)

我研究了一下协议,我是不是只要搞定加入帧就可以了,因为我不需要退出,除非断电了
加入帧似乎不复杂,就是ip报文基础上弄一下

出5入4汤圆

 楼主| 发表于 2022-11-24 11:34:15 来自手机 | 显示全部楼层
redroof 发表于 2022-11-24 08:05
最简单的实现方法是发送方直接发广播地址,由目标端过滤。自己明显知道什么时候需不需要收这种数据包啊,不 ...
(引用自3楼)

对,你这个是保底做法,但是如果能支持组播,接收侧设备就少了中断的次数,减轻了mcu负荷

出5入4汤圆

 楼主| 发表于 2022-11-24 11:35:28 来自手机 | 显示全部楼层
mPiDDR 发表于 2022-11-24 08:10
纯纯的好奇,都实现了ARP和UDP。 那也默认有 DHCP 是吗。
另外,2层交换机+自定义的设备,这样的系统,谁做 ...

(引用自4楼)

当然是固定ip啊,像你这样搞下去,马上要做成轻量级的协议栈了

出5入4汤圆

 楼主| 发表于 2022-11-24 11:39:06 来自手机 | 显示全部楼层
zdg102 发表于 2022-11-24 08:34
udp 不是本来就支持组播么,不跨三层,组播这玩意我记得就是靠接受的那方自己过滤的。 ...
(引用自6楼)

udp就是点对点的吧,组播似乎是靠交换机实现的,设备加入了组播组,那么交换机就会向对应的端口转发发送对应的报文,否则是不会转发的,而广播,就是无脑转发给所有端口,这里的端口是port口的意思

出300入477汤圆

发表于 2022-11-24 11:47:09 来自手机 | 显示全部楼层
tim4146 发表于 2022-11-24 11:34
对,你这个是保底做法,但是如果能支持组播,接收侧设备就少了中断的次数,减轻了mcu负荷 ...
(引用自10楼)

用这个方法减少中断次数是不靠谱的。这么想的人都是没被大型局域网里面无穷无尽的广播包毒打过,哈哈。
想在一个复杂一点的大型网络里活下来,自己的包处理能力就不会低,不然早被广播包淹死了。能活下来的设备,用软件过滤一点这种包都是小意思。

出0入0汤圆

发表于 2022-11-25 09:25:25 | 显示全部楼层
tim4146 发表于 2022-11-24 11:32
我研究了一下协议,我是不是只要搞定加入帧就可以了,因为我不需要退出,除非断电了
加入帧似乎不复杂, ...
(引用自9楼)

是的 就构造一个加入桢就行(抄一个改ip什么的)  你是节点不用研究协议,你又不是做交换机路由器。
电脑也能收发裸桢,局域网内用,似乎你也没必要实现udp.  就认mac

出0入85汤圆

发表于 2022-11-25 18:12:30 | 显示全部楼层
tim4146 发表于 2022-11-24 11:39
udp就是点对点的吧,组播似乎是靠交换机实现的,设备加入了组播组,那么交换机就会向对应的端口转发发送 ...
(引用自12楼)

用windows套接字并抓包实验了一下, 确实 udp 使用组播地址的时候,存在加入和退出组播的IGMP 报文。   我以前还以为 UDP 直接用组播地址就好了, 组播报文交换机直接广播, 没想到操作系统底层实现的时候还有加入和退出的机制。 又涨姿势了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 19:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表