Protokoły w sieciach teleinformatycznych, Sieci komputerowe administracja


Socha Łukasz

Majcherkiewicz Marcin

Moryl Grzegorz

Elektronika i telekomunikacja, II rok, gr. IV

Protokoły w sieciach teleinformatycznych

wersja HTML http://student.uci.agh.edu.pl/~fenix

1. Wstęp

W procesach komunikacyjnych niezbędne są procedury zwane protokołami, które umożliwiają prawidłowy przebieg tych procesów - bez błędów lub przerw. W sieciach teleinformatycznych wszystkie operacje są kontrolowane właśnie przez protokoły, które „rezydują” wewnątrz nadajników i odbiorników podłączonych do sieci.

Protokół jest regułą, niezbędnikiem w procesie wzajemnej komunikacji, na którą muszą się zgodzić użytkownicy. Zawiłość i stopień skomplikowania protokołu jest zależny min. od błędów wprowadzanych do sieci przez interferencje i zniekształcenia. Wszystkie informacje transmitowane w systemach telekomunikacyjnych są narażone na błędy i jakieś mechanizmy muszą temu przeciwdziałać.

Można posłużyć się przykładem rozmawiających ludzi. W czasie rozmowy przyjmują nawzajem pewną konwencję, która daje każdemu uczestnikowi możliwość mówienia oraz słuchania - w momencie gdy wypowiada się inna osoba. Sieć teleinformatyczna musi umożliwiać właśnie taką konwersację między użytkownikami. W telekomunikacji taka konwencja nazywa się właśnie protokołem.

Podstawowym zadaniem protokołu jest identyfikacja procesu, z którym chce się komunikować proces bazowy. Aby było to możliwe konieczne jest podanie sposobu określania właściwego adresata, sposobu rozpoczynania i kończenia transmisji, a także sposobu przesyłania danych.

Ludzki mózg jest szczególnie doskonały w rozumieniu zniekształconej mowy, np. rozważając typową linię telefoniczną, ale bardziej istotne jest jak szybko potrafi zaadoptować się do nieprzewidywalnych sytuacji, np. załamania psychicznego rozmówcy. Procesory, które magazynują protokoły w sieci są znacznie mniej elastyczne, dlatego prawidłowa odpowiedź na każde możliwe zdarzenie, znane lub jeszcze nieznane, musi być predefiniowana w dobrze opracowanym protokole.

Niestety, w czasie gdy protokoły mogą być używane do zmniejszenia problemów z uszkodzonymi pakietami danych w sieci, to jeszcze powodują znaczący problem niedopasowania. Nie ma jednego protokołu, są ich dziesiątki. Nie jest możliwe wzajemne ich współpracowanie, dopóki nie będzie dostarczony jakiś interfejs ich wzajemnego przekazywania. Ten interfejs jest rdzeniem sieci. Różne typy interfejsów mogą być używane do łączenia różnych protokołów, niezależnie od ich aktualnych różnic funkcjonalnych oraz sposobów implementacji.

2. Standaryzacja protokołów

Relacje pomiędzy formalnymi organizacjami tworzącymi standardy w systemach telekomunikacyjnych i informatycznych rozwijały się dość powoli, i polegały głównie na wymianie ich własnych standardów. Schematyczna reprezentacja współczesnych powiązań pomiędzy organizacjami pokazana jest na rys. 1.

0x08 graphic

International Organization for Standardization (ISO) jest organizacją odpowiedzialną za koordynowanie produkcji standardów użytkowych z wielu dziedzin życia. Ta organizacja jest także aktywna na polu usług informatycznych (Technical Committee - TC97) i jest odpowiedzialna min. za standard OSI/RM i wiele innych.

TC97 jest wspierana przez regionalne organizacje i reprezentowana przez narodowe organizacje standaryzacyjne. W Wielkiej Brytanii to jest British Standards Institution (BSI). Inne organizacje wspierające to np. European Computer Manufacturers Association (ECMA).

United Nations (UN) jest ciałem któremu podlega International Telecomunications Union (ITU). ITU składa się z różnych podorganizacji, trzy z nich to International Radio Consultative Committee (CCIR), CCITT oraz World Administrative Radio Conference (WARC). CCIR jest odpowiedzialna za rezerwacje wspólnych standardów wyposażenia telekomunikacyjnego pomiędzy dostawcami, podczas gdy CCITT zajmuje się zaleceniami w sprawach sieci teleinformatycznych, sieci telefonicznych, standardów cyfrowych i terminali. WARC zajmuje się rezerwacją pasma radiowego dla poszczególnych operatorów na świecie, zapewniając ich wzajemną kompatybilność i bezkolizyjność.

CCITT jest przedstawicielem ISO (oraz vice versa), dla państwowych operatorów jak PTTs oraz prywatnych firm, jak AT&T. Wynikiem tych międzynarodowych powiązań są setki mniejszych organizacji zajmujących się specjalnymi dziedzinami telekomunikacji, jak np. IEEE. W Europie organizacja zwana Central European Commision (CEC) staje się bardziej powszechna jeśli chodzi o standardy unifikacyjne w Europie, skutkiem tego są zalecenia CEN/CENELEC. Większość szczegółowych badań standaryzacyjnych w Europie jest kontrolowanych przez European Telecomunications Standards Institute (ETSI), która to dostarcza informacje do do CEC i utrzymuje kontakty z innymi organizacjami standaryzacyjnymi w spokrewnionych dziedzinach.

Na jednym z ostatnich forum ITU, zaanonsowano zmiany odnośnie nazw i odpowiedzialności dla CCITT i CCIR. Zakres działalności tych organizacji pozostał z grubsza bez zmian, ale zmieniono ich nazwy. CCITT nazywa się obecnie ITU-T a CCIR ITU-R. Określono także schemat działania tych organizacji na kolejne kilka lat.

Wiele szczegółowych analiz i standardów było i jest opracowywanych w małych grupach badawczych składających się z indywidualnych prac pod kierunkiem profesjonalnych organizacji. Trzy z wielu ważnych organizacji zajmujących się przekazywaniem danych w sieciach teleinformatycznych to Institute of Electrical and Electronics Engineers (IEEE)- odpowiedzialny za standardy w sieciach LAN, US National Institute of Standards and Technology (NIST) oraz Electronic Industries Association (EIA) - np. zajmujący się standardem RS-232. Prace tych instytucji są zazwyczaj prezentowane formalnym organizacjom standaryzacyjnym, które tworzą szkic standardu międzynarodowego, który z kolei otwiera proces jego formalnej ratyfikacji.

