Opracowanie pytań na egzamin inżynierski
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

W4-INF-ISK.md 11KB

Protokoły rozległych sieci komputerowych

Rozległe sieci komputerowe to sieci zlokalizowane na dużym obszarze geograficznym (region, kraj, kontynent, cały świat), służące do łączenia ze sobą i przesyłania danych między wieloma sieciami lokalnymi. Protokoły stosowane w sieciach rozległych obejmują pierwsze 2 lub 3 warstwy modelu ISO/OSI (fizyczną, łącza danych i sieciową).

Podstawowy podział protokołów sieci rozległych wynika ze sposobu zestawiania połączenia (komutacji). Wyróżnia się:

  • komutację kanałów – gdzie każdemu połączeniu przydzielane są na wyłączność kolejne łącza między węzłem źródłowym a węzłem docelowym (zajmowane przez cały czas trwania połączenia), przez które następnie przesyłane są dane,
  • komutację pakietów – gdzie dane dzielone są na fragmenty (pakiety), które następnie przesyłane są przez wspólne łącza między kolejnymi węzłami sieci od źródła do celu; umożliwia to lepsze wykorzystanie łączy i łatwe omijanie uszkodzonych fragmentów sieci (jedna transmisja może się odbywać wieloma trasami) kosztem nieco większego opóźnienia transmisji, niż w przypadku komutacji kanałów,
  • komutację komórek – w zasadzie odmiana komutacji pakietów, w której dane dzieli się na komórki, w porównaniu z pakietami krótsze i posiadające zawsze taką samą długość (pakiety mają określoną tylko maksymalną długość); rozwiązanie opracowane z myślą o szybszym przełączaniu danych w węzłach sieci z zastosowaniem specjalizowanych układów cyfrowych (ASIC), obecnie straciło na znaczeniu z powodu wzrostu mocy obliczeniowej routerów i mniejszej elastyczności od komutacji pakietów.

Kilka istotniejszych protokołów sieci rozległych to:

  • PPP (Point-to-Point Protocol) – bazujący na komutacji kanałów protokół warstwy łącza danych, używany do zestawienia bezpośredniego połączenia i wymiany danych między dwoma węzłami sieci, może pracować bezpośrednio na interfejsach szeregowych lub być opakowywany w ramki innego protokołu warstwy 2 (PPPoE – PPP over Ethernet, PPPoA – PPP over ATM), obecnie często stosowany do transmisji danych na linii abonenckiej między siecią szkieletową operatora a urządzeniami klienta (między innymi NETIA i Orange wykorzystują PPPoE na łączach DSL) oraz do zestawiania wirtualnego połączenia w niektórych implementacjach sieci VPN (np. L2TP+IPSec),
  • MPLS (Multi-protocol Label Switching) – protokół wykorzystujący komutację pakietów, opracowany niejako w celu rozszerzenia sieci IP o narzędzia inżynierii ruchu (chociaż teoretycznie może współpracować z dowolnym protokołem warstwy 3), wraz z protokołem IP podstawa działania dzisiejszych sieci szkieletowych; idea działania sieci MPLS opiera się na przełączaniu etykiet, które identyfikują kolejny węzeł na trasie i są zastępowane nowymi przy każdym przeskoku – na wejściu do sieci MPLS pakiety są obudowywane za pomocą etykiet przez routery brzegowe LER (Label Edge Router), a w węzłach sieci routery wewnętrzne LSR (Label Switch Router) po odebraniu pakietu indeksują za pomocą jego etykiety tablicę, w której znajduje się kolejny węzeł na trasie i nowa etykieta – umożliwia to definiowanie różnych tras między tymi samymi punktami w sieci dla różnego rodzaju ruchu, dzięki czemu można np. rozmowy głosowe przesyłać szybszą trasą niż transfer plików, równoważąc obciążenie łączy,
  • X.25 / Frame Relay – jedne z pierwszych protokołów wykorzystujących komutację pakietów – protokół X.25 obejmuje warstwę fizyczną, łącza danych i sieciową, został opracowany w czasach gdy łącza w sieciach rozległych były bardzo zawodne (zawiera więc rozbudowane mechanizmy korekcji błędów, ale wprowadza około 15 ms opóźnienia na każdy węzeł, a jego maksymalna przepustowość wynosi tylko 2 Mb/s); Frame Relay jest jego unowocześnioną wersją obejmującą tylko warstwę fizyczną i łącza danych, zaprojektowaną pod kątem szybszej transmisji danych przez stabilne łącza,
  • ATM (Asynchronous Transfer Mode) – protokół bazujący na komutacji komórek, obejmujący warstwę fizyczną, łącza danych i sieciową, opracowany z myślą o stabilnych połączeniach z niskimi opóźnieniami; do transmisji danych wykorzystuje komórki o 5-bajtowym nagłówku i 48-bajtowym polu danych, wykorzystuje koncepcję wirtualnych ścieżek – trasowanie jest dokonywane tylko raz, na początku zestawiania połączenia.

