Sieci i Systemy Teleinformatyczne (SIST) 4. Podstawy architektury sieci logicznej Sieci komputerowe, łączące ró\norodne systemy operacyjne i platformy sprzętowe przy u\yciu ró\nych mediów transmisyjnych, musiały zostać w jakiś sposób znormalizowane. Nie było to jednak łatwe. Do roku 1978 nie istniał \aden standard określający sposób komunikacji komputerowej, w związku z czym powstawały ró\ne modele zamknięte, wśród których były między innymi: " Model SNA (System Network Architecture) opracowany przez firmę IBM. Architektura ta słu\yła głównie do komunikacji między produktami tej firmy, a w szczególności między du\ymi i średnimi systemami komputerowymi. " Model DNA (Digital Network Architecture) opracowany przez firmę DEC. W ramach tej architektury zdefiniowany został zestaw protokołów oraz formaty i mechanizmy wymiany komunikatów w sieci. Modele te miały jedną, podstawową wadę - nie mogły współpracować między sobą, były ze sobą niekompatybilne. O ile pozwalały na łączenie systemów jednego producenta, o tyle połączenie ró\nych systemów było bardzo ucią\liwe, często wręcz niemo\liwe (nie były jeszcze znane urządzenia sieciowe zwane bramkami (gateway). W roku 1978 zdecydowano się na opracowanie otwartego standardu, który umo\liwiałby komunikację zgodnych z nim systemów komputerowych. Często wygodnym podejściem do problemu jest rozbicie go na mniejsze, ju\ łatwiejsze do rozwiązania. Ta sprawdzona strategia znalazła tak\e zastosowanie w przypadku sieci komputerowych (logicznych), a rezultatem takiego podejścia jest model OSI, który to skrót oznacza Open Systems Interconnection, czyli połączenie systemów otwartych. Model ten jest normą komunikacji komputerowej, określoną przez Międzynarodową Organizację Normalizacyjną ISO. Problem komunikacji komputerowej został rozbity na 7 warstw, łączących w sobie logicznie powiązane funkcje. Ka\da ze wspomnianych warstw funkcjonuje jako moduł. Teoretycznie istnieje mo\liwość podmienienia dowolnej warstwy, nie wpływając na działanie pozostałych. Ostatecznie, model OSI (Open Systems Interconnection) składa się z następujących siedmiu (7) warstw: Warstwa fizyczna (physical layer) - umo\liwia przesyłanie pojedynczych bitów między połączonymi stacjami z wykorzystaniem łącza. Usługi tej warstwy polegają na przesłaniu informacji reprezentowanej przez ciąg bitów z zachowaniem ich oryginalnej sekwencji oraz wykrywaniem nieprawidłowości występujących w trakcie ich transmisji przez odbiorcę informacji. Warstwa ta odpowiedzialna jest tak\e za wykrywanie stanów specjalnych łącza. Na poziomie tej warstwy zdefiniowane są równie\ cechy fizyczne interfejsu sieciowego: cechy mechaniczne, elektryczne, złącza, poziomy napięć oraz inne aspekty elektryczne. Warstwa fizyczna przesyła dane dla wszystkich wy\szych warstw modelu. Warstwa łącza danych (data link layer) - na poziomie tym zdefiniowane są reguły przesyłania i otrzymywania informacji. Warstwa ta zapewnia prawidłową transmisję między węzłami sieci oraz umo\liwia wykrywanie oraz korekcję błędów powstałych na warstwie ni\szej, czyli w warstwie fizycznej. W przypadku połączenia wielu węzłów sieci z wykorzystaniem jednego nośnika, do obowiązków warstwy łącza danych nale\y prawidłowe wykrywanie stanu łącza oraz organizacja bezkolizyjnego dostępu do medium. W przeciwieństwie do warstwy fizycznej przesyłającej bity informacji, warstwa łącza danych przesyła ramki o określonej strukturze i jawnym określeniu początku i końca porcji informacji. Istnieje szeroka gama protokołów wykorzystywanych przez warstwę łącza, a wybór konkretnego z nich uzale\niony jest od jakości łącza i jego zastosowania. Na poziomie tej warstwy pracują mosty sieciowe (bridge). Warstwa sieciowa (network layer)- warstwa ta ma za zadanie umo\liwienie utworzenia drogi między stacją nadawczą, a odbiorczą oraz wybór najkorzystniejszej z mo\liwych dróg transmisji (routing) i uniknięcie przecią\enia sieci. Na poziomie warstwy sieciowej pracują routery. Warstwa ta musi pozwalać na fragmentację ramek, w przypadku gdy wykorzystywana sieć posiada mniejszą maksymalną wartość MTU (Maximum Transmission Unit). Sfragmentowane ramki muszą zostać poprawnie zło\one po dotarciu do stacji docelowej. Warstwa sieciowa odpowiada tak\e za rozwijanie nazwy komputera (z warstwy sieciowej) do adresu NIC (Network Interface Card) wykorzystywanego w warstwie łącza danych. Warstwa sieciowa komputera nadającego musi stworzyć swój nagłówek w taki sposób, by inne systemy wykorzystywane w sieci mogły rozpoznać ją w prawidłowy sposób, co umo\liwia przesłanie informacji do stacji docelowej. Dzięki tej warstwie wy\sze warstwy nie muszą posiadać wiedzy na temat wykorzystywanych technologii przesyłania danych oraz innych technologii wykorzystywanych przy łączeniu poszczególnych stacji. Nawiązywanie, utrzymywanie oraz przerywanie połączeń z innymi systemami nale\y do zadań warstwy sieciowej. Warstwa transportowa (transport layer) - obowiązkiem warstwy tej jest zapewnienie transmisji zgodnie z wymaganymi charakterystykami, do których zalicza się m.in.: przepustowość, stopę błędów, opóznienia transmisji. Warstwa transportowa powinna realizować transmisję w sposób najbardziej efektywny, czyli spełniać wymagane warunki techniczne w sposób najbardziej ekonomiczny (uzgodniony poziom jakości). W realizacji swych zadań warstwa ta wykorzystuje usługi oferowane przez wcześniej omówione warstwy i ukrywa je przed warstwami wy\szymi oferując im ustalony interfejs, przez co wy\sze warstwy nie muszą wnikać w strukturę konkretnej sieci. Warstwa ta ponadto gwarantuje dostarczenie danych do odbiorcy oraz niezawodność transmisji o ile nie są one realizowane przez ni\sze warstwy. Warstwa ta oferuje usługi połączeniowe, a więc zestawiane jest łącze, którym wędrują pakiety danych docierające do odbiorcy sekwencyjnie, lub bezpołączeniowe (łącze nie jest zestawiane). Typowo wykorzystywanymi protokołami pracującymi w tej warstwie są: TCP, UDP, SPC lub NetBEUl. Warstwa sesji (session layer) - rolą tej warstwy jest rozszerzenie warstwy transportowej o środki umo\liwiające synchronizację sieciowego dialogu oraz zarządzanie wymianą danych między aplikacjami. W warstwie tej mogą być tworzone punkty synchronizacji, które w przypadku wystąpienia błędów transmisji (na przykład w przypadku awarii łącza) umo\liwiają cofnięcie dialogu i kontynuowanie synchronicznej transmisji. Głównym zadaniem tej warstwy jest sprawdzanie, kiedy u\ytkownik mo\e wysłać lub odebrać dane, zale\nie od tego, czy dane mo\na wysyłać i odbierać jednocześnie, czy na przemian. Warstwa prezentacji (presentation layer)- warstwa ta ma za zadanie przekształcenie ró\norodnych sposobów reprezentacji danych, jakie spotykane są w ró\nych systemach operacyjnych na jednorodną formę sieciową, w taki sposób by wymiana danych mo\liwa była między wszystkimi istniejącymi systemami implementującymi model OSI. Warto podkreślić, \e przekształcenie to dotyczy jedynie sposobu reprezentacji informacji, nie ingeruje w jej treść. W warstwie tej dokonywane jest tak\e szyfrowanie danych (translacja kodów znaków) oraz ich konwersja i kompresja. Warstwa aplikacji (application layer) - jest to najwy\sza warstwa omawianego modelu. Oferuje ona całość usług komunikacyjnych procesom u\ytkowników. Udostępniane w warstwie tej funkcje to: ustalenie protokołu transmisji, nawiązywanie i zawieszanie połączenia, synchronizacja transmisji, autentykacja połączeń, monitorowanie i zarządzanie połączonymi systemami oraz u\ywanymi przez zasobami. Prace nad modelem OSI wcią\ trwają. Dla pewnych warstw opracowano ju\ specjalne standardy dopasowane do wymogów modelu, natomiast standardy dla pozostałych warstw są dopiero formułowane. Model OSI miał i wcią\ ma wielki wpływ na zagadnienia związane z przesyłaniem danych - szczególnie w kontekście sieci lokalnych. Wiele standardów stosowanych w sieciach lokalnych pochodzi właśnie z modelu OSI. Na przykład dwie pierwsze warstwy modelu (fizyczna i łącza danych) bardzo wpłynęły na opracowanie i zdefiniowanie standardów sieci lokalnych. Największą zasługę ma tu Projekt 802, który skoncentrował się na tych właśnie warstwach modelu, podczas gdy funkcje wy\szych warstw modelu OSI pozostawiono do opracowania autorom implementacji sieci. IEEE Projekt 802 W lutym roku 1980 organizacja IEEE powołała komitet standardów, którego zadaniem miały być prace w zakresie modelu odniesienia OSI. Projekt 802 wprowadził jedną (zasadniczą) zmianę: warstwę łącza danych podzielono na dwie podgrupy. Ni\sza podwarstwa nosi nazwę MAC (Media Access Control) i zapewnia wspólny dostęp do fizycznej warstwy sieci. Wy\sza warstwa nazywa się LLC (Logical Link Control) i zapewnia usługi dotyczące łącz danych dla wy\szych poziomów modelu OSI. Komitet 802 opublikował serię dokumentów opracowanych przez jego grupy robocze, w tym m.in.: 802.1 - przegląd prac projektu definiującego model odniesienia dla sieci lokalnej. Dotyczy równie\ takich zagadnień, jak formaty, zarządzanie siecią, oraz łączenie sieci. 802.2 - opisuje usługi warstwy LLC oraz pojęcia pierwotne u\ywane we wszystkich specyfikacjach sieci opracowanych przez IEEE. 802.3 - definiuje standardy dla warstwy MAC i fizycznej w sieciach magistralowych działających zgodnie z algorytmem CSMA/CD. 802.4 - definiuje standardy dla warstwy MAC i fizycznej w sieciach magistralowych z przesyłaniem znaczników. 802.5 - definiuje standardy dla warstwy MAC i fizycznej w sieciach pierścieniowych z przesyłaniem znaczników w paśmie podstawowym. 802.7 - dokument opracowany przez grupę doradczą, dotyczący sieci szerokopasmowych. Zawiera materiały informacyjne dla innych grup, dotyczące transmisji szerokopasmowych. 502.5 - dokument opracowany przez grupę doradczą, dotyczący sieci światłowo- dowych, zawierający analizę wpływu technologii światłowodowych na pozostałe grupy tematyczne. Wśród wymienionych wy\ej dokumentów, dwa mają zasadnicze znaczenie dla dzisiejszych sieci lokalnych: 802.3 i 802.5. Znaczenie grupy 802.3 wynika z tego, \e opracowane prze nią dokumenty wyjaśniają zasady podstawowej metody dostępu CSMA/CD (omówionej dalej) do sieci. Grupa ta sformułowała równie\ standard dla sieci pracujących w paśmie podstawowym. Specyfikacja opracowana przez grupę 802.3 bardzo przypomina architekturę Ethemet, jedno z podstawowych rozwiązań stosowanych we współczesnych sieciach lokalnych. Grupa 802.5 jest równie\ wa\na, a to na skutek opublikowanej przez nią definicji sposobu przesyłania znaczników w sieci o topologii pierścieniowej. Dziś u\ywa się tej metody w architekturze Token Ring. Podsumowując, najczęściej obecnie stosowane sieci Ethemet i Token Ring - mają swój początek w Projekcie 802. Metody dostępu Sieć lokalną składającą się z wielu stacji roboczych mo\na zestawiać na wiele ró\nych sposobów, stosując ró\ne topologie. Ka\da topologia mo\e mieć odmienny układ okablowania i fizycznego ustawienia stacji i zawsze powstaje pytanie, w jaki sposób stacje robocze mają uzyskiwać dostęp do okablowania w celu wysyłania i odbierania informacji. Węzły sieci uzyskują dostęp do sieci lokalnej korzystając z metod dostępu do nośnika (ang. Media Access Method) - z góry zdefiniowanego zestawu reguł lub protokołów. Koncepcję metod dostępu łatwiej wyjaśnić stosując analogię do ruchu na autostradzie. Jeśli przyjmie się, \e okablowanie odpowiada autostradzie, to serwery i stacje robocze mo\na porównać do startowych i docelowych punktów podró\y. Stacja robocza komunikuje się z serwerem wysyłając do niego \ądanie, które dociera do serwera podró\ując przez kabel (autostradę). Wje\d\ając na autostradę i opuszczając ją nale\y przestrzegać pewnych reguł: wjazdy słu\ą do przyspieszenia i dopasowania się do szybkiego ruchu na autostradzie, natomiast zjazdy pozwalają zwolnić po opuszczeniu głównego ciągu szybkiego ruchu na autostradzie. Metody dostępu do nośnika określają sposoby, na jakie stacje robocze wprowadzają i odbierają dane z okablowania. Największą popularność zdobyły dwie: CSMA/CD i Przekazywanie znacznika. Metoda CSMA/CD CSMA/CD - to skrót od angielskiego terminu Carrier Sense Multiple Access with Collision Detection (dostęp wielokrotny z wykrywaniem nośnej i detekcją kolizji). Zasadnicza idea polega na tym, \e stacje robocze (karty sieciowe) przysłuchują" się ruchowi w sieci i transmitują dane tylko wtedy, kiedy wykryją ciszę, rywalizując o dostęp do sieci z innymi stacjami. Metodę CSMA/CD najprościej opisać przez analogię do staromodnego telefonu towarzyskiego. Dopóki dostęp do linii komunikacyjnych był utrudniony, ludzie musieli korzystać ze wspólnych linii. Kiedy ktoś chciał gdzieś zadzwonić, musiał najpierw podnieść słuchawkę i sprawdzić, czy ktoś inny właśnie nie rozmawia. Oczywiście mo\na podnieść słuchawkę i po prostu zacząć mówić, ale głosy na linii będą ze sobą kolidowały i rozmowa stanie się kompletnie niezrozumiała. Przy zało\eniu przychylnego nastawienia wszystkich u\ytkowników wspólnej linii mo\na ustalić pewne reguły (protokoły), opisujące sposoby postępowania podczas takich wypadków. Podobnie działa metoda CSMA/CD. Po ustaleniu protokołów węzły sieci mogą bez zakłóceń wysłać swoje dane. Metodę tą po raz pierwszy wdro\ono w sieci rozległej ALOHA na Uniwersytecie Hawajskim w latach sześćdziesiątych. Metoda Przekazywanie znacznika Przekazywanie znacznika - to deterministyczna metoda dostępu, gdy\ węzeł (karta sieciowa) mo\e wysyłać informacje do sieci tylko wtedy, kiedy jest w posiadaniu znacznika. Znacznik podró\uje przez sieć zatrzymując się przy ka\dym węzle w celu sprawdzenia, czy dany węzeł nie ma czegoś do wysłania. Jeśli nie ma nic do wysłania, znacznik przechodzi do następnego węzła i sprawdza jego stan. Ten proces jest kontynuowany, a\ znacznik natrafi na stację, która chce coś wysłać do sieci. Powiedzmy, \e węzeł l musi porozumieć się z węzłem 3. Kiedy znacznik dotrze do węzła l i sprawdzi jego stan, wtedy ten węzeł zaznaczy znacznik jako zajęty, dołączy do niego dane i informacje o adresie docelowym i wyśle go na powrót do sieci. Znacznik podró\uje przez sieć i zatrzymuje się przy miejscu przeznaczenia (węzeł 3). Następnie znacznik powraca do węzła początkowego (l), który usuwa znacznik zajętości i wysyła aktywny znacznik z powrotem do sieci, w celu kontynuowania sprawdzania stanu innych węzłów Metoda Odpytywanie Odpytywanie (ang. polling) stosuje się głównie w du\ych systemach komputerowych i sieciach minikomputerowych. Protokoły wykorzystywane podczas odpytywania wymagają u\ycia inteligentnego" urządzenia centralnego. To urządzenie komunikuje się w określonej kolejności oddzielnie z ka\dą stacją roboczą. Jeśli jakaś stacja chce przekazać \ądanie do serwera plików, to zostanie ono wysłane do sieci przy najbli\szym cyklu odpytywania tej stacji. Jeśli stacja nie ma \adnych \ądań w stosunku do serwera, to urządzenie centralne przechodzi do odpytywania następnej stacji. Stacja uzyskuje dostęp do sieci tylko wtedy, kiedy jest odpytywana. Ta metoda dostępu nie jest dziś tak popularna, jak CSMA/CD czy przekazywanie znacznika, ale jest nadal często wykorzystywana w sieciach du\ych systemów komputerowych i pracujących z komputerem centralnym.