3. Typy protokołów

Obecnie używanych jest wiele typów protokołów i generalnie mogą być one sklasyfikowane na podstawie ich funkcji. Najbardziej ogólna klasyfikacja mogłaby wyglądać np. tak:

To było bardzo ogólne scharakteryzowanie typów protokołów, jednak bez dokładnego odwołania się do poszczególnych nazw protokołów lub ich standardów nie można znaleźć jakiejś wspólnej terminologii pozwalającej jednoznacznie opisać protkół.

3.1. Transfer danych z użyciem protokołów

Dane zawsze będą podatne na uszkodzenia czy zniekształcenia w trakcie ich fizycznego przesyłania. Liczba błędów na sekundę będzie zależna od jakości kanału przesyłowego i otaczającego środowiska. Sieci o dużej niezawodności, takie w których prawdopodobieństwo wystąpienia błędu jest na poziomie 10-9 i niższej, zazwyczaj używają systemów wykrywania błędów kierowanych specjalnymi algorytmami określanymi jako „wsteczna korekcja błędów” - BEC (ang. Backward Error Correction). W przypadku, gdy poziom błędów jest wysoki, wyższy niż 10-5, wówczas jakaś forma „bieżącej korekcji błędów” - FEC (ang. Forward Error Correction) jest używana do korekcji danych bez uciekania się do retransmisji danych.

Protokół jest odpowiedzialny za retransmisje danych. Retransmisja może być spowodowana otrzymaniem negatywnego potwierdzenia odbioru (NAK) z odbiornika, albo upłynięciem limitu czasu oczekiwania na potwierdzenie. Protokoły używane do retransmisji danych zależą od jakości kanału przesyłowego, ale można je próbować sklasyfikować jako:

0x08 graphic

0x08 graphic

4. Model warstwowy protokołów

Model warstwowy (rys. 4), w którym każda warstwa posługuje się własnym protokołem znacznie upraszcza projektowanie niezwykle skomplikowanego procesu komunikacji sieciowej. Muszą jednak jasno zostać zdefiniowane zasady współpracy tych protokołów. Warstwowy model OSI stanowi przykład takiego opisu, będąc w istocie "protokołem komunikacji między protokołami".

Model OSI stworzony został przez organizację International Organization for Standardization (ISO). Jest on zbiorem zasad komunikowania się urządzeń sieciowych. Podzielony jest na siedem warstw, z których każda zbudowana jest na bazie warstwy poprzedniej. Model ten nie określa fizycznej budowy poszczególnych warstw, a koncentruje się na sposobach ich współpracy. Takie podejście do problemu sprawia, że każda warstwa może być implementowana przez producenta na swój sposób, a urządzenia sieciowe od różnych dostawców będą poprawnie współpracować. Poszczególne warstwy sieci stanowią niezależne całości i chociaż nie potrafią wykonywać żadnych widocznych zadań w odosobnieniu od pozostałych warstw, to z programistycznego punktu widzenia są one odrębnymi poziomami.

Komunikacja pomiędzy komputerami odbywa się na poziomie odpowiadających sobie warstw i dla każdej z nich powinien zostać stworzony własny protokół komunikacyjny. W rzeczywistej sieci komputerowej komunikacja odbywa wyłącznie się na poziomie warstwy fizycznej. W tym celu informacja każdorazowo przekazywana jest do sąsiedniej niższej warstwy aż do dotarcia do warstwy fizycznej.
Tak więc pomiędzy wszystkimi warstwami z wyjątkiem fizycznej istnieje komunikacja wirtualna, możliwa dzięki istnieniu połączenia fizycznego.

0x08 graphic

4.1 Zadania warstw

5. Przegląd ważniejszych protokołów

Istnieje wiele źródeł, dzięki którym formowane były i są w dalszym ciągu nowe standardy protokołów. Protokoły tworzono z myślą o różnych zastosowaniach, różni mieli być też użytkownicy. Można pokusić się o bardzo ogólne podzielenie tych typowych protokołów.

5.1. Protokoły prywatne

Wielu z głównych producentów systemów komputerowych stworzyło swoje własne protokoły. Wydaje się, że musi minąć wiele lat, zanim te protokoły zostaną zastąpione jakimiś ogólnymi standardami. Kilka typowych protokołów należących do tej klasy:

5.2. Protokoły publiczne

Organizacje standaryzacyjne wciąż kontynuują prace nad modelem OSI/RM (a warto wiedzieć że prace te zaczęto już kilkanaście lat temu). Wymogi OSI/RM nie podają specyficznych wymagań, ale definiują urządzenia sieciowe, których funkcje muszą być zgodne co do protokołów i formatu wymienianych danych pomiędzy siedmioma warstwami modelu OSI/RM. Powstaje pytanie, co stanie się na rynku telekomunikacyjnym i wśród użytkowników sieci do czasu pełnego opracowania modelu OSI. W tym momencie protokoły publiczne mogą być dość ważne. TCP/IP i wszystkie protokoły wchodzące w jego skład jak np. File Transfer Protocol (FTP) są już zaadoptowane przez wielu użytkowników i producentów, co w przyszłości może być krokiem ku pełnej zgodności modelu OSI/RM.

6. Protokół TCP/IP

6.1. TCP/IP a model OSI

Protokół TCP/IP ma również strukturę warstwową (rys. 5) i ma do niego zastosowanie większość filozofii modelu OSI. Warstwy TCP/IP różnią się jednak od warstw OSI.

Protokoły TCP i IP ustalają zasady komunikacji - opisują szczegóły formatu komunikatów, sposób odpowiadania na otrzymany komunikat, określają jak komputer ma obsługiwać pojawiające się błędy lub inne nienormalne sytuacje.
Umożliwiają one rozpatrywanie zagadnień dotyczących komunikacji niezależnie od sprzętu sieciowego.

Zapewniają szereg popularnych usług dostępnych dla użytkowników:

6.2. Zadania warstw w TCP/IP

0x08 graphic

6.3. Adresy IP

6.3.1. Klasy adresów IP

Obserwując najstarsze bity adresu można stwierdzić do jakiej klasy należy dany adres, w efekcie można stwierdzić ile bitów będzie adresowało sieć, ile zaś sam komputer.

Adresów klasy A jest niewiele (27=128), ale w każdej z sieci tej klasy może być aż 65535 maszyn.

Klasa B to 214 sieci i 216 komputerów.

