| [ CnUnix ] in KIDS 글 쓴 이(By): swhan (Nameless 1) 날 짜 (Date): 2003년 4월 19일 토요일 오후 09시 20분 26초 제 목(Title): Re: udp 데이터 손실 저는 ARP때문에 UDP가 손실될 수 있다는게 이해가 가지 않습니다. 그런 경우라면...데이터를 보내기 전에 그 linux에서 sun또는 sun에서 linux로 ping을 해줘보세요. 그 경우에 유실이 안된다면 ARP문제겠지요. linux머신마다 각가 100개 이상의 client를 simulation하도록 해서 초당 100개 이상을 주고 받아봤지만 (server는 1000개 이상이었습니다.) 양쪽 모두 udp packet처리에 대해서는 아무 문제 없었습니다. (file처리만 아니었으면 훨신 더 많은 처리가 가능했습니다.) (linux는 2.2.x였던 것으로 기억합니다. ) 일단 테스트를 해볼 수 있는 것을 나열해보면.. (직접적인 원인찾기는 아니지만.) UDP socket을 connect한 후 send() recv()를 이용해서 packet을 보내볼 수 있겠습니다. connect를 해두면 매번 send할때마나 상대방 주소를 지정하지 않고 이용할 수 있습니다. 이 경우에 어떻게 동작하는지 살펴볼 수 있겠고, linux쪽과 dummy hub에 물린 다른 시스템에서 tcpdump를 돌리면서 client process를 strace로 잡아보면 약간의 힌트를 찾을 수 있지 싶은 생각이 드는군요. 최소한 system call은 올바른 parameter로 호출이 되었는지 어떤 경우에 client에서 packet dump가 되는지 또 어떤 경우에 실제로 패킷이 날라가는지 살펴볼 수 있을 것 같습니다. @참.. 제가 아는 한은 dummy hub라고해서 UDP packet loss가 특별히 더 많을 이유는 없습니다. ethernet에서 자동으로 retry를 해줄겁니다. 다만.. ethernet쪽의 버퍼에 너무 많이 쌓이면 뒤에 넣는건 유실이 될 수 있겠죠. 그런 의미에서는 유실이 늘어날 수 있습니다만.. 말씀하시는정도의 packet 수로는 그런 상황이 일어나기 쉽지 않습니다. |