Historia i przegląd możliwości TCP.doc

(211 KB) Pobierz
Historia i przegląd możliwości TCP/IP

Historia i przegląd możliwości TCP/IP

 

 

TCP/IP jest zestawem protokołów sieciowych funkcjonujących w górnych warstwach sieci. To, co obecnie można nazwać

standardem TCP/IP, rozwijano i udoskonalano przez ponad 20 lat. Dziś TCP/IP nie jest własnością żadnej firmy software'owej ani

instytucji normalizacyjnej. Departament Obrony USA sprawuje coś w rodzaju patronatu nad TCP/IP, starając się o zachowanie

pewnego minimum porządku i spójności standardu.

 

 

Historia TCP/IP

 

 

Wszystko zaczęło się od projektu amerykańskiego ministerstwa obrony - Pentagonu. Zadanie postawione przed informatykami

firmy Legende było proste i zarazem bardzo złożone. Wojsko potrzebowało sieci komputerowej zdolnej do przetrwania wojny

atomowej, potrafiącej automatycznie rozpoznać uszkodzone łącza i wybrać zastępczą drogę dla przesyłanych danych. Zniszczenie

pojedynczych węzłów sieci nie mogłyby doprowadzić do unieruchomienia całego systemu.

 

W wyniku prac nad tym projektem powstała sieć ARPANET, którą można uznać za kamień węgielny późniejszego Internetu. Jej

nazwa wywodzi się od nazwy Instytutu Rozwoju Zaawansowanych Technologii (Advanced Research Project Agency).

 

Agencja ARPA uległa w 1971 roku przekształceniom organizacyjnym, w wyniku których jej nazwę zmieniono na DARPA. Sieć

ARPANET pozostała pod kuratelą tej organizacji, która skupiła się na badaniach nad technologią komutacji pakietów i rozwojem

mechanizmów transportowych wykorzystujących między innymi fale radiowe i satelity telekomunikacyjne.

 

W roku 1975 kontrolę nad siecią ARPANET przejęła Agencja Komunikacyjna Departamentu Obrony USA nazywana w skrócie

DCA. W tym czasie opracowano nowy, udoskonalony zestaw protokołów sieciowych. Zestaw ten stał się trzonem protokołu

TCP/IP, który w 1978 roku był już na tyle kompletny, że mógł być zaprezentowany światu. Powstanie TCP/IP było przełomem

umożliwiającym budowę dużej liczby nowych sieci połączonych z ARPANET-em.

 

W roku 1982 Departament Obrony utworzył sieć DDN, zaprojektowaną jako coś w rodzaju obszaru centralnego dla

rozproszonych sieci tworzących Internet. W rok później Departament Obrony wydał oświadczenie akceptujące TCP/IP w roli

protokołu sieciowego, który ma być stosowany przez wszystkie węzły łączące się z Internetem. Było to początkiem lawinowego

rozwoju sieci TCP/IP, ponieważ powstał standard pozwalający na komunikację pomiędzy maszynami różnych typów. TCP/IP

rozwijał się i nadal się rozwija w ośrodkach naukowych, uczelniach, organizacjach rządowych oraz wielu innych miejscach, a

zainteresowanie tym protokołem wciąż rośnie.

 

Powstanie w latach osiemdziesiątych wielu tysięcy sieci lokalnych (LAN) również przyczyniło się do wzrostu znaczenia TCP/IP.

Sieć lokalną można bardzo łatwo zbudować, a w miarę rosnących wymagań dowolnie rozbudowywać. Wielkie znaczenie dla

ekspansji TCP/IP miało masowe wprowadzenie technologii sieciowej w sektorze biznesu i finansów. TCP/IP wydaje się

"naturalnym" środkiem umożliwiającym przekazywanie danych pomiędzy firmami używającymi różnorodnego sprzętu

produkowanego przez setki lub tysiące różnych firm. Do końca lat osiemdziesiątych TCP/IP uzyskało status siły napędowej

rozwoju sieci na całym świecie, wielkość sieci zwiększała się bardzo szybko, liczba węzłów po niecałych trzydziestu latach urosła z

początkowych czterech do ponad trzydziestu milionów.

 

 

Tak komunikują się komputery

 

 

 

