Raw모드로 icmp 사용시

#1

4개 소켓중에 하나의 포트를 RAW-ICMP 모드로 Ping-Request 용도로 사용합니다.

상대측 장치의 네트웍 상태를 확인하기위해 주기적으로 Ping 요청하는거지요.

이 기능을 구현하고 나니 W5100 자체 Ping 기능이 작동을 안하네요?

어떻게 살리죠?

#2

W5100 자체 ping 기능은 펌웨어 구현과 전혀 상관없이 동작합니다.

IP주소와 MAC 주소를 한번 체크해보세요.

#3

또는 핑 세팅도 확인해보세요

#4

RAW-ICMP 모드를 해제하고 TCP모드로 바꾸면 ping 잘 됩니다.
RAW-ICMP 모드로 전환하면 안됩니다.

PC에서 Ping 하면 RAW-ICMP로 설정된 포트로 ping-request 데이터가 들어옵니다.
그래서 프로그램적으로 응답데이터를 보내서 처리하긴 했는데…

ping요청 데이터가 RAW-ICMP 포트로 들어와서 W5100 내부 Ping 처리기(?)가 핑 요청데이터를 놓치는거 아닌가? 생각해봅니다.

#5

IP RAW모드로 소켓을 오픈한 건가요??
그렇다면 ping request는 모두 소프트웨어로 올라오게 됩니다.
그러므로 직접 처리해 줘야 합니다.

#6

MR Register의 상위4번째 비트인 Ping Block Bit가 '1’로 설정되어 있으면
W5100의 내부 Ping reply로직이 Disable되어 Ping Request에 대한 Reply를 하지 않을 수 있습니다 .

이 로직은 MACRAW 사용유무에 상관없이 동작합니다.
감사합니다.