Przyspieszenie na brzegu sieci

Co spowalnia aplikacje w sieciach WAN?

Przepustowość sieci LAN możemy zwiększyć, np. z 10 Mb/s do 10 Gb/s, inwestując jednorazowo. Za łącze sieci WAN zwykle musimy stale słono płacić. Wprawdzie można dowolnie zwiększać przepustowość tego łącza, ale może to być niezbyt zdrowe dla budżetu firmy. Co gorsza, nawet zwiększając przepustowość możemy nie uzyskać zwiększenia szybkości transmisji. Dlaczego?

Gadatliwość protokołów

Jednym z głównych czynników skutecznie pogarszającym płynność komunikacji poprzez WAN jest "gadatliwość" protokołów. W warstwie 7 (aplikacji) krąży absurdalna liczba dwustronnych komunikatów (round-trips) - wiele aplikacji ma "gawędziarską" naturę. Protokoły takie jak CIFS, MAPI do realizacji pojedynczego zadania wysyłają liczne komunikaty.

Odczuć to można np. odwzorowując dysk poprzez sieć WAN za pośrednictwem MS Windows (CIFS). Proste otwarcie, edycja i zapisanie dokumentu Word czy Excel ze zdalnego serwera trwa wieki, nawet przy szybkim łączu. Podobnie użytkownicy poczty zlokalizowanej na serwerze MS Exchange 2000 muszą poczekać zanim otworzą załącznik, pomimo że jest on widoczny jako znajdujący się w lokalnej skrzynce. W MS Exchange 2003 zamaskowano ten problem, pobierając wszystkie wiadomości i załączniki w tle, ale jednocześnie do skrzynki odbiorczej ładowane są wszystkie załączniki, nie ważne czy chciane przez użytkownika czy też nie, co obciąża łącze.

WAFS

Rozwiązaniem tego problemu ma być mechanizm WAFS (Wide-Area File Systems). WAFS oferuje kompresję i buforowanie na poziomie protokołów sieciowych, przy zachowaniu mechanizmów blokowania podczas edycji, koherencji, bezpieczeństwa i integralności danych. Nie jest wymagane instalowanie dodatkowego oprogramowania o stronie klienta ani serwera pliku. Działanie WAFS jest przezroczyste dla użytkowników końcowych.

WAFS pozwala w szybki sposób rozwiązać problem wielu firm. Microsoft ogłosił, że w nowej wersji Windows Server (R2) wyeliminował niedogodności funkcjonowania CIFS w sieciach rozległych. Dzięki temu zapotrzebowanie na urządzenia WAFS może się zmniejszyć. Podobnie MS Exchange 2003 oferuje polepszenie obsługi protokołu MAPI (Message Application Programming Interface) w sieciach WAN.

Opóźnienie w sieciach LAN zazwyczaj jest znikome i nie ma większego znaczenia praktycznego. W łączach rozległych opóźnienie ma znaczący wpływ na szybkość transferu. Szczególnie dla aplikacji na to wrażliwych, jak VoIP czy Citrix. Zwłoka w transmisji pogarsza też wydajność aplikacji wykorzystujących gadatliwe protokoły (CIFS, NFS), wymieniające setki komunikatów.

TCP windowing

Innym czynnikiem mającym wpływ na wydajność jest algorytm doboru okna transmisyjnego TCP (TCP windowing). Określa on, jaka ilość danych może być wysłana przed uzyskaniem potwierdzenia odbioru. W przypadku aplikacji wysyłającej swoje pakiety z powodzeniem rozmiar okna jest zwiększany i tym samym dysponuje ona większą przepustowością. Analogicznie przy transmisji ze stratami pakietów rozmiar okna jest zmniejszany, co wydłuża czas transmisji danego zbioru danych. Mechanizm ten nie faworyzuje aplikacji wrażliwych na opóźnienia ani krytycznych dla firmy.

Rozmiar nie ma znaczenia

W świecie WAN przepustowość łącza często ma mały wpływ na całkowitą wydajność zdalnych aplikacji. Jednym z problemów jest to, że większość protokołów komunikacyjnych (TCP) początkowo nie była projektowana do funkcjonowania poza siecią lokalną.

Przykładowo, TCP korzysta z pakietów potwierdzeń ACK (acknowledgement) dla zapewniania niezawodności transmisji. Odbiorca potwierdza nadawcy, że otrzymał pakiet bez błędów. Jednak na łączach WAN o większych opóźnieniach oczekiwanie na pakiety ACK zatyka przepustowość. Zwiększenie przepustowości czasami niewiele pomaga. Czasy odpowiedzi RTT (Round-Trip Times) na poziomie 200-400 ms wcale nie są rzadkością.