Aby zrozumieć, w jaki sposób przesyłane są dane np. Z serwera WWW do przeglądarki, konieczne jest przyswojenie odrobiny

teorii. W tym przypadku informacje dostarczone są z serwera WWW do komputera użytkownika za pośrednictwem karty

sieciowej lub modemu. Potrzebny jest też odpowiedni kanał komunikacyjny, którym dane transmitowane są pomiędzy obiema

maszynami. Strukturę transportu danych opisuje warstwowy model OSI. Chodzi tu o teoretyczny model, za pomocą którego

możliwe jest opisanie komunikacji sieciowej w sposób niezależny od stosowanego sprzętu i oprogramowania. "Podręcznikowa

sieć" złożona jest z siedmiu tzw. warstw. Poszczególnym warstwom odpowiadają określone elementy sprzętowe i programowe

biorące udział w procesie wymiany informacji.

 

Najniższa warstwa , nazwana fizyczną odpowiedzialna jest za przesyłanie bitów. Odpowiada jej karta sieciowa lub

modem. Na tym poziomie realizowana jest fizyczna transmisja danych bez "kontroli ruchu" i bez uwzględnienia rodzaju

informacji. Ciągłość transmisji nie jest zabezpieczona - jeśli medium zostanie zablokowane lub uszkodzone, komunikacja

zostanie przerwana.

 

Warstwa fizyczna porozumiewa się z warstwą łącza. Ta warstwa steruje fizyczną wymianą bitów. W większości

przypadków obie warstwy połączone są w jedną całość tworząc w ten sposób kartę sieciową.

 

Następna z kolei warstwa sieciowa (network layer) zamienia ciąg bitów w kanał komunikacyjny. Warstwa sieciowa dba o to,

aby informacje przepływały między odpowiednimi komputerami. Dane wymieniane są w postaci pakietów wysyłanych od

nadawcy do odbiorcy, nie jest jednak sprawdzana ich zawartość.

 

Kolejna warstwa transportowa (transport layer) przesyła wiadomości kanałem stworzonym przez warstwę sieciową. Dopiero ta

warstwa troszczy się o bezpieczeństwo i pewność wymiany danych. Wszystkie warstwy leżące poniżej nie przykładają żadnej

wagi do bezpieczeństwa skupiając się na zapewnieniu maksymalnej szybkości.

 

Na warstwie transportowej bazuje warstwa sesji (session layer). W tym momencie kończy się czysta wymiana bajtów, a

znaczenia nabiera rodzaj informacji. Dopiero ta warstwa pozwala realizować usługi takie, jak na przykład pobieranie z serwera.

 

Przedostatnia warstwa nosi nazwę warstwy prezentacji (presentation layer). Na tym poziomie dane dostarczane z niższych

warstw przetwarzane są w taki sposób, aby mogły być odebrane przez aplikację użytkownika. Tutaj dokonywana jest na przykład

konwersja jeśli komputer-klient używa innego formatu liczb niż komputer serwer.

 

Ostatnia warstwa aplikacji (application layer) jest po prostu programem komunikacyjnym, a więc np. przeglądarką WWW.

 

W większości przypadków również warstwy prezentacji i sesji łączone są w jedną całość. Model OSI nie jest stricte projektowym

zaleceniem precyzyjnie określającym sposób realizacji połączenia sieciowego.

 

 

Elementy TCP/IP

 

 

 

ELEMENTY WARSTWY APLIKACYJNEJ

 

Architektura TCP/IP w warstwie aplikacyjnej jest niezależna od platformy sprzętowej i wykorzystuje technologię klient/serwer.

Klient inicjuje (wywołuje) aplikacje, a serwer odpowiada na żądanie klientów. Realizacją tej koncepcji są podstawowe aplikacje

TCP/IP : TELNET (aplikacja umożliwiająca pracę zdalną), FTP (aplikacja umożliwiająca transfer plików) oraz SMTP

(aplikacja obsługująca pocztę elektroniczną). Na poniższym rysunku można zobaczyć TELNET, FTP, SMTP oraz inne usługi

dostępne w warstwie aplikacyjnej sieci.

 

 

 

 

 

 

 

Innym ważnym elementem warstwy aplikacyjnej jest protokół X udostępniający rozproszone środowisko okienkowe. Praca w

