WIZnet Developer Forum

Link는 되는데 ping이 않될때

수고하십니다.
첫 TCP 소켓 연결에서 동작하다가.
연결을 끊은 후 다시 연결하면 연결이 않됩니다.
link led는 동작하고 PHY 레지스터를 읽으면 Link Up 상태입니다.
그런데, ping이 않됩니다.
원인을 파악하려면 어디를 확인해 봐야 할까요

그리고,
socket.c 를 보니
/*
*
@file socket.c
@brief setting chip register for socket
last update : 2008. Jan
*
이렇게 되어 잇어요.
이후 업그레이드된 펌웨어에서 안전성등 큰 변화가 있었나요?

안녕하세요.

말씀하신 건 최초 TCP 소켓 연결은 정상적으로 동작하나 연결을 끊은 후 다시 연결하면 연결이 안된다는 것으로 이해했습니다.

말씀하신 점을 보아 유추해볼 수 있는 것은 TCP 연결이 정상적으로 끊기지 않은 것입니다.

혹시 test 환경은 Local 망으로 구성하신건가요??

test 환경을 어떻게 구축하셨는지에 대해 정확한 서술 부탁드립니다.

추가로 지정시간동안 응답이 없으면 자동적으로 TCP 연결을 끊는 timeout 기능을 구현하셔서 처리하는 방법도 있습니다.

사용하신 코드와 Test 환경 설명 부탁드립니다.

감사합니다.

안녕하세요 위즈네트 방보현연구원입니다.

말씀하신 증상은 다음과 같은 원인일 것으로 추측됩니다.

초기에 주소 등의 레지스터 등록을 모두 마친 후 TCP 소켓 연결을 완료했다가 프로그램적인 요소에 의해 주소 등이 초기화 혹은 다시 덧씌워졌을 가능성이 있습니다. 정상적으로 PHY 레지스터를 읽어오는 것을 보면 SPI통신이 성공했으므로 Digital part와 Analog 파트인 PHY가 모두 정상적으로 동작하는 것으로 보입니다.

<해결책>

이런 현상이 일어난 후에 network information(mac,ip address, gateway, subnetmask)등을 읽어 정상적으로 등록되어 있는지 살펴보시기 바랍니다.

만약 비정상적인 값이 씌여 있다면 프로그램 내에서 해당 동작(network 정보를 다시 쓰는 동작)을 수정하시기 바랍니다.

만약 네트워크 정보가 정상이라면 network 환경(공유기,DHCP) 등을 살펴보시기 바랍니다.

이상입니다.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.