Chciałbym raz na zawsze wyjaśnić niektóre rzeczy, abym mógł odpoczywać w pokoju i dzielić się tą wiedzą z innymi, nie oszukując się :)
Mój dostawca Internetu twierdzi, że jego prędkość UL wynosi do 3 Mb / s. Przeczytałem, że prędkość sieci (pojemność) 3 Mb / s (3072 kb / s) wynosi ~ 384 KB / s w wyniku 3 * 1024/8, ponieważ 1 bajt = 8 bitów. Teraz nadchodzą pytania:
- Dlaczego dostawcy sieci określają pojemność sieci w bitach / s, kiedy tak naprawdę zależy nam na tym, jakie rzeczywiste bajty są przesyłane / pobierane?
- Czy są jakieś protokoły szybsze niż FTP do wysyłania dużych plików do / ze zdalnego serwera?
Mam nadzieję, że wyraziłem się jasno, w razie potrzeby rozwinę swoje myśli
EDYCJA Przeprowadziłem pewne badania i ujawniono, że musiałem popełnić pewne błędy w obliczeniach z powodu nieporozumień jednostek, dlatego pierwsze dwa pytania dotyczące prędkości UL są bezcelowe. Jednak pozostałe dwa nadal mnie wkurzają
networking
download
upload
jacek_podwysocki
źródło
źródło
/
ip
są dwoma różnymi i powszechnymi sposobami skracaniaper
.p
i/
są powszechnie rozumiane jako rozróżniania przecinku i przedrostków binarnych. Podaj odniesienie do takiego użycia. Znów wszystko, co znalazłem , traktowało je jako wymienne . Wikipedia potwierdza powszechne niespójne stosowanie przedrostków dziesiętnych zamiast prefiksów binarnych, wciąż rozważanep
i/
wymienne.Odpowiedzi:
Określanie wydajności w bitach / s -
David Schwartz ma rację, że bity / s są wcześniejsze niż Internet - i to jest część odpowiedzi - stare systemy nie zawsze używały 8 bitów do reprezentowania danych - Na przykład ASCII ma tylko 7 bitów (rozszerzony ASCII to 8 bitów).
Ponadto urządzenia szeregowe (a zatem modemy - czyli początkowo sposób przesyłania danych na duże odległości) miały różne sposoby reprezentowania danych (na przykład N81 - brak parzystości, 8 bitów danych, 1 bit stopu, więc „bajt” danych w tym przykładzie było 9 bitów).
Potem oczywiście jest kompresja. Jeśli wysyłasz / wysyłasz standardowy tekst, możesz uzyskać o wiele więcej bajtów przez linię niż podana szybkość transmisji.
Potem przyszedł Internet i pogrupował dane w pakiety - z dodatkowymi kosztami dla każdego pakietu. W zależności od wielkości pakietu i hermetyzacji, narzut pakietu może być znaczny.
Zatem BPS jest wierniejszym odzwierciedleniem tego, co jest sprzedawane, a następnie bajtów / kilobajtów na sekundę.
Szybsze protokoły wysyłania dużych plików
Nie ma jednej poprawnej odpowiedzi na to pytanie. Jeśli pliku nie można skompresować, a kanał nie jest przepełniony, a odległości są krótkie, FTP jest całkiem niezły.
Gdy trzeba poradzić sobie z przeciążeniem, gra się zmienia - zator zwykle oznacza utratę pakietów, co sygnalizuje spowolnienie systemu. Protokoły, które dzielą się na wiele strumieni, zapewnią lepszą przepustowość (np. Bittorrent, niektóre implementacje pobierania HTTP) i oczywiście kompresję.
To powiedziawszy, istnieje również strojenie, które może czasami zrobić znaczącą różnicę, która leży poniżej poziomu TCP, na którym działa FTP. (Jest to temat ekspercki, ale obejmuje takie rzeczy, jak większe MTU, większe buforowanie pakietów, tagowanie QoS itp. - a wydajność będzie tylko tak dobra, jak pozwalają na to podstawowe optymalizacje.
źródło
Istnieją dwie różne rzeczy, które można zmierzyć. Jedną z nich jest prędkość linii, zwykle mierzona w bitach dziesiętnych na sekundę. Drugim jest efektywna szybkość danych, zwykle mierzona w bajtach binarnych na sekundę.
Na przykład czym jest „gigabit Ethernet”? Jest to Ethernet z prędkością linii wynoszącą miliard bitów na sekundę. Jak szybko przepłyną dane przez gigabit Ethernet? Cóż, 1 000 000 000 bitów = 1 000 000 000/8 bajtów. Tak więc 125 000 000 bajtów na sekundę przepływa co sekundę. Ponieważ w kilobajcie jest 1024 bajtów, to 122 070 KB na sekundę. Dzieląc ponownie przez 1024, otrzymujemy 119,2 MB / s.
To rozróżnienie długo wyprzedza dostawców usług internetowych. Dostawcy usług internetowych udostępniają linie i postępują zgodnie z obowiązującą konwencją określania stawek linii.
źródło
Czy na pewno dostajesz 3 megabajty na sekundę swojego torrenta? Byłoby to niemożliwe w przypadku połączenia o przepustowości 3 megabitów bez naprawdę dobrej kompresji. Podejrzewam, że twój program torrentowy zgłasza 3 megabity (Mb / MBit / Mbit) na sekundę. Jeśli nie masz pewności, podziel rozmiar pliku w megabajtach przez czas pobierania, który powinien być zgodny ze średnią prędkością pobierania.
Dostawcy mierzą prędkość w bitach, ponieważ istnieje wiele różnych sposobów wykorzystania bitów kodujących w celu uzyskania bajtów - niektóre są bardziej wydajne niż inne. Najlepsze, co możesz mieć nadzieję na nieskompresowane, to 8 bitów na bajt, ale zwykle istnieje pewien narzut, który może się różnić w zależności od wielu czynników. Niektóre protokoły pobierania mają większą korekcję błędów, co zużywa więcej bitów na bajt. Niektóre osoby korzystają z VPN, które wymagają umieszczenia danych w innych danych. Niektóre protokoły sprawdzają status częściej niż inne, co również zwiększa koszty ogólne.
Bez względu na to, jak skutecznie lub nieefektywnie bajty są kodowane, maksymalna prędkość zależy od tego, ile bitów może zejść po potoku na raz, więc tego używają dostawcy.
Pomyśl o tym jak o zakupie 32 uncji. napój fontanny na stacji benzynowej. Sprzedają ci kubek, który trzyma tylko tyle. Niektórzy ludzie używają dużo lodu, a niektórzy mało lub wcale. Pomyśl o napoju gazowanym jak o twoich danych, a lód o napowietrznych. Istnieją dobre powody, aby używać lodu i dobre powody, aby go pominąć, ale faktem jest, że im więcej używasz, tym mniej napoju gazowanego zmieścisz w filiżance. Opłacanie Cię na podstawie tego, co wkładasz do kubka, nie leży w najlepszym interesie sklepu. Będzie to kombinacja sody, lodu i powietrza, która nie przekroczy 32 uncji płynu.
źródło
Sprzęt sieciowy (i cały sprzęt naprawdę) działa zasadniczo na poziomie bitów. Każda metoda komunikacji cyfrowej dotyczy przesyłania ciągu zer i jedynek, a wszystko, co jest bardziej abstrakcyjne (np. 8 bitów = 1 bajt itp.), Zależy od nadawcy i odbiorcy. Dlatego z punktu widzenia projektantów sprzętu sieciowego spojrzenie na strumień bitów jest ważniejsze niż na to, jak będą wyglądały potencjalne aplikacje.
Wszystkie protokoły mają narzut. Możesz przesyłać 4K bajtów przez TCP, ale ze względu na nagłówki protokołów itp. Przesyłane dane są większe niż 4K bajtów. Aby uzyskać 4 rzeczywiste, znaczące kilobajty / s. dla ciebie przez TCP, rzeczywista prędkość musi być nieco większa niż 4K bajtów na sekundę. Przy różnorodności używanych protokołów (TCP, FTP, który dodaje więcej narzutu, HTTP, który dodaje więcej narzutu, SSL, który dodaje trochę więcej narzutu itp.), Trudno jest po prostu odpowiedzieć na to użytkownikom nietechnicznym.
Wygląda też lepiej, gdy dostawcy usług internetowych informują osoby z zewnątrz nietrafione o większych liczbach - „to połączenie ma 3 miliony bitów na sekundę” niż „3 megabajty na sekundę”
Bittorrent jest szybszy, jeśli plik ma wiele hostów, ponieważ można go pobierać z wielu źródeł jednocześnie. Jeśli tylko jeden host ma plik, nie da ci to przewagi prędkości, ale będzie bardzo solidny.
Kompresuj swoje pliki.
Użyj protokołów, które wysyłają tylko informacje o delcie, jeśli to możliwe, jeśli wykonujesz coś takiego jak synchronizacja plików.
rsync
robi toFTP opiera się na protokole TCP, co podkreśla niezawodność zamiast wydajności. UDP ze względu na sposób działania podkreśla wydajność zamiast niezawodności. Nie ma popularnej, dobrze obsługiwanej metody przesyłania plików opartej na UDP, innej niż TFTP, której nie należy używać przez Internet. Możesz się tym jednak przyjrzeć , ale nie próbowałem tego (EDYCJA: patrząc trochę dalej, nie jestem pewien, czy istnieje do tego linia poleceń lub inne narzędzia, wygląda to na bibliotekę).
źródło