Charakterystyka wybranej techniki wirtualizacji

(to jest oczywiście dość rozległe zagadnienie i sami możecie wybrać o czym dokładnie powiecie, tu spróbowałem zebrać trochę informacji o różnych odmianach wirtualizacji, tak żebyście mieli rozeznanie w temacie)

Wirtualizacja sprzętu
Istotą wirtualizacji sprzętu jest uruchamianie na jednym fizycznym komputerze (gospodarzu, ang. host) wielu maszyn wirtualnych (gości, ang. guest), działających jak oddzielne komputery i umożliwiających instalację różnych systemów operacyjnych.

Istnieją dwa rodzaje wirtualizacji sprzętu:

  • pełna wirtualizacja – wirtualizacja całego sprzętu wchodzącego w skład maszyny wirtualnej, dzięki czemu system operacyjny gościa pracuje tak samo, jak na fizycznej maszynie (z jego poziomu nie widać żadnej różnicy) i nie musi być modyfikowany do uruchamiania na maszynie wirtualnej,
  • parawirtualizacja – uruchamianie w wydzielonym środowisku gościa specjalnie zmodyfikowanej wersji systemu operacyjnego, tak by nie była konieczna wirtualizacja sprzętu, dzięki czemu system gościa może pracować wydajniej niż w przypadku pełnej wirtualizacji.

Oprogramowanie służące do tworzenia maszyn wirtualnych na maszynie gospodarza nazywa się hipernadzorcą (ang. hypervisor) lub menedżerem maszyn wirtualnych (ang. virtual machine monitor).

Wyróżniane są dwa rodzaje hipernadzorców:

  • hipernadzorca typu 1 – uruchamiany bezpośrednio na sprzęcie gospodarza i mający nad nim pełną kontrolę, umożliwiający uruchamianie systemu operacyjnego gościa w trybie parawirtualizacji lub pełnej wirtualizacji – przykłady: Xen, VMware ESX, Microsoft Hyper-V,
  • hipernadzorca typu 2 – uruchamiany jako program pod kontrolą systemu operacyjnego gospodarza, umożliwiający uruchamianie systemu operacyjnego gościa w trybie pełnej wirtualizacji jako jeden z procesów w systemie gospodarza – przykłady: VirtualBox, VMware Workstation, KVM.

W celu zwiększenia wydajności zwirtualizowanych systemów zostały opracowane technologie sprzętowego wspomagania wirtualizacji (w przypadku architektury x86: Intel VT-x, AMD-V). Pozwalają one hipernadzorcy obsługiwać sprzętowo część żądań systemu gościa zamiast ich przetwarzania programowego, co zmniejsza obciążenie maszyny gospodarza (i jest istotne przede wszystkim przy pełnej wirtualizacji).

