2009-12-09 6 views
1

네트워크 측정 도구를 개발하려고합니다. 목표는 클라이언트와 서버 시스템 (클라이언트 측에서) 간의 응답 시간을 측정 할 수있는 도구를 만드는 것입니다. 주요 응용 프로그램에 대한 측면 응용 프로그램입니다. - 주 응용 프로그램에서 서버의 응답 시간이 특정 임계 값을 초과하면 도구가 실행되고 네트워크 연결 테스트를 수행하여 클라이언트 서버 연결이 안정적인지 확인합니다 (네트워크가 무선이기 때문에 네트워크가 불안정해질 수 있습니다.)C에서 네트워크 성능 측정 도구

수행해야하는 테스트는 핑 작동뿐만 아니라 크기가 다른 패키지 전송입니다.

그러나 통신 기술에 대한 경험은 거의 없습니다.

ICMP 프로토콜을 사용할 수 있습니까? 만약 그렇다면, 다른 네트워크 크기의 패키지를 보낼 수 있습니까? (네트워크가 합리적인 시간에 예를 들어 2MB의 데이터를 전송할 수 있는지를 측정하기 위해)?

두 번째 우려가 있습니다. 방화벽과 관련하여 무엇을주의해야합니까? 내 로컬 네트워크에서 제대로 작동하는 응용 프로그램을 개발하는 것은 수치 스럽지만 실생활에서 사용되는 즉시 테스트가 방화벽에 의해 차단되므로 실수로 실패합니다.

내 질문이 너무 멍청한 것이 아니기를 바랍니다.하지만 도움이된다면 감사하겠습니다.

/SAGI

답변

0

당신은 당신이 사용하는 것과 동일한 프로토콜 및 포트를 사용하여 테스트를 수행하고 응용 프로그램의 내부 메시지의 새로운 유형을 작성해야합니다, 방화벽의 명확한 유지하기 위해 모든 가장이해야 서버가 읽는 즉시 응답해야합니다. 핑 조치를 프로그램해야합니다.

그런 다음 클라이언트는 여행에 소요 된 시간을 측정하고 핑을 계산하여 서버로 다시 전달합니다. 이것은 또한 ICMP 프로토콜 패킷이 QoS 서버의 다른 패키지보다 큰 이점을 제공하는 일부 ISP의 경우 더 낮은 대기 시간을 인위적으로 생성합니다. 또한 ICMP 패킷을 허용하지 않는 방화벽에 대해 걱정할 필요가 없습니다. 왜냐하면 사용하는 독립 포트에서 연결을 허용해야하기 때문입니다.

또한 대부분의 게임은 표준 Ping 패킷을 보내지 않고 이러한 방식으로 작동합니다 (Half-Life, Age of Empires 등).

+0

답장을 보내 주셔서 감사합니다. 나는 그것으로 볼 것이다 :) – Sagi1981