TcpClient를 사용하여 대역폭 추정 도구를 만들고 싶습니다. 문제는 내가 미리 정의 된 시간에 측정을 수행하려는 것입니다 (전송할 버퍼 데이터 길이를 미리 정의하는 대신). 루프 (데이터의 작은 덩어리를 반복적으로 전송)를 사용하면 성능이 저하됩니다 (수동 조각화 대 자동 조각화).TcpClient 대역폭 추정
1
A
답변
1
Nagle 알고리즘을 사용 중지할지 여부에 따라 다릅니다. 당신이 그렇다면, 당신은 스스로를 조각 낼 것입니다. 그렇지 않으면 데이터를 실제로라고 생각할 때 쓸 수 없기 때문에 목표를 달성 할 수 없습니다. 연결의 다른 쪽 끝이 물론 최종 "ack"를 보내지 않는 한.
거친 속도를 알아보기 위해 작은 샘플을 사용한 다음 그 샘플을 기반으로 더 큰 샘플을 만들어 예측 시간을 예측하는 것이 좋습니다. 당신은 어쨌든 시간을 측정 할 필요가 있습니다. 정확한 시간을 지나칠 것 같지 않으므로 너무 많은 차이를 만들어서는 안됩니다. 어쨌든 어느 정도는 크기를 조정할 수 있습니다. 느린 네트워크가 아니라면 패킷을 충분히 보내지 않을 것으로 예상됩니다. 따라서 300K 대신 200K 만 보내면 중간에 결정할 수 있습니다. 별 차이가 없어야합니다.
당연히 원래의 제안처럼 들릴지 모르겠지만, 저는 전화 당 "상당히 큰"덩어리를 보내는 것에 대해서만 말하고 있습니다 ... 16K라고 말하십시오. (어쨌든 패킷 크기보다 훨씬 큽니다.) 조각화에 많은 영향을 미치지는 않지만 계속 진행하면서 다소 조정할 수 있습니다. 작고 작은 패킷을 보낼 것을 권하지 않습니다.
관련 문제
- 1. 하여 TcpClient
- 2. TcpClient BottleNeck
- 3. scp를 사용하여 네트워크 I/O 속도 추정
- 4. tcpclient vs httpwebrequest
- 5. C# SSL TcpListener TcpClient
- 6. HttpTunneling TCPClient 응용 프로그램
- 7. TcpClient 보내기/닫기 문제
- 8. tcpclient 수신 구현
- 9. CUDA 이론상의 대역폭 대 유효 대역폭
- 10. MySQL 데이터베이스 크기 추정
- 11. sprintf 결과 길이 추정
- 12. SQL 데이터베이스 크기 추정
- 13. 밀도 추정 R
- 14. 예기치 않은 추정 행
- 15. Nanoc3 사이트 생성 추정
- 16. 거리 매트릭스의 대략적인 추정
- 17. 대역폭 관리?
- 18. vb.net에서 UI 및 TcpClient 문제
- 19. 이상한 tcpclient https 게시물 응답
- 20. Theta (타이트 바운드) 추정 계산하기
- 21. MySQL에서 텍스트에 필요한 크기 추정
- 22. 사각형 탐지 및 포즈 추정
- 23. 남은 비디오 녹화 시간 추정
- 24. 십진법을 사용하여 계산시 오류 추정
- 25. Xmlparsing의 공간 및 시간 추정
- 26. Math.random()의 Big O 추정?
- 27. 추정 방법 찾기 (데이터 분석)
- 28. Qt를 통한 대역폭 조절
- 29. 대역폭 제한 및 HttpWebRequest
- 30. C에서 네트워크 대역폭 측정 #
나는 용서해 주지만, 나는 정말로 이해하지 못한다. 틀 렸으면 고쳐줘. 만약 내가 독수리 알고리즘을 사용하지 않으면, 수동으로 데이터의 작은 덩어리를 반복적으로 보내서 내 데이터를 조각해야합니다. 독수리 알고리즘을 사용하지 않으면 내 데이터가 자동 조각화됩니다. 내가 dawle 알고리즘을 사용하지 않는다면, 나는 실제로 그것이 수신되었다고 생각했을 때 전송 된 데이터가 실제로 수신되지 않을 수 있기 때문에 내 목표 (대역폭 추정치)를 달성 할 것 같지 않다. 여기 혼란스러워. –
@publicENEMY : 연결의 다른 쪽 끝을 응용 프로그램 수준에서 효과적으로 볼 수 있도록 모든 것을 받았을 때 어떤 가치를 제공 할 수 있다면 분명히해야합니다. 그러면 괜찮을 것입니다. 송신 측에서의 계산 능력면에서 비효율적이지만, 네트워크 타이밍과 비교하여 중요하지는 않습니다. –
여기에 나는 TCP가 안정적이라고 생각했다. nagle을 사용하지 않으면 보낸 데이터가 수신된다는 보장이 없다고 말하고 있습니까? –