rozproszonym środowisku graficznym jest możliwa dzięki zastosowaniu technologii klient/serwer. W skład protokołu X wchodzą

między innymi:

 

 

.Serwer X ( X Server) - Program udostępniający usługi w środowisku graficznym na żądanie aplikacji typu klient X.

 

.Klient X (X Client) - Program korzystający z usług udostępnianych przez program typu serwer X (np. emulacja terminala

graficznego).

 

.Menedżer okien X (X Window Manager) - Program umożliwiający zmianę rozmiaru, przesuwanie i modyfikacje okien

wyświetlanych na ekranie.

 

.Biblioteka X (X Library) - Jest to biblioteka procedur w języku C i ułatwiających tworzenie aplikacji X Window. Jedną z funkcji

XLIB jest przetwarzanie żądań klienta X na żądania protokołu X.

 

.Narzędzia X (X Toolkits) - Jest to biblioteka programów ułatwiająca tworzenie elementów interfejsu użytkownika (przyciski,

paski menu, itp.).

 

.Widget - Jest to okno X, powiązane z nim dane oraz procedury służące do wykonywania operacji na tych danych.

 

 

 

TCP/IP zawiera protokół zabezpieczający nazwany Kerberos. Działanie tego protokołu opiera się na współpracy serwera

kontrolującego z serwerem wydającym "bilety dostępu". Przykładowo po wysłaniu przez klienta żądania wydania biletu, specjalny

serwer sprawdza "tożsamość" klienta i po pozytywnym przejściu weryfikacji wydaje "bilet", który może być przedstawiony

serwerowi kontrolującemu, który udostępnia określone usługi sieciowe.

 

Kolejną usługą jest CMIS (Common Managment Information Service). Jest to usługa udostępniana przez protokół zarządzania

informacjami CMIP. CMIP jest faktycznie metodą zarządzania siecią modelu OSI. Funkcje protokołu CMIP zaimplementowane w

TCP/IP określa się jeszcze innym skrótem - CMOT. Przy tej implementacji jako mechanizm transportowy używany jest protokół

TCP. Definicja CMIP jest napisana w języku ASN.1 (notacja składni abstrakcyjnej) używanym do ścisłego i jednoznacznego

definiowania typów danych.

 

W skład TCP/IP wchodzi także protokół zarządzania siecią SNMP, który wykorzystuje protokół UDP jako mechanizm

transportowy. SNMP ma własną terminologię, w której zamiast pojęć "klient" i "serwer" używa się terminów: "agent" i

"menedżer". Agentem nazywa się program określający status węzła sieci. Aplikacja (menedżer) komunikuje się z agentami za

pomocą komunikatów przesyłanych w sieci. Całość informacji o węźle jest przechowywana w bazie danych MIB.

 

Specjalne programy pozwalające aplikacjom wywoływać procedurę uruchamiającą serwer nazywają się RPC. Serwer zwraca

wówczas odpowiednie zmienne i kody do adresata. W skrócie można powiedzieć, że RPC jest po prostu mechanizmem

umożliwiającym działanie sieci w modelu klient/serwer.

 

NFS jest to zestaw protokołów opracowanych przez firmę SUN MicroSystems. Faktycznie jest to rozproszony system zarządzania

plikami, w którym każdy komputer korzystający z NFS ma nieograniczony dostęp do katalogów wszystkich innych maszyn w

systemie NFS.

 

TFTP jest bardzo prostym protokołem przesyłania plików wykorzystującym UDP jako mechanizm transportowy. Z tego względu

TFTP nie gwarantuje takiego stopnia bezpieczeństwa i odporności na zakłócenia, jak FTP.

 

Ostatnim, choć bardzo ważnym elementem TCP/IP jest system adresowania DNS (Domain Name Service). Jest to rozproszona

baza danych zawierająca adresy IP i ich aliasy (czyli przypisane im nazwy). DNS stworzono po to, aby rozwiązać problem

zarządzania plikami identyfikacyjnymi (host files) na każdym z komputerów w sieci TCP/IP. Plik identyfikacyjny zawiera adresy

IP oraz aliasy i musi być aktualizowany za każdym razem, gdy dodaje się nowy podsystem lub węzeł sieci. DNS eliminuje potrzebę

