instrukcja - Politechnika Warszawska

Transkrypt

instrukcja - Politechnika Warszawska
Politechnika Warszawska
Wydział Elektryczny
Laboratorium Teletechniki
Skrypt do ćwiczenia T.24
Sieć LAN. Protokół TCP/IP.
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
1. Historia i przegląd możliwości TCP/IP
TCP/IP 1 jest zestawem protokołów sieciowych funkcjonujących w górnych warstwach
sieci. Są to w rzeczywistości dwa protokoły TCP 2 (ang. Transmission Control Protocol), oraz
IP 3 (ang. Internet Protocol).
Standard TCP/IP, rozwijano i udoskonalano przez ponad 20 lat. Dziś TCP/IP nie jest
własnością żadnej firmy softwerowej ani instytucji normalizacyjnej. Patronat nad TCP/IP
sprawuje Departament Obrony USA, starając się o zachowanie pewnego minimum porządku i
spójności standardu. Historia TCP/IP zaczęła się od projektu amerykańskiego ministerstwa
obrony. 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łoby doprowadzić do
unieruchomienia całego systemu.
W wyniku prac nad tym projektem powstała sieć ARPANET 4, którą można uznać za
kamień węgielny późniejszego Internetu. Jej nazwa wywodzi się od nazwy Instytutu Rozwoju
Zaawansowanych Technologii (ang. 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 nadzorem 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 ARPANETem.
W roku 1982 Departament Obrony utworzył sieć DDN 5, 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 miał 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 6 (ang. Local
Area Networks), 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
1
TCP/IP (ang. Transmission Control Protocol/Internet Protocol) – wspólna nazwa zestawu protokołów
wprowadzonych przez Departament Obrony USA w 1970r. Obsługuje on sieci rozległe o zasięgu
ogólnoświatowym.
2
TCP (ang. Transmission Control Protocol) – protokół połączeniowy w warstwie transportu, który zapewnia
niezawodną, w pełni dwukierunkową transmisję danych. TCP jest częścią stosu protokołów TCP/IP
3
IP (ang. Internet Protocol) –protokół warstwy sieci w stosie protokołów TCP/IP zapewniający
bezpołączeniowe usługi sieciowe, zapewnia adresowanie, specyfikacje zależną od typu usługi, fragmentację i
składnię oraz bezpieczeństwo.
4
ARPANET (ang. Advanced Research Proecs Agency Network) – sieć z komutacją pakietów wynaleziona w
1969r , w późniejszym czasie przekształcona w Internet.
5
DDN (ang. Defence Data Network) – amerykańska sieć wojskowa utworzona z jawnej sieci MILNET i wielu
tajnych i supertajnych sieci.
6
LAN (ang. Local Area Network) – sieć lokalna o dużej szybkości, stosowana na małych obszarach (do kilku
tysięcy metrów). Sieć LAN łączy stacje robocze, peryferia, terminale i inne urządzenia znajdujące się w
pojedynczym budynku lub innym niewielkim obszarze.
2
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
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.
3
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
2. Odniesienie protokołu TCP/IP do modelu OSI
"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. Nazwy poszczególnych warstw wraz z opisem zostały przedstawione w tablicy.1.
Tablica 1. Porównanie modeli referencyjnego OSI i TCP/IP
Nazwa warstwy modelu
referencyjnego OSI
Aplikacji
Numer warstwy OSI Nazwa równoważnej warstwy
TCP/IP
7
(składa się z programów użytkowych,
które korzystają z sieci)
Prezentacji
6
Prosesu/Aplikacji
(składa się z aplikacji i
procesów używających sieci)
(standaryzuje sposób przedstawiania
danych aplikacjom)
Sesji
5
(zarządza sesjami między aplikacjami)
Hosta z hostem
Transportu
(udostępnia usługi
dostarczające dane z jednego
miejsca w inne)
4
(zapewnia wykrywanie i korekcje
błędów po obu stronach połączenia)
Sieci
3
(zarządza połączeniami
nawiązywanymi poprzez sieć przez
wyższe warstwy)
Łącza danych
(definiuje datagramy i wyznacza
trasy)
2
(zapewnia rzeczywiste dostarczanie
danych poprzez fizyczne połączenie)
Fizyczna
(definiuje fizyczne właściwości
medium transmisyjnego sieci)
Internetu
1
Dostępu do sieci
(składa się z procedur
umożliwiający dostęp do
fizycznej sieci)
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 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, warstwa transportowa przesyła wiadomości kanałem stworzonym przez
warstwę sieciową. Dopiero ta warstwa troszczy się o bezpieczeństwo i pewność wymiany
danych.
W przypadku warstw leżących poniżej, nie są brane pod uwagę względy bezpieczeństwa.
Istotne jest natomiast zapewnienie maksymalnej prędkości przesyłania danych.
4
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Na warstwie transportowej bazuje warstwa sesji . 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 danych z serwera.
Przedostatnia warstwa nosi nazwę warstwy prezentacji. 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 konwersja danych, jeśli np. komputer-klient
używa innego formatu liczb niż komputer serwer.
Ostatnia warstwa aplikacji 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ść.
3. Architektura protokołów TCP/IP
Zestaw protokołów taki jak TCP/IP, jest kombinacją wielu różnych protokołów
działających w kilku warstwach. Zestaw protokołów TCP/IP rozważa się zwykle jako system
czterowarstwowy. Poszczególne warstwy wraz z protokołami przedstawiono w tablicy. 2.
Tablica 2. Warstwy w architekturze protokołów TCP/IP
4
Warstwa aplikacji
Telnet, FTP, itp.
3
Warstwa transportowa
(hosta z hostem)
TCP, UDP
2
Warstwa sieci (Internetu)
IP, ICMP
1
Warstwa łącza
(dostępu do sieci)
Programy obsługi urządzeń i
karta interfejsu
Podobnie jak w modelu OSI, dane są przekazywane w dół stosu podczas ich wysyłania
przez sieć i w górę stosu przy odbiorze. Czterowarstwowa struktura TCP/IP jest widoczna,
gdy przyjrzymy się w jaki sposób przetwarzane są dane podczas przekazywania ich z warstwy
aplikacji do najniżej położonej fizycznej sieci. Każda warstwa stosu dodaje informacje
sterujące tak, aby zapewnić właściwe dostarczenia danych do warstwy niższej.
Informacje te noszą nazwę „nagłówków”, gdyż są umieszczone na początku przekazywanych
informacji. Każda warstwa traktuje wszystkie informacje otrzymane z warstwy wyższej jako
dane i umieszcza swój nagłówek na początku.
Dodawanie informacji dostarczanie danych przez każdą warstwę nazywamy
„enkapsulacją” (opakowaniem). Proces enkapsulacji przedstawiono na rysunku 1.
Przy odbiorze danych ma miejsce działanie odwrotne. Każda warstwa odcina swój
nagłówek przed przekazaniem danych do wyższej warstwy. W miarę jak informacja
przechodzi w górę stosu, jest ona interpretowana przez kolejną warstwę jako dane opatrzone
nagłówkiem.
5
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Dane
Warstwa aplikacji
Nagłówek
Dane
Nagłówek Nagłówek
Dane
Nagłówek Nagłówek Nagłówek
Dane
Warstwa transportowa
Warstwa internetu
Warstwa dostępu do sieci
Wysyłanie danych
Odbiór danych
Rys. 1. Mechanizm enkapsulacji danych; opracowano wg [1]
Każda warstwa ma swoje niezależne struktury danych i z założenia jest nieświadoma
struktur danych używanych przez warstwy wyższą i niższą. W rzeczywistości przez wzgląd
na bardziej efektywne przekazywanie danych, struktury danych warstwy są tak projektowane,
aby były zgodne ze strukturami stosowanymi przez warstwy otaczające. Każda warstwa ma
swoje własne struktury i własną terminologię do jej opisu. Na rysunku 2 pokazano terminy
używane przez różne warstwy TCP/IP do określania przekazywanych danych. Aplikacje
stosujące protokoły TCP traktują swoje dane jako „strumień” (ang. stream), podczas gdy
aplikacje korzystające z protokołu UDP7 odnoszą się do danych jak do „wiadomości” (ang.
message). TCP nazywa dane „segmentem”, a UDP określa swoje struktury danych jako
„pakiety”. Warstwa Internet widzi wszystkie dane jako bloki nazywane „datagramami”.
Większość sieci traktuje przesyłanie danych jako „pakiety” lub „ramki” (ang. frames).
Warstwa aplikacji
Warstwa transportowa
Warstwa internetu
Warstwa dostępu do sieci
TCP
strumień
segment
UDP
Wiadomość
pakiet
datagram
datagram
ramka
ramka
Rys. 2. Struktury danych i ich nazwy; opracowano wg [1]
Poniżej warstwy dostępu do sieci znajduje się warstwa fizyczna w której przesyłany jest
sygnał w medium transmisyjnym. Dokładny opis tej warstwy znalazł się w „Skrypcie do
ćwiczenia LAN 1”
Przyjrzyjmy się teraz bliżej funkcjom wszystkich warstw, zaczynając od warstwy łącza, a
kończąc na warstwie aplikacji.
7
UDP (ang. User Datagram Protocol) – jest protokołem warstwy transportu używanym w połączeniu z
protokołem IP
6
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
3.1 Warstwa łącza danych
Warstwa łącza danych (nazywana również warstwą dostępu do sieci) jest najniższą
warstwą w hierarchii architektury protokołów TCP/IP. W warstwie tej do datagramów IP8
dodaje się nagłówki oraz zakończenie i w ten sposób otrzymuje się ramki9 przesyłane w sieci.
Funkcje tej warstwy odpowiadają w przybliżeniu funkcjom trzech najniższych warstw
modelu ISO/OSI. Do komunikacji w sieciach rozległych lub przez łącza szeregowe mogą być
stosowane takie protokoły jak PPP10 lub SLIP11. Te dwa protokoły zostały specjalnie
opracowane do przesyłania datagramów IP poprzez szeregowe łącza dwupunktowe. Protokół
SLIP zazwyczaj jest stosowany do łączenia pojedynczych komputerów poprzez łącza
szeregowe. Natomiast w sieciach rozległych zalecane jest stosowanie protokołu PPP.
Funkcje wykonywane na tym poziomie obejmują opakowanie datagramów IP, tak by
stawały się one ramkami przesyłanymi przez sieć. Następuje tu także zamiana adresów IP na
fizyczne adresy stosowane w sieci. Wielką zaletą TCP/IP jest schemat adresowania, który
jednoznacznie identyfikuje każdy komputer w Internecie (adresowanie zostało opisane w
dalszej części skryptu).
3.1.1 Ramka Eternetowa
Ramka jest strukturą wykorzystywaną do przesyłania bloków danych w sieci. Rozmiar i
struktura ramki zależą od rodzaju używanego przez sieć protokołu warstwy sprzętowej.
Ramka jest podobna do koperty listowej. Wiadomo że każdy rodzaj koperty ma określone i
stałe rozmiary. Zawartość koperty tego samego rodzaju może jednak różnić się rozmiarem,
wagą, zawartością i pilnością.
Typowa ramka składa się z tylu pól (podstruktur), ile niezbędnych jest do
zagwarantowania bezpiecznego dostarczenia danych wskazanemu odbiorcy. Najczęściej
spotykane pola to:
- ogranicznik początku ramki,
- adres źródłowy (nadawcy),
- adres docelowy (adresata),
- dane,
- sekwencje kontrolne ramki.
Budowa ramki Ethernetowej została pokazana na rys. 3, a jej szczegółowy opis znajduje się w
„Skrypcie do ćwiczenia LAN 1”.
7
1
Preambuła SFD
6
Adres
docelowy
6
2
Adres
Długość
źródłowy
min 20
min 20
46 - 1482
4
Nagłówek
IPX
Nagłówek
TCP
Dane
FCS
Rys. 3. Umieszczenie pakietu IP w ramce Ethernet. Długości pól podane w bajtach
8
Datagram IP (ang. IP datagram) – podstawowa jednostka informacji przenoszonej w Internecie. Datagram
zawiera adres źródłowy, adres docelowy oraz pola, które definiują takie cechy jak długość datagramu, suma
kontrolna nagłówka i znaczniki określające, czy datagram jest podzielony na fragmenty.
9
Ramka (ang. frame) – logiczne zgrupowanie informacji wysyłanych przez nośnik transmisji jako jednostka w
warstwie łącza danych. Termin ten często dotyczy nagłówka i stopki transmisji, stosowanych do synchronizacji i
nadzoru błędów. Otaczają one dane użytkownika zawarte w jednostce transmisji.
10
PPP (ang. Point-to-Point Protocol) - jest to protokół przeznaczony do pracy z protokołami warstwy sieci,
takimi jak IP, IPX oraz ARA. Zapewnia połączenie routera z routerem oraz hosta z siecią w łączach
synchronicznych i asynchronicznych.
11
SLIP (ang. Serial Line Internet Protocol) – standardowy protokół dla szeregowego połączenia
dwupunktowego, stosujący odmianę TCP/IP. Jest to poprzednik PPP.
7
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
3.1.2 Współdziałanie warstw łącza danych Ethernet oraz sieciowej IP
Do poprawnego przesłania ramki od stacji nadawczej do stacji odbiorczej niezbędne są:
adresy IP stacji nadawczej i odbiorczej oraz ich adresy fizyczne MAC (ang. Media Access
Control). Przyjmuje się, że nieznanym adresem jest adres MAC stacji odbiorczej, co ma duże
znaczenie w przypadku wymiany karty sieciowej w stacji odbiorczej, a o fakcie tym nie jest
powiadamiana stacja nadawcza. Musi zatem istnieć mechanizm automatycznego określenia
adresu MAC odbiorcy na podstawie jego adresu IP.
Pakiet ARP request
Inne elementy
interfejsu
znany
FF:FF:FF:FF:FF:FF
znany
znany
IAnad
IAodb
HAnad
HAodb
Adres sieci:
132.17.0.0
1
Adres HAnad
1
Adres HAk+1
2
Adres IAnad
2
Adres IAk+1
3
3
4
4
Stacja sieciowa k
(nadawcza) o
adresie 132.17.0.1
Kabel
sieciowy
...
1
Adres HAodb
2
Adres IAodb
3
4
Stacja sieciowa
k+1 (nadawcza) o
adresie 132.17.0.2
Stacja sieciowa w
(odbiorcza) o
adresie 132.10.0.17
Rys. 4. Wysyłanie pakietu ARP request; HA – Hardware Address, IA – Internet Address; opracowane wg [2]
Mechanizmem takim jest protokół ARP, którego działanie poprzedza właściwą transmisję.
Działanie tego mechanizmu można podzielić na dwa etapy.
W etapie pierwszym stacja nadawcza wysyła do kabla sieciowego pakiet o nazwie „ARP
request”, z rozgłoszeniowym adresem MAC o wartości HAodb= FF:FF:FF:FF:FF:FF. Adres
ten każda karta sieciowa traktuje jako upoważnienie do przyjęcia tego pakietu.
W każdej stacji sieciowej następuje porównanie adresu IAodb zawartego w pakiecie „ARP
request” z adresem IAodb skonfigurowanym. Stacja, dla której te adresy są równe, wysyła do
stacji nadawczej pakiet „ARP response”. W rezultacie karty sieciowe umożliwiają
porównanie adresu IP każdej stacji sieciowej z adresem IP zawartym w pakiecie. Proces
wysyłania pakietu „ARP request” przedstawiono na rysunku 4.
8
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Pakiet ARP response
Inne elementy
interfejsu
znany
znany
znany
znany
IAnad
IAodb
HAnad
HAodb
Adres sieci:
132.17.0.0
1
Adres HAnad
1
Adres HAk+1
2
Adres IAnad
2
Adres IAk+1
3
3
4
4
Stacja sieciowa k
(nadawcza) o
adresie 132.17.0.1
Kabel
sieciowy
...
1
Adres HAodb
2
Adres IAodb
3
4
Stacja sieciowa
k+1 (nadawcza) o
adresie 132.17.0.2
Stacja sieciowa w
(odbiorcza) o
adresie 132.10.0.17
Rys. 5. Wysyłanie pakietu ARP response; HA – Hardware Address, IA – Internet Address; opracowane wg [2]
W drugim etapie stacja odbiorcza, której adres IP zgadza się z adresem zawartym w
pakiecie „ARP request” wysyła do kabla sieciowego pakiet „ARP response” z poszukiwanym
adresem MAC (HAodb). Trafia on do stacji nadawczej, która już może w ramce Ethernet
uzupełnić brakujący adres MAC (HAodb) i zapisuje go w pamięci „ARP cache”, aby korzystać
z niego w przyszłości i nie korzystać ciągle z mechanizmu ARP. Sytuację tą przedstawiono na
rysunku 5.
Mechanizm ARP wykorzystywany jest również wtedy, gdy stacja nadawcza i odbiorcza
znajduję się w różnych sieciach. Za pomocą protokołu ARP maszyna może uzyskać adres
fizyczny innego komputera, znając jego adres IP. Adres IP jest zwykle przechowywany w
pamięci zewnętrznej komputera, skąd jest pobierany w trakcie ładowania systemu
operacyjnego. Stacja robocza może również uzyskać adres IP znając adres MAC. Jest to
możliwe za pomocą protokołu odwrotnego odwzorowania adresów RARP, który umożliwia
uzyskiwanie adresu IP na podstawie znajomości własnego adresu fizycznego.
9
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Rys. 6. Przykładowa sieć LAN z urzadzeniami i ich adresami MAC wykorzystywanymi w warstwie łącza
danych
Rys. 7. Przykład sieci LAN z urządzeniami i ich adresami IP wykorzystywanymi w warstwie sieciowej
W sieci LAN te same urządzenia w tej samej sieci w różnych warstwach wykorzystują
różne adresy. W warstwie łącza danych wykorzystywane są adresy MAC pobierane z kart
sieciowych, natomiast w warstwie sieci wykorzystywane są adresy IP, co pokazano na
rysunku 6 i rysunku 7.
LAN 1
LAN 2
WAN
Rys. 8. Przykładowa sieć WAN
10
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Na rysunku 8 przedstawiono przykładową sieć WAN. Sieć WAN powstanie jeśli za
pomocą routerów połączymy sieć LAN 1 z siecią LAN 2. W tym przypadku w warstwie sieci
będziemy wykorzystywać adresy IP, aby zlokalizować konkretne urządzenia.
3.1.3. Adresy IP
W sieciach wykorzystujących protokoły TCP/IP aktualnie są stosowane 32-bitowe adresy
które jednoznacznie określają sieć oraz komputer dołączony do tej sieci. Adresy zapisane są
w postaci czterech oktetów co pokazano w tablicy 3. Dla przypomnienia każda cyfra binarna
(bit) może przyjąć wartość 0 lub 1. W przypadku liczb binarnych, wartość bitu znajdującego
się z prawej stroniy (zwanego także bitem najmniej znaczącym) wynosi 0 lub 1. Odpowiednia
wartość dziesiętna każdego bitu podwaja się w miarę przesuwania się w lewą stroną liczby
binarnej. Dlatego wartość drugiego bitu od prawej strony to 0 lub 2. Trzeci bit to 0 lub 4,
czwarty 0 lub 8 i tak dalej.
Tablica 3. Adresy można wyrazić jako numery binarne składające się z 1 i 0.
Oktet (8 bitów)
2726252423222120
11000000
Oktet (8 bitów)
Oktet (8 bitów)
7 6 5 4 3 2 1 0
22222222
2726252423222120
00000101
00100010
wartość dziesiętna
5
34
192
Oktet (8 bitów)
2726252423222120
00001011
11
Adresy IP są często wyrażone jako liczby dziesiętne oddzielone kropkami – 32 bity adresu
są podzielone na cztery oktety (oktet to grupa 8 bitów). Maksymalna wartość dziesiętna
każdego oktetu to 255. Najwyższa 8 bitowa liczba binarna to 11111111. Te bity czytane od
strony lewej do prawej mają dziesiętne wartości 128, 64, 32, 16, 8, 4, 2 i 1. Po zsumowaniu
tych wartości otrzymujemy wartość 255.
Adres IP składa się z dwóch części:
części sieciowej,
części identyfikującej komputer wewnątrz sieci.
Numer sieci w adresie IP identyfikuje sieć, z którą połączone jest urządzenie co pokazano
na rysunku 9. Część hosta identyfikuje konkretne urządzenia w sieci. Ponieważ adres IP
składa się z czterech oktetów oddzielonych kropkami, jeden, dwa lub trzy z tych oktetów
mogą być użyte do identyfikacji sieci lub hosta w adresie IP.
32 bity
Sieć #
Host #
1 bajt
8 bitów
172
1 bajt
8 bitów
•
16
1 bajt
8 bitów
•
122
1 bajt
8 bitów
•
204
Rys. 9. Struktura klas adresów IP
11
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Adresy IP można sklasyfikować wg ich formatów. W adresie IP wzajemna relacja między
liczbą bitów określających sieć i liczbą bitów określających komputer zależy od klasy
adresów.
Istnieje 5 klas adresów:
Adresy klasy A posiadają pierwszy bit równy 0. Następne 7 bitów określa sieć, a pozostałe 24
bity komputer wewnątrz sieci. Zauważmy, że ta klasa adresów obejmuje tylko 127 numerów
sieciowych i ponad 16 mln komputerów w jednej sieci.
Adresy klasy B rozpoczynają się od pary bitów o wartościach 10 binarnie. Kolejne 14 bitów
określa sieć, a pozostałe 16 bitów komputer wewnątrz sieci. W klasie B istnieje ponad 16 tys.
sieci, a w każdej z nich ponad 65 tys. komputerów.
Adresy klasy C identyfikowane są następującą sekwencją trzech pierwszych 110 bitów.
Następne 21 bitów przeznaczone jest na wskazanie sieci, a tylko 8 na określenie komputera w
każdej sieci. Pozwala to obsłużyć ponad 2 mln sieci i 254 komputery.
Adresy klasy D mają na pierwszych 4 bitach sekwencję 1110, a na pozostałych adres
grupowy. Odnoszą się one nie do sieci, a do grupy komputerów, które nie koniecznie muszą
się znajdować w tej samej sieci fizycznej. Taki adres IP umożliwia jednoczesną komunikację
z grupą komputerów.
Adresy klasy E rozpoczynają się od sekwencji 11110 i są przeznaczone do przyszłych
zastosowań.
Rys. 10. Struktura klas adresów IP
Przypisanie ustalonych wartości pierwszym bitom pierwszego bajtu adresu IP powoduje, że
wartość pierwszej liczby dziesiętnej jest ściśle związana z klasą adresu, a zatem:
- wartości mniejsze od 128 - klasa A,
- wartości 128 - 191 - klasa B,
- wartości 192 - 223 - klasa C,
- wartości 224 - 229 - klasa D,
- powyżej 229 - klasa E.
12
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
3.2. Warstwa Internetu
Warstwa znajdująca się w hierarchii protokołów powyżej warstwy dostępu do sieci jest to
warstwa Internet. Protokół Internet jest sercem TCP/IP i najważniejszym protokołem tej
warstwy. Protokół IP umożliwia dostarczenie pakietów, na bazie których zbudowane są sieci
TCP/IP. Wszystkie dane TCP/IP, zarówno wysyłane jak i odbierane, przepływają przez IP,
niezależnie od ich końcowego przeznaczenia.
3.2.1 Protokół Internet
Protokół Internet jest fundamentalnym elementem Internetu. Jego funkcje obejmują:
- definiowanie datagramów, będących w Internecie podstawowymi jednostkami
transmisyjnymi,
- definiowanie schematu adresowania używanego w Internecie,
- przekazywanie danych między warstwą dostępu do sieci, a warstwą transportową
host to host,
- kierowanie datagramów do komputerów odległych,
- dokonywanie fragmentacji i ponownego składania datagramów.
Protokół ten jest odpowiedzialny za przesyłanie pakietów zwanych datagramami między
użytkownikami sieci. Jest to protokół bezpołączeniowy, co oznacza, że datagramy są
przesyłane przez sieć bez kontroli poprawności ich dostarczenia. W efekcie datagram może
zostać zgubiony w sieci, przekłamany lub zniekształcony. Protokół IP jest przeznaczony do
sieci o bardzo dobrej jakości i niezawodności łączy transmisyjnych.
3.2.2. Datagram IP
Ze względu na to, że w różnych sieciach mogą być ustalone różne maksymalne długości
datagramów, w zależności od potrzeb, datagram może być podzielony na kilka mniejszych
części, tzn. na kilka datagramów. Tę operację nazywamy „fragmentacją datagramów”. Format
każdego fragmentu jest taki sam jak format każdego innego niepodzielnego datagramu.
Konieczność fragmentacji datagramu może być również następstwem przesyłania
datagramów przez sieci rozległe dopuszczające inne protokoły i inne długości pakietów, np.
sieci X.25 z pakietami o maksymalnej długości 128 bajtów. Kompletowanie pierwotnego
datagramu z fragmentów dokonuje się w komputerze docelowym. Z chwilą nadejścia
pierwszego fragmentu ustala się czas oczekiwania na skompletowanie datagramu. Jeśli w tym
okresie czasu nie nadejdą pozostałe fragmenty to następuje przerwanie oczekiwania i
skasowanie już otrzymanych fragmentów.
Bity
1
4
Wersja
Słowa
12
Czas życia
16
20
Typ usługi
Identyfikator
2
3
8
IHL
flagi
Protokół
28
Przesunięcie fragmentu
Suma kontrolna nagłówka
4
Adres źródła
5
Adres przeznaczenia
6
24
31
Długość całkowita
Opcja
Nagłówek
0
wypełnienie
W tym miejscu rozpoczynają się dane...
Rys. 11. Budowa datagramu IP; opracowano wg [1]
Na rysunku11 pokazano budowę datagramu IP. Pierwsze pięć lub sześć 32- bitowych
słów datagramu nosi nazwę „nagłówka”. Domyślnie nagłówek ma długość pięciu słów, szóste
jest opcjonalne. Ponieważ długość nagłówka jest zmienna, zawiera on pole „długości
13
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
nagłówka Internet” (ang. Internet Header Lenght – IHL) określające jego długość w słowach.
Nagłówek zawiera wszystkie informacje niezbędne do dostarczenia pakietu.
W polu danych, poniżej szóstego słowa znajdują się dane pochodzące z warstwy wyższej.
Opis poszczególnych pól datagramu IP wygląda następująco:
1) Słowo pierwsze składa się z:
Pole „wersja” (4 bity) - określa numer użytej wersji protokołu IP. Jest ono konieczne,
ponieważ routery lub komputery w sieci mogą używać różnych wersji IP.
Pole „długość nagłówka” (IHL) (4 bity) - określa liczbę słów 32 bitowych składających się na
nagłówek datagramu. Typowa (minimalna) długość nagłówka wynosi 5.
Pole „typ usługi” (8 bitów) - określa jakość usług jakiej wymaga się od sieci. Znaczenie
poszczególnych bitów tego pola jest następujące:
Pierwsze trzy pola określają tzw. pierwszeństwo, np.
000 - oznacza datagram zwykły,
001 - PRIORYTETOWY,
010 - natychmiastowy,
011 - błyskawiczny,
100 - datagram super błyskawiczny.
Bit czwarty to bit D określający opóźnienie w sieci:
(D=0 oznacza normalne, D=1 małe opóźnienie),
Kolejny bit to bit T związany z przepustowością:
(T=0 oznacza normalną, a T=1 dużą przepustowość),
Bit szósty R pozwala wybrać niezawodność w dostarczeniu datagramu:
(R=0 normalna, R=1 duża niezawodność).
Ostatnie dwa bity mają wartości równe zeru i są zarezerwowane dla przyszłych zastosowań.
Pole „całkowita długość pakietu” (16 bitów) - definiuje długość datagramu IP w bajtach
(oktetach). Maksymalna długość datagramu wynosi 65535 bajtów.
2) Trzy pola drugiego słowa w nagłówku są wykorzystywane przez protokół IP do
fragmentacji datagramów i do operacji odwrotnej, tzn. do składania z krótkich fragmentów
pierwotnego datagramu. Te pola to: identyfikacja, flaga i przesunięcie fragmentu.
Pole „identyfikacja” (16 bitów) - jest używane do jednoznacznego oznaczenia każdego
fragmentu pierwotnego datagramu. Identyfikator zamieszczony w tym polu jest powtarzany
we wszystkich fragmentach składających się na pierwotny datagram.
Pole „flagi” (3 bity) - pierwszy - zawsze zero, drugi określa czy można (1) czy nie można (0)
fragmentować datagram, trzeci - identyfikacja ostatniego fragmentu składającego się na
pierwotny datagram (wartość 0 określa ostatni, 1 oznacza kolejny fragment).
Pole „przesunięcie fragmentu” (13 bitów) - wskazuje, którą częścią całości pierwotnego
datagramu jest dany fragment. Poszczególne fragmenty mają pola danych o długości będącej
wielkością 8 bitów. Wyjątkiem jest ostatni fragment, którego długość wynika z długości
pierwotnego datagramu. W polu tym podaje się o ile zawartość fragmentu jest przesunięta w
stosunku do początku pola danych pierwotnego datagramu.
3) Słowo trzecie składa się z następujących pól:
Pole „czas życia” (8 bitów) - jest parametrem określającym ile czasu datagram może
przebywać w sieci. Czas życia datagramu ustala nadawca umieszczając w tym polu liczbę
naturalną. Przy przejściu przez kolejny router liczba ta jest zmniejszana o 1. Zmniejszenie do
zera powoduje odrzucenie datagramu.
14
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Pole „protokół” (8 bitów) - określa numer protokołu warstwy transportowej, do którego
należy przesłać dane z datagramu; np. numer 6 oznacza protokół TCP, a numer 1 protokół
UDP.
Pole „suma kontrolna nagłówka” (16 bitów) - służy do sprawdzania poprawności odbioru
wyłącznie nagłówka datagramu. Jest to szesnastobitowe jedynkowe uzupełnienie, jedynkowo
uzupełnionej sumy wszystkich szesnastobitowych słów nagłówka i danych pakietu. Przy
obliczaniu sumy kontrolnej przyjmuje się, że pole to zawiera same zera. Suma ta podlega
weryfikacji i modyfikacji np. w trakcie zmian pola „czas życia” w każdym węźle sieci.
4) SŁOWO CZWARTE W CAŁOŚCI ZAJMUJE POLE „ADRES ŹRÓDŁA” (32 BITY)
ADRESY IP ODPOWIEDNIO KOMPUTERA ŹRÓDŁOWEGO I DOCELOWEGO.
- KTÓRE ZAWIERAJA
5) Słowo piąte wskazuje pole „adres przeznaczenia” (32 bity) - zawierają adresy IP
odpowiednio komputera źródłowego i docelowego.
6) Na słowo szóste składają się pole „opcje” oraz pole „wypełnienie”. Pole „opcje” jest
zmiennej długości będącej wielokrotnością 8 bitów i jest wykorzystywane do określenia
dodatkowych wymagań dotyczących sposobu przesyłania datagramu, np. do rejestrowania
przebytej trasy lub do zapamiętania trasy zdefiniowanej w węźle źródłowym. Pole to nie musi
występować w nagłówku datagramu. Pole „wypełnienie” jest ewentualnym dopełnieniem
pola „opcje” do wielokrotności 32 bitów.
Protokół Internet dostarcza datagramy sprawdzając „adres przeznaczenia” w piątym
słowie nagłówka. Adres przeznaczenia jest standardowym 32 – bitowym adresem IP, który
identyfikuje docelową sieć i określa konkretny komputer w tej sieci (format adresu IP jest
wyjaśniony w dalszej części skryptu). Jeżeli adres przeznaczenia wskazuje na komputer
znajdujący się w lokalnej sieci, pakiet jest dostarczany bezpośrednio. Natomiast jeśli adres
przeznaczenia nie znajduje się w sieci lokalnej, pakiet jest przekazywany do urządzenia o
nazwie „gateway”. Gateway przekazuje pakiety między różnymi sieciami fizycznymi.
Decydowanie o tym, który gateway wybrać, nosi nazwę „rutowania” (ang. routing). Protokół
IP dokonuje osobnego rutowania dla każdego pakietu.
WIĘCEJ INFORMACJI O MECHANIZMIE RUTOWANIA PODANO W SKRYPCIE DO ĆWICZENIA „LAN 4
SIECI WAN – ROUTERY”.
3.2.3 ICMP
Integralną częścią IP jest protokół ICMP (ang. Internet Control Message Protocol). Jest
on ściśle związany z protokołem IP oraz warstwą Internet. Protokół IP jako protokół
bezpołączeniowy nie posiada mechanizmów informowania o błędach. Do tego celu
przeznaczony jest protokół ICMP. Umożliwia on przesyłanie między komputerami lub
routerami informacji o błędach występujących w funkcjonowaniu sieci IP podczas, np.:
- braku możliwości dostarczenia datagramu do miejsca przeznaczenia,
- zmiany wcześniej wyznaczonej trasy przez jeden z pośredniczących routerów,
- braku wolnej pamięci buforowej dla zapamiętania datagramu.
Informacje o tych zaburzeniach w działaniu sieci noszą nazwę komunikatów. Komunikaty
protokołu ICMP są przesyłane wewnątrz datagramów IP. Każdy komunikat ma własny
format. Jednak wszystkie rozpoczynają się takimi samymi polami:
- pole „typ” - określa rodzaj komunikatu,
- pole „kod” - opisuje kod błędu,
- pole „suma kontrolna” - zawiera szesnastobitowe jedynkowe uzupełnienie,
jedynkowo uzupełnionej sumy szesnastobitowych słów komunikatu ICMP,
- pole „wskaźnik” określa bajt, w którym wystąpił błąd,
- pole „informacja” - zawiera nagłówek oraz pierwsze 64 bity datagramu IP, w którym
15
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
wykryto błąd.
Występowanie dalszych pól zależy od typu komunikatu ICMP.
Protokół ICMP posługuje się 12 komunikatami, które są wymieniane między routerami i / lub
komputerami. Niektóre komunikaty mają postać jak poniżej:
- „przekroczenie czasu życia datagramu” - komunikat jest wysyłany jeśli po wykonaniu
odpowiednich obliczeń, wartość pola czas życia datagramu IP osiągnie zero,
- „wystąpienia niezrozumiałego parametru” - komunikat ten sygnalizuje wystąpienie
niedopuszczalnej wartości w pewnym polu nagłówka datagramu IP,
- „wykrycie nieosiągalnych miejsc przeznaczenia” - jeśli nieosiągalnym adresatem jest
komputer w sieci, to komunikat ten jest wysyłany przez routery pośredniczące w
transferze datagramów. Jeżeli nieosiągalnym miejscem przeznaczenia jest port, to
komputer docelowy wysyła komunikat chwilowego wstrzymania nadawania. W celu
sprawdzenia poprawności działania zdalnego systemu wysyła się sygnał echa. System
po otrzymaniu tego komunikatu musi natychmiast odesłać go do nadawcy. Brak
odpowiedzi oznacza, że testowany system nie jest sprawny,
- „wskazania innej trasy dla datagramów” - komunikat wysyłany do źródłowego
routera wskazuje, że znaleziono krótszą trasę dla datagramu.
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.
Sposób komunikowania się urządzeń przedstawia rysunku 12.
Rys. 12. Za pomocą polecenia „PING” generowana jest prośba o echo
3.3. Warstwa transportowa
Bezpośrednio nad warstwą Internet znajduje się warstwa transportowa Host-to-Host.
Zapewnia ona bezpośrednie połączenie między końcowymi użytkownikami (systemami)
wymieniającymi informacje. Do najważniejszych protokołów tej warstwy zaliczamy TCP
oraz UDP. Protokół TCP zapewnia usługi niezawodnie dostarczające dane, z wykrywaniem
na obu krańcach błędów transmisji i ich korekcją. UDP udostępnia usługi dostarczające
datagramy z małym narzutem, metodą bezpołączeniową. Oba protokoły przekazują dane
między warstwą aplikacji a warstwą Internet.
16
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
3.3.1 Protokół TCP
Protokół TCP jest protokołem połączeniowym umożliwiającym wykrywanie błędów na
obu końcach połączenia. Ma on możliwość ustanowienia i utrzymania połączenia wirtualnego
między dwoma użytkownikami w celu przesyłania danych, sterowania przepływem,
przesyłania potwierdzeń oraz kontroli i korekcji błędów.
Jak już wspomniano wcześniej pakiety mogą do stacji odbiorczej docierać w innej
kolejności, niż zostały wysłane ze stacji nadawczej. Aby poradzić sobie z tą niedogodnością,
został wprowadzony protokół TCP. To właśnie mechanizm protokołu TCP powoduje, że
przybywające do stacji odbiorczej pakiety są porządkowane w takiej kolejności, w jakiej
zostały nadane w stacji nadawczej. Ponadto protokół TCP przez cały czas transmisji czuwa
nad kompletnością komunikatu, który w stacji odbiorczej zostanie złożony z odebranych
pakietów, porządkowanych w kolejności ich nadawania. Może się zdarzyć, że jakiś pakiet
(lub większa ich liczba) nie dotrze do stacji odbiorczej. Wtedy także z pomocą przychodzi
TCP. Istota mechanizmu TCP w tym wypadku polega na tym, że w każdym pakiecie jest
zapisana liczba sekwencyjna, zwiększana przez protokół IP w momencie wysyłania pakietu
do stacji odbiorczej. Każdy pakiet niesie więc w sobie także informację o tym, jakie jest jego
miejsce w komunikacie. Liczba sekwencyjna pozwala więc protokołowi TCP na
uporządkowanie pakietów w stacji odbiorczej niezależnie od tego, w jakiej kolejności tam
dotarły. Ponadto liczba sekwencyjna umożliwia protokołowi TCP stwierdzenie, czy wszystkie
pakiety komunikatu dotarły do celu. Jeśli z jakiegoś powodu niektóre pakiety nie dotarły do
stacji odbiorczej, to protokół TCP wysyła do stacji nadawczej komunikat żądający
ponownego przesłania brakujących pakietów. Dzieje się to tak długo, aż wszystkie pakiety
zostaną przesłane do stacji odbiorczej. Wtedy ponownie zostaje sformowany komunikat
(złożony z odebranych pakietów) jako ciągły strumień informacji, który w takiej postaci może
być przetworzony przez stację odbiorczą. Protokół TCP wprowadza dodatkowe możliwości
funkcjonalne sieci, dotyczące przychodzących (odbieranych) komunikatów a polegające na
rozróżnianiu usługi według numerów portów. Podobnie jak adresy IP pozwalają
identyfikować poszczególne stacje sieciowe, numery portów określają typ usługi realizowanej
przez daną stację. Organizacja taka pozwala na to, że ten sam serwer może realizować wiele
różnych usług, na przykład Gopher, WAIS, WWW, Telnet itp. Niektóre wartości portów są
traktowane jako standardowe. I tak port 20 jest używany dla usługi FTP, port 70 dla Gophera,
a port 80 dla usług HTTP (WWW). Pomimo, że protokół TCP (obok protokołu IP) stanowi
istotny mechanizm zapewniający komunikację sieciową, to jednak są pewne sytuacje, kiedy
można obejść się bez stosowania tego mechanizmu. Ewidentnym tego przykładem jest
sytuacja, kiedy komunikat składa się tylko z jednego pakietu (ok. 200 bajtów). W takim
przypadku nie ma potrzeby zmiany kolejności pakietów w stacji odbiorczej. Stosuje się wtedy
protokół UDP, który podobnie jak TCP - wprowadza zróżnicowanie według numerów
portów, co umożliwia trafianie komunikatu w tryby odpowiedniej usługi. Trzeba podkreślić,
że numery portów określane przez UDP nie są równe numerom portów określanym przez
TCP, na przykład TCP 50 nie określa tej samej usługi co UDP 50.
Na rys. 13 przedstawiono format segmentu TCP, natomiast pod rysunkiem znajduje się opis
poszczególnych pól segmentu.
17
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Bity
0
4
8
12
16
Port źródłowy
1
Słowa
6
28
31
Port przeznaczenia
Numer potwierdzenia
3
5
24
Numer sekwencji
2
4
20
Dł. nagłówka
Zarezerwowane
Okno
Flagi
Priorytet
Suma kontrolna
Opcja
wypełnienie
W tym miejscu rozpoczynają się dane...
Rys. 13. Format segmentu TCP; opracowano wg [1]
1) Słowo pierwsze składa się z pola zawierającego numer „portu źródłowego” (16 bitów) i
pola zawierającego numer „portu przeznaczenia” (16 bitów) procesów aplikacyjnych
korzystających z usług TCP. Kombinacja tych numerów z adresami sieciowymi określa parę
gniazd tworzących połączenie protokołu TCP.
2) Słowo drugie to numer sekwencji (32 bity) zawiera numer sekwencji pierwszego bajtu
danych w segmencie. Ta wartość określa pozycję segmentu w strumieniu bajtów. Podczas
ustanawiania połączenia jeśli bit SYN w polu flagi jest ustawiony na 1, to w tym polu zawarty
jest inicjujący numer sekwencyjny ins, od którego rozpoczyna się numerację bajtów w
połączeniu. Zatem pierwszy wysłany bajt ma numer ins+1.
3) Słowo trzecie – „numer potwierdzenia” (32 bity) zawiera numer sekwencyjny następnego
oczekiwanego bajtu po stronie odbiorczej. Jednocześnie jest to potwierdzenie poprawnego
odbioru bajtów o numerach sekwencyjnych mniejszych od zawartego w tym polu.
Potwierdzenia mówią nadawcy ile bajtów danych zostało już poprawnie odebranych.
4) Słowo czwarte składa się z pola „długość nagłówka” (4 bity), które określa liczbę 32 bitowych słów w nagłówku segmentu TCP. Tym samym określone zostaje miejsce, w którym
rozpoczynają się dane. Pole to ma tak określone znaczenie tylko wtedy, gdy bit „ack” równy
jest 1.
Następnie pole „zarezerwowane” (6 bitów) jest przeznaczone dla przyszłych zastosowań i
zawiera same zera. Pole „flagi” składa się z sześciu bitów sterujących, które mają
następujące znaczenie:
- UGR wskazuje na ważność pola „priorytet”,
- ACK wskazuje na ważność pola „numer potwierdzania”,
- PSH WSKAZUJE NA DZIAŁANIE FUNKCJI WYMUSZAJĄCEJ WYSYŁANIE SEGMENTU,
- RST wyzerowanie połączenia,
- SYN wskazuje, że w polu „numer sekwencyjny” umieszczony jest inicjujący numer
sekwencyjny INS. Jest on przeznaczony do synchronizacji numerów sekwencyjnych
w fazie ustanowienia połączenia.
- FIN wskazuje, że nadawca nie ma nic więcej do nadania czyli oznacza sygnał końca
danych.
Ostatnim elementem w czwartym słowie jest pole „okno” (16 bitów), które określa liczbę
bajtów jaką może jeszcze zaakceptować odbiorczy moduł TCP.
18
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
5) Słowo piąte zawiera pole „suma kontrolna” czyli jest to 16 - bitowe jedynkowe
uzupełnienie, jedynkowo uzupełnionej sumy wszystkich 16 - bitowych słów w segmencie. Ta
suma obejmuje zarówno nagłówek jak i dane segmentu, a pole „priorytet” (16 bitów) jest
interpretowane tylko wtedy, gdy bit UGR jest równy 1. Pole to zawiera numer sekwencyjny
bajtu następującego po pilnych danych.
6) Ostatnie słowo szóste zawiera pole „opcja” które ma długość zmienną będącą
wielokrotnością 8 bitów.
Zawiera ono numery opcji - każdy numer zapisany w jednym bajcie. Dla protokołu TCP
zdefiniowano trzy opcje:
0 - koniec listy opcji,
1 - brak działania,
2 - MAKSYMALNA DŁUGOŚĆ SEGMENTU.
Ostatnim elementem jest pole „wypełnienie” uzupełniające nagłówek do wielokrotności 32
bitów.
Ze względu na to, że TCP jest protokołem zorientowanym połączeniowo, więc w celu
przesłania danych między dwoma modułami TCP, zainstalowanymi w różnych komputerach,
konieczne jest ustanowienie, utrzymanie i rozłączenie „połączenia wirtualnego”.
Rys. 14. Potrójne uzgodnienie, przed wymianą danych
Na rysunku 14 pokazano proces ustanowienia połączenia, który odbywa się w
następujących etapach : nadawczy moduł TCP wysyła do odbiorczego modułu TCP segment
z bitem SYN=1 i z proponowanym numerem INS w polu numer sekwencyjny. Odbiorczy
moduł TCP, jeśli zgadza się na ustanowienie połączenia, przesyła zwrotnie segment z bitami
SYN=1 i ACK=1, a w polu numer sekwencyjny podaje numer INS, z którym rozpocznie
działanie. Następnie nadawczy moduł TCP wysyła segment z potwierdzeniem otrzymania
zgody (ACK=1) na ustanowienie połączenia.
W ten sposób zostaje ustanowione połączenie wirtualne między dwoma modułami TCP i
mogą zostać przesyłane segmenty z danymi. Segmenty te mogą być przesyłane tym
połączeniem w obu kierunkach, ponieważ TCP umożliwia transfer danych między dwoma
modułami w trybie dupleksowym.
Dla zapewnienia niezawodnej transmisji TCP wykorzystuje sekwencyjną numerację
bajtów oraz mechanizm pozytywnych potwierdzeń z retransmisją. „Numer sekwencji”
przypisany do każdego przesyłanego bajtu danych pozwala na jego jednoznaczną
identyfikację, a także jest używany w mechanizmie przesyłania potwierdzeń. Ze względu na
to, że kolejne bajty są numerowane począwszy od INS, a zatem numer pierwszego bajtu
wysłanego w połączeniu wirtualnym wynosi INS+1 ( zazwyczaj INS=0).
19
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Nadawczy moduł TCP dokonuje retransmisji danych do czasu, aż otrzyma potwierdzenie
poprawnego ich przyjęcia przez odbiorczy moduł TCP. Rozpoczęcie retransmisji
uwarunkowane jest przekroczeniem wcześniej ustalonego czasu oczekiwania na nadejście
potwierdzenia.
Po stronie odbiorczej poprawność odbioru danych sprawdzana jest przy użyciu pola
„suma kontrolna” znajdującego się w nagłówku segmentu. Jeżeli dane są akceptowane to
moduł TCP wysyła zwrotnie pozytywne potwierdzenie. Jest ono zawarte w polu „numer
potwierdzenia”. Wszystkie bajty danych o numerach sekwencyjnych mniejszych od wartości
zawartej w tym polu zostały odebrane poprawnie.
W sytuacji, gdy dane zostały odebrane poprawnie, a nadawczy moduł TCP retransmitował je
np. z powodu zaginięcia segmentu z pozytywnym potwierdzeniem, odbiorczy moduł TCP ma
możliwość odrzucenia nadmiarowych danych (duplikatów).
Protokół TCP umożliwia również zarządzanie buforami. Odbywa się to przez wskazanie
ile bajtów odbiorczy moduł TCP jest w stanie zaakceptować. Liczba akceptowanych bajtów
określona jest w polu „okno” w nagłówku segmentu przesyłanego do nadawczego modułu
TCP. Liczba ta może być zmieniana w trakcie trwania połączenia wirtualnego.
TCP realizuje również koncepcję funkcji wymuszającej. Operacja ta jest realizowana
wtedy, gdy aplikacja chce mieć pewność, że wszystkie dane przekazane przez nią do modułu
TCP zostały wysłane. W odpowiedzi na żądanie aplikacji, moduł TCP wysyła wszystkie dane
znajdujące się w buforach w postaci jednego lub kilku segmentów do odbiorczego modułu
TCP. Działanie funkcji wymuszającej sygnalizowane jest bitem PSH równym 1.
Po przesłaniu danych następuje rozłączenie połączenia wirtualnego. Jest ono realizowane
trójetapowo z użyciem bitu FIN ustawionego na 1.
Należy tu przypomnieć, że moduł TCP w celu przesyłania segmentu przez sieć przekazuje
go do warstwy internet. Tam jest on umieszczany wewnątrz datagramu, czyli inaczej segment
jest uzupełniany o nagłówek datagramu IP. Z kolei protokół IP przekazuje ten datagram do
warstwy dostępu do sieci, gdzie po obudowaniu o kolejny nagłówek tworzona jest ramka
przesyłana przez sieć.
3.3.2 Protokół UDP
Protokół UDP jest protokołem bezpołączeniowym, nie posiadającym mechanizmów
sprawdzania poprawności dostarczenia danych do miejsca przeznaczenia. Segmenty TCP jak i
pakiety UDP w celu ich dalszego przesłania są umieszczane wewnątrz datagramu IP.
Bity
0
16
32
Port źródłowy
Port przeznaczenia
Długość
Suma kontrolna
W tym miejscu rozpoczynają się dane...
Rys. 15. Format wiadomości UDP; opracowano wg [1]
Na rysunku 15 przedstawiono format wiadomość UDP który składa się z kilku
elementów:
Pole „port źródłowy” (16 bitów) określa numer portu nadawczego procesu aplikacji. Jeśli
pole to nie jest wykorzystane, to zawiera same zera.
Pole „port przeznaczenia” (16 bitów) zawiera numer procesu aplikacji na komputerze
docelowym.
20
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Pole „długość” (16 bitów) zawiera całkowitą długość pakietu (nagłówek i dane) w bajtach.
Pole „suma kontrolna” jest szesnastobitowym jedynkowym uzupełnieniem jedynkowo
uzupełnionej sumy słów nagłówka i danych pakietu.
Protokół UDP jest wykorzystywany w sytuacjach, gdy przesyłamy niewielką liczbę
danych. Również protokół ten może być wykorzystywany przez aplikacje działające według
modelu zapytanie-odpowiedź. Odpowiedź można potraktować jako potwierdzenie przyjęcia
pytania. Jeżeli odpowiedź nie nadchodzi w określonym czasie, aplikacja po prostu wysyła
kolejne pytanie. Wiele aplikacji ma wbudowane własne metody zapewniające poprawność
transmisji, a narzucanie im metod warstwy transportowej jest nieefektywne.
3.4 Warstwa aplikacji
Na szczycie protokołów TCP/IP znajduje się warstwa aplikacji. Obsługuje ona funkcje
związane z określoną aplikacją korzystającą z sieci. Istnieje wiele aplikacji TCP/IP, które
dostępne są wraz z prawie każdą implementacją tego protokołu. Przykładami mogą być
programy: Telnet, FTP, Sendmail, itd.
Protokoły warstwy prezentacji i aplikacji przedstawiono poniżej:
3.4.1 FTP
FTP działający na zasadzie klient-serwer jest to protokół umożliwiający przesyłanie
plików przez sieć Internet. FTP jest najpopularniejszą metodą kopiowania plików z odległej
maszyny do lokalnej lub odwrotnie. Protokół FTP jest znacznie starszy niż stosowany w sieci
WWW protokół HTTP, będąc obecnym w Internecie od samych jego początków (dokładnie
od 1971 roku). Obok poczty elektronicznej i Telnetu jest jedną z trzech podstawowych usług
zaprojektowanych dla sieci ARPANet, poprzedniczki Internetu.
Aby użytkownik mógł pobrać plik z komputera znajdującego się w sieci, konieczne jest,
aby komputer ten posiadał zainstalowane oprogramowanie mogące rozpoznawać i realizować
tego typu żądania nadchodzące z sieci Internet. Maszyna spełniająca te warunki nazywana jest
serwerem FTP. Użytkownik łączy się z serwerem FTP za pomocą specjalnego programu,
nazywanego klientem FTP. Sesja FTP składa się z trzech części.
Pierwsza z nich to zalogowanie się na odległym komputerze przez podanie nazwy
użytkownika i hasła. Na ich podstawie serwer FTP identyfikuje użytkownika i przydziela mu
na czas sesji określone prawa dostępu do swoich zasobów. Posiadanie konta i związanych z
nim odpowiednich uprawnień na komputerze docelowym jest warunkiem koniecznym do
rozpoczęcia transmisji jakichkolwiek danych. Konto takie jest przydzielane przez
administratora systemu.
Druga część sesji to już „właściwa” praca, podczas której wykonuje się operacje na
odległych plikach i katalogach – kopiowanie, przenoszenie, zmiana nazwy, itp. Przed
rozpoczęciem transmisji konieczne jest podanie identyfikatora użytkownika oraz hasła
zabezpieczającego odległy komputer przed niepowołanym dostępem. Na serwerach FTP z
dostępem publicznym - tzw. anonimowym FTP - identyfikatorem użytkownika jest zazwyczaj
„anonymous”, a hasłem własny adres poczty elektronicznej. Etap ostatni to zamknięcie sesji
poleceniem „close”. Niektóre serwery wysyłają na zakończenie krótką statystykę, w której
zawarte są m.in. informacje o czasie trwania sesji oraz ilości przesłanych danych. Przesyłanie
plików przez FTP może odbywać się na dwa sposoby – binarnie oraz w trybie ASCII.
Pierwszy z nich przesyła plik „taki, jaki jest” – bez dokonywania w nim żadnych zmian.
Drugi natomiast, w założeniach przeznaczony do transmisji zbiorów tekstowych, modyfikuje
sposób kodowania niektórych bajtów. Należy pamiętać, że plik binarny (program, grafika,
archiwum ZIP) przesłany w trybie ASCII nie będzie się już do niczego nadawał. Tryb binarny
można natomiast bez obaw stosować do transmisji plików tekstowych.
21
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Podobnie jak każdy komputer dostępny w sieci Internet serwer FTP posiada własny,
indywidualny adres pozwalający jednoznacznie go zidentyfikować. Nazwa domenowa bardzo
często rozpoczyna się od członu „ftp”, po którym następuje domena instytucji bądź firmy
utrzymującej dany serwer, np. ftp.microsoft.com. Pełny adres internetowy (URL) wygląda
nieco inaczej niż w przypadku serwerów WWW, bowiem zamiast prefiksu „http://” jest
używany „ftp://”. Pozostając przy poprzednim przykładzie, URL serwera FTP firmy
Microsoft będzie miał postać:
„ftp://ftp.microsoft.com.” Dalsze człony adresu (ścieżka dostępu do katalogu lub pliku) są już
budowane podobnie do adresów w sieci WWW.
Powyższe adresy wskazują na serwer anonimowy. Jeżeli dostęp do serwera wymaga podania
nazwy użytkownika oraz hasła, należy dołączyć te dane do adresu w następujący sposób:
ftp://uzytkownik:[email protected]”.
3.4.1.1 Korzystanie z FTP
Aby użytkownik mógł pobrać plik z komputera znajdującego się w sieci, konieczne jest
by komputer ten posiadał zainstalowane oprogramowanie zdolne rozpoznawać i realizować
tego typu żądania nadchodzące z sieci. Maszyna spełniająca te warunki nazywana jest
serwerem FTP. Użytkownik łączy się z serwerem FTP za pomocą specjalnego programu,
nazywanego klientem FTP. Dawniej, kiedy nie było jeszcze programów graficznych,
korzystanie z klienta FTP wymagało opanowania komend pochodzących z języka
angielskiego. Przykładem takiego klienta działającego w trybie tekstowym jest dostarczany
wraz z systemem Windows 95/98 program ftp.exe - można go uruchomić otwierając menu
Start, wybierając polecenie Uruchom i wpisując w otwartym oknie "ftp". Rysunek 16
przedstawia widok ekranu podczas sesji FTP.
Rys. 16. Widok ekranu podczas sesji FTP.
3.4.1.2 Podstawowe polecenia
Chociaż w dzisiejszych czasach coraz rzadziej używa się do połączeń FTP klientów
pracujących w trybie tekstowym, możemy spotkać się z sytuacją, w której będziemy
zmuszeni do skorzystania z takiego programu. Wówczas pomocny może okazać się
prezentowany w tablicy 4 zestaw najważniejszych poleceń FTP. Na początek można również
wpisać komendę help, która przedstawia listę dostępnych poleceń wraz z ich składnią.
Tablica 4. Podstawowe polecenia FTP
22
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Polecenie
ascii, asc
binary, bin
cd
close
delete
dir, ls
get, recv
hash, ha
help, ?
lcd
mget
mput
open
prompt
put, send
pwd
status
user
Opis
ustanowienie tekstowego trybu transmisji
ustanowienie binarnego trybu transmisji
zmiana bieżącego katalogu na serwerze
zakończenie sesji FTP
usunięcie pliku o podanej nazwie
wyświetlenie zawartości bieżącego katalogu
przesłanie pliku z serwera do komputera lokalnego
włączenie/wyłączenie wyświetlania znaków "#" po przesłaniu każdego kilobajta danych
lista wszystkich dostępnych poleceń
zmiana katalogu na dysku komputera lokalnego
transfer wielu plików z serwera do komputera lokalnego
transfer wielu plików z komputera lokalnego do serwera
otwarcie połączenia z serwerem
włączenie/wyłączenie wyświetlania zapytań podczas transmisji wielu plików
przesłanie pliku z komputera lokalnego do serwera
wyświetlenie nazwy bieżącego katalogu na serwerze
wyświetlenie aktualnego stanu wszystkich opcji
logowanie użytkownika
3.4.2 HTTP
Protokół leżący u podstaw działania WWW (ang. World Wide Web) określa sposób
formatowania i przesyłania dokumentów oraz komendy sterujące pracą serwerów
internetowych i przeglądarek. Przykładowo, po wpisaniu w przeglądarce URL adresu strony
WWW (rozpoczynającego się prefiksem "http://") do serwera zostaje przesłana komenda
protokołu HTTP nakazująca odszukanie i wysłanie żądanego dokumentu. Poważną wadę
HTTP stanowi brak możliwości zapamiętywania informacji o wcześniejszych wywołaniach każde polecenie wykonywane jest niezależnie od wyniku poprzednich. Uniemożliwia to w
praktyce tworzenie witryn zdolnych w sposób interaktywny reagować na poczynania
użytkownika. Stało się to głównym impulsem do opracowania nowych technologii, które
pozwoliłyby ominąć tę niedogodności (ActiveX, ASP, CGI, cookie, Java). Większość
przeglądarek oraz serwerów akceptuje najnowszą wersję protokołu - HTTP 1.1. Jedną z
najważniejszych cech HTTP 1.1 jest możliwość utrzymywania stałego połączenia między
serwerem i klientem. Przeglądarka może teraz w czasie jednego połączenia pobrać z serwera
większą liczbę plików, podczas gdy wcześniejsza wersja protokołu wymagała nawiązywania
nowego połączenia dla każdego pliku. Osiągnięto w ten sposób blisko 20 procentowe
przyspieszenie ładowania się dokumentów WWW.
3.4.3 POP
Protokół obsługi poczty elektronicznej opisujący sposób wymiany informacji między
klientem a serwerem. Umożliwia przechowywanie nadchodzących wiadomości na serwerze
internetowym do czasu pobrania ich przez program zainstalowany na komputerze
użytkownika. Wykorzystywany przede wszystkim tam, gdzie brak jest stałego połączenia z
siecią - np. połączeniach modemowych. Zamiast czytać i przygotowywać przesyłki będąc
cały czas połączonym z serwerem, użytkownik może zapłacić jedynie za czas potrzebny na
ściągnięcie poczty na swój dysk twardy i już w trybie offline przygotowywać odpowiedzi.
Domyślnie pobrana poczta jest usuwana z serwera. Można jednak zażądać jej pozostawienia,
jeśli korzystamy z więcej niż jednego komputera - zmieniając ustawienia programu
pocztowego. Istnieją dwie wersje standardu: POP2 obowiązujący w latach 80-tych i
wymagający dodatkowo do wysyłania wiadomości protokołu SMTP, oraz najnowszy POP3,
23
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
który może być używany niezależnie od SMTP. Obsługę POP3 zapewniają wszystkie
najważniejsze programy pocztowe: Netscape Messenger, MS Outlook, Eudora, Pegasus Mail.
3.4.4 DNS
Protokół organizujący system nazewnictwa w sieci Internet. Pozwala nadawać
komputerom świadczącym pewne usługi w sieci opisowe nazwy domenowe
(np. www.netscape.com) i tłumaczy je na używane przez komputery adresy IP (np.
198.95.251.10). Nazwy domenowe służą jedynie wygodzie użytkowników Sieci. Komputery
potrafią operować wyłącznie na adresach IP – zanim przeglądarka WWW uzyska dostęp do
wybranej strony internetowej, musi najpierw poznać przyporządkowany jej adres IP.
Podobnie jest w przypadku programów pocztowych, klientów FTP oraz innych narzędzi
internetowych. Dopiero uzyskanie przez program adresu IP odległego komputera pozwala na
nawiązanie połączenia i rozpoczęcie transmisji danych. Ze względu na to, że większość
użytkowników woli posługiwać się nazwami domenowymi zamiast trudnych do zapamiętania
adresami IP, konieczny jest jakiś sposób „tłumaczenia” jednych na drugie. Jednak
przyporządkowywaniem nazw domenowych do adresów IP nie rządzą żadne stałe reguły.
Dlatego jedynym wyjściem jest utrzymywanie specjalnych baz danych z informacjami o
każdym adresie symbolicznym i odpowiadającym mu adresie IP.
Bazy te mieszczą się na wyróżnionych serwerach, nazywanych serwerami nazw lub
serwerami DNS12 (ang. nameserver, domain name server). Działają one w sieci przez 24
godziny na dobę i udostępniają usługę polegającą na przekształcaniu adresów symbolicznych
na adresy IP i vice versa. Wobec ogromu możliwych i istniejących nazw zrozumiałe jest, że
pojedynczy komputer nie poradziłby sobie z taką ilością informacji oraz liczbą odwołań do
niego. Bazy przechowywane są zatem w postaci rozproszonej – żadna z tych maszyn nie
dysponuje informacjami adresowymi dotyczącymi całego Internetu. Serwery nazw znajdują
się natomiast w każdej domenie przechowując jedynie część informacji – adresy serwerów
nazw dla obejmowanych przez nią domen niższego poziomu. Dla przykładu serwer DNS dla
krajowej domeny .pl będzie rozpoznawał takie nazwy w następujących domenach: „edu.pl”,
„com.pl”, „org.pl”, ”wroc.pl”, itp. oraz będzie potrafił wskazać adresy serwerów DNS tych
domen, natomiast serwer DNS dla domeny „edu.pl” będzie zawierał adresy serwerów DNS
dla takich poddomen jak np. „icm.edu.pl” czy „agh.edu.pl”. Serwer DNS niższego poziomu
(np. dla poddomeny icm.edu.pl) „będzie pamiętał” już nazwy domenowe konkretnych
komputerów (np. sunsite.icm.edu.pl lub infoseek.icm.edu.pl) oraz odpowiadające im adresy
IP. Na poziomie globalnym system DNS wieńczą tak zwane główne serwery nazw (ang. root
level servers), które znajdują się w Stanach Zjednoczonych i podłączone są do dużych i
szybkich sieci szkieletowych Internetu. Przechowują one adresy serwerów nazw dla domen
najwyższego poziomu (a więc „.com”, „.edu”, „.org”, itp. oraz domen krajowych), a ich
adresy muszą być znane każdemu innemu serwerowi nazw. Serwery DNS działają na tyle
skutecznie, że w zasadzie do podróży po sieci znajomość adresów IP nie jest potrzebna –
wystarczy znać tylko opisowe adresy domenowe. Gdy zechcemy połączyć się z dowolnym
komputerem w sieci Internet, następuje cała seria „odpytywania” serwerów nazw
znajdujących się na kolejnych poziomach hierarchii domen, począwszy od serwera DNS
skojarzonego z najszerszą domeną wysokiego poziomu aż do serwera DNS, znającego adres
IP szukanego komputera. Aby móc pracować w sieci Internet, nasz komputer musi znać
adresy IP serwerów DNS dla swojej domeny – podaje je najczęściej provider lub, jeżeli
łączymy się z pracy czy uczelni, administrator sieci lokalnej. Są to jedne z najważniejszych
danych, które należy podać podczas konfiguracji systemu do połączeń z Siecią. Zazwyczaj
dla każdej domeny są prowadzone dwa niezależne serwery nazw, dzięki czemu w razie awarii
12
DNS (ang. Domain Name System) – system stosowany w Internecie dla translacji nazw węzłów sieci na adresy
sieciowe.
24
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
lub zbyt dużego obciążenia podstawowego serwera DNS (ang. primary name server) można
szybko „odpytać” serwer rezerwowy (ang. secondary name server).
3.4.5 DHCP
DHCP13 to protokół usługi TCP/IP oferujący dynamiczną, dzierżawioną konfigurację
adresów IP pozwalający dodatkowo na rozsyłanie innych parametrów konfiguracji do
odpowiednich klientów sieciowych. Protokół DHCP zapewnia bezpieczną, niezawodną i
łatwą konfigurację sieci TCP/IP, zapobiega występowaniu konfliktów adresów i ułatwia
optymalne wykorzystanie adresów IP klientów w sieci. Protokół DHCP wykorzystuje model
typu klient/serwer, w którym serwer DHCP zajmuje się centralnym zarządzaniem adresami
używanymi w sieci. Klienci obsługujący protokół DHCP mogą żądać i uzyskać dzierżawiony
adres IP z serwera DHCP jako część procesu rozruchu.
3.4.6 SNMP
Protokół SNMP definiuje zależność klient-serwer - klientem jest program zarządzający
(ang. network manager), który łączy się z serwerami za pomocą specjalnych programów,
zwanych agentami SNMP, wchodzących w skład wewnętrznego oprogramowania urządzeń
sieciowych. Każdy agent SNMP obsługuje własną niewielką bazę danych MIB14
(ang. - Management Information Base), zawierającą informacje o stanie i historii pracy
urządzenia, a także zmienne sterujące jego pracą. Specyfikacja SNMP umożliwia
rozszerzenie standardowego zestawu wartości o zmienne charakterystyczne dla danego
urządzenia (private MIB). Urządzeniami tymi mogą być praktycznie dowolne urządzenia
sieciowe - mostki, bramki, routery, serwery, modemy, drukarki itd. Instrukcje wysyłane przez
program zarządzający odwołują się do zmiennych MIB, które - w zależności od
przeznaczenia - mogą być odczytywane lub modyfikowane. Definicja zmiennych MIB
obsługiwanych przez obecnego w urządzeniu agenta SNMP opisana jest w plikach
deskryptorów w formacie ASN.1 (ang. Abstract Syntax Notation), dzięki czemu program
zarządzający orientuje się w możliwościach agenta. W ten sposób zapewniono rozszerzalność
protokołu i możliwość dostosowania go do specyfiki konkretnych urządzeń.
Specyfikacja SNMP definiuje trzy aspekty protokołu: standardowy format komunikatów
UDP (ang. User Datagram Protocol), standardowy zestaw obiektów (przede wszystkim
wartości umożliwiających monitorowanie TCP, IP, UDP oraz interfejsów urządzenia) oraz
standardowy sposób rozszerzania zestawu obiektów. Zestaw komunikatów obejmuje trzy
żądania oraz komunikat inicjowany przez agenta. Żądanie "get" umożliwia odczytanie
wartości wybranego obiektu MIB w celu sprawdzenia stanu urządzenia, jego sprawności itp.
bez ustanawiania z nim połączenia TCP, wiążącego się z dodatkowym obciążeniem. W
zamian agent wysyła komunikat ("get-response") również opisany standardem. Żądanie "get
next" powoduje zwrócenie wartości następnego obiektu MIB bez podawania jego nazwy umożliwia to szybkie przeglądanie kolejnych wartości opisujących stan urządzenia. Żądanie
"set" służy do ustawiania wartości obiektów, co pozwala sterować funkcjami urządzenia i
konfigurować parametry jego pracy (włączanie i wyłączanie interfejsów, odłączanie
użytkowników, ustawianie rejestrów). Ostatnim komunikatem jest "trap" - komunikat
wysyłany przez agenta SNMP w celu np. zasygnalizowania jakiegoś problemu. Możliwość
sygnalizowania wymaga oczywiście uprzedniego skonfigurowania urządzenia - podania
adresu jednego lub większej liczby urządzeń, do których informacja taka ma trafić. Zestaw
13
DHCP (ang. Dynamic Host Configuration Protocol) – protokół dynamicznego przydziału adresów IP,
umożliwiający ponowne użycie tych samych adresów, gdy host już ich nie potrzebuje.
14
MIB (ang. Management Information Base) – baza danych informacji o zarządzaniu siecią, która jest
przeszukiwana przez protokół zarządzania siecią, jaki jak SNMP. Wartość obiektu MIB może być zmieniona
albo odszukana za pomocą poleceń SNMP. Obiekty MIB są zorganizowane w strukturę drzewa, która zawiera
publiczne (standardowe) oraz prywatne (zastrzeżone) gałęzie.
25
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
danych, na którym operuje agent SNMP nosi nazwę MIB (ang. Management Information
Base). Warto nadmienić, że termin ten używany jest również do określenia pojedynczego
obiektu SNMP lub części zestawu danych. Standardowy MIB zawiera obiekty umożliwiające
pomiar i monitorowanie aktywności IP, TCP, UDP, ścieżek IP, połączeń TCP, interfejsów, a
także ogólny opis urządzenia. Każdej wartości zestawu danych towarzyszy oficjalna nazwa
(np. "sysUpTime") oraz jednoznaczny z nią liczbowy identyfikator obiektu (w tym przypadku
"1.3.6.1.2.1.1.3.0"). Naturalną tendencją jest używanie raczej bardziej czytelnych nazw
zamiast enigmatycznych identyfikatorów. Proces rozszerzania MIB o obiekty nie
przewidziane standardem (co jest jednym z filarów sukcesu SNMP) nazywany jest kompilacją
MIB. Takiej kompilacji dokonuje producent w przypadku nowego urządzenia - od tej pory
MIB urządzenia ma w zasadzie niezmienną postać. Definicja MIB dostarczana jest
użytkownikowi wraz z urządzeniem w postaci plików ASN.1 i służy do skompilowania MIB
dla programu zarządzającego. Baza MIB ma strukturę drzewiastą, zaczynającą się od głównej
gałęzi "internet" zawierającej gałęzie "mgmt" (standardowe obiekty SNMP), "private"
(rozszerzone obiekty SNMP), "experimental" i "directory". "Liśćmi" drzewa są obiekty, które
można podzielić na dwa rodzaje: tzw. dyskretne, zawierające po jednej wartości oraz
tablicowe, w których można przechowywać wiele wartości. Obiekty dyskretne używane są
dla wartości opisujących np. przepływność danych. Przykładem zastosowania obiektów
tablicowych może być np. opis poszczególnych interfejsów urządzenia. W zależności od
rodzaju przechowywanych danych i sposobu ich obsługi wyróżnia się różne typy obiektów:
tekstowe, wyliczeniowe, liczniki (wartość może tylko rosnąć), mierniki, zegary, adresy IP,
adresy fizyczne (MAC) itd. Każdy z obiektów zaopatrzony jest w atrybut, determinujący
sposób dostępu - tylko odczyt, tylko zapis oraz odczyt i zapis. Do odczytu i zapisu obiektu
wymagana jest również znajomość tzw. community name, czyli nazwy definiowanej przez
administratora przy konfigurowaniu urządzenia - wbrew znaczeniu określenia "community
name" nazwy te nie są zazwyczaj podawane do publicznej wiadomości i pełnią rolę swego
rodzaju haseł ograniczających dostęp do obiektów.
3.4.7 SMTP
SMTP to względnie prosty, tekstowy protokół, w którym określa się co najmniej jednego
odbiorcę wiadomości (w większości przypadków weryfikowane jest jego istnienie), a
następnie przekazuje treść wiadomości. Łatwo przetestować serwer SMTP przy użyciu
programu telnet. SMTP zaczęło być szeroko używane we wczesnych latach osiemdziesiątych
dwudziestego wieku. W tamtym okresie było to uzupełnienie protokołu UUCP, który lepiej
sprawdzał się przy przekazywaniu poczty między maszynami posiadającymi jedynie
okresowe połączenie. SMTP natomiast lepiej działa, gdy zarówno maszyna nadająca jak
odbierająca są na stałe przyłączone do sieci. Jednym z pierwszych programów do przesyłania
poczty, w którym zastosowano SMTP był sendmail. W roku 2001 istniało przynajmniej 50
programów implementujących SMTP jako klienta (nadawca) lub serwer (odbiorca
wiadomości). Niektóre inne popularne programy serwerów SMTP to exim, Postfix firmy
IBM, Qmail Bernsteina, i Microsoft Exchange. Protokół ten nie radził sobie dobrze z plikami
binarnymi, ponieważ stworzony był w oparciu o czysty tekst ASCIL. W celu kodowania
plików binarnych do przesyłu przez SMTP stworzono standardy takie jak MIME. W
dzisiejszych czasach większość serwerów SMTP obsługuje rozszerzenie 8BITMIME
pozwalające przesyłać pliki binarne równie łatwo jak tekst. SMTP nie pozwala na pobieranie
wiadomości ze zdalnego serwera. Do tego celu służą POP3 lub IMAP. Jednym z ograniczeń
pierwotnego SMTP jest brak mechanizmu weryfikacji nadawcy, co ułatwia
rozpowszechnianie niepożądanych treści poprzez pocztę elektroniczną (wirusy, spam). Żeby
temu zaradzić stworzono rozszerzenie SMTP-AUTCH.
26
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
3.4.8 TFTP
Protokół TFTP15 zdefiniowany w specyfikacji RFC16 uaktualnianej przez dokumenty
RFC 1783, 1785, 2347 oraz 2349, jest względnie prostym protokołem wykorzystywanym do
przesyłania plików, które są (zazwyczaj) małe i nie wymagają dużej liczby fragmentacji. Jest
on implementowany na protokole UDP, chociaż jego definicja nie wyklucza stosowania
innych protokołów. Jest on pozbawiony większości funkcji protokołu FTP — na przykład nie
może wyświetlać katalogów, ani uwierzytelniać użytkowników — a jego jedynym zadaniem
jest odczytywanie plików z komputera zdalnego i transmitowanie do niego plików. Protokół
TFTP jest przeważnie wykorzystywany przez aplikacje poczty elektronicznej. Przesył TFTP
rozpoczyna się od żądania odczytu lub zapisu pliku, które żąda również połączenia. Plik
wysyłany jest w blokach o stałej długości 512 bajtów. Każdy z pakietów musi być
potwierdzony przez pakiet potwierdzający, zanim będzie mógł zostać wysłany następny
pakiet. Pakiet danych mniejszy niż 512 bajtów wskazuje zakończenie przesyłu. Jeżeli jakiś
pakiet ulegnie zagubieniu, to u planowanego odbiorcy następuje przeterminowanie, a ten
następnie żąda transmisji zagubionego pakietu. Pakiet retransmitowany w tym przypadku, to
ostatni pakiet poprzedniej transmisji, więc nadawca musi zachować do retransmisji tylko
jeden pakiet. Poprzednie potwierdzenia gwarantują, że pakiety uprzednio wysłane zostały
otrzymane. Wskazówka: Specyfikacja RFC 1783 definiuje opcję rozmiaru bloku, która
pozwala TFTP stosować rozmiar pakietu danych inny (zazwyczaj większy) niż 512 bajtów.
Każdemu z pakietów danych towarzyszy numer bloku. Bloki mają kolejne numery
rozpoczynające się od „1”, za wyjątkiem pozytywnej odpowiedzi na żądanie zapisu, która jest
pakietem potwierdzającym o numerze bloku „0”. Zazwyczaj pakiet potwierdzający zawiera
numer bloku potwierdzanego pakietu danych.
Poza jednym wyjątkiem (opisanym poniżej), błąd sprawia zakończenie połączenia. Błąd,
sygnalizowany przez pakiet błędu nie jest potwierdzany ani retransmitowany. Dlatego też,
kiedy pakiet ulegnie zagubieniu, do wykrycia zakończenia wykorzystywane jest
przeterminowanie. Jeżeli port źródłowy otrzymanego pakietu jest niewłaściwy, to owa
okoliczność błędu nie powoduje zakończenia. Zamiast tego do hosta, od którego pochodzi
pakiet, wysłany zostaje pakiet błędu.
4. Podsieci
Standardowa struktura adresów IP może być lokalnie modyfikowana poprzez użycie
bitów adresowych komputerów jako dodatkowych bitów określających sieć. W istocie „linia
podziału” między bitami adresowymi sieci i bitami adresowymi komputerów jest przesuwana,
tworzy dodatkowe sieci, ale redukuje maksymalną liczbę systemów, jakie mogą znaleźć się w
każdej z nich. Te nowo wykorzystane bity noszą nazwę podsieci (ang. subnets). Pozwalają
definiować logiczne sieci wewnątrz jednej większej posiadającej jeden adres IP.
Podsieć jest definiowana za pomocą maski bitowej, tzw. maski podsieci, przykładanej do
adresu IP. Jeśli bit w masce jest 1, to odpowiedzialny mu bit w adresie IP jest interpretowany
jako bit adresu sieci. Natomiast jeżeli bit maski wynosi 0, oznacza to, że należy on do części
adresu określającego komputer. Podsieć jest znana wyłącznie lokalnie, dla całej reszty
Internetu adres jest zawsze interpretowany jako standardowy.
Maska podsieci która może być powiązana z typowym adresem klasy B wynosi
255.255.0.0. Najczęściej używana maska podsieci rozszerza części sieciową adresu klasy B
na dodatkowy bajt. Maska ma wtedy postać 255.255.255.0, zatem wszystkie bity w trzech
15
TFTP (ang. Trivial File Transfer Protocol) – uproszczona wersja FTP, która pozwala na transfer plików
między komputerami w sieci.
16
RFC (ang. Request For Comments) – dokumenty używane jako podstawowy zestaw informacji na temat
Internetu.
27
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
pierwszych bajtach są jedynkami, a w ostatnim zerami. Pierwsze dwa bajty definiują sieć
klasy B, następny stanowi adres podsieci, a ostatni bajt identyfikuje komputer w podsieci.
Rys. 18. Podział sieci 172.16.0.0 na cztery podsieci
W środowiskach wielosieciowych każda podsieć jest połączona z Internetem za
pośrednictwem wspólnego punktu, routera co zostało pokazane na rysunku 18. Wewnątrz
prywatnej sieci, część hosta w adresie IP może być podzielona w celu utworzenia podsieci.
Rys. 19. Adresowanie podsieci rozszerza numer sieci poprzez utworzenie podsieci
Rys. 19. Sposób rozszerzenia adresowania, przez utworzenia podsieci
Ze względu na to, że adres podsieci jest pobierany w części numeru hosta w adresach
klasy A, B, i C, adres jest przypisywany lokalnie, zazwyczaj przez administratora sieci.
Ponadto, tak jak w przypadku innych części adresów IP, każdy adres podsieci musi być
unikatowy w danych ramach co pokazano na rysunku 19.
28
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Spis treści:
1. HISTORIA I PRZEGLĄD MOŻLIWOŚCI TCP/IP......................... 2
2. ODNIESIENIE PROTOKOŁU TCP/IP DO MODELU OSI ....... 4
3. ARCHITEKTURA PROTOKOŁÓW TCP/IP ...................................... 5
3.1 WARSTWA ŁĄCZA DANYCH ............................................................................................. 7
3.1.1 Ramka Eternetowa .................................................................................................... 7
3.1.2 Współdziałanie warstw łącza danych Ethernet oraz sieciowej IP ........................... 8
3.1.3. Adresy IP ................................................................................................................ 11
3.2. WARSTWA INTERNETU ................................................................................................. 13
3.2.1 Protokół Internet ..................................................................................................... 13
3.2.2. Datagram IP........................................................................................................... 13
3.2.3 ICMP ....................................................................................................................... 15
3.3. WARSTWA TRANSPORTOWA ......................................................................................... 16
3.3.1 Protokół TCP........................................................................................................... 17
3.3.2 Protokół UDP.......................................................................................................... 20
3.4 WARSTWA APLIKACJI .................................................................................................... 21
3.4.1 FTP.......................................................................................................................... 21
3.4.2 HTTP ...................................................................................................................... 23
3.4.3 POP ........................................................................................................................ 23
3.4.4 DNS ........................................................................................................................ 24
3.4.5 DHCP ..................................................................................................................... 25
3.4.6 SNMP ..................................................................................................................... 25
3.4.7 SMTP...................................................................................................................... 26
3.4.8 TFTP....................................................................................................................... 27
4. PODSIECI .......................................................................................................................... 27
29
Protokół do ćwiczenia LAN2 - Sieć LAN, protokół TCP/IP.
Spis ilustracji:
Rys. 1. Mechanizm enkapsulacji danych; opracowano wg [1]................................................. 6
Rys. 2. Struktury danych i ich nazwy; opracowano wg [1] ..................................................... 6
Rys. 3. Umieszczenie pakietu IP w ramce Ethernet. Długości pól podane w bajtach ............... 7
Rys. 4. Wysyłanie pakietu ARP request; HA – Hardware Address, IA – Internet Address;
opracowane wg [2] .................................................................................................................... 8
Rys. 5. Wysyłanie pakietu ARP response; HA – Hardware Address, IA – Internet Address;
opracowane wg [2] .................................................................................................................... 9
Rys. 6. Przykładowa sieć LAN z urzadzeniami i ich adresami MAC wykorzystywanymi w
warstwie łącza danych ............................................................................................................. 10
Rys. 7. Przykład sieci LAN z urządzeniami i ich adresami IP wykorzystywanymi w warstwie
sieciowej ................................................................................................................................... 10
Rys. 8. Przykładowa sieć WAN................................................................................................ 10
Rys. 9. Struktura klas adresów IP ........................................................................................... 11
Rys. 10. Struktura klas adresów IP ......................................................................................... 12
Rys. 11. Budowa datagramu IP; opracowano wg [1] ............................................................ 13
Rys. 12. Za pomocą polecenia „PING” generowana jest prośba o echo ............................... 16
Rys. 13. Format segmentu TCP; opracowano wg [1] ............................................................ 18
Rys. 14. Potrójne uzgodnienie, przed wymianą danych .......................................................... 19
Rys. 15. Format wiadomości UDP; opracowano wg [1]........................................................ 20
Rys. 16. Widok ekranu podczas sesji FTP................................................................................ 22
Rys. 18. Podział sieci 172.16.0.0 na cztery podsieci................................................................ 28
Rys. 19. Adresowanie podsieci rozszerza numer sieci poprzez utworzenie podsieci ............... 28
Rys. 19. Sposób rozszerzenia adresowania, przez utworzenia podsieci .................................. 28
Bibliografia:
1. „Akademia sieci CISCO” PIERWSZY ROK NAUKI wydanie II
przekład z wydania amerykańskiego Aleksandra Jakubowska
3. „Sieci komputerowe - Księga Eksperta – Mark Sportack
4. TCP/IP Administracja sieci – Craig Hunt
5. „Sieci komputerowe” Kompedium – Karol Krysiak
6. Miesięcznik „Sieci komputerowe i telekomunikacja” - Marzec 97`
7. Miesięcznik „Sieci komputerowe i telekomunikacja” - Kwiecień 97`
[1] Rysunek opracowano wg „TCP/IP Administracja sieci” Craig Hunt
[2] Rysunek opracowano wg miesięcznika „Sieci komputerowe i telekomunikacja”- Marzec
1997
30

Podobne dokumenty