Szybszy transfer

Tło

Obecnie w Internecie używane są dwa główne protokoły: TCP i UDP.

TCP jest koniem roboczym Internetu. Protokół ten posiada wbudowane mechanizmy niezawodności, co oznacza, że nadawca automatycznie prześle ponownie pakiet TCP do odbiorcy, jeśli zagubił się on po drodze. Gdy odbiorca otrzyma pakiet TCP, do nadawcy wysyłana jest wiadomość ACK (Acknowledge), dzięki której nadawca wie, że pakiet został dostarczony poprawnie. Ten stosunkowo prosty mechanizm sprawia, że protokół TCP jest bardzo niezawodny i łatwy w użyciu dla programistów. Wysyłanie tych wiadomości ACK do nadawcy może poważnie ograniczyć wydajność (ponieważ nadawca musi czekać na ACK pakietu1 przed wysłaniem pakietu2) û dlatego na przestrzeni lat wprowadzono wiele ulepszeń do tego protokołu. Niektóre z najważniejszych cech nowoczesnej implementacji TCP to:

  • Scalable Window Size umożliwia nadawcy wysyłanie wielu pakietów naraz i oczekiwanie na wiele ACKÆ w tym samym czasie. Dane, które są wysyłane, ale nie zostały jeszcze ACK, są często nazywane danymi w locie (Data In Flight), co oznacza, że nadawca nie wysyła danych do odbiorcy szybciej, niż odbiorca może je odebrać.

Bandwidth throttling umożliwia klientowi 10 mbit komunikować się z serwerem 1000 mbit bez bycia całkowicie przytłoczonym przez ruch z serwera. W TCP jest to oparte na idei, że w danym momencie powinna być tylko określona liczba danych w locie.

Selektywne ACK pozwalają odbiorcy na odbieranie i ACK pakietów w dowolnej kolejności. Jeśli pakiet 1 został zgubiony, nie przeszkadza to pakietowi 2 w wysłaniu i ACK przed ponownym wysłaniem pakietu 1.

Firewalle, routery i przełączniki są silnie zoptymalizowane pod kątem ruchu TCP - co sprawia, że jest to naturalny wybór dla większości zadań wykonywanych obecnie w Internecie. Przeglądarki internetowe, klienci poczty e-mail, Facebook, Instagram, Snapchat, Stock tickers, Spotify, Slack i FTP Clients to niektóre z aplikacji, które zazwyczaj używają TCP.

Jest jednak pewna wada. Podczas przesyłania ruchu TCP na dużą odległość geograficzną wydajność znacznie spada. Powodem tego jest to, że ruch (i ACK) musi podróżować przez wiele więcej routerów i infrastruktury sieciowej, aby dostać się do odbiorcy û i to zajmuje czas.

Czas ten jest często określany jako opóźnienie. Jeśli przeglądasz stronę internetową hostowaną w tym samym kraju, opóźnienie jest czasami tak małe jak 10 milisekund. Jeśli przeglądasz stronę internetową, która jest umieszczona na innym kontynencie, natychmiast zauważysz, że strony ładują się długo z powodu zwiększonego opóźnienia.

Problem opóźnień TCP staje się niezwykle widoczny przy przesyłaniu plików przez kontynenty. Zarówno nadawca jak i odbiorca mogą mieć niesamowite 1000/1000 megabitowe połączenia, ale otrzymują tylko 10 megabitów efektywnej przepustowości sieci podczas przesyłania plików z powodu opóźnień, które uniemożliwiają im efektywną komunikację przy użyciu TCP.

UDP jest rodzeństwem TCP. Główna różnica polega na tym, że pakiet UDP nigdy nie jest ACKÆed. Nadawca nie ma pojęcia, czy pakiet UDP dotarł do odbiorcy û nie jest to w ogóle niezawodny protokół. Jest za to niezwykle szybki, ponieważ nie ma ACKÆing. UDP świetnie sprawdza się w połączeniach wideo i grach online. W tych przypadkach nie ma znaczenia, czy kilka pakietów UDP zostanie porzuconych. Pakiety UDP są ciągle wysyłane, więc nawet nie zauważysz tego w strumieniu wideo. Tak samo w przypadku gier online û w ciągu kilku milisekund otrzymasz nowy pakiet UDP z najnowszymi aktualizacjami. Utrata kilku pakietów UDP od czasu do czasu nie stanowi problemu. Ważniejsze jest, aby przesyłać dane szybko i z jak najmniejszymi opóźnieniami.

UDP początkowo może wydawać się fatalnym wyborem do przesyłania plików. Całkowity brak niezawodności oznaczałby uszkodzone pliki w każdym miejscu z powodu porzuconych pakietów UDP. Brak dławienia przepustowości doprowadziłby do zalania klientów ruchem i w zasadzie do ich wyłączenia. Aby UDP było użyteczne do przesyłania plików, musi być niezawodne tak samo jak TCP. Na początek upuszczone pakiety muszą być ponownie wysłane, a dławienie pasma musi być możliwe. Należy również zająć się bezpieczeństwem.

