[WIZ550io] 재접속 및 IP 변경 관련 문의

[WIZ550io]

안녕하세요
한국어 포럼이 있었네요 ㅎㅎ 영문포럼에 한글로 올리다보니 민망했는데 ㅎㅎ

접속에 관련해서 문의 드립니다.
모듈은 Server로 구현을 하였고, SPI 로 제어 중입니다.

전원 투입하여 처음 접속하거나,
접속 그리고 끊기를 반복하면 정상적으로 기능을 수행합니다.

그런데, 접속상태에서 랜케이블을 뺏다 다시 연결한 후에는
접속, 끊기를 수행해도 접속이 전혀 되지 않습니다.
모듈을 껏다 켜야만 접속이 되는 상태입니다.

이를 개선하고자 하는데요
랜케이블을 뺏다 다시 연결한 후에도
모듈을 켜둔상태에서 이더넷이 접속 되게 하려면 어떻게 해야 하나요?

모듈은 서버로 구현하였고, UI는 클라이언트로 설정하여 점검중입니다.
모듈에서 지원하는 기능이 있을 것 같은데 아직 찾지 못하였는데요
도움 부탁드립니다.

한가지 더 있습니다.
IP를 변경하였는데
이 역시도 전원을 껏다켜야만 UI에서 연결이 가능합니다.
사용하고 있는 PC 는 윈도우10 입니다.
도움 부탁드립니다.

감사합니다.

한정수 드림

클라이언트가 접속시마다 포트번호가 바뀌나요?
서버입장에서 볼때, A와 연결을 이루었고 이후에 랜선을뽑고나서 접속을 끊을경우
접속이 끊긴것을 인지하지 못합니다.
따라서 A와의 연결을 유지하고 있는상태에서 B가 접속을 요청할경우 B의 접속을 거절합니다.

keep alive 기능을 사용하는 것을 추천드립니다.
image
keep alive 패킷이란 일정 간격으로 패킷을 전송하여 상대방의 응답 여부를 확인하는 기능입니다.
위와 같은 상황에서 랜선을 뽑을 경우 모듈은 keep alive 패킷을 전송하고 이에 대한 응답이 없으므로 timout 발생하여 TCP연결이 끊기게됩니다. 따라서 A와의 연결이 끊기고 새로운 TCP 접속에 반응 할 수 있습니다.

IP 변경이란 모듈의 IP 변경을 말씀하시는건가요?
IP 변경을 하실 경우 socket을 닫았다가 다시 열어줘야 접속이 가능합니다.

답변 감사드립니다.

제 설명이 많이 부족하였습니다.

클라이언트는 동일한 상태에서 랜선만 뺏다가 다시 연결하는 테스트 입니다.

즉, A와 연결을 유지하고 있는 상태에서 A의 랜선을 뺏다가 잠시 후 A의 랜선을 다시 연결하는 경우입니다.

è Keep alive 기능을 사용하면 될까요?

그리고, 설명해주신 경우는(A->B) 다음 순서에 할 예정입니다.

도움 부탁드립니다.

감사합니다.

한정수 드림

client 가 동일하더라도 모듈은 접속을 유지하고 있는상태이기 때문에 새로운 접속에 대해 응답하지 않습니다.
keep alive 기능을 사용하시면 될 것 같습니다.
다만 keep alive 를 통해 timeout이 발생하게 할 경우 랜선을 30초이상 뽑아야 가능합니다.
RCR, RTR에 따른 시간이며 값을 변경하실 수도 있습니다.

안녕하세요

말씀드린대로 keepalive 설정을 통해 모듈이 client의 재연결을 좀 더 오래 기다리게 설정할 수 있습니다.

그러나 모듈쪽 뿐만 아니라 통신하는 상대쪽도 keepalive가 설정되었는지 확인이 필요합니다.

만약 시간을 늘렸음에도 동일한 문제가 발생하시면 상대쪽에서도 keepalive 설정을 해주셔야 합니다.

감사합니다.