우선 W5100은 칩 내부적으로 ARP를 동작하게 구성되어 있습니다.
그리고 Ping의 경우 W5100내부에 있는 PHY를 통해서 하드웨어적으로 연결되어 동작하게 됩니다.
위 경우를 본다면, 구성하신 ping 기능을 네트웍 상태를 10초 간격으로 체크하시는데, 여기에 따로 예외 처리를(time out) 추가하시는 것을 추천드립니다.
아무래도 강제적으로 ARP를 끊을 수는 없기 때문에, 네트웍 상태를 10초 간격으로 2~3번 이상 체크한 후에도 응답이 오지 않으면, 자체적으로 통신 Socket을 Close하는 형태로 구성하시면 될 것 같습니다.
그런데, 만약 위 상태가 되서 Socket Close가 된다면, 이 후 다시 상대 장치의 전원이 들어올 경우, 사용자가 임의적으로 다시 구동을 해주어야 할텐데, 이 경우에도 만약 socket close가 되면 이 후 몇 십분 간격으로 한 두번씩 ping 보내게 구성하셔서 동작되게 하시거나, 아니면 방금 말씀드린대로 사용자가 다시 구동하는 방법으로 사용하시면 될 것 같습니다.