W klasie C sieć adresowana jest za pomocą 21 bitów - daje to 221 sieci, ale w każdej z nich może być co najwyżej 28=256 maszyn.

Adres klasy D ma specjalne znaczenie - jest używany w sytuacji gdy ma miejsce jednoczesna transmisja do większej liczby urządzeń.

Adresy zamiast w postaci bitowej, zwykle zapisuje się w postaci czterech liczb dziesiętnych. Wówczas podział na klasy wygląda następująco:

Klasa

Najniższy adres

Najwyższy adres

A

0.1.0.0

126.0.0.0

B

128.0.0.0

191.255.0.0

C

192.0.1.0

223.255.255.0

D

224.0.0.0

239.255.255.255

E

240.0.0.0

247.255.255.255

0x08 graphic

6.3.2. Przydzielanie adresów sieciowych

W celu zapewnienia jednoznaczności identyfikatorów sieci, wszystkie adresy przydzielane są przez jedną organizację. Zajmuje się tym Internet Network Information Center (INTERNIC). Przydziela ona adresy sieci, zaś adresy maszyn administrator może przydzielać bez potrzeby kontaktowania się z organizacją. Organizacja ta przydziela adresy tym instytucjom, które są lub będą przyłączone do ogólnoświatowej sieci INTERNET. Każda instytucja może sama wziąć odpowiedzialność za ustalenie adresu IP, jeśli nie jest połączona ze światem zewnętrznym. Nie jest to jednak dobre rozwiązanie, gdyż w przyszłości może uniemożliwić współpracę między sieciami i sprawiać trudności przy wymianie oprogramowania z innymi ośrodkami.

6.4. Protokół ARP i RARP

6.4.1. Protokół odwzorowania adresów (ARP)

W schemacie adresowania TCP/IP każdy komputer ma przypisany 32-bitowy adres jednoznacznie identyfikujący go w sieci. Jednak dwie maszyny mogą się komunikować tylko wtedy kiedy znają nawzajem swoje adresy fizyczne. Zachodzi więc potrzeba przekształcenia adresu IP na adres fizyczny tak aby informacja mogła być poprawnie przesyłana.

Problem ten przedstawimy na przykładzie sieci ethernet, w której mamy do czynienia z długim 48-bitowym adresem fizycznym przypisanym w trakcie procesu produkcyjnego urządzeń sieciowych. W efekcie podczas wymiany karty sieciowej w komputerze, zmienia się adres fizyczny maszyny. Ponadto nie ma sposobu na zakodowanie 48-bitowego adresu ethernetowego w 32-bitowym adresie IP.
Przekształcenia adresu IP na adres fizyczny dokonuje protokół odwzorowania adresów ARP (Address Resolution Protocol), który zapewnia dynamiczne odwzorowanie i nie wymaga przechowywania tablicy przekształcania adresowego.

Gdy komputer A chce odwzorować adres IP komputera B, wówczas rozgłasza specjalny pakiet, w którym prosi komputer o podanym adresie IP, aby dał odpowiedź zawierającą jego adres fizyczny. Wszystkie komputery w sieci otrzymują tę prośbę, ale tylko komputer B rozpoznając swój adres IP wysyła odpowiedź która zawiera jego adres fizyczny. Gdy komputer A otrzyma odpowiedź, przy użyciu otrzymanego adresu fizycznego przesyła pakiet bezpośrednio do przeznaczenia, czyli do komputera B.

6.4.2. Odwzorowanie adresów i pamięć podręczna

Przedstawiony sposób odwzorowywania adresów ma jednak wady, jest zbyt kosztowny aby go używać za każdym razem gdy jakaś maszyna chce przesłać pakiet do innej: przy rozgłaszaniu każda maszyna w sieci musi taki pakiet przetworzyć.

W celu zredukowania kosztów komunikacji komputery używające protokołu ARP przechowują w pamięci podręcznej ostatnio uzyskane powiązania adresu IP z adresem fizycznym, w związku z tym nie muszą ciągle korzystać z protokołu ARP.

Ponadto komputer A wysyłając prośbę o adres fizyczny komputera C od razu dowiązuje informację o swoim adresie fizycznym. Ponieważ prośba ta dociera do wszystkich komputerów w sieci, mogą one umieścić w swoich pamięciach podręcznych informację o adresie fizycznym komputera A.

Jeśli w komputerze zostanie zmieniony adres fizyczny (np. w wyniku zmiany karty sieciowej), to może on bez zapytania o jego adres fizyczny rozgłosić go do innych komputerów, tak aby uaktualniły informacje w swoich pamięciach podręcznych.

6.4.3. Protokół odwrotnego odwzorowania adresów (RARP)

Adres IP jest zwykle przechowywany w pamięci zewnętrznej komputera, skąd jest pobierany w trakcie ładowania systemu operacyjnego.

Więc jak maszyna nie wyposażona w dysk twardy określa swój adres IP?

Odpowiedź: w sposób przypominający uzyskiwanie adresu fizycznego.
protokół odwrotnego odwzorowania adresów RARP (Reverse Address Resolution Protocol) umożliwia uzyskiwanie adresu IP na podstawie znajomości własnego adresu fizycznego (pobranego z interfejsu sieciowego).

Komputery bez dysku twardego pobierają adres IP z maszyny uprawnionej do świadczenia usług RARP, po przesłaniu zapytania z własnym adresem fizycznym.

Komputer A rozgłasza zapytanie o swój adres IP do wszystkich komputerów wraz ze swoim adresem fizycznym, wskazując siebie jako odbiorcę. Zapytanie dociera do wszystkich komputerów w sieci, ale przetwarzają je i udzielają odpowiedzi tylko maszyny uprawnione do świadczenia usług RARP. Maszyny takie nazywa się serwerami RARP. Protokołu RARP można używać jedynie wtedy, gdy w sieci jest co najmniej jeden serwer RARP. Jeśli jest ich więcej nadawca otrzyma odpowiedź od wszystkich serwerów, mimo że wystarczy odpowiedź od jednego.

6.5. Internet protokol IP

Zasadniczo sieć TCP/IP udostępnia trzy zbiory usług (rys. 7).

Najbardziej podstawowa usługa - przenoszenie pakietów bez użycia połączenia nosi nazwę Internet Protocol, a zwykle oznacza się skrótem IP.