nieustannego uaktualniania plików identyfikacyjnych na każdym z komputerów w sieci.

 

 

ELEMENTY WARSTWY TRANSPORTOWEJ

 

 

TCP/IP zawiera dwa mechanizmy transportowe. Są to nimi protokoły TCP oraz UDP. TCP jest zorientowanym połączeniowo

bezpiecznym protokołem, przeprowadzającym automatyczne retransmisje w przypadku wykrycia błędów. Steruje on danymi

otrzymanymi z góry, z warstwy aplikacyjnej.

 

UDP jest protokołem typu bezpołączeniowego, to znaczy nie sprawdzającym poprawności danych i nie przeprowadzającym

retransmisji. UDP jest używany w specyficznych warunkach przez niektóre aplikacje sieciowe. Aplikacje korzystające z UDP

muszą mieć własne mechanizmy weryfikacji i retransmisji danych.

 

 

PROTOKOŁY WARSTWY SIECIOWEJ

 

 

W warstwie sieciowej funkcjonuje protokół IP transportujący DATAGRAMY w sieci. Datagram składa się z danych

przekazywanych przez warstwę aplikacyjną oraz nagłówka i bloku końcowego dodanego w warstwie transportowej. Protokół IP

korzysta z 32-bitowych adresów identyfikujących sieci i węzły. IP opracowano w tym celu, aby umożliwić sterowanie

ROUTERAMI (urządzeniami wyznaczającymi trasę danych w sieci) i innymi urządzeniami sieciowymi produkowanymi przez

różnych producentów.

 

Protokół ICMP służy do wysyłania komunikatów określających status węzłów sieci. Komunikat taki może być powiadomieniem o

błędzie lub po prostu zawierać informacje o bieżącym stanie węzła. ICMP umożliwia wydawanie poleceń dla urządzeń sieciowych,

które "odpowiadają" zwracając informacje o swoim stanie. W tym celu wykorzystywany jest specjalny program PING. Protokoły

ICMP i IP są implementowane razem, ponieważ muszą ściśle współdziałać udostępniając mechanizmy wyznaczania trasy i

uzyskiwania informacji.

 

Protokół ARP zwraca adres fizyczny (zwany też adresem twardym) dowolnego węzła o znanym adresie IP. ARP kojarzy adres

IP z odpowiadającym mu adresem fizycznym, np. adresem Ethernetu. Logiczne połączenie pomiędzy tymi dwoma adresami

określa się skrótem BIND.

 

W sieciach zgodnych protokołowo z TCP/IP zawirający węzły Ethernet, wyróżnia się fizyczny adres sieciowy i generowany

programowo adres protokołu IP. Fizyczny adres Ethernet składa się z kodu zapisanego na karcie sieciowej. Zadaniem ARP jest

ustalenie, który fizyczny adres sieciowy odpowiada adresowi IP w pakiecie. Gdy węzeł wysyła pakiet IP, konieczne jest ustalenie

fizycznego adresu sieciowego równoważnego zapisanemu w pakiecie adresowi IP. Węzeł rozsyła pakiet ARP, zawierający adres

IP węzła docelowego, a węzeł docelowy w odpowiedzi zwraca swój adres fizyczny.

 

Uzyskana informacja przechowywana jest w podręcznym buforze. Gdy węzeł ponownie będzie chciał wysłać pakiet IP, sprawdzi

najpierw, czy w buforze nie ma już odpowiedniego adresu fizycznego stacji docelowej. Jeśli jest, to skorzysta z niego, a procedura

z rozsyłaniem pakietu ARP nie będzie (niepotrzebnie) powtarzana. Pozwala to na zmniejszenie ruch w sieci.

 

Niejako odwrotne zadanie wykonuje protokół RARP wyznaczający adresy IP na podstawie adresu fizycznego. W tym celu RARP

"zmusza" węzeł do rozesłania swojego adresu fizycznego - wówczas inny węzeł sieci LAN odpowiada na przekaz zwracając

adres IP węzła źródłowego.

 

Protokoły bramkowe umożliwiają wzajemne komunikowanie się urządzeń trasujących (routerów). Istnieje wiele protokołó