Dodatkowo, współcześnie wiele hipernadzorców typu 2 obsługuje parawirtualizację części zasobów maszyny wirtualnej (np. urządzeń wejścia/wyjścia) przy pomocy sterowników instalowanych na systemie gościa – określa się to jako wirtualizację hybrydową, jest ona wykorzystywana między innymi przez VirtualBox i KVM. Wraz ze sprzętowym wspomaganiem wirtualizacji, wirtualizacja hybrydowa pozwala osiągać hipernadzorcom typu 2 wydajność zbliżoną do parawirtualizacji (szczególnie: KVM i wirtualizacja Linuksów).

Wirtualizacja na poziomie systemu operacyjnego (konteneryzacja)
Konteneryzacja polega na uruchamianiu w obrębie jednego systemu operacyjnego różnych aplikacji w wydzielonych, izolowanych przestrzeniach użytkownika (nazywanych kontenerami). Każdy kontener posiada swój system plików (zawierający wszystkie zależności potrzebne do uruchomienia aplikacji), współdzieli natomiast z systemem gospodarza jądro systemu operacyjnego. Dzięki temu możliwe jest zapewnienie różnym programom oddzielnych środowisk roboczych bez konieczności wirtualizacji systemu operacyjnego i związanych z tym spadków wydajności. Przykłady: Docker (Linux, obecnie najpowszechniejszy mechanizm konteneryzacji), wbudowane mechanizmy Linuksa (LXC), Solarisa (zones), FreeBSD (jails).

Wirtualizacja sieci
Wyróżnia się dwa podstawowe rodzaje wirtualizacji sieci:

  • wewnętrzną – wirtualizacja interfejsów sieciowych, przełączników i innych urządzeń sieciowych w celu zapewnienia łączności maszyn wirtualnych (lub kontenerów) w zależności od potrzeby między sobą nawzajem, systemem gospodarza lub siecią zewnętrzną,
  • zewnętrzną – logiczny podział sieci lokalnych na podsieci, niezależnie od fizycznej struktury sieci (VLANy)

Wirtualizacja serwerów
Wykorzystanie różnych rodzajów wirtualizacji (np. wirtualizacji sprzętu lub konteneryzacji i wirtualizacji sieci) do uruchamiania na jednej fizycznej maszynie wielu niezależnych serwerów, mogących posiadać różnych administratorów. Umożliwia to często optymalniejsze wykorzystanie zasobów fizycznych serwerów i ułatwia utrzymanie sprzętu w porównaniu z używaniem oddzielnych fizycznych maszyn dla każdego z serwerów.

Wirtualizacja pulpitu
Wykorzystanie różnych rodzajów wirtualizacji w celu oddzielenia używanego przez użytkownika systemu operacyjnego od sprzętu, przy którym użytkownik pracuje. Najczęściej system operacyjny jest uruchomiony na serwerze, a użytkownicy łączą się z nim przez sieć (zwykle za pomocą cienkich klientów) – dzięki temu użytkownik ma dostępne zawsze to samo środowisko pracy niezależnie od stanowiska, ułatwia to też administrację systemami użytkowników.

W prostszym wariancie może być wykorzystana wirtualizacja sesji – wtedy wielu użytkowników używa jednego systemu operacyjnego uruchomionego na odpowiednio wydajnym serwerze – przykłady: LTSP (projekt społecznościowy), Sun Ray (Oracle, wycofywany).
W bardziej skomplikowanym wariancie używa się wirtualizacji sprzętu – system operacyjny każdego z użytkowników jest uruchomiony w maszynie wirtualnej na serwerze – przykłady: VMware Horizon, Citrix XenDesktop.

Wirtualne sieci prywatne (VPN)
Wykorzystanie wirtualnych szyfrowanych połączeń punkt-punkt (z własną adresacją IP, rotuingiem, itp.) zestawianych przez publiczne łącza, w celu łączenia odległych sieci lokalnych bezpiecznym kanałem bez konieczności dzierżawienia własnych łącz od operatorów (co jest kosztowne) lub w celu zdalnego dostępu do sieci wewnętrznej z dowolnego miejsca w internecie (np. do sieci firmowej z domu pracownika) – przykładowe protokoły: OpenVPN, IKEv2+IPSec, Cisco IPSec.