Przyspieszenie transferu UDP w usłudze Filemail
Obecnie w Internecie stosowane są dwa główne protokoły: TCP i UDP. TCP jest koniem pociągowym Internetu. Przyspieszenie transferu UDP to rasowy, stworzony z myślą o szybkości.
Czym jest protokół TCP?
Protokół ten ma wbudowane mechanizmy niezawodności, co oznacza, że nadawca automatycznie ponownie prześle pakiet TCP do odbiorcy, jeśli zostanie on w jakiś sposób zgubiony po drodze.
TCP: kręgosłup Internetu
Zapory sieciowe, routery i przełączniki są w dużym stopniu zoptymalizowane pod kątem ruchu TCP, co sprawia, że TCP jest naturalnym wyborem dla większości zadań wykonywanych obecnie w Internecie. Przeglądarki internetowe, klienci poczty e-mail, Facebook, Instagram, Snapchat, giełdy, Spotify, Slack i klienci FTP to tylko niektóre z aplikacji, które zazwyczaj korzystają z protokołu TCP. Jeśli korzystasz z rozwiązania do przesyłania plików za pośrednictwem przeglądarki, to najprawdopodobniej korzysta ono z protokołu TCP.
Zapewnienie niezawodności: Rola komunikatów ACK w protokole TCP
Gdy odbiorca otrzymuje pakiet TCP, wysyłany jest komunikat ACK (Acknowledge), aby potwierdzić nadawcy, że pakiet został poprawnie odebrany. Ten stosunkowo prosty mechanizm sprawia, że protokół TCP jest bardzo niezawodny i łatwy w użyciu dla programistów.
Wysyłanie wiadomości ACK do nadawcy może poważnie ograniczyć wydajność (ponieważ nadawca musi czekać na ACK pakietu-1 przed wysłaniem pakietu-2). Aby złagodzić niektóre z problemów związanych z protokołem TCP, na przestrzeni lat wprowadzono do niego wiele ulepszeń.
Skalowalny rozmiar okna
Umożliwia nadawcy wysyłanie wielu pakietów i oczekiwanie na wiele odpowiedzi ACK w tym samym czasie. Dane wysłane, ale jeszcze nie ACK-ed są często określane jako Data In Flight. Nadawca ma limit ilości danych, które może mieć w locie, co oznacza, że nadawca nie wysyła danych do odbiornika szybciej niż odbiornik może obsłużyć.
Ograniczanie przepustowości
Zasadniczo umożliwia to klientowi 10 Mbit komunikację z serwerem 1000 Mbit bez przeciążania go ruchem z serwera. W protokole TCP opiera się to na założeniu, że w danym momencie powinna być przesyłana tylko określona liczba danych.
Selektywne ACK
Umożliwia odbiorcy otrzymywanie pakietów ACK w dowolnej kolejności. Jeśli pakiet-1 został utracony, nie przeszkadza to w wysłaniu pakietu-2 i ACK-ed przed ponownym wysłaniem pakietu-1.
Wady protokołu TCP
Podczas wysyłania ruchu TCP na dużą odległość geograficzną wydajność znacznie spada. Ponieważ ruch (i ACK) musi przejść przez więcej routerów i infrastruktury sieciowej, aby dotrzeć do odbiorcy, zajmuje to więcej czasu.
Czas ten określany jest jako opóźnienie. Jeśli przeglądasz witrynę hostowaną w tym samym kraju, opóźnienie wynosi czasami zaledwie 10 milisekund. Przeglądając witrynę hostowaną na innym kontynencie, natychmiast zauważysz, że ładowanie stron trwa dłużej z powodu zwiększonego opóźnienia.
Problem opóźnień TCP staje się niezwykle widoczny podczas przesyłania plików między kontynentami. Zarówno nadawca, jak i odbiorca mogą korzystać z niesamowitych połączeń o przepustowości 1000/1000 megabitów, ale podczas przesyłania plików uzyskują tylko 10 megabitów efektywnej przepustowości sieci z powodu opóźnień, które uniemożliwiają im skuteczną komunikację przy użyciu protokołu TCP.
Czym jest UDP?
Protokół UDP jest rodzeństwem protokołu TCP. Główna różnica polega na tym, że pakiet UDP nigdy nie otrzymuje odpowiedzi ACK. Nadawca nie ma pojęcia, czy pakiet UDP dotarł do odbiorcy, więc nie jest to niezawodny protokół. Ale jest niesamowicie szybki, ponieważ nie ma ACK-ingu.
UDP: Priorytet szybkości nad niezawodnością
Protokół UDP świetnie sprawdza się w połączeniach wideo i grach online. W tych przypadkach nie ma znaczenia, czy kilka pakietów UDP zostanie przerwanych. Pakiety UDP są stale wysyłane, więc 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 szybkie przesyłanie danych z jak najmniejszymi opóźnieniami.
Niezawodność UDP w transferze plików
UDP początkowo może wydawać się okropnym 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 ograniczania przepustowości prowadziłby do zalewania klientów ruchem i zasadniczo przechodzenia w tryb offline. Aby UDP był przydatny do przesyłania plików, musi być niezawodny w taki sam sposób, jak TCP. Na początek, porzucone pakiety muszą być ponownie wysyłane, a ograniczanie przepustowości musi być możliwe. Należy również zająć się bezpieczeństwem.
Filemail UDP Transfer Acceleration Protocol
Filemail UDP Acceleration Protocol (UAP) to niestandardowy protokół transferu plików zbudowany na bazie UDP, który oferuje niesamowicie szybkie prędkości transferu nawet w środowiskach o dużych opóźnieniach. Z łatwością przewyższa wszystkie protokoły oparte na protokole TCP, takie jak HTTP i FTP - zwłaszcza podczas wysyłania plików na duże odległości geograficzne, gdzie opóźnienie przekracza 50 ms.
Do 200 razy szybciej
Testy porównawcze pokazują, że przyspieszenie transferu Filemail UDP jest czasami nawet 200 razy szybsze niż FTP, HTTP i inne metody transferu oparte na TCP.
Filemail UAP został zbudowany od podstaw z myślą o jednym celu: niezwykle szybkim przesyłaniu plików z punktu A do punktu B w możliwie najbezpieczniejszy i najbardziej niezawodny sposób. Poniżej znajdują się niektóre z cech tego rewolucyjnego protokołu.
Efektywna przepustowość transferu podczas przesyłania plików z Europy do Australii przez 21 przeskoków sieciowych. Oba końce są podłączone do połączenia 1000/1000 Mbit.
Nieoficjalne porównania z rozwiązaniami transferu opartymi na UDP firm IBM Aspera, GlobalScape i Signiant pokazują, że Filemail jest szybszy w prawie wszystkich przypadkach. Niektóre z różnic w wydajności mogą wynikać z tego, że Filemail wykorzystuje również akcelerację sprzętową - w szczególności używając zestawu instrukcji AES-NI. Ponadto protokoły IBM Aspera i Signiant używają oddzielnego kanału TCP (SSH) do ograniczania przepustowości, ACK itp. Filemail UAP nie opiera się na wolniejszym protokole TCP - używa UDP do przesyłania danych, ACK, ograniczania przepustowości i szyfrowania.
Bezpieczeństwo
Cały ruch danych UDP jest chroniony przez szyfrowanie AES Galois/Counter Mode (AES-GCM). Jest to obecnie złoty standard szyfrowania, który zapewnia, że przesyłane dane nie mogą zostać przechwycone przez osoby trzecie. Każda sesja transferu ma oddzielny klucz, który jest wymieniany między klientem a serwerem przy użyciu szyfrowania Rivest-Shamir-Adleman (RSA).
Szyfrowanie przyspieszane sprzętowo
Filemail UAP wykorzystuje zestaw instrukcji AES-NI wprowadzony przez AMD i Intel kilka lat temu. Ten zestaw instrukcji umożliwia Filemail UAP korzystanie z dedykowanych komponentów sprzętowych do szyfrowania i deszyfrowania danych. Stanowi to ogromną różnicę, jeśli chodzi o szybkość przesyłania danych. AES-NI jest obsługiwany w systemach operacyjnych takich jak Microsoft Windows, macOS, Linux, iOS i Android. Obsługują go również producenci sprzętu, tacy jak Intel, AMD, ARM, VIA, Atmel, Samsung, Qualcomm, NXP i Broadcom.
Wymagania dotyczące oprogramowania i sprzętu
Filemail UAP jest napisany w niskopoziomowym C++ i może działać na praktycznie wszystkich urządzeniach i systemach operacyjnych. Wersje binarne są obecnie dostępne dla systemów Windows, macOS i Linux. Filemail Desktop to nasze flagowe narzędzie do przesyłania wykorzystujące UAP. Dostępne są również aplikacje konsolowe. Filemail UAP został mocno zoptymalizowany i zajmuje bardzo mało pamięci (zaledwie kilka megabajtów), jednocześnie maksymalizując przepustowość łącza. Zwykle wykorzystuje również mniej niż 5% procesora podczas wysyłania plików z maksymalną prędkością.
Dwukierunkowe przyspieszenie transferu
Filemail UAP jest używany zarówno podczas wysyłania, jak i pobierania plików za pomocą Filemail Desktop. Oznacza to, że Ty ORAZ Twoi klienci i partnerzy biznesowi mogą korzystać z tej technologii.
Pierwsze kroki z Filemail UDP Transfer Acceleration
Filemail UDP Transfer Acceleration jest zintegrowany z naszą aplikacją Filemail Desktop i jest włączany automatycznie podczas wysyłania i pobierania plików. Akceleracja transferu UDP jest dostępna w naszych planach Business i Enterprise.