Usługa ta jest zdefiniowana jako zawodny (ang. unreliable) system przenoszenia pakietów bez użycia połączenia, tzn. nie ma gwarancji, że przenoszenie zakończy się sukcesem. Każdy pakiet obsługiwany jest niezależnie od innych.
Pakiety z jednego ciągu, wysyłanego z danego komputera do drugiego, mogą podróżować różnymi ścieżkami, niektóre z nich mogą zostać zgubione, inne natomiast dotrą bez problemów.

Pakiet może zostać zagubiony, zduplikowany, zatrzymany, lub dostarczony z błędem, a system nie sprawdzi, że coś takiego zaszło, a także nie powiadomi o tym ani nadawcy, ani odbiorcy.

0x08 graphic

Protokół IP zawiera trzy definicje:

6.5.1. Datagram IP

Podstawowa jednostka przesyłanych danych nazywana jest datagramem.
Datagram podzielony jest na nagłówek i dane.

Nagłówek datagramu zawiera adres nadawcy i odbiorcy oraz pole typu, które identyfikuje zawartość datagramu.

Datagram przypomina ramkę sieci fizycznej. Różnica polega na tym, że nagłówek ramki zawiera adresy fizyczne, zaś nagłówek datagramu adresy IP.

Ponieważ przetwarzaniem datagramów zajmują się programy, zawartość i format datagramów nie są uwarunkowane sprzętowo.

Klasa opcji

Znaczenie

0

Kontrola datagramów lub sieci

1

Zarezerwowane do przyszłego użytku

2

Poprawianie błędów i pomiary

3

Zarezerwowane do przyszłego użytku

Klasa opcji

Numer opcji

Długość

Opis

0

0

-

Koniec listy opcji. Używana gdy opcje nie kończą się wraz z końcem nagłówka.

0

1

-

Bez przypisanej funkcji - wypełnienie

0

2

11

Tajność - używana do zastosowań wojskowych

0

3

zmienna

Swobodne trasowanie wg nadawcy - używana do prowadzenia datagramu określoną ścieżką.

0

7

zmienna

Zapisuj trasę - używana do śledzenia trasy.

0

9

zmienna

Rygorystyczne trasowanie wg nadawcy - używana do ścisłego prowadzenia datagramu.

2

4

zmienna

Intersieciowy datownik - używana do zapisywania czasów wzdłuż ścieżki.

6.6. Routery

6.7. Koleje życia datagramu

Prześledzimy teraz losy datagramu przy przesyłaniu do pomiędzy maszynami, co pozwoli lepiej zrozumieć jak IP radzi sobie z tym problemem.

Gdy aplikacja ma zamiar wysłać datagram w sieć, wykonuje kilka prostych kroków. Najpierw konstruuje datagram zgodnie z wymogami lokalnej implementacji IP. Zostaje obliczona suma kontrolna dla danych i skonstruowany nagłówek IP. Następnie pierwszy węzeł na drodze wędrówki datagramu określić musi etap następny - inną maszynę w sieci lub router, gdy dane muszą się z sieci wydostać. Jeżeli dane są szczególnie cenne, w nagłówku IP zostaną ustawione odpowiednie opcje. Na koniec datagram jest "posyłany w sieć".

Każdy router otrzymujący datagram wykonuje na nim serię testów. Gdy warstwa sieciowa zdejmie z niego swój nagłówek, warstwa IP weryfikuje sumę kontrolną datagramu. W razie niezgodności datagram jest odrzucany i do węzła-nadawcy kierowany jest komunikat o błędzie. Następnie pole TTL jest odpowiednio zmniejszone i sprawdzane. Jeśli limit czasu jest przekroczony sygnalizowany jest błąd. Po określeniu następnego węzła (na podstawie adresu docelowego) zostaje zapisana nowa wartość TTL i nowa suma kontrolna. Jeżeli konieczna jest fragmentacja, jest on dzielony na mniejsze datagramy i każdy z nich opatrywany jest nagłówkiem IP. W końcu datagram przekazywany jest z powrotem do warstwy sieciowej. Gdy datagram dotrze do celu zostaje scalony, zdejmowany jest nagłówek IP, odtworzony jest oryginalny komunikat i przesyłany w stronę wyższych warstw.

6.8. Kapsułkowanie i fragmentacja

6.8.1. Kapsułkowanie

Datagramy przemieszczając się od jednej maszyny do drugiej muszą być przenoszone przez sieć fizyczną. Kapsułkowaniem nazywamy rozwiązanie, w którym jeden datagram przenoszony jest przez jedną ramkę sieciową. Datagram zachowuje się wówczas jak każdy inny komunikat przesyłany z jednej maszyny do innej, tzn. podróżuje w części ramki sieciowej przeznaczonej na dane.

6.8.2. Fragmentacja

W idealnym przypadku cały datagram mieści się w jednej ramce fizycznej. Nie zawsze jednak jest to możliwe. Dzieje się tak dlatego, że datagram może przemieszczać się przez różne sieci fizyczne. Każda z nich ma ustaloną górną granicę ilości danych, które mogą być przesłane w jednej ramce.
Ten parametr sieci nosi nazwę maksymalnej jednostki transmisyjnej danej sieci (ang. Maximum Transfer Unit - MTU). Ograniczenie wielkości datagramów, tak aby pasowały do najmniejszego MTU, byłoby nieefektywne w przypadku przechodzenia przez sieci, które mogą przenosić większe ramki. Jeśli datagram nie mieści się w ramce fizycznej jest dzielony na mniejsze kawałki zwane fragmentami, a proces ten nazywa się fragmentacją. Gdy takie pofragmentowane datagramy dotrą do odbiorcy podlegają procesowi odwrotnemu czyli defragmentacji.

Każdy z fragmentów zawiera nagłówek, w którym jest powielona większość zawartości nagłówka pierwotnego datagramu (z wyjątkiem pola znaczniki, które wskazuje, że jest to fragment).

6.8.3. Kontrola Fragmentacji

Trzy pola nagłówka identyfikacja, znaczniki, przesunięcie fragmentu służą kontroli procesów fragmentacji i składania datagramów. Pole identyfikacja (16-bitowe) zawiera liczbę całkowitą jednoznacznie identyfikującą datagram. Identyfikator jest niezbędny, gdyż zapobiega wymieszaniu się fragmentów pochodzących od różnych datagramów - wszystkie kawałki będące częściami tego samego datagramu posiadają ten sam identyfikator. Pole znaczniki (3-bitowe) służy do kontroli fragmentacji. Pierwszy z trzech bitów jest nie używany, nadanie drugiemu wartości 1 oznacza bezwzględny zakaz fragmentacji. Jeśli datagram nie może być przesłany w całości, zostaje odrzucony i sygnalizowany jest błąd. Ostatni z bitów znaczników umożliwia identyfikację ostatniego kawałka datagramu - ma w nim wartość 0, w pozostałych przypadkach 1. Pole przesunięcie fragmentu (13-bitowe) zawiera informację, w którym miejscu datagramu umiejscowione są informacje przesyłane w tym kawałku. Jest ono mierzone w jednostkach 64-bajtowych. Umożliwia to poprawne scalenie datagramu - nie istnieje nic w rodzaju kolejnego numeru kawałka w datagramie.

