2009-11-30 2 views
2

소프트웨어에 대한 유지 관리 작업을 수행하고 있으며 이해할 수없는 문제가 있습니다.Windows XP 응용 프로그램에서 UDP 통신 속도를 향상시키는 방법

응용 프로그램은 Microsoft Visual C++ 6을 사용하여 개발되었으며 Windows XP에서 실행됩니다. UDP 소켓을 통해 서로 통신하는 21 개의 응용 프로그램으로 구성됩니다. 이것은 PC 환경에서 시스템을 디버깅하는 데 사용되는 임베디드 전자 시스템의 시뮬레이션입니다. 각 애플리케이션은 임베디드 시스템의 노드를 시뮬레이션하고 임베디드 네트워크는 UDP를 통해 시뮬레이션됩니다. 이 시스템은 원래 여러 대의 PC에서 실행되었지만 이제는 단일 Quad 코어 시스템에서 실행될 수 있습니다.

시스템이 작동하지만 통신이 매우 느립니다. 그러나 Internet Explorer를 열고 웹 사이트를 방문하거나 두 곳에서 내 응용 프로그램이 갑자기 서로 매우 빠르게 통신하게하는 무언가를 설정하십시오.

제 질문은 Internet Explorer가 웹 사이트를 방문했을 때 내 응용 프로그램이 설정할 수 있도록 설정 한 것입니다. 시스템의 원래 작성자 중 누구도 아직 주위에 있으며 윈도우 프로그래밍 경험이 거의 없습니다.

답변

2

는 INVALID (-1)가 발생하지 않는 ') (getlasterror', 당신의 API를 확인하여 버퍼를 확인하고 errormessages 확인 모든

  1. 후 윈도우 문제와 프로그램을 중지하지 않을 수 있습니다 귀하의 프로그램이 실행 되더라도 그것을 사용해보십시오. 유용한 경고가있을 수 있습니다.

  2. 확인 ACK 또는 공격 속도 네트워크 연결을 통해 많은 양의 데이터를 전송할 때 일반적인 문제입니다 (< - 90 % 문제입니다). 해당 주제에 대한 유용한 주제 (support.microsoft.com/kb/823764)

  3. 해결 방법이 없으면 드라이버 버전을 manfucturer 웹 사이트에서 확인하십시오.

  4. 마지막 수단은 유용한 아이디어 인 입니다. 이 프로그램 www.lvllord.de을 사용하여 최대 반 개방/개방 연결을 8에서 50으로 늘리십시오. . 서버 에디션 윈도우를 사용하면 인터넷 기반 프로그램 인 을 향상시킬 수 있습니다. 소켓 API가있는 멀티 스레딩을 사용하면 다중 스레드 응용 프로그램의 다른 스레드에서 2 개 이상의 소켓을 사용하는 경우 API에 혼동을 줄 수 있으므로 비동기 소켓 또는 이와 유사한 것을 사용하여 성능을 최적화하십시오 (msdn.microsoft.com/en- 내 응용 프로그램도를 설정할 수 있도록 웹 사이트를 방문 할 때 우리/라이브러리/ms738551 (VS.85)는 .ASPX)

그래서 제 질문은 무슨 짓을했는지 Internet Explorer가 설정되어 있습니까? 시스템의 원래 작성자 중 누구도 아직 주위에 있으며 윈도우 프로그래밍 경험이 거의 없습니다.

는 ACK 수 위키에 그것을 확인 .. 그것은 다른 방법으로 공격 속도에 의미 ..이
두 설정은 사용자에게 보이지 않는 수신 창 크기가됩니다되지 다음 경우 ...하지만 통해 설정 될 수 있습니다 등으로 인해 로컬 호스트에 대규모 UDP 패킷 손실에 튠업 유틸리티 또는 그냥 트릭을 할 수
있는 일반 네트워크 숨겨진 설정 조정기 ..

+1

제안 사항은 ACK가없고 UDP 연결이 아닌 TCP 연결에만 유효하며 "반 개방 연결"은 없음 –

+0

수신 창 크기가 마지막 희망입니까? : D – VirusEcks

0

Internet Explorer의 기능을 확인하려면 Wireshark를 사용해보십시오.

1

UDP 위의 프로토콜은 신뢰성을 구현하는 경우 속도의 손실이있을 것 같은 프로그램.localhost의 UDP 성능은 끔찍합니다. 가장 좋은 방법은 소켓 API를 TCP 계층 내에 랩핑하는 것입니다.

UDP 브로드 캐스트 또는 멀티 캐스트의 경우 TCP를 통해 메시지를 멀티플렉싱하려면 브로커 프로세스를 구현해야합니다.

ZeroMQ과 같은 프로세스 수준에서 잘 작동하는 기존 메시징 API를보기가 더 쉬울 수도 있습니다.

+0

문제를 포기했지만 ZeroMQ를 꼭 시험해 보겠습니다. – Gerhard

관련 문제