omawiając stosy sieciowe, w tym ich względne zalety, należy zrozumieć, w jaki sposób stos sieciowy jest zorganizowany, jak działa i co może osiągnąć. Wszystkie stosy sieci są podobne na szerokim poziomie analizy, ale szczegóły ich działania określają niektóre z ich istotnych różnic. Zrozumienie teorii stosów sieciowych pomoże Ci zrozumieć funkcje każdego stosu sieciowego.
model stosu sieciowego OSI
jednym z powszechnych modeli stosów sieciowych jest model otwartego połączenia systemowego (OSI). Model ten składa się z siedmiu warstw , z których każda obsługuje określone zadanie sieciowe. Gdy komputer wysyła dane, informacje pochodzą z programu znajdującego się w górnej warstwie modelu OSI (znanej jako warstwa aplikacji ). Program przekazuje dane do następnej warstwy (warstwy prezentacji), i tak dalej w dół stosu. Każda warstwa przetwarza dane w jakiś sposób. Na dole modelu OSI znajduje się warstwa fizyczna, która odpowiada sprzętowi sieciowemu, takim jak kable i koncentratory. Dane przechodzą przez warstwę fizyczną z komputera wysyłającego do komputera odbierającego. (Ten transfer może być prosty, gdy oba komputery znajdują się w tym samym segmencie sieci, ale może obejmować wiele innych systemów, gdy dwa komputery znajdują się w różnych punktach w Internecie.) W systemie docelowym dane przechodzą przez stos sieciowy, ostatecznie docierając do programu odbiorcy w warstwie aplikacji w tym systemie. Ten system może następnie wysłać odpowiedź w dół stosu sieciowego, a ta odpowiedź przechodzi w górę stosu pierwszego systemu. Rysunek 3.1 ilustruje ten proces.
rysunek 3.1. Stos sieciowy przetwarza dane w taki sposób, że można je przenieść na inny komputer lub “rozpakować” dane otrzymane z innego komputera.
Uwaga
![]() |
chociaż Model OSI jest często używany do ogólnego opisu sieci, użycie OSI jako pełnego stosu protokołów jest rzadkie. Bardziej powszechne stosy sieciowe, takie jak TCP/IP, AppleTalk i NetBEUI, można opisać w kategoriach OSI, czasami z kilkoma zmianami. Na przykład TCP/IP jest często opisywany przy użyciu modelu czterowarstwowego, a nie siedmiowarstwowego modelu OSI. Zasady pozostają jednak takie same. |
każda warstwa modelu OSI komunikuje się bezpośrednio tylko z warstwami bezpośrednio nad i pod nią. (W przypadku warstw aplikacji i fizycznych kończy się łańcuch. Aplikacje komunikują się z użytkownikami lub wykonują zautomatyzowane zadania sieciowe, a warstwa fizyczna łączy oba komputery.) Na dowolnym komputerze muszą być zapisane warstwy stosu sieciowego, aby ułatwić taką komunikację, przy użyciu jasno zdefiniowanych interfejsów. Czasami elementy na danej warstwie muszą być wymienne. Na przykład warstwa aplikacji składa się z aplikacji sieciowych, takich jak przeglądarki internetowe i serwery www. Powinieneś być w stanie zamienić jedną przeglądarkę internetową lub serwer WWW na inną bez powodowania problemów ze stosem sieciowym. (Każda przeglądarka internetowa lub serwer WWW może nie mieć pewnych ważnych funkcji, takich jak zdolność do obsługi szyfrowania Secure Sockets Layer; jednak tak naprawdę nie jest to problem integracji stosu sieciowego.) Podobnie, powinieneś być w stanie wymienić Kable sieciowe i koncentratory w warstwie fizycznej, a nawet wymienić kartę sieciową i jej sterownik, bez wpływu na wyższe warstwy.
każda warstwa stosu sieciowego odpowiada swojemu odpowiednikowi na przeciwległym komputerze. W pewnym sensie stos sieciowy komputera odbiorcy powoduje cofnięcie tego, co zrobił stos sieciowy komputera nadawcy. Ostatecznym celem jest umożliwienie komunikowania się programom warstwy aplikacyjnej. Dlatego każda warstwa powinna odbierać z warstwy poniżej dokładnie dane wysłane przez warstwę jej odpowiednika w systemie wysyłania. W pewnym sensie każda warstwa powinna działać tak, jakby rozmawiała ze swoim odpowiednikiem w innym systemie, a nie z inną warstwą lokalnego stosu protokołów. Z tego powodu stosy sieciowe muszą być bardzo ustandaryzowane na wszystkich komputerach, nawet jeśli na tych komputerach działają radykalnie różne OSs. Na przykład stosy sieciowe tak różnych systemów operacyjnych, jak Linux, Windows XP, MacOS X i BeOS, muszą działać w prawie dokładnie taki sam sposób, nawet jeśli używają całkowicie niezależnych baz kodu.
zawijanie i rozpakowywanie danych
stos sieciowy jest użytecznym sposobem wyobrażenia sobie przepływu danych przez oprogramowanie sieciowe komputera, ale nie opisuje jasno, co dzieje się z danymi po drodze. Można to traktować jako owijanie i rozpakowywanie danych. Każda warstwa stosu sieciowego robi coś z otrzymywanymi danymi. Czynności wykonywane podczas owijania mogą obejmować dzielenie danych na części (zwykle nazywane pakietami lub ramkami , w zależności od poziomu stosu, o którym mowa), Dodawanie informacji do istniejącego fragmentu danych lub modyfikowanie istniejących danych (modyfikacja danych jest jednak rzadka). Rozpakowanie odwraca te działania.
Weźmy na przykład transfer danych za pośrednictwem protokołu File Transfer Protocol (FTP), który wykorzystuje stos sieci TCP/IP, przez sieć Ethernet. Przesyłane dane mogą być plikiem, ale ten pojedynczy plik może być znacznie większy niż pakiety danych lub ramki, które TCP/IP lub Ethernet są przeznaczone do przesyłania. Dlatego plik zostanie podzielony na wiele małych kawałków. Każdy z tych fragmentów będzie miał nagłówki dodane do niego przez różne części stosu sieciowego. (Niektóre warstwy mogą również dodawać stopki.) Nagłówki i stopki rozpoczynają lub kończą dany fragment danych i zawierają informacje, które pomagają systemowi analizować i dostarczać resztę pakietu danych. Wyidealizowany wynik tego owijania jest pokazany na rysunku 3.2. W rzeczywistości sprawy mogą stać się bardziej złożone, ponieważ pakiety dostarczane przez jedną warstwę stosu sieciowego mogą być jeszcze dalej dzielone przez kolejne warstwy stosu. Na przykład sterowniki Ethernet mogą rozbić pakiet IP na dwie ramki Ethernet. Routery mogą robić to samo. Gdy tak się stanie, nagłówki IP, TCP i FTP z rysunku 3.2 są tylko częścią ładunku danych; nie są duplikowane w obu pakietach Ethernet i mogą skończyć się w każdym pakiecie Ethernet. Wszystko to jest jednak przezroczyste, ponieważ każda warstwa stosu sieciowego na komputerze odbiorcy składa ponownie pakiety lub ramki utworzone przez jego odpowiednika na komputerze wysyłającym, nawet jeśli te pakiety zostały podzielone po drodze.
rysunek 3.2. Stos sieciowy dzieli plik Na części i owija każdy fragment danych, które pomagają komputerowi odbiorcy ponownie złożyć oryginalny plik.
szczegóły rysunku 3.2 różnią się w zależności od stosu sieci, a nawet ze szczegółami pojedynczego stosu. Na przykład nagłówek FTP na rysunku 3.2 byłby nagłówkiem Hypertext Transfer Protocol (HTTP) do przesyłania danych przeglądarki internetowej. Jeśli komputery używały sprzętu sieciowego innego niż Ethernet, nagłówek i stopka Ethernetu zostaną zastąpione nagłówkami i stopkami dla danego używanego sprzętu sieciowego. W rzeczywistości router, który przesyła dane między typami sieci, w ramach swojego przetwarzania oddzieliłby te nagłówki i stopki i zastąpił je odpowiednimi substytutami. Przetwarzanie To może wystąpić kilka razy podczas podróży pakietu przez Internet, ale celem jest dostarczenie oryginalnych danych w oryginalnej formie do miejsca docelowego.
nagłówki i stopki zawierają krytyczne informacje adresowe, takie jak adresy IP nadawcy i odbiorcy, numery portów programów wyjściowych i docelowych, numery identyfikujące miejsce pakietu w sekwencji i tak dalej. Komputery interweniujące wykorzystują te informacje do kierowania poszczególnych pakietów, a odbiorca wykorzystuje je do kierowania pakietu do odpowiedniego programu. Ten program może następnie użyć adresu nadawcy i numeru portu, aby skierować odpowiedź do tego systemu i programu.
rola stosu TCP/IP
TCP/IP jest najpopularniejszym stosem sieciowym. Internet jest zbudowany na TCP / IP, a stos obsługuje najpopularniejsze protokoły sieciowe, w tym większość omówionych w tej książce. W większości przypadków nie można po prostu odłączyć aplikacji sieciowej od jednego stosu i powiązać jej z innym stosem, chociaż kilka aplikacji obsługuje wiele stosów sieciowych. Jednym z powodów popularności TCP / IP jest jego elastyczność. TCP / IP jest stosem sieciowym, co oznacza, że komputer z wieloma interfejsami sieciowymi może częściowo przetwarzać pakiety TCP/IP i przekazywać te pakiety z jednej sieci do drugiej. Routing TCP / IP jest elastyczny i umożliwia routing w oparciu o zdecentralizowane mapy sieci; nie ma potrzeby scentralizowanej bazy danych do routingu sieciowego. Ponadto TCP / IP obsługuje duży adres sieciowy (32 bity, z 128-bitowymi adresami pochodzącymi z IPv6, jak opisano w rozdziale 2) i hierarchiczną strukturę nazewnictwa. Wszystkie te cechy sprawiają, że TCP / IP doskonale nadaje się do działania jako stos sieciowy dla globalnej sieci.
na pojedynczym komputerze z Linuksem TCP/IP jest dobrym wyborem ze względu na jego wsparcie dla tak wielu ważnych protokołów sieciowych. Chociaż wiele platform nie-Unixowych opracowało własne stosy protokołów w latach 80., Systemy Unixowe pomogły pionierowi TCP / IP, a większość Unixowych protokołów sieciowych używa TCP / IP. Linux odziedziczył te protokoły, więc sieć tylko dla Linuksa lub Linux/Unix działa całkiem dobrze używając tylko TCP / IP; są szanse, że nie będziesz musiał używać żadnego innego stosu sieciowego w takim środowisku.
typowe protokoły obsługiwane przez TCP/IP to HTTP, FTP, Simple Mail Transfer Protocol (SMTP), sieciowy system plików (NFS), Telnet, Secure Shell (SSH), Network News Transfer Protocol (NNTP), X Window System i wiele innych. Ze względu na popularność protokołu TCP/IP, narzędzia, które zostały pierwotnie napisane dla innych stosów sieciowych, mogą również często korzystać z protokołu TCP / IP. W szczególności protokoły udostępniania plików Server Message Block (SMB)/Common Internet File System (CIFS) używane przez System Windows mogą łączyć się z TCP/IP za pośrednictwem sieciowego podstawowego systemu wejścia/Wyjścia (NetBIOS), zamiast wiązać się z NetBIOS Extended User Interface (NetBEUI), który jest natywnym stosem protokołów DOS i Windows. (Wszystkie wersje systemu Windows od Windows 95 również obsługują protokół TCP / IP.) Podobnie, protokoły udostępniania plików Apple działają teraz przez TCP / IP, a także przez AppleTalk.
chociaż jest bardzo popularny i może wypełniać wiele zadań sieciowych, TCP / IP nie jest całkowicie odpowiedni dla wszystkich ról sieciowych. Na przykład, Twoja sieć może zawierać niektóre systemy, które nadal używają starego OSs, które nie w pełni obsługują TCP / IP. Stary Macintosh może na przykład obsługiwać udostępnianie plików tylko przez AppleTalk, lub możesz mieć systemy DOS lub Windows skonfigurowane do korzystania z IPX lub NetBEUI. W takich sytuacjach wsparcie Linuksa dla alternatywnych stosów sieci może być wielkim dobrodziejstwem.
Leave a Reply