2013-07-12 4 views
0

udp 서버 클라이언트 응용 프로그램을 확인하고 싶습니다. 내가 확인하고 싶은 기능 중 하나는 서버에서 전송하고 클라이언트가 수신 한 데이터와 클라이언트가 수신 한 데이터 간의 시간 지연입니다. 서버에서 클라이언트로 메시지를 보내고 시간을 기록하는 방법을 알아 냈습니다. 클라이언트가이 메시지를 받으면 동일한 메시지를 서버로 다시 보냅니다. 서버는이 에코 메시지를 다시 얻고 시간을 기록합니다. 메시지가 전송 된 시간과 에코 된 메시지가 다시 수신 된 시간의 차이는 서버가 전송하고 클라이언트가 수신 한 데이터 간의 지연을 알려줍니다.udp 서버에서 보내고 클라이언트가 수신 한 데이터 간의 지연을 측정하십시오.

이 방법이 맞습니까? 나는 또한이 접근법을 사용하는 것과 관련된 많은 지연을 예견하기 때문에. 보다 정확한 지연을 계산할 수있는 방법은 무엇일까요?

도움을 기다리고 있습니다.

+0

이 작업을 수행하는 표준 방법이며 'ping'명령이 작동하는 방식입니다 (그러나 UDP 대신 [ICMP] (http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol) 사용). 그러나 로컬 네트워크에 있지 않으면 경로에 예기치 않은 지연이 발생할 수 있으며 "ping"패키지의 경로가 응답 패키지의 경로와 다를 수도 있습니다. 정확성을 높이려면 여러 패킷을 사용하고 평균 지연을 사용하는 것이 좋습니다. –

답변

2

예 가장 일반적인 방법입니다. 이렇게 할 수 있습니다.

+2

이것은 또한 가장 쉬운 방법입니다. – Ermir

+1

빠른 응답을 보내 주셔서 감사합니다. – Ayse

1

발신자의 udp 패킷과 수신자의 udp 패킷 사이의 상대적 시간을 사용하여 스니퍼에서 볼 수 있습니다. 더 정확한 결과가 필요하면 수신 된 UDP 패킷을 확인하는 창 스택으로 들어가야합니다. 그리고 타이머의 계산을 위해 마이크로 초 지연을 제공하는 실시간 시계를 사용할 수 있습니다. 또한 신뢰할 수있는 tcp와는 달리 패킷의 우선 순위가 높은 udp를 사용하고 있습니다. 어떤 스택을 사용하고 있습니까? LwIP?

+0

당신의 도움을 위해서 +1하지만 저는 이것에 익숙하지 않고 스택 같은 세부 사항을 모릅니다. – Ayse

+1

당신이 매우 새로운 사람이라면 네트워크 TCPIP 슈트의 기초 인 OSI 레이어 -> https : //en.wikipedia.org/wiki/Internet_protocol_suite 하지만 소켓 작업을하기 때문에 TCP, UDP, icmp, arp, dhcp, http, ftp, telnet 등과 같이 프로토콜이 어떻게 작동하는지에 대한 일반적인 지식보다 더 많이 알고 있어야합니다. 가장 좋은 방법은 rfc를 읽는 것이 좋을 것입니다. – Ishmeet

+0

분명히 자세히 살펴볼 것입니다. 고마워요 :) – Ayse

관련 문제