6.9. Protokół ICMP

Oprogramowanie Internet Protocol realizuje zawodne przenoszenie pakietów bez użycia połączenia. Datagram wędruje od nadawcy przez różne sieci i routery aż do końcowego odbiorcy. Jeżeli router nie potrafi ani wyznaczyć trasy ani dostarczyć datagramu, albo gdy wykrywa sytuacje mającą wpływ na możliwość dostarczenia datagramu np. Przeciążenie sieci, wyłączenie maszyny docelowej, wyczerpanie się licznika czasu życia datagramu to musi poinformować pierwotnego nadawcę, aby podjął działania w celu uniknięcia skutków tej sytuacji.

Protokół komunikatów kontrolnych internetu ICMP (ang. Internet Control Message Protocol) powstał aby umożliwić routerom oznajmianie o błędach oraz udostępnianie informacji o niespodziewanych sytuacjach. Chociaż protokół ICMP powstał, aby umożliwić routerom wysyłanie komunikatów to każda maszyna może wysyłać komunikaty ICMP do dowolnej innej. Protokół ICMP jest traktowany jako wymagana część IP i musi być realizowany przez każdą implementację IP.

Z technicznego punktu widzenia ICMP jest mechanizmem powiadamiania o błędach.
Gdy datagram powoduje błąd, ICMP może jedynie powiadomić pierwotnego nadawcę o przyczynie. Nadawca musi otrzymaną informację przekazać danemu programowi użytkownika, albo podjąć inne działanie mające na celu uporanie się z tym problemem. Każdy komunikat ICMP ma własny format, ale wszystkie zaczynają się trzema takimi samymi polami:

Oprócz tego komunikaty ICMP oznajmiające o błędach zawsze zawierają nagłówek i pierwsze 64 bity danych datagramu, z którym były problemy.

6.9.1. Dostarczanie komunikatów ICMP

Komunikaty ICMP wymagają dwóch poziomów kapsułkowania.
Każdy komunikat ICMP podróżuje przez intersieć w części datagramu IP przeznaczonej na dane, a ten przemieszcza się przez sieć fizyczną w części dla danych ramki.
Chociaż komunikaty ICMP są kapsułkowane i przenoszone przy użyciu IP, nie są protokołem wyższego rzędu lecz wymaganą częścią IP.

6.9.2. Określanie ostatecznego adresata

System operacyjny większości komputerów zapewnia wielozadaniowość.
Omówiony mechanizm adresowania i przesyłania datagramów nie rozróżnia użytkowników ani programów użytkowych, do których jest skierowany taki datagram. Zachodzi więc potrzeba rozszerzenia zestawu protokołów o mechanizm, który pozwoli rozróżniać adresy w obrębie pojedynczego komputera.

Adresowanie wprost do konkretnego procesu z wielu powodów nie byłoby dobrym rozwiązaniem; np. ponieważ procesy tworzone i likwidowane są dynamicznie, nadawca ma więc zbyt mało informacji aby wskazać proces na innej maszynie, przeładowanie systemu operacyjnego powoduje zmianę wszystkich procesów itp. W miejsce tego wprowadzono abstrakcyjne punkty docelowe zwane portami protokołów.
Każdy port jest identyfikowany za pomocą dodatniej liczby całkowitej. Lokalny system operacyjny zapewnia procesom określenie dostępu do portów. Nadawca musi znać adres IP odbiorcy i numer docelowego portu protokołu na maszynie odbiorcy, komunikat musi ponadto zawierać numer portu nadawcy tak aby proces odbierający komunikat mógł wysłać odpowiedź do nadawcy.

6.10. Protokół UDP

W zestawie protokołów TCP/IP protokół datagramów użytkownika UDP (ang. User Datagram Protocol), zapewnia porty protokołów używane do rozróżniania programów wykonywanych na pojedynczej maszynie.

Oprócz wysyłanych danych, każdy komunikat zawiera numer portu odbiorcy i numer portu nadawcy, dzięki czemu oprogramowanie UDP odbiorcy może dostarczyć komunikat do właściwego adresata. Do przesyłania komunikatów między maszynami UDP używa podstawowego protokołu IP i ma tę samą niepewną, bezpołączeniową semantykę dostarczania datagramów co IP - nie używa potwierdzeń w celu upewnienia się, o dotarciu komunikatów i nie zapewnia kontroli szybkości przesyłania danych między maszynami. Z tego powodu komunikaty UDP mogą być gubione, duplikowane lub przychodzić w innej kolejności niż były wysłane, ponadto pakiety mogą przychodzić szybciej niż odbiorca może je przetworzyć. Program użytkowy korzystający z UDP musi na siebie wziąć odpowiedzialność za rozwiązanie problemów niezawodności.

Ponieważ sieci lokalne dają dużą niezawodność i małe opóźnienia wiele programów opartych na UDP dobrze pracuje w sieciach lokalnych, ale może zawodzić w większych intersieciach TCP/IP.

6.10.1. Format komunikatów UDP

Komunikat UDP nazywa się datagramem użytkownika.

Nagłówek datagramu użytkownika składa się z czterech 16-bitowych pól:

6.10.2. Kapsułkowanie UDP

Datagram UDP jest przed wysłaniem w sieć, kapsułkowany w datagram IP.

Nagłówek IP identyfikuje maszynę źródłową i docelową, UDP - identyfikuje porty nadawcy i odbiorcy. U odbiorcy pakiet dociera do najniższej warstwy oprogramowania sieciowego i wędruje ku coraz wyższym warstwom. Każda z nich usuwa jeden nagłówek, oczekujący proces otrzymuje więc komunikat bez nagłówków.
Warto zwrócić uwagę, że datagram UDP otrzymany od IP na maszynie docelowej jest identyczny z tym, który UDP przekazało do IP na maszynie źródłowej.

6.11. Multipleksowanie i demultipleksowanie