Protokół przyspieszania transferu Filemail UDP (UAP)

Protokół przyspieszania transferu Filemail UDP (UAP) to specjalnie zaprojektowany protokół transferu plików, bazujący na UDP - posiadając w ten sposób nieprawdopodobne prędkości transferów nawet w przypadku występowania dużych opóźnień. Rozkłada na łopatki wszystkie protokoły bazujące na TCP, takie jak HTTP i FTP - a zwłaszcza wtedy, gdy trzeba przesłać pliki na duże dystanse, gdzie opóźnienie często wychodzi nawet ponad 50 ms.

Osiągi

Testy pokazują, że protokół przyspieszania transferu Filemail UDP jest czasem nawet do 200 razy szybszy niż FTP, HTTP i inne metody transferu bazujące na TCP.

Efektywna prędkość trannsmisji podczas wysyłaniu plików z Europy do Australii przez 21 punktów routowania ("skoków"). Po obu stronach łącza internetowe 1000/1000 Mpbs.

Protokół Filemail UAP jest skonstruowany od samego początku z założeniem, aby umożliwić możliwie najszybszy transfer plików z punktu A do B w najbezpieczniejszy i najbardziej niezawodny sposób. Poniżej niektóre z cech tego rewolucyjnego rozwiązania. Nieoficjalne porównanie do rozwiązań transferowych bazujących na UDP, producentów takich jak IBM Asoera i SIgniant pokazują, że Filemail jest szybszy praktycznie we wszystkich przypadkach. Niektóre z różnic w wydajności mogą być również tym spowodowane, że Filemail używa również sprzętowej akceleracji - a dokładniej zestawu instrukcji AES-NI. Protokoły takie jak IBM Aspera i Signiant używają również dodatkowego kanału TCP (SSH) do sterowania pasmem przepłwu, potwierdzeniami itp. Filemail UAP nie używa wolniejszego protokołu TCP - wykorzystuje wyłączenie UDP do transferu danych, potwierdzeń, sterowania pasmem przepływu i szyfrowania.

Bezpieczeństwo

Cały ruch UDP jest zabezpieczony szyfrowaniem AES Galois/Counter Mode (AES-GCM). Jest to najwyższy standard wśród współczesnych metod szyfrowania i zapewnia, że transmitowane dane nie mogą być przejęte przez niepowołane osoby. Każde połączenie ma unikalny klucz, wymiana klucza pomiędzy serwerem i klientem jest szyfrowana za pomoca algorytmu Rivest-Shamir-Adleman (RSA).

Sprzętowe szyfrowanie

Protokół Filemail UAP używa zestawu instrukcji kryptograficznych AES-NI, wprowadzonego przez AMD i Intel kilka lat temu. Pozwala on na użycie dedykowanych komponentów hardwarowych do szyfrowania i deszyfrowania danych. To ma ogromne znaczenie, jeśli chodzi o prędkość transmisji. AES-NI jest obsługiwany na systemach operacyjnych takich jak Windows, macOS, Linux, iOS i Android. Można wykorzystywać ten zestaw instrukcji w produktach firm takich jak m. in. Intel, AMD, ARM, VIA, Atmel, Samsung, Qualcomm, NXP i Broadcom.

Wymagania softwarowe i hardwarowe

Protokół Filemail UAP jest napisany w niskopoziomowym C++ i może działać praktycznie na każdym urządzeniu i systemie operacyjnym. Kompilacje binarne dostępne są obecnie na systemy Windows, macOS i Linux. Naszym flagowym narzędziem używającym UAP jest Filemail Desktop. Dostępne są również aplikacje konsolowe. Filemail UAP jest bardzo mocno zoptymalizowany i używa niewielką ilość pamięci (kilka megabajtów), ciągle jednak oferując maksymalną prędkość transferu. Zwykle używa też mniej niż 5% CPU podczas wysyłania plików z maksymalną prędkością.

Obustronne przyspieszanie transmisji

Filemail UAP jest używany zarówno do wysyłania jak i pobierania plików w Filemail Desktop. To oznacza, że zarówno Ty jak i Twoi klienci i partnerzy biznesowni mogą w pełni korzystać z zalet tej technologii.

Rozpoczęcie pracy z Filemail UAP

Filemail UAP jest zintegrowany z naszą aplikacją Filemail Desktop i jest włączany automatycznie podczas wysyłania i pobierania plików. Aplikacja Filemail Desktop jest bezpłatna i nie wymaga logowania. Przekaż przyspieszenie do ludzi.