bramkowych. Przykładem może być protokół wymiany informacji między routerami nazywany RIP (Routing Information

Protocol). Innym protokołem bramkowym jest OSPF (Open Shortest Path First). Obecnie nazwa "protokoły bramkowe" jest

nieco myląca, ponieważ bramki są urządzeniami sieciowymi pełniącymi specyficzne funkcje, najczęściej inne niż wyznaczanie

trasy.

 

 

PROTOKOŁY WARSTWY ŁĄCZA DANYCH

 

 

W TCP/IP nie ma określonych standardowych protokołów na poziomie warstwy łącza. Wybór zależy od przeznaczenia i

wymagań stawianych sieci. W sieci TCP/IP mogą być wykorzystywane różne protokoły łącza, np.:

 

.Ethernet

 

.Token Ring

.FDDI (Fiber Distributed Data Interface)

.X.25.

 

 

STOSOWANY NOŚNIK

 

 

Sieć TCP/IP można zaimplementować z wykorzystaniem różnych nośników. Przykładowo dla sieci TCP/IP o architekturze

Ethernet nośnikiem jest skrętka dwużyłowa lub kabel koncentryczny. W nowoczesnej sieci TCP/IP nośnikiem mogą być

światłowody. W rozległej sieci TCP/IP typu X.25 nośnikiem są najczęściej linie satelitarne, mikrofale lub szeregowe linie

telefoniczne.

 

 

Różne rodzaje komunikacji

 

 

W zasadzie wszystkie rodzaje transmisji danych można podzielić na dwa kategorie: połączeniowe i bezpołączeniowe.

 

Aby wyjaśnić ideę tych rozwiązań, posłużymy się prostymi analogiami. Przykładem usługi połączeniowej jest telefon. Kiedy

chcemy z kimś porozmawiać wybieramy jego numer zestawiając w ten sposób kanał komunikacyjny. Dopiero wtedy, kiedy

połączenie jest zrealizowane można rozpocząć rozmowę.

 

Analogią do komunikacji bezpołączeniowej jest wysyłanie paczki pocztą. Początkiem drogi paczki jest poczta. Nie ma jednak

gotowego środka pozwalającego natychmiast przetransportować przesyłkę z poczty do odbiorcy. Zamiast tego paczki są

grupowane i przesyłane razem najbardziej dogodną trasą. Zarówno nadawcy, jak i odbiorcy jest zupełnie obojętne jaką drogą

paczka zostanie dostarczona, ważne jest tylko to, aby transport był bezpieczny i szybki.

 

W przypadku wymiany danych podział pomiędzy tymi dwoma rodzajami komunikacji nie jest tak wyraźny. Komunikacja

połączeniowa może być symulowana w kanale bezpołączeniowym poprzez wymianę pakietów danych i potwierdzeń ich odbioru.

Możliwa jest też sytuacja odwrotna.

 

Bardzo istotnym problemem jest zapewnienie bezpieczeństwa komunikacji. W tym przypadku zagadnienie bezpieczeństwa dotyczy

nie tyle zabezpieczenia naszych danych przed "podsłuchaniem", co raczej utrzymania ciągłości połączenia w ogóle. Najniższe

warstwy modelu OSI nie realizuje żadnych funkcji związanych z bezpieczeństwem. Dopiero na wyższych poziomach istnieją

mechanizmy, i to bardzo skuteczne, które dbają o pewność połączenia.

 

Zależnie od tego w jaki sposób realizowana jest polityka bezpieczeństwa, rozróżniamy dwa rodzaje komunikacji, którym

odpowiadają podstawowe usługi komunikacyjne: TCP (Transport Core Protocol) i UDP (User Datagram Prorotocol).

 

Najpopularniejszym protokołem transmisji danych jest TCP. Bazuje on na "niższych" poziomach modelu OSI i zapewnia

"wyższym" warstwom kanał komunikacyjny zorientowany połączeniowo. TCP gwarantuje poprawność transmisji danych

pomiędzy punktami A i B, a w przypadku wystąpienia błędu wysyła do wyższych warstw odpowiedni komunikat.

 

Zagwarantowanie bezpieczeństwa nie jest jednak łatwym zadaniem dla protokołu transmisyjnego: TCP musi sprawdzać czy