Protokoły komunikacyjne wykorzystują metody multipleksowania i demultipleksowania na poziomach wszystkich warstw. Przy wysyłaniu komputer nadawcy dołącza do danych dodatkowe bity, które wskazują typ komunikatu, program, który go nadał oraz używane protokoły. Wszystkie komunikaty są umieszczane w przeznaczonych do przesyłania ramkach sieciowych i łączone w strumień pakietów. U odbiorcy zaś te informacje są używane do sterowania przetwarzaniem.
Multipleksowanie i demultipleksowanie pojawia się w prawie wszystkich warstwach protokołów. Przykładowo, gdy interfejs sieciowy zdemultipleksuje ramki i prześle te z nich, które zawierają datagramy IP do modułu IP, oprogramowanie IP wydobędzie z nich datagramy i dalej je zdemultipleksuje w warstwie IP. Aby zdecydować, w jaki sposób obsłużyć datagram, oprogramowanie sprawdza nagłówek datagramu i wybiera na podstawie typu datagramu odpowiednie procedury.

Przykład demultipleksowania w warstwie IP: oprogramowanie IP wybiera odpowiednia procedurę obsługi na podstawie znajdującego się w nagłówku datagramu pola typu protokołu.

Oprogramowanie UDP musi przyjmować datagramy UDP pochodzące od wielu programów użytkowych i przekazywać je warstwie IP w celu przesłania, a także odbierać datagramy UDP nadchodzące od warstwy IP i przekazywać odpowiednim programom użytkowym. Aby to zrealizować musi multipleksować datagramy UDP tak aby datagramy pochodzące z różnych portów mogły być przekazane do warstwy IP i demultipleksować datagramy przychodzące z warstwy IP tak by skierować je do właściwego portu. Rozróżnienie następuje przy pomocy pola port UDP nadawcy i odbiorcy.

6.12. Transmission Control Protocol

Do tej pory opisaliśmy usługi zawodnego dostarczania pakietów, bez użycia połączenia, co stanowi podstawę protokołu IP. IP nie troszczy się tak naprawdę o dostarczenie datagramu do adresata, lecz w przypadku odrzucenia datagramu sygnalizuje ten fakt jako błąd maszynie-nadawcy i uznaje sprawę za załatwioną.


Używanie zawodnego dostarczania bez użycia połączenia do przesyłania dużych porcji danych jest więc nużące i wymaga od programistów, aby wbudowywali do każdego programu użytkowego wykrywanie i korekcję błędów.
Teraz zajmiemy się przesyłaniem niezawodnymi strumieniami TCP (ang. Transmission Control Protocol), które istotnie zwiększa funkcjonalność omawianych do tej pory protokołów, biorąc odpowiedzialność za wiarygodne dostarczenie datagramu. Okupione jest to jednak skomplikowaniem protokołu. Protokół TCP będąc drugą najważniejszą usługą w sieci, wraz z IP dał nazwę całej rodzinie protokołów TCP/IP.

Pomimo związku z protokołem IP - TCP jest protokołem w pełni niezależnym i może zostać zaadaptowany do wykorzystania z innymi systemami dostarczania.
Możliwe jest używanie go zarówno w pojedynczej sieci takiej jak ethernet jak i w skomplikowanej intersieci.

6.12.1. Własności usługi niezawodnego dostarczania

TCP organizuje dwukierunkową współpracę między warstwą IP, a warstwami wyższymi, uwzględniając przy tym wszystkie aspekty priorytetów i bezpieczeństwa. Musi prawidłowo obsłużyć niespodziewane zakończenie aplikacji, do której właśnie wędruje datagram, musi również bezpiecznie izolować warstwy wyższe - w szczególności aplikacje użytkownika - od skutków awarii w warstwie protokołu IP. Scentralizowanie wszystkich tych aspektów w jednej warstwie umożliwia znaczną oszczędność nakładów na projektowanie oprogramowania.

TCP rezyduje w modelu warstwowym powyżej warstwy IP. Warstwa ta jest jednak obecna tylko w tych węzłach sieci, w których odbywa się rzeczywiste przetwarzanie datagramów przez aplikacje, tak więc nie posiadają warstwy TCP na przykład routery, gdyż warstwy powyżej IP nie miałyby tam nic do roboty.

6.12.2. Kanał wirtualny TCP

Rozpatrując TCP z punktu widzenia funkcjonalności można potraktować jego pracę jako ustanowienie kanału wirtualnego realizującego komunikację między "końcówkami" - tak wygląda to z punktu widzenia aplikacji użytkownika.

Rzeczywisty przepływ oczywiście odbywa się poprzez warstwę IP i warstwy niższe.

0x08 graphic

6.12.3 Realizacja niezawodnego połączenia

Aby zagwarantować, że dane przesyłane z jednej maszyny do drugiej nie są ani tracone, ani duplikowane używa się podstawowej metody znanej jako pozytywne potwierdzanie z retransmisją. Metoda ta wymaga, aby odbiorca komunikował się z nadawcą, wysyłając mu w momencie otrzymania danych komunikat potwierdzenia (ACK). Nadawca zapisuje sobie informację o każdym wysłanym pakiecie i przed wysłaniem następnego czeka na potwierdzenie. Oprócz tego nadawca uruchamia zegar w momencie wysyłania pakietu i wysyła ten pakiet ponownie, gdy minie odpowiedni czas, a potwierdzenie nie nadejdzie.

Po wysłaniu pakietu nadawca włącza zegar. Gdy mija określony czas, w czasie którego powinno nadejść potwierdzenie ACK nadawca przyjmuje, że pakiet został zagubiony i wysyła go ponownie.

6.12.4. Idea przesuwających się okien

To rozwiązanie sprawia, że przesyłanie strumieniami jest efektywniejsze. Chodzi o przesuwające się okna (ang. sliding window). Jak wiemy w celu uzyskania niezawodności nadawca wysyła pakiet, a przed wysłaniem następnego oczekuje na potwierdzenie odebrania.

