Windows asyncsocket을 만들고 linux에서 소켓을 만들어서 통신하는데
Windows쪽에서 연속적으로 send할 경우 packet drop이 발생하는군요.
getsockopt로 수신버퍼크기를 체크해봤는데 패킷사이즈에 비해 버퍼크기가 충분히 큰데도 패킷이 드랍이 발생합니다.
이에 대한 해결책이 있을까요?
속도가 중요해서 연속적인 send사이에 어떤 메세지 교환은 어려울 것 같습니다.
감사합니다.
소스를 좀 보고싶군요...
TCP를 사용하는데 패킷 드랍이 일어나도 어느정도 로우레벨단에서
재전송을 해주는 것으로 알고 있는데요..
패킷 드랍이라.. 패킷드랍은 하드한 것인데.. UDP를 사용한다면 몰라도
어느정도까지는 보정해 줄겁니다. 악조건이 아니라면..
혹시 연속으로 데이터를 보낼 경우 서버 단에서 그 응답시간을 얼마로 하셨는지요?
non block mode가 아닌 경우에는 받은 패킷의 내용만 가져옵니다.
종료점에 대한 한계선을 지정할 필요가 있을 것 같은데요.. 제일 처음에 얼마의 데이터를 줄 테니 받아라는 식이나.. 그러면 그것이 만족할때까지 계속 읽거나.. 아니면 끝나는 코드를 정의해서 만약에 그 코드이면 끝이다라는 것이나..
그런 것이 없다면 일정 시간동안 계속 응답이 없을 경우에 거기까지 받는다거나..
혹시 걍 read로 데이터가 도착하기 전에 읽어서 결과값이 없는 것은 아니구요?
그렇지 않겠어요?
반대의 경우이긴 합니다만.
linux(서버) -> XP, 2000(클라이언트) 으로 패킷을 보낼 때 서버 측에서 데이터를 쏘고 클라이언트로 부터 잘 받았다는 체크 없이 그냥 소켓을 닫을 경우 가끔 패킷 드랍이 일어납니다. win98, ME에서는 나타나지 않는 현상입니다.
해결하는 방법은 패킷을 받는 측에서 충분히 데이터를 받을 시간을 주거나 클라이언트가 패킷을 다 받은 후 닫을때 까지 서버측에서도 열고 기다리는 방법이 있습니다.
역으로 적용해보시는건 어떨까 해서 올려봅니다.
########################################################## 넘어지는건 아직 괜찮다. 하지만 넘어질때마다 무언가를 주워서 일어나자.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
패킷 드랍이라
소스를 좀 보고싶군요...
TCP를 사용하는데 패킷 드랍이 일어나도 어느정도 로우레벨단에서
재전송을 해주는 것으로 알고 있는데요..
패킷 드랍이라.. 패킷드랍은 하드한 것인데.. UDP를 사용한다면 몰라도
어느정도까지는 보정해 줄겁니다. 악조건이 아니라면..
혹시 연속으로 데이터를 보낼 경우 서버 단에서 그 응답시간을 얼마로 하셨는지요?
non block mode가 아닌 경우에는 받은 패킷의 내용만 가져옵니다.
종료점에 대한 한계선을 지정할 필요가 있을 것 같은데요.. 제일 처음에 얼마의 데이터를 줄 테니 받아라는 식이나.. 그러면 그것이 만족할때까지 계속 읽거나..
아니면 끝나는 코드를 정의해서 만약에 그 코드이면 끝이다라는 것이나..
그런 것이 없다면 일정 시간동안 계속 응답이 없을 경우에 거기까지 받는다거나..
혹시 걍 read로 데이터가 도착하기 전에 읽어서 결과값이 없는 것은 아니구요?
그렇지 않겠어요?
반대의 경우이긴 합니다만.linux(서버) -> XP, 20
반대의 경우이긴 합니다만.
linux(서버) -> XP, 2000(클라이언트) 으로 패킷을 보낼 때
서버 측에서 데이터를 쏘고 클라이언트로 부터 잘 받았다는
체크 없이 그냥 소켓을 닫을 경우 가끔 패킷 드랍이 일어납니다.
win98, ME에서는 나타나지 않는 현상입니다.
해결하는 방법은
패킷을 받는 측에서 충분히 데이터를 받을 시간을 주거나
클라이언트가 패킷을 다 받은 후 닫을때 까지 서버측에서도
열고 기다리는 방법이 있습니다.
역으로 적용해보시는건 어떨까 해서 올려봅니다.
##########################################################
넘어지는건 아직 괜찮다.
하지만 넘어질때마다 무언가를 주워서 일어나자.
댓글 달기