[WIZ750SR-RS232]사용중 ARP 관련 문의사항.

안녕하세요.
모듈[WIZ750SR-RS232] UDP 1:N Mode 로 사용중입니다.

2개의 서버에서 모듈로 패킷을 보내고 있습니다.

궁금한 점은, 서버에서 모듈로 패킷을 요청할 때마다

모듈에서 ARP 를 요청하는데, ARP Table에 등록하여
등록 된 MAC 에는 ARP를 요청하지 않도록 하는게 가능한지 궁금합니다.!!
하려면 어떻게 해야하는지 답변 부탁드려요
감사합니다!

WIZNET 칩에서는 Destination IP가 바뀔때마다 ARP를 요청합니다.
두개의 서버를 사용중이셔서 매번 ARP를 요청하는것 같습니다.
번거롭지만 요청하지 않도록 별도로 ARP Table을 만들 수는 있습니다.
서버로부터 데이터를 받으면 MAC과 IP를 저장하고,
데이터 전송시에 기본적으로 SEND command를 사용하는데 저장했던 MAC과 IP로 SEND_MAC command를 사용하여 데이터를 전송하면 가능합니다.

1 Like

감사합니다.
죄송하지만, SEND MAC Command가 정확한 함수명인가요?
혹시 send() 와 sendto( ) 함수를 말씀하시는건가요?
답변부탁드립니다.

UDP는 전송시 sendto() 함수를 사용합니다.

SEND MAC Command는 커맨드 이름입니다.
sendto() 함수안에 setSn_CR()에서
기존의 SEND 커맨드가 아닌 Sn_CR_SEND_MAC 커맨드를 사용하시면 됩니다.
(W7500x_wztoe.h에 Sn_CR_SEND_MAC 으로 define 되어 있습니다.)

또한 sendto() 함수 이전에,
전송하려는 상대방의 MAC 정보를 Sn_DHAR에 저장하셔야 합니다.

감사합니다.

1 Like

답변 감사드립니다!!!

위의 글에 의하면 Sn_DHAR의 경우 값이 쓰여지지 않는다고
써있는데, W7500P 에서는 가능한가요?

또한가지 MAC 주소를 알아야 하는데 어떻게 하면 알아낼 수
있을까요?

답변부탁드립니다.

안녕하세요

연휴로 인해 답변이 늦었습니다.

W7500P의 Sn_DHAR의 경우 R/W 모두 가능한 register이니 MAC주소를 미리 저장하실 수 있습니다. (reference 시트를 참조해주세요. https://wizwiki.net/wiki/lib/exe/fetch.php?media=:products:w7500:w7500x_rm_v112_20181017_.pdf)

또한 상대방의 MAC 주소는 찾아보신대로 사용자가 알아야합니다.
모른다면 처음에는 최초 1번 ARP를 시도한 뒤 Sn_DHAR의 주소를 읽어서 사용자의 MAC주소를 먼저 안뒤에, 그 다음부터는 SEND MAC 동작을 수행하시면 됩니다.

또는 통신하고자 하는 상대방이 PC인 경우 cmd>ipconfig /all을 통해 이더넷 어댑터의 MAC주소를 확인하시면 됩니다.

1 Like

감사합니다 lawrence님!!
알려주신 것 처럼 해보려고 하는데 좀 어려운 것 같습니다.
번거로운 부탁이지만
혹시 예제코드가 있을까요?