1

대역폭을 결정하기 위해 TCP 연결을 통해 전송해야하는 세그먼트/바이트의 최소 수를 결정하는 데 사용할 수있는 수식이 있으며 느린 시작을 고려합니다 및 혼잡 방지? 나는 pathrate tool에 대해 알고 있지만 가능하다면 앱에 통합하여 하강 야구장 그림을 얻을 수있는 간단한 것을 원합니다. 하나의 사용 예는 작은 파일을 자동으로 다운로드하기위한 최적의 스레드 수를 결정하기 위해 웹 서버에서 일부 데이터를 다운로드하는 것입니다. 이것은 내가 게시 한 이전 질문과 관련이 있습니다. TCP, HTTP and the Multi-Threading Sweet SpotTCP 느린 시작, 정체 방지 및 대역폭 결정

답변

0

대역폭을 결정하기 위해 고정 바이트 수가 필요하다고 생각하지 않습니다. 이 수는 네트워크 유형 및 속도에 따라 달라질 수 있습니다.

Bandwidth은 시간 간격을 통해 전송 된 일부 리소스의 척도입니다. 실제 데이터를 얻으려면 측정해야합니다. 여기에 some hints 그 일을하는 방법

1

당신은 "scholar.google.com"을 실행하고 "TCP chirp"를 검색 할 수 있습니다. 그러나이를 위해서는 고용 타이머가 필요하며, 커널 TCP 혼잡 제어 알고리즘을 작성하지 않으면 사용자 공간에서 TCP를 다시 구현해야합니다. 그리고 그 자체만으로는 좋은 결과를 얻지 못할 것입니다 (범용 OS는 실시간으로 타이머 관련 작업을 잘하지 못하고 사용자 공간에서 실행됩니다).

이론상 TCP 처프를 사용하면 "최적"대역폭을 결정하기 위해 4-5 개의 세그먼트 (일반적으로 더 긴 세그먼트의 세그먼트로 더 나은 해상도를 얻을 수 있음)가 필요합니다.

어떤 경로가 사용되는지 알 수 없으므로 (예 : 위성 링크 또는 TV 방향으로 진행), 상당한 양의 데이터 (10MB 이상, 아마도 1GB까지)가 필요할 수 있습니다. 임의의 경로에 대한 적절한 측정. (위성은 많은 dozend MB/s 대역폭을 가질 수 있지만 1000-3000 ms 범위의 대기 시간도 걸릴 수 있으며 TCP는 cwnd를 열기 위해 몇 번의 왕복 시간이 필요합니다 (측정을 시작하기 전에 약 10 RTT라고 말하고 싶습니다) ...

+0

나는 일반적인 목적이며 가능한 모든 상황에서 작동 할 것입니다. 가장 일반적인 상황의 80 %, 지상 기반 네트워크를 통한 표준 유선 또는 무선 연결 . –