wszystkie wysłane pakiety dotarły do adresata, a po odebraniu porcji informacji wysyła potwierdzenie do nadawcy. W przypadku

braku potwierdzenia odbioru protokół żąda ponownego wysłania aż do chwili nadejścia potwierdzenia.

 

Dla wyższych warstw sytuacja taka jest bardzo korzystna. Operują one na kanale transmisyjnym, nad którego bezpieczeństwem

czuwa TCP. Rozwiązanie to ma jednak pewną wadę: mechanizmy kontrolujące przepływ danych znacznie obniżają wydajność

całego systemu.

 

 

User Datagram Protocol - alternatywa dla TCP/IP

 

 

Alternatywą dla TCP jest UDP. Usługa ta bardzo przypomina pocztę pneumatyczną. Wrzucamy coś do sieci, a UDP transportuje

to z punktu A do B. Takie rozwiązanie dopuszczalne jest tylko wtedy, kiedy przesyłane dane nie są szczególnie ważne lub kiedy

aplikacja użytkowa sama sprawdza poprawność transmisji - w tym przypadku zastosowanie TCP oznaczałoby dublowanie funkcji

kontrolnych. UDP jako usługa bezpołączeniowa, nie realizująca kontroli przepływu, jest nieskomplikowana i dzięki temu szybka.

 

 

Znaczenie Ethernetu dla TCP/IP

 

 

Terminem często pojawiającym się obok TCP/IP jest Ethernet. Jest to protokół warstwy łącza danych i technologia rozsyłania

informacji w sieci. Specyfikacja Ethernetu określa wymagania dotyczące okablowania i innych parametrów technicznych.

Ethernet jest implementowany w systemach komputerowych jako oprogramowanie układowe (firmware) instalowane na kartach

interfejsu sieci. Nazwa Ethernet pochodzi od koncepcji eteru, czyli uniwersalnego nośnika fal, zarzuconej dziś, teorii fizycznej "

ETHER-net" miał być uniwersalnym nośnikiem informacji przesyłanych pomiędzy wszystkimi elementami sieci komputerowej.

 

Pierwsze prace nad przyszłym standardem rozpoczęła firma Xerox w ośrodku badawczym w Palo Alto (PARC) w Kalifornii. Był

to rok 1970. Zespół naukowców z Palo Alto rozpoczął prace nad realizacją wizji elektronicznego biura, która miała się ziścić w

latach dziewięćdziesiątych. Prace te były elementem koncepcji rozwoju rynkowego firmy Xerox, do tej pory znanej głównie z

produkcji maszyn kopiujących (które zresztą właśnie od nazwy tej firmy są nazywane kserokopiarkami).

 

W 1973 zespół z PARC był już daleko zaawansowany w badaniach nad komputerami, drukarkami i innymi urządzeniami

sieciowymi. Grupa pod kierownictwem Roberta Metcalfe'a pracowała nad znalezieniem metod przyspieszenia transmisji danych w

sieci. Prace te zostały uwieńczone sukcesem polegającym na stworzeniu technologii umożliwiającej przesyłanie danych ze

znacznie większą szybkością. Technologię tę nazwano Ethernetem. Przed powstaniem Ethernetu istniejące metody transmisji

danych zapewniały przesłanie jednej strony w rozdzielczości 600 dpi (punktów na cal) w czasie około 15 minut. Ethernet pozwolił

na skrócenie tego czasu do kilkunastu sekund. Było to naprawdę duże osiągnięcie i zapewniło nowej technologii najwyższe

uznanie. Pierwsza wersja Ethernetu, zwana dziś eksperymentalną, umożliwiała transmisję danych z szybkością około 2,6 Mbit/s.

Kolejny ważny krok stanowiło wprowadzenie w 1982 roku standardu Ethernet 2.0 przez firmy: DEC, Intel i Xerox. W tej wersji

specyfikacja określała szybkość transmisji na 10 Mbit/s, czyli prawie czterokrotnie szybciej niż w wersji eksperymentalnej.

 

Ethernet i TCP/IP to dwie zupełnie różne technologie, jednak gdy działają razem, pozwalają na stworzenie wydajnej sieci lokalnej.

...

Zgłoś jeśli naruszono regulamin