w5500 multicast 문의입니다.

Multicast Receive는 잘 되는데 Send가 안되서 문의 드립니다.


// Multicast init
setSn_DHAR(3, wizInfo.mac);
setSn_DIPR(3, MultiAddress);
setSn_DPORT(3, 53256);
socket(3, Sn_MR_UDP, 5325, Sn_MR_MULTI);

sendto(0x03, multicastSendBuf, length, MultiAddress, 53256);


  1. Wireshark으로 확인 해보았을 때 IGMP JOIN하는 패킷이 안 보이는데 join을 하는 건가요?
  2. Send할 때 혹시 추가 해야할 내용이 있을까요?
  1. Membership Report group xxx.xxx.xxx.xxx(ipaddress)
    위와 같은 메세지가 안보이시나요?
    보이신다면 해당 패킷을 join 패킷으로 보시면 됩니다.
  2. 추가해야할 내용은 없는것으로 보여집니다.

join packet을 확인하실 때 어떤 방식으로 확인하셨나요?
join packet은 local 기기들로 broadcast 되기 때문에 pc 가 연결된 허브에 디바이스를 연결하시면 pc에서 wireshark로 확인이 가능합니다.

그리고 send부분에서 특별히 추가할 사항은 없습니다.
다만, 현재 setSn_DHAR 에 wizInfo.mac을 넣어주고 계신데 multicast group의 mac 주소가 맞나요?
udp multicast group mac 주소는 생성방법이 따로 존재합니다.

broadcast의 mac 주소가 ff:ff:ff:ff:ff:ff 인것 처럼
multicast의 mac 주소는 01:00:5e: ( 0bit + multicast IP address의 하위 23bits ) 입니다.

multicast 통신에 대한 자세한 내용은 아래 자료를 참고하시면 도움이 되실겁니다.
https://forum.wiznet.io/uploads/short-url/nyQQ5ZJcs4dAt11JksePXPUfVTn.pdf

Mac address 설정이 잘못됬었습니다.

도와주셔서 감사합니다.