받는 쪽에서 보내진 패킷의 정확한 사이즈를 미리 알 필요는 없습니다.
일반적으로 MTU보다 작거나 같은 사이즈로 페킷이 올 것이며, 이 사이즈의 패킷은 충분히 받아 집니다. 단 어플리케이션이 udp 스택 내의 버퍼에서 데이터를 받아 가지 않아 싸이다가 버퍼가 차버리면 이후 페킷은 버려질 것입니다. 이런 부분이 문제가 된다면, tcp의 윈도우 사이즈나 ack와 같은 정도는 어플리케이션에서 구현해 주어야 합니다.
Do you think that's the air you are breathing now?
udp 로 대량의 데이타 통신을 하는 경우에는 어느정도의 데이타 손실이 있어도 괜찮은 서비스에 국한 될 것 같습니다.
local network 에서 사용 한다고 하여도, 윗분들이 말씀하신 것 처럼 socket buffer 가 꽉차서 패킷이 버려지는 경우는 조절할 방법이 없습니다.
그걸 응용프로그램 차원에서 할려고 하다보면, tcp 보다 성능이 저하되기가 쉬울 것 입니다.
그리고, udp socket buffer size 는 대개의 경우 조절 가능한데 이것을 이용하면, socket buffer 에 한번에 많이 쓸 수 있을 것입니다. (리눅스의 경우, net.core.wmem_default 를 조절하면 됩니다.) 단, 너무 빨리 보내게 되면 받는 쪽에서 버려질 수 도 있으므로, 주의해야 겠죠.
범용적인 릴레이 제작이라는 부분이 정확히 무얼 의미하는 건지 모르겠군요.
범용적인 릴레이 제작이라는 부분이 정확히 무얼 의미하는 건지 모르겠군요.
받는 쪽에서 보내진 패킷의 정확한 사이즈를 미리 알 필요는 없습니다.
일반적으로 MTU보다 작거나 같은 사이즈로 페킷이 올 것이며, 이 사이즈의 패킷은 충분히 받아 집니다. 단 어플리케이션이 udp 스택 내의 버퍼에서 데이터를 받아 가지 않아 싸이다가 버퍼가 차버리면 이후 페킷은 버려질 것입니다. 이런 부분이 문제가 된다면, tcp의 윈도우 사이즈나 ack와 같은 정도는 어플리케이션에서 구현해 주어야 합니다.
Do you think that's the air you are breathing now?
udp 로 한번에 보낼 수 있는 최대 크기가 64K 입니다.더 큰
udp 로 한번에 보낼 수 있는 최대 크기가 64K 입니다.
더 큰 데이터는 sendto 에서 오류를 내버립니다.
게다가 테스트를 해보면 OS 나 버전에 따라 64K 이전에 이미 오류가 나는 경우도 있습니다.
제 생각에는 일반적인 UDP 패킷이라면 16K를 넘지는 않을듯 한데요. 더 크게 보내시는 분들도 있을테니... 최대 64K로 잡아주시면 될것 같습니다.
우리 모두 리얼리스트가 되자. 그러나 가슴에 이룰 수 없는 꿈을 가지자
윈도우즈 같은 경우에는 registry 를 고쳐서 MTU 를 변경할 수
윈도우즈 같은 경우에는 registry 를 고쳐서 MTU 를 변경할 수 있는 걸로 압니다 ^^ 가끔씩 보면 IE 튜닝(-_-)을 위해서 고쳐서 쓰시는 분들이 있더군요.
-----------------------------------------------------------------------
GPL 오픈소스 윈도우용 이미지 뷰어 ZViewer - http://zviewer.wimy.com
블로그 : http://blog.wimy.com
[quote]윈도우즈 같은 경우에는 registry 를 고쳐서 MTU 를
위험한 발상입니다. 송수신하는 두대의 시스템이 다이렉트로 연결되어 있다면 모를까 아니라면 아무 소용없을듯 한데요.
MTU는 중간에 거치는 모든 기기들에 영향을 받습니다. 윈도우에서 레지스트리를 수정해서 크게 만들었다고 해도 중간에 거처가는 기기들이 그걸 거부한다면 아무 소용이 없을겁니다.
입구와 출구가 16차선이라고 해서 중간에 모든길이 16차선일거라는 가정은 위험할것 같은데요.
산넘어 산
그렇군요. 지당하신 말씀인듯... 그런데 윈도우용 MTU 자동 설정 프
그렇군요. 지당하신 말씀인듯... 그런데 윈도우용 MTU 자동 설정 프로그램들까지 있는 걸 봐서는... 윈도우가 설치시에 마음대로 MTU 를 잡고 ISP 들에 따라서 MTU 가 다른가요? @.@
-----------------------------------------------------------------------
GPL 오픈소스 윈도우용 이미지 뷰어 ZViewer - http://zviewer.wimy.com
블로그 : http://blog.wimy.com
DSL과 같은 환경에서는 MTU 값 때문에(정확히는 MSS) 불필요한 단
DSL과 같은 환경에서는 MTU 값 때문에(정확히는 MSS) 불필요한 단편화 현상이 발생할 수 있습니다. 윈도의 기본 MTU와 DSL에서 사용하는 것이 다르니까 그걸 맞추어 주면 그런 현상이 덜 하게 되는 것이죠.
--
익스펙토 페트로눔
udp 로 대량의 데이타 통신을 하는 경우에는 어느정도의 데이타 손실이
udp 로 대량의 데이타 통신을 하는 경우에는 어느정도의 데이타 손실이 있어도 괜찮은 서비스에 국한 될 것 같습니다.
local network 에서 사용 한다고 하여도, 윗분들이 말씀하신 것 처럼 socket buffer 가 꽉차서 패킷이 버려지는 경우는 조절할 방법이 없습니다.
그걸 응용프로그램 차원에서 할려고 하다보면, tcp 보다 성능이 저하되기가 쉬울 것 입니다.
그리고, udp socket buffer size 는 대개의 경우 조절 가능한데 이것을 이용하면, socket buffer 에 한번에 많이 쓸 수 있을 것입니다. (리눅스의 경우, net.core.wmem_default 를 조절하면 됩니다.) 단, 너무 빨리 보내게 되면 받는 쪽에서 버려질 수 도 있으므로, 주의해야 겠죠.
댓글 달기