Sieciowe godziny szczytu

Zjawiskiem, które potrafi skutecznie zatamować wymianę danych są zatory. W sieciach WAN przeciążenia mają miejsce, gdy nie jest wdrożona polityka alokacji przepustowości. Rozwiązaniem tego problemu jest wprowadzenie przydziału pasma poszczególnym usługom/użytkownikom i/lub priorytetyzacja aplikacji.

Innymi czynnikami zmniejszającymi efektywność transmisji są: czas odpowiedzi serwerów czy współzawodnictwo o pasmo.

Metody akceleracji

Przyspieszenie na brzegu sieci

Wybór mechanizmu optymalizacji wykorzystania łącza zależy od zadań stawianych sieci

Buforowanie fragmentów plików

Buforowanie danych pozwala zredukować ruch na łączu, poprzez lokalne przechowywanie aktualnie wykorzystywanych plików w urządzeniu akcelerującym, blisko użytkownika. Jednak przechowywanie całych plików nie jest tak efektywne jak nowsza metoda buforowania jedynie wybranych segmentów danych, ponieważ szansa, że inni użytkownicy będą pobierać ten sam plik jest mała. Także jakakolwiek zmiana pliku lub jego nazwy spowoduje, że użytkownicy lokalni nie znajdą tego pliku i będzie on musiał zostać pobrany od nowa. Dlatego do serwera przesyłane są tylko te segmenty oryginalnego pliku, które uległy zmianie, co znacznie redukuje ruch WAN.

Optymalizacja TCP i ACK

Efektywną metodą jest obsługa potwierdzeń ACK prze lokalny akcelerator. Nie wymaga to zmian w protokole. Na pojedyncze żądanie odsyłanych jest wiele pakietów ACK, zgodnie z oczekiwaniem aplikacji, likwidując tym samym potrzebę oczekiwania na potwierdzenia z odległego serwera. Można też sztucznie zwiększać rozmiar okna TCP, aby nadawca wysyłał pakiety większymi partiami.

Producenci oferują także akcelerację czasu odpowiedzi różnych aplikacji. Usługi DNS, Exchange, FTP, Citrix, Notes CIFS/NFS mogą być przyspieszane poprzez redukcję liczby komunikatów przesyłanych przez WAN. Potwierdzenia i żądania są obsługiwane lokalnie i masowo podobnie jak przy TCP, zamiast oczekiwać na każdy komunikat osobno.

Przełączanie w warstwie 7

Jaki jest cel przełączania pakietów w tak wysokiej warstwie? Dzięki mechanizmowi udostępniania przez warstwę aplikacji pewnych informacji o zawartości pakietów, urządzenia sieciowe mogą precyzyjniej kierować przesyłane pakiety.

Przykładowo, jeżeli żądanie zawiera adres URL z fragmentem ".html", wówczas pakiet może być bezpośrednio skierowany do serwera http, podczas gdy np. pakiet zawierający fragment ".tar.gz" może być kierowany do serwera plików, a fragment ".asx" czy ".ram" wskazuje na serwer mediów.

Standardowo routery widzą jedynie warstwę 4 i mogą podejmować decyzję wg numeru portu (np. 80), analiza warstwy 7 pozwala na precyzyjniejsze kierowanie pakietów.

Kompresja HTTP i XML

Kompresja plików przesyłanych za pośrednictwem HTTP pozwala na zmniejszenie ich rozmiarów i tym samym redukcję wykorzystywanej przepustowości. Testy komercyjnych rozwiązań pokazują, że nie zawsze kompresja HTTP jest korzystna, czasami powoduje ona wydłużenie czasu obsługi żądania (np. przy plikach już skompresowanych: zip, tar). Akceleratory muszą prowadzić selekcję plików, które mogą być kompresowane (pliki tekstowe).

Kompresja jest stosowana z powodzeniem w przypadku plików XML. Podejmowane są także próby stosowania kompresji komunikatów sygnalizacyjnych SIP.

Multipleksacja TCP

Ciekawą techniką wydaje się multipleksacja TCP. Umożliwia ona łączenie wielu jednoczesnych połączeń zewnętrznych TCP od zdalnych klientów w mniejszą liczbę połączeń nawiązywanych pomiędzy akceleratorem a serwerem. Obsługa stosu TCP przez procesory serwerów jest zadaniem pracochłonnym, dlatego częściowe przerzucenie tego zadania na akcelerator zwiększa wydajność serwera.

Buforowanie żądań

Akcelerator może również pełnić rolę bufora żądań napływających pod adresem serwera. W momencie ich gwałtownego napływu przechowuje on część wywołań, a resztę przekazuje stopniowo, co zabezpiecza serwer przed przeciążeniem.


TOP 200