Gdyby ktoś próbował pobrać plik z prędkością 800 Mb / s (100 MB / s) na dysk twardy o prędkości zapisu 500 Mb / s (62,5 MB / s), co by się stało? Czy system ograniczy prędkość pobierania?
computer-networks
ymulki
źródło
źródło
Odpowiedzi:
Wiele protokołów, w tym TCP, który jest najczęściej używanym protokołem w Internecie, używa czegoś, co nazywa się kontrolą przepływu. Kontrola przepływu oznacza po prostu, że TCP zapewni, że nadawca nie przytłoczy odbiornika, wysyłając pakiety szybciej niż może opróżnić swój bufor. Chodzi o to, że węzeł odbierający dane wyśle pewnego rodzaju informację zwrotną do węzła wysyłającego dane, aby poinformować go o jego aktualnym stanie. Tak więc dwukierunkowe sprzężenie zwrotne pozwala obu maszynom optymalnie wykorzystać zasoby i zapobiec problemom wynikającym z niedopasowania sprzętu.
https://en.wikipedia.org/wiki/Flow_control_(data)
źródło
Nie dosłownie. Kilkadziesiąt lat temu komputery rzeczywiście komunikowały się z prędkościami synchronicznymi (tj. Modemami ze stałymi ustawieniami prędkości). Na pewnym stosunkowo niskim poziomie dzieje się to również dzisiaj; tzn. Twój DSL lub modem kablowy prawdopodobnie będzie miał pewną ustawioną prędkość, z jaką komunikuje się ze swoim bezpośrednim fizycznym komponentem w górę. Ale w 2017 roku wszystko to jest na tyle skomplikowane, że prawie wszystkie komponenty są dość dynamiczne. W dawnych dobrych czasach modemy często fizycznie mogły mówić tylko z pewną prędkością, a nawet trzeba było je ustalić przed nawiązaniem połączenia. Istnieją (były) pewne protokoły sieciowe, takie jak ATM, które próbowały uzyskać synchroniczną sieć rozległą, ale nie wyszły tak dobrze w porównaniu do TCP / IP.
Dzisiaj efektywna prędkość jest zwykle zawsze domyślnie osiągana przez buforowanie, kontrolę przepływu i tym podobne.
Pamiętaj również, że w twoim przykładzie może być nawet więcej uczestników. Interfejs sieciowy może mieć więcej pracy (inne połączenia z komputerem). Pewna część sieci po drodze może być zajęta (członek rodziny surfuje lub ogląda filmy). Dysk twardy może jednocześnie zapisywać 3 duże pliki. Dlatego nie ma sensu specjalnie ustawiać „prędkości”, którą można ograniczyć.
źródło
Pobieranie plików (zwykle) odbywa się za pośrednictwem protokołu o nazwie TCP. W TCP nadawca nie wysyła żadnych danych, dopóki odbiorca nie będzie gotowy do ich odebrania.
Stanie się tak, że komputer zarezerwuje pewną ilość pamięci RAM, aby tymczasowo przechowywać odebrane dane przed zapisaniem ich na dysku twardym (jest to nazywane buforem). Następnie poprosi nadawcę o podanie wystarczającej ilości danych do wypełnienia bufora. Gdy odbierze dane, zacznie zapisywać dane z bufora na dysk twardy - jednak nie poprosi o więcej danych, gdy bufor jest prawie pełny.
Ogólnym efektem jest to, że nadawca po prostu czeka na nadrobienie przez odbiorcę, zanim będzie kontynuować wysyłanie.
źródło