Dlaczego prędkość pobierania jest niska we wczesnych sekundach?

14

Gdy pobierzesz wystarczająco duży plik, możesz zauważyć, że we wczesnych sekundach prędkość pobierania wzrasta, aby ostatecznie osiągnąć średnią wartość. Dlaczego?

poważne
źródło
2
Czy możesz podać niektóre nazwy aplikacji, z których korzystasz, gdy widzisz takie zachowanie? Mogą być różne odpowiedzi w zależności od oprogramowania.
DuckMaestro

Odpowiedzi:

19

Dwie rzeczy:

  1. Negocjowanie i konfigurowanie transferu wiąże się z pewnym nakładem, zwłaszcza w przypadku protokołów takich jak FTP. FTP faktycznie ustanawia drugi kanał TCP wyłącznie do przesyłania danych, więc musi odbyć się drugi 3-stronny uścisk dłoni itp.

  2. Większość połączeń TCP jest ustawiona na „wolne uruchamianie” . Kod TCP przypomina swego rodzaju maksymalny rozmiar segmentu, który będzie działał na trasie między dwoma hostami.

Bruce Ediger
źródło
1
Nie uważam, że punkt 1 jest wystarczającym wyjaśnieniem, przynajmniej nie w przypadku FTP, ponieważ większość klientów, których widziałem, oblicza prędkość tylko w kanale danych, a nie w kanale sterowania. Nie wiemy również, czy pytający odnosi się konkretnie do FTP.
DuckMaestro
17

Metoda obliczania prędkości pobierania różni się w zależności od oprogramowania. Pierwszą rzeczą, o której należy pamiętać, jest to, że prędkość jest zawsze obliczana w kontekście określonego czasu trwania. Niektóre programy mogą wyświetlać prędkość pobierania przez cały czas pobierania (mogą to być godziny), podczas gdy inne oprogramowanie może wyświetlać prędkość pobierania tylko przez ostatnią xliczbę sekund. Im krótszy czas obliczania prędkości, tym większa jest wartość w czasie rzeczywistym.

Ponadto, gdy pobieranie rozpoczyna się po raz pierwszy, można wybrać, czy oprogramowanie przyjmie prędkość początkową 0, czy też oprogramowanie nie przyjmie (i nie wyświetli) prędkości początkowej, dopóki nie zgromadzi więcej danych do oszacowania.

W opisanej sytuacji możliwe jest, że oprogramowanie jest takie jak poprzednie, więc obliczenie wartości uśrednia (od 0) do dokładniejszej wartości zajmuje kilka chwil.

DuckMaestro
źródło
1
Bingo - „na początku brakuje danych, na podstawie których można by dokonać pomiaru”, brzmi jak najbardziej poprawnie. Myślę, że większość programów pobierających jest wystarczająco inteligentna, aby opóźnić pobieranie danych, aż plik zostanie faktycznie pobrany (w przeciwieństwie do @Bruce).
new123456,
13

To się nazywa okienkowanie tcp, po udanej transmisji pakietu okno zwiększa się ilość danych to będzie się działo, dopóki nie wystąpi błąd w transmisji, zależy to od prędkości i niezawodności połączenia, aplikacje po prostu obliczają, ile czasu zajmie transfer przy obecnym tempie pozwoli okno TCP

Squareborg
źródło