[W5300]port 설정 문의

안녕하세요.

예제 소스 중 loopback 함수를 이용하여 진행다보니 문의 사항이 있어 글을 남깁니다.

  1. TCP의 source port를 고정하여 사용하는 예제 유무 또는 설정 방법

    : DSP(TMS320F28377D)의 Hardware reset 시 TCP 통신 재접속 불가 현상 발생

    예제인 loopback 함수를 활용하다보니 destination port의 값만 입력이 가능

  2. 시스템 구성 : 상위 제어기(server) - 스위칭 허브 - 본제어기(DSP+W5300, client)

    : 위와 같은 시스템 구성 시 본제어기의 Hardware reset을 할 경우, 상위제어기에서

    본제어기쪽에 Close가 확인이 안된다고 하는데 질문 1의 상황과 연관이 있는지요?
    

사정상 포럼에 모든 정보 공개가 불가하여, 추가적인 정보가 필요하시다면 댓글 확인 후
유선상으로 연락을 드리도록 하겠습니다.

  1.    if((ret=socket(sn, Sn_MR_TCP, any_port++, 0x00)) != sn){
    

loopback.c의 156 번째줄에 위와같은 코드가 있습니다. any_port++부분에 고정하고 싶으신 source port를 입력하시면 됩니다.

  1. Client를 reset 시킬경우 별도의 close 패킷이 전송되지 않기때문에 Server는 이를 알지 못합니다. Server에서 Client의 부재를 확인하기 위해서는 data 전송이나 keep alive 패킷을 전송한후, 응답을 받지 못하고 timeout 이 발생하면서 close되도록 하여야 합니다.

위의 any_port++대신 고정된 Source port로 하게 되면 TCP Server와 통신하던중 정상적인 종료가 아닐경우에는 재접속이 불가할수 있습니다.