Ping test 에 꼭 한번만 성공합니다

=== W5500 NET CONF ===
MAC: 00:08:DC:00:AB:CD
SIP: 192.168.10.123
GAR: 192.168.10.1
SUB: 255.255.255.0
DNS: 0.0.0.0

w5500으로 레지스터 읽고 쓰고 까지 성공해서 핑테스트 부터 시작해 봤습니다.
결과가 좀 애매 합니다. 훈수 부탁드립니다.

  1. ping test에서 아래처럼 한번은 성공하는데 두번째 부턴 내리 실패합니다.
    새로 핑테스트 해보면 대부분은 처음부터 실패하고 아래처럼 처음만 성공하기도 합니다.

  2. ping block mode를 변경해보니 아예 한번도 성공하지 못합니다.

  3. w5500 에 전원을 넣지 않고 테스트 해보면 당연히 처음부터 응답이 없습니다.
    (한번 응답하고 죽는게 w5500이 맞습니다)

무엇을 확인해 보면 좋을까요?
감사합니다.

////////////////////////////////////////////////////////////////////

C:\Users\sehon>ping 192.168.10.123

Pinging 192.168.10.123 with 32 bytes of data:
Reply from 192.168.10.123: bytes=32 time<1ms TTL=128
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.10.123:
Packets: Sent = 4, Received = 1, Lost = 3 (75% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\Users\sehon>ping -t 192.168.10.123

Pinging 192.168.10.123 with 32 bytes of data:
Reply from 192.168.10.123: bytes=32 time<1ms TTL=128
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Request timed out.

////////////////////////////////////////////////////////////////////

안녕하세요 ? justin입니다.

  1. 첫 번째만 성공하고 두 번째 부터 실패하는게 이상하다고 보여집니다. 가능하시면 wireshark 같은 프로그램으로 해당 패킷을 캡쳐한 파일을 같이 올려주셔서 보여주시면 더 도움을 드릴 수 있을 것 같습니다.

  2. ping block mode를 1로 설정하면 ping test에 응답이 가지 않기 때문에 성공하지 못하는게 맞습니다.

혹시 사용한 펌웨어는 위즈네트에서 제공한 소스코드를 사용하셨나요? 직접 짜신거면 소스코드에 문제가 있을 수도 있습니다.

그리고 1:1연결인지 확인 해주세요 같은 네트워크에 192.168.10.123이 또 존재할 수 있습니다.

감사합니다.

ioLibrary를 최소한으로 수정해서 했습니다.
첨부는 wireshark ping log입니다.

///////////////////////////
C:\Users\sehon>ping 192.168.10.123

Pinging 192.168.10.123 with 32 bytes of data:
Reply from 192.168.10.123: bytes=32 time<1ms TTL=128
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.10.123:
Packets: Sent = 4, Received = 1, Lost = 3 (75% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

///////////////////////////

wireshark 결과로는 w5500이 두번째 이후 request에 응답하지 못하는 것 같습니다.

ping 테스트 종료 후 w5500 register 값입니다.

WIZREG 00: 00
WIZREG 01: C0
WIZREG 02: A8
WIZREG 03: 0A
WIZREG 04: 01
WIZREG 05: FF
WIZREG 06: FF
WIZREG 07: FF
WIZREG 08: 00
WIZREG 09: 00
WIZREG 10: 08
WIZREG 11: DC
WIZREG 12: 00
WIZREG 13: AB
WIZREG 14: CD
WIZREG 15: C0
WIZREG 16: A8
WIZREG 17: 0A
WIZREG 18: 7B
WIZREG 19: 00
WIZREG 20: 00
WIZREG 21: 80
WIZREG 22: 00
WIZREG 23: 00
WIZREG 24: 00
WIZREG 25: 07
WIZREG 26: D0
WIZREG 27: 08
WIZREG 28: 28
WIZREG 29: 00
WIZREG 30: 00
WIZREG 31: 00
WIZREG 32: 00
WIZREG 33: 00
WIZREG 34: 00
WIZREG 35: 00
WIZREG 36: 00
WIZREG 37: 00
WIZREG 38: FF
WIZREG 39: FF
WIZREG 40: 00
WIZREG 41: 00
WIZREG 42: 00
WIZREG 43: 00
WIZREG 44: 00
WIZREG 45: 00
WIZREG 46: BF
WIZREG 47: 00
WIZREG 48: 00
WIZREG 49: 00
WIZREG 50: 00
WIZREG 51: 00
WIZREG 52: 00
WIZREG 53: 00
WIZREG 54: 00
WIZREG 55: 78
WIZREG 56: 25
WIZREG 57: 04

감사합니다.



w5500_ping.zip (93.8 KB)

와이어 샤크 패킷 확인 결과 2번째 Ping 부터는 Destination Mac이 다르네요

첫번째 ping request


두번째 ping request


이렇게 되는 이유는

  1. 같은 네트워크안에 같은 IP를 사용하는 장치가 있을 수 있고,
  2. Windows 에서 ARP table을 가지고 있어 mapping이 잘 안되는 상황이 발생할 수 있습니다.

1번의 경우 PC에 바깥으로 나가는 네트워크 끊고 W5500과 1:1 통신을 해보면 Ping test가 되는 것을 확인하실 수 있고
2번의 경우에는 윈도우 명령프롬프트 창에 arp -a 명령어를 쳐보시고 테이블 구성에 해당 아이피와 맥을 확인하실 수 있습니다. arp 테이블을 지우는 방법은 arp -d 를 입력하시면 됩니다.

추가 질문사항이나 궁금한점 있으시면 남겨주세요 ^^

ping test한 결과를 wireshark로 확인해보니, 이상 없이 나옵니다.
(참고로, 저는 PC와 보드를 1대1로 연결하여 테스트 진행했습니다.)
해당 테스트를 한 wireshark를 첨부해봅니다.

thanks, :slight_smile:
iriankim
ping test.zip (717 Bytes)

=== W5500 NET CONF ===
MAC: 86:10:87:40:AB:CD
SIP: 192.168.10.44
GAR: 192.168.10.1
SUB: 255.255.255.0
DNS: 0.0.0.0

IP를 바꾸고 망 분리해서 해보니 잘 됩니다.

C:\Users\sehon>ping 192.168.10.44

Pinging 192.168.10.44 with 32 bytes of data:
Reply from 192.168.10.44: bytes=32 time<1ms TTL=128
Reply from 192.168.10.44: bytes=32 time<1ms TTL=128
Reply from 192.168.10.44: bytes=32 time<1ms TTL=128
Reply from 192.168.10.44: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.10.44:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

192.168.10.123은 PING하면 응답이 없어서 사용해도 되는 지 알았더니
PING에 응답이 없어도 ARP에는 응답을 해서 PING을 방해 할 수도 있군요.
희한한 일이네요.

가이드에 감사드립니다.

제 생각에는 IP 충돌에 의한 것은 아니고, MAC adress의 충돌이 아닌가 보여 집니다.
이것도 참고 하시기 바랍니다.