2010-05-06 3 views
-1

tcpip 소켓을 사용하여 장치에 명령을 보내고 장치에서 데이터를 수신하는 프로그램을 작성했습니다. 데이터 크기는 약 200KB ~ 600KB입니다. 컴퓨터는 100MB 네트워크를 사용하여 장치에 직접 연결됩니다. 전송 패킷이 항상 100MB/s 속도의 컴퓨터에 도착했음을 알았습니다. (장치에 대한 디버깅 정보가 있고 일부 네트워크 모니터링 소프트웨어를 사용하여이 정보도 확인했습니다.) 수신 시간은 40ms에서 250ms로 많이 다릅니다. 크기는 동일합니다 (약 700K의 수신 버퍼가 있고 8092 바이트의 수신 창과 창 크기를 변경하면 아무 것도 변경되지 않습니다). 현상은 다른 컴퓨터에서도 다르지만 동일한 컴퓨터에서 문제는 매우 안정적입니다. 예를 들어 컴퓨터 a에서 300k 바이트를 수신하는 데 40ms가 걸리지 만 다른 컴퓨터에서는 200ms가 소요될 수 있습니다. 방화벽, 바이러스 백신, TCP/IP를 제외한 다른 모든 네트워크 프로토콜을 비활성화했습니다. 이것에 대한 어떤 전문가라도 나에게 약간의 힌트를 줄 수 있니?내 실시간 네트워크 수신 시간이 많이 달라, 누구든지 도울 수 있습니까?

+0

이 무엇보다 서버 문제 :

매우 유익 링크를 참조하십시오. –

+0

답장을 보내 주셔서 감사합니다. 서버는 DSP 기반입니다. 클라이언트는 단지 dos 테스트 프로그램입니다. – shangping

+0

아무도 이것에 어떤 단서를 가지고 있지 않습니까? 나는 이미 탈출구가 없었다. 도와주세요 – shangping

답변

2

이 질문에 대한 답을 찾았습니다. 문제는 Nagle의 알고리즘으로 인한 마지막 조각 패킷 앞의 짝수/홀수 패킷 때문입니다. 우리는 네트워크 아키텍처, 기계, 소프트웨어를 실행하는 등의 세부 사항을 더 필요이 대답하기 위해 http://www.stuartcheshire.org/papers/NagleDelayedAck/

관련 문제