저는 MMO 게임을 만들었고 많은 사람들이 연결될 때 많은 지체가 있습니다. UDP 및 TCP 패킷을 사용하고 있습니다. TCP가 정말 잘 작동하는 것처럼 보입니다. UDP는 때때로 5 초의 지연 후에 나타납니다. 무엇이 이것을 일으킬 수 있습니까? MongoDB를 사용하고 클라이언트 당 초당 30 번 패킷을 전송합니다. 감사.UDP를 사용하는 데 막대한 지연이 있습니다. 왜?
답변
UDP 프로토콜은 패키지 제공에 대한 보증을 제공하지 않습니다. 그래서 당신 문제는 이것에 있을지도 모릅니다. http://en.wikipedia.org/wiki/User_Datagram_Protocol
나는 그것을 검사했다. 그리고 그것은 모든 패킷이오고 있지만 5 초의 지연으로 보인다. 서버를 처음 시작할 때 모두 괜찮습니다. 2 시간 후 2 초. 5 시간 후, 5 초 지연 등 패킷의 전부 (대부분 .. ..)가오고 있지만 지연됩니다. – Eli
야생 추측 : UDP 패킷 수신 경로에는 메모리를 할당해야하며 해당 메모리가 누출됩니다. 패킷을 더 많이 수신할수록 메모리를 할당하는 데 더 오래 걸립니다.
내가 여기 추측하고있어,하지만 상황은 응용 프로그램이 UDP 패킷에 대한 폴링이라고 할 수있는 모든 N 밀리 초 (당신의 FPS (20)의 경우처럼, 다음 N는 50ms의 것).
이제는 PC가 많은 양의 UDP 패킷을 수신하고 운영 체제에 의해 쌓이게됩니다. 그런 다음 이러한 패킷을 폴링하면 사용자 나 운영 체제가 스택을 즉시 지우지 않습니다. 더 큰 스택은 더 큰 지연을 의미 할 수 있습니다.
나는 어떤 라우터라도 똑똑하고 UDP 패킷을 쌓아 올리려고 읽었다 고 생각한다. 그러나 나는 그것을 본 페이지를 찾을 수 없습니다.
여기 비슷한 질문을 게시했습니다
Router gets unresponsive when using UDP
과 위 불행하게도 나는 아직 그것을 해결하는 방법을 모른다, 내 현재의 이론 :)입니다. 네트워크에 폴링하는 대신 네트워크 요청에 즉각적으로 반응하는 별도의 스레드를 사용하여 각 n ms를 사용하는 것이 좋습니다.
- 1. 배치 파일을 실행하는 데 지연이 있습니다.
- 2. 마우스로 움직일 무언가를 그리는 데 지연이 있습니다.
- 3. iPhone에서 APN을 수신하는 데 지연이 있습니다.
- 4. 안드로이드에서 UDP를 사용하는 방법?
- 5. JSP 페이지를로드하는 데 지연이 있습니까?
- 6. JS + Python을 사용하여 페이스 북 쿠키를 찾는 데 지연이 있습니다
- 7. NSSize를 사용하는 데 문제가 있습니다.
- 8. 동일한 appliation에서 TCP와 UDP를 사용하는 데 문제가 있습니까?
- 9. DataContractSerializer를 사용하는 데 문제가 있습니다.
- 10. jquery를 사용하는 데 어려움이 있습니다.
- 11. 스크립트를 사용하는 데 문제가 있습니다.
- 12. 처음에는 UDP를 사용하는 프로토콜의 예입니다.
- 13. UDP를 듣고 PHP를 사용하는 방법
- 14. gnuplot에서 문을 사용하는 데 문제가 있습니다.
- 15. Android ListView를 만들 때 왜 지연이 필요합니까?
- 16. 자바의 막대한 자질을위한 클래스 라이브러리
- 17. AsyncTask에 응용 프로그램 시작시 이상한 지연이 있습니다.
- 18. Mix_Chunk를 재생할 때 의도하지 않은 지연이 있습니다.
- 19. Joomla - 새로운 것들을 게시하는데 지연이 있습니다
- 20. axis2와 함께 log4j를 사용하는 데 문제가 있습니다.
- 21. MATLAB에서 찾기 기능을 사용하는 데 문제가 있습니다
- 22. rakudo에서 문법을 사용하는 데 문제가 있습니다. perl6
- 23. Appmobi XDK를 사용하는 데 문제가 있습니다!
- 24. for 루프에서 구조체를 사용하는 데 문제가 있습니다.
- 25. MVC3 - 에디터를 사용하는 데 문제가 있습니다.
- 26. RSpec 'its'기능을 사용하는 데 문제가 있습니다.
- 27. Java Mail API를 사용하는 데 문제가 있습니다.
- 28. 파일을 사용하는 데 문제가 있습니다. 전세계에서
- 29. js jquery helper를 사용하는 데 문제가 있습니다.
- 30. jruby에서 Java 클래스를 사용하는 데 문제가 있습니다
나는이 질문에 후속 질문을하고있다. 해결 됐어? 아래 답변 중 어느 것이 맞습니까? Thx –