Dane w danym momencie płyną tylko w jednym kierunku i to nawet wtedy, kiedy sieć umożliwia jednoczesną komunikację w obu kierunkach. Ponadto sieć nie będzie używana, kiedy maszyny będą zwlekać z odpowiedziami np. podczas wyliczania sum kontrolnych. Takie rozwiązanie powoduje znaczne marnowanie przepustowości sieci.
Technika przesuwającego się okna lepiej wykorzystuje przepustowość sieci, gdyż umożliwia wysyłanie wielu pakietów przed otrzymaniem potwierdzenia. W rozwiązaniu tym umieszcza się na ciągu pakietów ustalonego rozmiaru okna i przesłanie wszystkich pakietów, które znajdują się w jego obrębie. Mówimy, że pakiet jest niepotwierdzony, jeżeli został wysłany, a nie nadeszło dla niego potwierdzenie. Liczba pakietów niepotwierdzonych w danej chwili jest wyznaczona przez rozmiar okna.
Dla protokołu z przesuwającym się oknem, którego rozmiar jest np. równy 8, nadawca ma możliwość wysłania przed otrzymaniem potwierdzenia do 8 pakietów. Gdy nadawca odbierze potwierdzenie dla pierwszego pakietu, okno przesuwa się i zostaje wysłany następny pakiet. Okno przesuwa się dalej gdy przychodzą kolejne potwierdzenia.

Pakiet dziewiąty może zostać wysłany gdy przyszło potwierdzenie dotyczące pierwszego pakietu. Retransmitowane są tylko te pakiety, dla których nie było potwierdzenia. Oczywiście protokół musi pamiętać, które pakiety zostały potwierdzone i utrzymuje oddzielny zegar dla każdego nie potwierdzonego pakietu. Gdy pakiet zostanie zgubiony lub zostaje przekroczony czas nadawca wysyła ten pakiet jeszcze raz. Poprawa uzyskiwana przy protokołach z przesuwającymi się oknami zależy od rozmiaru okna i szybkości, z jaką sieć akceptuje pakiety.
Gdy rozmiar okna wynosi 1, protokół z przesuwającym się oknem jest tym samym, co nasz zwykły protokół z potwierdzaniem. Zwiększając rozmiar okna, możemy w ogóle wyeliminować momenty nieaktywności sieci. Oznacza to, że w sytuacji stabilnej nadawca może przesyłać pakiety tak szybko, jak szybko sieć może je przesyłać.

Istotne jest, że nadawca może przesłać wszystkie pakiety z okna bez oczekiwania na potwierdzenie.

6.12.5 Segment TCP

Mianem segmentu określa się jednostkową porcję danych przesyłanych między oprogramowaniem TCP na różnych maszynach.

Pola port nadawcy i port odbiorcy zawierają numery portów TCP, które identyfikują programy użytkowe na końcach połączenia.

Pole numer porządkowy wyznacza pozycję danych segmentu w strumieniu bajtów nadawcy.
Pole
numer potwierdzenia wyznacza numer oktetu, który nadawca spodziewa się otrzymać w następnej kolejności. Zwróćmy uwagę, że numer porządkowy odnosi się do strumienia płynącego w tym samym kierunku co segment, zaś numer

potwierdzenia odnosi się do strumieni płynących w kierunku przeciwnym.
Pole
długość nagłówka zawiera liczbę całkowitą, która określa długość nagłówka segmentu mierzoną w wielokrotnościach 32 bitów. Jest ono konieczne gdyż pole opcje ma zmienną długość.

Pole zarezerwowane jest pozostawione do wykorzystania w przyszłości.
Ponieważ niektóre segmenty mogą przenosić tylko potwierdzenia, inne dane, inne zaś zawierają prośby o ustanowienie lub zamknięcie połączenia - pole
bity kodu zawiera informację o przeznaczeniu zawartości segmentu.

Przy każdym wysłaniu segmentu oprogramowanie TCP proponuje ile danych może przyjąć, umieszczając rozmiar swojego bufora w polu okno.

6.12.6 Porty i połączenia

Protokół TCP umożliwia wielu działającym na jednej maszynie programom użytkowym jednoczesne komunikowanie się oraz rozdziela między programy użytkowe przybywające pakiety TCP. Podobnie jak UDP, TCP używa numerów portów protokołu do identyfikacji w ramach maszyny końcowego odbiorcy. Każdy z portów ma przypisaną małą liczbę całkowitą, która jest używana do jego identyfikacji.
Porty TCP są jednak bardziej złożone, gdyż dany numer nie odpowiada bezpośrednio pojedynczemu obiektowi. TCP działa wykorzystując połączenia, w których obiektami są obwody wirtualne a nie poszczególne porty. Tak więc podstawowym pojęciem TCP jest pojęcie połączenia, a nie portu. Połączenia są identyfikowane przez parę punktów końcowych.
TCP definiuje punkt końcowy jako parę liczb całkowitych (węzeł, port), gdzie węzeł oznacza
adres IP węzła, a port jest portem TCP w tym węźle.

Np. punkt końcowy (128.10.2.3, 25) oznacza port 25 maszyny o adresie IP 128.10.2.3. W efekcie może istnieć połączenie np. pomiędzy: (18.26.0.36, 1069) oraz (128.10.2.3, 25), w tym samym czasie może też istnieć (128.9.0.32, 1184) oraz (128.10.2.3, 25).

W związku z tym, że TCP identyfikuje połączenie za pomocą pary punktów końcowych, dany numer portu może być przypisany do wielu połączeń na danej maszynie.

7. Podsumowanie

Protokoły są tj. narzędziami do wpuszczania danych w sieć teleinformatyczną, a zatem zawierają reguły i instrukcje dotyczące transmisji danych w realnym środowisku. Podsumowując:

Trudno spekulować nad tym, co w przyszłości będzie standardem, jakie nowe protokoły wejdą w życie. Już dziś istnieje ich wielkie bogactwo. Najprawdopodobniej ludzie będą dążyć do jakiegoś ujednolicenia działających obecnie protokołów, może powstanie jeden wspólny standard. Bo czymże by była „globalna wioska” bez jednolitego standardu komunikacji wewnątrz niej?...

Bibliografia:

Colin Smythe „Internetworking - Designing the Right Architectures”

D.W.Davies, D.L.Barber „Sieci teleinformatyczne”

A.W.Butrimenko „Projektowanie i eksploatacje sieci kompuerowych”

oraz materiały zgromadzone w sieci Internet.

Spis treści

Rozdział: strona:

1.

Wstęp

1

2.

Standaryzacja protokołów

1

3.

Typy protokołów

4

3.1.

Transfer danych z użyciem protokołów

5

4.

Model warstwowy protokołów

7

4.1.

Zadania warstw

9

5.

Przegląd ważniejszych protokołów

10

5.1.

Protokoły prywatne

10

5.2.

Protokoły publiczne

11

6.

Protokół TCP/IP

11

6.1.

TCP/IP a model OSI

11

6.2.

