2013-07-29 2 views
0

sendto와 recvfrom (UDP)간에 성능 차이가 있음을 확인했습니다. 서버에서 클라이언트로 대략 100Kbytes를 보내고 WiFi를 사용합니다 (예상 대역폭은 양방향으로 약 30Mb/s입니다). 전송 시간은 약 4-5ms입니다 (이 값은 이상적인 값과 비슷합니다). , 3ms). 클라이언트에서 수신 시간은 50-60ms와 같이 10-15 배 더 높습니다. 두 번의 경과 시간을 비슷하게하고 싶습니다. 어떤 생각?sendto와 recvfrom 간의 성능이 서로 다릅니다.

답변

1

와 전송 시간은 약 4-5 밀리 초 (이 달려 있지만,이 값은 최적 일에 필적, 3MS)이다 (ㄴ은 비트 수단)

30MB/s 약 3 MB/s (여기서 B는 바이트을 의미 함)입니다. 100kBytes를 전송하려면 약 30 밀리 초가 소요됩니다.

sendto은 모든 데이터를 송신 기계의 네트워크 스택의 로컬 버퍼에 기록하자마자 반환합니다. recv은 분명히 모든 프로토콜 계층에 필요한 대기 시간과 물건을 포함하여 데이터가 전송 될 때까지 기다려야합니다.

+0

불량 발송 시간을 알려드립니다. 따라서 4-5ms의 경과 시간이 실제로 로컬 버퍼에 데이터를 쓰는 시간 인 경우 sendto는 모든 데이터가 실제로 전송되지 않더라도 반환합니다. – user2485792