하나의 클라이언트에서 다중 서버접속 시 문제
글쓴이: digilogstyle / 작성시간: 수, 2012/12/12 - 10:12오후
안녕하세요.
한 클라이언트에서 두 서버에 각각 TCP로 연결하여 메시지를 전달하였습니다. 두 서버의 포트는 동일하구요.
A서버소켓에 send를 하고, B서버소켓에 send를 하면 TCP Retransmission이 자주 발생합니다.
그래서 바로 못 보내고 여러번 시도 후에 보냅니다.
마찬가지로 반대의 경우에 TCP Retransmission이 발생하구요..
send 사이에 delay를 늘려보아도 마찬가지입니다.
혹시 이러한 내용에 대해 경험이나 아이디어 있으신 분들의 답변 부탁드립니다.
Forums:
gilgil.net
TCP는 packet loss에 대해 잘 처리해 줄 수 있도록 하는 스택(layer)입니다.
packet을 low level에서 잡는다면(wireshark에서) 당연히 retransmission이 일어날 수 있지만
application layer에서는 일어 나지 않습니다.
send()를 하는 부분과 recv()를 하는 부분에서
제대로 송수신이 일어날 수 있도록 코드가 되어 있는지 확인해 보세요.
(recv의 return값도 확인해 보세요)
www.gilgil.net
------------------------------
답글 주셔서 감사드립니다.
서버와 클라이언트 1:1 연결로 송수신에 문제가 없는 걸로 봐서
send(), recv() 기본 코드는 정상 동작하는 것 같습니다.
그러나 1:1 연결에서 서버연결을 추가하고,
2번째 소켓에 send() 할때 매번은 아니고 자주 retransmission이 발생합니다.
댓글 달기