Zadania warstw w TCP/IP

11

6.3.

Adresy IP

12

6.3.1.

Klasy adresów IP

13

6.3.2.

Przydzielanie adresów sieciowych

13

6.4.

Protokół ARP i RARP

14

6.4.1.

Protokół odwzorowania adresów (ARP)

14

6.4.2.

Odwzorowanie adresów i pamięć podręczna

14

6.4.3.

Protokół odwrotnego odwzorowania adresów (RARP)

15

6.5.

Internet Protokol IP

15

6.5.1.

Datagram IP

16

6.6.

Routery

18

6.7.

Koleje życia datagramu

18

6.8.

Kapsułkowanie i fragmentacja

19

6.8.1.

Kapsułkowanie

19

6.8.2.

Fragmentacja

19

6.8.3.

Kontrola fragmentacji

19

6.9.

Protokół ICMP

20

6.9.1.

Dostarczanie komunikatów ICMP

20

6.9.2.

Określenie ostatecznego adresata

21

6.10.

Protokół UDP

21

6.10.1.

Format komunikatów UDP

21

6.10.2.

Kapsułkowanie UDP

22

6.11.

Multipleksowanie i demultipleksowanie

22

6.12.

Transmission Control Protocol (TCP)

23

6.12.1.

Własności usługi niezawodnego dostarczania

23

6.12.2.

Kanał wirtualny TCP

23

6.12.3.

Realizacja niezawodnego połączenia

24

6.12.4.

Idea przesuwających się okien

25

6.12.5.

Segment TCP

25

6.12.6.

Porty i połączenia

26

7.

Podsumowanie

26

1

30

United

Nations

ITU

WARC

CCIR

(ITU-R)

CCITT

(ITU-T)

ITU

ECMA

CEC

ETSI

National

Standards

Bodies

Telecommsbodies

(PTTs)

BSI

ANSI

BT

Mercury

AT&T etc

NIST

IEEE

EIA

...

Rys.1 Związki między organizacjami standaryzacyjnymi

Rys. 2. Protokół Stop-and-wait

Respondent

Inicjator

Potwierdzenie

Brak potwierdzenia

Potwierdzenie

Potwierdzenie

Narastanie czasu

3

3

2

1

Rys. 3. Protokół Go-back-n

Respondent

Inicjator

Potwierdzenie 6

Potwierdzenie 5

Brak potwierdzenia 4

Potwierdzenie 3

Potwierdzenie 2

Potwierdzenie 1

Czas

7

6

5

7

6

5

4

3

2

1

Warstwa danych

Warstwa danych

Warstwa danych

Warstwa danych

Warstwa sieciowa

Warstwa sieciowa

Warstwa sieciowa

Warstwa sieciowa

Protokół warstwy sesji

Warstwa transportowa

Warstwa transportowa

Protokół warstwy sesji

Warstwa sesji

Warstwa sesji

Protokół warstwy prezentacji

Warstwa prezentacji

Warstwa prezentacji

Protokół warstwy aplikacji

Warstwa aplikacji

Warstwa aplikacji

TCP/IP

OSI

Rys. 4. Model warstwowy

Protokół warstwy fizycznej

Protokół warstwy danych

Protokół warstwy sieciowej

Komputer 2

Komputer 1

Bit

Ramka

Pakiet

Wiadomość

Wiadomość

Wiadomość

Wiadomość

Wymieniana jednostka informacji

Warstwa fizyczna

Warstwa fizyczna

Warstwa fizyczna

Warstwa fizyczna

Warstwa aplikacji

Programy użytkowe

Warstwa prezentacji

Warstwa sesji

Warstwa transportowa

Warstwa sieciowa

Warstwa łącza danych

Warstwa fizyczna

Transport

Intersieć

Interfejs sieciowy

Sprzęt

Obiekty przesyłane między warstwami w modelu

TCP/IP

Komunikaty i strumienie

Pakiety

Datagramy IP

Ramka sieci fizycznej

Rys. 5. TCP/IP a model OSI

A

B

C

D

E

0

1

1

1

1

0

1

1

1

0

1

1

0

1

0

Sieć (7 bitów)

Komputer (24 bity)

Sieć (14 bitów)

Komputer (16 bitów)

Sieć (21 bitów)

Komputer (8 bitów)

Adres grupowy (28 bitów)

Zarezerwowane na przyszłość

Rys. 6. Klasy adresów IP

Usługi programów użytkowych

Usługi niezawodnego przesyłania

Usługi bezpołączeniowego przesyłania pakietów

Rys. 7. Usługi w sieciach TCP/IP

Warstwa aplikacji

Warstwa prezentacji

Warstwa sesji

Warstwa TCP

Warstwa IP

Warstwa połączeniowa

Warstwa fizyczna

Warstwa fizyczna

Warstwa połączeniowa

Warstwa IP

Warstwa TCP

Warstwa sesji

Warstwa prezentacji

Warstwa aplikacji

Warstwa fizyczna

Warstwa połączeniowa

Warstwa IP

Warstwa fizyczna

Warstwa połączeniowa

Warstwa IP

Podsieć

Podsieć

Maszyna

wysyłająca

Maszyna

odbierająca

Komunikacja końcowa (wirtualna)

Rys. 8. Komunikacja wirtualna w protokole TCP



Wyszukiwarka

Podobne podstrony:
Protokoły sieci LAN, Sieci komputerowe administracja
Lokalne i globalne sieci komputerowe, Sieci komputerowe administracja
Topologie sieciowe, Sieci komputerowe administracja
Ćwicz.9 Sieci Komputerowe, Sieci komputerowe administracja
Podstawy novella, Sieci komputerowe administracja
Urządzenia sieci LAN, Sieci komputerowe administracja
Sieci neuronowe, Sieci komputerowe administracja
Sciaga z Sieci Komputerowych, Administracja, Administracja, Administracja i samorząd, Polityka spole
opracowania sieci, Sieci komputerowe administracja
Rozwoj sieci internet, Sieci komputerowe administracja
Sieci inteligentne i realizacja usług zintegrowanych, Sieci komputerowe administracja
Media sieciowe, Sieci komputerowe administracja
Info XP, Sieci komputerowe administracja
Lokalne i globalne sieci komputerowe, Sieci komputerowe administracja
Lokalne I Rozlegle Sieci Komputerowe Administracja I Bezpieczenstwo Sieci
Administrowanie sieciami komputerowymi, ADMINISTROWANIE SIECIAMI - opracowanie

więcej podobnych podstron