UDP 관련 질문입니다.

sozu의 이미지

UDP 를 이용해서 Stress Test 를 하고 있습니다.

Lan 환경에서 하고 있는데, 80000ms 동안 14만개 정도의 UDP 메세지를 보냅니다.

문제는 다 도착하지 않는다는 것입니다.

Lan 환경에서는 Reliability 가 문제가 되지 않을줄 알았는데

제 생각으로는 Loss 가 일어나는것 같습니다.

제 생각이 맞는지 궁금합니다.^^; 만약 틀리다면 코딩을 잘못했을텐데..

잘못된 부분은 없는듯 싶습니다. (아.직.은)

답변 부탁드립니다.

bugiii의 이미지

UDP 의 경우 다 못받는 것이 더 일반적입니다.

하나의 (혹은 평균) 패킷 크기도 중요하겠고 80초동안 꾸준한 것인지 아니면 특정 시간에도 집중되는 것인지에 따라서도 현상이 다를 것 같습니다.

필요한 최대 대역폭을 계산하셔야 하겠고, 현재 네트웍 대역폭이 작다면 기가비트 랜으로 물리적인 환경을 변경하는 것과 UDP 소켓 자체의 버퍼를 크게 하는 것도 어느정도 도움이 되겠지만, 어떻게 해도 완전하게 보장 받을 수 있는 방법은 UDP 에는 없습니다.

결국 중요한 메시지의 경우라면 UDP 위에 에러보정 등의 역할을 하도록 하든가 아니면 TCP로 하는 수 밖에는 방법이 없다고 알고 있습니다. 아니면 무시해도 되는 데이터와 꼭 필요한 데이터를 UDP / TCP 동시에 활용하는 것도 해볼만한 시도라고 생각합니다.