Inteligentne karty sieciowe

Podwajanie wydajności procesorów co 18 miesięcy blednie w porównaniu z dziesięciokrotnym wzrostem szybkości sieci notowanym co trzy lata. Jak więc powinna wyglądać architektura interfejsu, jeśli weźmie się pod uwagę dominujące obecnie protokoły TCP/IP?

Podwajanie wydajności procesorów co 18 miesięcy blednie w porównaniu z dziesięciokrotnym wzrostem szybkości sieci notowanym co trzy lata. Jak więc powinna wyglądać architektura interfejsu, jeśli weźmie się pod uwagę dominujące obecnie protokoły TCP/IP?

Kluczem do rozwiązania problemu jest uwolnienie jednostki CPU od operacji związanych z przetwarzaniem protokołu TCP.

W przeszłości próbowano odciążyć CPU, lokalizując przetwarzanie stosu protokołu TCP w karcie sieciowej wyposażonej w procesor. Umieszczony na karcie uniwersalny procesor przetwarzał stos protokołów TCP. Podejście takie stwarzało problemy koordynacji, które zwiększały się, gdy tylko w tym samym systemie instalowano drugi adapter.

Inteligentne karty sieciowe

Jak to działa

Nowy sposób rozwiązania kwestii przetwarzania TCP polega na lokalizacji ruchu danych w sprzętowym specjalizowanym adapterze, pozostawiając obsługę sytuacji wyjątkowych oprogramowaniu hosta. Taka metodologia wspiera cele rzeczników rozwiązań sprzętowych, które pozwalają systemowi odciążyć jednostki CPU i pamięci od zadań związanych z intensywnym ruchem danych, a jednocześnie odpowiada zwolennikom realizacji czysto programowych, pozwalających oprogramowaniu kontrolować ustalanie i rozłączanie połączenia oraz czuwać nad poprawnością transmisji danych. Adaptery używające tej techniki poprawiają wydajność procesora hosta, zwiększają przepustowość danych i zmniejszają opóźnienia.

Aby uwolnić jednostki CPU systemu od przetwarzania nagłówków pakietów, zadania te muszą wykonywać adaptery. Kod typowego programu obsługującego stos protokołów TCP/IP ma około 20 000 linii. Jest to znacznie więcej, niż mogą sprawnie obsłużyć konkurencyjne pod względem ceny karty sieciowe. Ponadto przy szybkościach gigabitowych obsługa stosu TCP/IP jest w takim stopniu złożona, że pochłania całą moc obecnie dostępnych najszybszych procesorów Pentium. Aby wykonać przetwarzanie nagłówków pakietu na niedrogich kartach, potrzebny jest raczej specjalizowany, przetwarzający sprzęt sieciowy, nie zaś uniwersalna jednostka CPU.

W celu uproszczenia ścieżki przetwarzania TCP/IP stos protokołu hosta zajmuje się tylko:

  • ustalaniem i kończeniem połączenia TCP

  • retransmisjami

  • powtórnym scalaniem segmentów, gdy zostanie zakłócona ich kolejność.

    W metodzie tej adapter jest obciążany tylko przetwarzaniem niesfragmentowanych połączeń TCP, ścieżka przez stos TCP jest określana jako szybka. Ponieważ obsługa tak wielu ścieżek kodowych TCP jest wyeliminowana ze stosu sprzętowego, korzyści mogą być kwestionowane.

    Badania wykazały, że adaptery serwerowe mogą być kilkaset razy sprawniejsze od tradycyjnych kart sieciowych.

    Główną barierą efektywnego rozdzielenia przetwarzania protokołu TCP pomiędzy adapter a stos hosta stanowi koordynacja zarządzania stanem TCP dla każdego aktywnego połączenia. Do jej pokonania konieczna jest precyzyjna metoda przenoszenia kontekstu informacji, zapewniająca transfer pomiędzy stosem hosta a stosem sprzętowym na karcie.

    Z adapterem wykonującym przetwarzanie szybkiej ścieżki (fast path), interfejs hosta zarządza danymi w warstwie sesji. Host, zamiast formować segmenty TCP i umieszczać te segmenty w ramkach Ethernetu, zarządza ruchem danych w większych blokach na poziomie interfejsu sesji, niezależnie od rozmiaru okna TCP i niewiadomego rozmiaru medium. Po stronie odbiorcy dane sesji (a nie pakiety) są bezpośrednio przesyłane z adaptera do określonego miejsca przeznaczenia w pamięci, zajmując jednorazowo systemową szynę dostępu do pamięci.

    Nagłówki nie są przetwarzane, CPU systemu nie wylicza sum kontrolnych, jedynie kopiuje niewielkie ilości danych. Nigdy nie przekazuje się pojedynczych pakietów sieciowych do pamięci podręcznej CPU, co pozwala systemowi przechowywać w niej ważne dane i polecenia. W modelu przesyłania danych sesji i przetwarzaniu potwierdzeń adaptera występuje kilka operacji PCI. Liczba przerwań zmniejsza się do zaledwie dwu dla 64 kb sesji czytającej i jednego dla 64 kb sesji piszącej.

    Nowa generacja mechanizmów odciążających TCP rozdziela przetwarzanie protokołów TCP/IP pomiędzy obsługę wyjątków przez host a obsługę danych realizowaną sprzętowo przez adapter. Kluczem do tej technologii jest zarządzanie przejściem kontekstu połączenia TCP pomiędzy adapter a host. Technologia ta jest znacznie efektywniejsza od tradycyjnych interfejsów sieciowych, ponieważ host zarządza tylko danymi w warstwie sesji, zamiast zarządzać sesją i danymi na poziomie pakietów.

  • W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

    TOP 200