W5300 의 timeout
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: W5300 의 timeout
by justinkim ·
안녕하세요
TCP통신은 데이터를 주면 받았다라는 ack라는 패킷을 응답으로 줍니다.
상대방 버퍼가 가득 차있다고 connection을 끊지는 않습니다.
상대방이 응답이 없을 경우 RTR만큼의 Timeout timer가 작동하게되고 RCR만큼 반복하게 됩니다.
이모든 과정동안 응답이 없을 시 timeout 인터럽트가 발생하게 됩니다.
즉 윈도우 프로그램 측에서 응답이 없어야 timeout 인터럽트가 발생하게 됩니다 그래서 랜선을 뽑으면 상대방의 ack가 도달할 수 없기때문에 인터럽트가 발생하게되고 랜선이 연결된상태라면 데이터는 못읽어가지만 응답은 주기 때문에 연결이 끊기지는 않습니다.
RE: W5300 의 timeout
by eurteurt ·
답변 감사드립니다.
답변을 보면 상대방 프로그램이 버퍼가 가득 차서 못 받는 상태에서도 TCP 통신상의 ACK는 보내주기 때문에 인터럽트가 발생하지 않는 것이라고 이해가 되는데요, 이런 경우에도 Sn_IR의 SendOK bit는 1로 되어야 하지 않을까요?
프로그램에서는 Sn_IR의 SendOK 가 1이 되지 않아서 계속 1이 될 때까지 기다리고 있는 중인데요 , 그 동안에도 timeout interrupt는 발생하지 않습니다. 요 부분이 명확히 이해가 안가서 질문드립니다.
그러니까 Sn_IR의 SendOK가 0인 상태가 계속 유지 되는 것과 retransmission timeout과의 관련성을 콕 찝어서 알려주시면 감사하겠습니다.
이만 줄이겠습니다.
RE: W5300 의 timeout
by becky ·
안녕하세요
send ok 가 뜨려면 buffer데이터가 memory에 담겨야지 '1’로 뜹니다.
만약에 상대방이 데이터를 받지 못해 계속 재전송 상태에 놓여있다면,
이전 데이터가 보내지지않아서 memory가 차있으면 다음 보낼 데이터가 memory에 써지지 않기 때문에 send ok는 뜨지않는게 맞습니다.
감사합니다.