Politechnika Warszawska



Podobne dokumenty
TCP/IP formaty ramek, datagramów, pakietów...

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Protokoły sieciowe - TCP/IP

Przesyłania danych przez protokół TCP/IP

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Model sieci OSI, protokoły sieciowe, adresy IP

Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i sieciowej

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Warstwy i funkcje modelu ISO/OSI

Adresy w sieciach komputerowych

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Akademia Techniczno-Humanistyczna w Bielsku-Białej

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Sieci komputerowe Warstwa transportowa

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

Adres IP

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

Model OSI. mgr inż. Krzysztof Szałajko

ARP Address Resolution Protocol (RFC 826)

Sieci komputerowe - Wstęp do intersieci, protokół IPv4

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

MODEL OSI A INTERNET

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.

Sieci Komputerowe Modele warstwowe sieci

Pytanie 1 Z jakich protokołów korzysta usługa WWW? (Wybierz prawidłowe odpowiedzi)

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

Dr Michał Tanaś(

Protokoły sieciowe model ISO-OSI Opracował: Andrzej Nowak

Test sprawdzający wiadomości z przedmiotu Systemy operacyjne i sieci komputerowe.

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

Zadania z sieci Rozwiązanie

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

Uniwersalny Konwerter Protokołów

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 13 Topologie sieci i urządzenia

Laboratorium 6.7.2: Śledzenie pakietów ICMP

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Podstawowe pojęcia dotyczące sieci komputerowych

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Programowanie współbieżne i rozproszone

Protokoły wspomagające. Mikołaj Leszczuk

PROTOKOŁY WARSTWY TRANSPORTOWEJ

Protokoły warstwy aplikacji i ich zastosowanie

Sieci komputerowe. Wstęp

Laboratorium podstaw telekomunikacji

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 14 Protokoły sieciowe

SIECI KOMPUTEROWE Adresowanie IP

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

Programowanie Sieciowe 1

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Systemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A

Sieci komputerowe - warstwa transportowa

Sieci komputerowe - Protokoły warstwy transportowej

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Katedra Inżynierii Komputerowej Politechnika Częstochowska. Zastosowania protokołu ICMP Laboratorium podstaw sieci komputerowych

PORADNIKI. Routery i Sieci

TCP/IP. Warstwa łącza danych. mgr inż. Krzysztof Szałajko

Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców

Dr Michał Tanaś(

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Laboratorium - Wykorzystanie programu Wireskark do badania ramek Ethernetowych

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

Rywalizacja w sieci cd. Protokoły komunikacyjne. Model ISO. Protokoły komunikacyjne (cd.) Struktura komunikatu. Przesyłanie między warstwami

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

5. Model komunikujących się procesów, komunikaty

Sieci komputerowe - administracja

Warstwa sieciowa. Adresowanie IP. Zadania. Warstwa sieciowa ćwiczenie 5

Technologie informacyjne - wykład 8 -

w sieciach szerokopasmowych CATV i ISP - Model OSI

PODSTAWOWE PODZIAŁY SIECI KOMPUTEROWYCH

Podstawy sieci komputerowych

Scenariusz lekcji Opracowanie: mgr Bożena Marchlińska NKJO w Ciechanowie Czas trwania jednostki lekcyjnej: 90 min.

Protokół sieciowy Protokół

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Urządzenia sieciowe. Tutorial 1 Topologie sieci. Definicja sieci i rodzaje topologii

PI-12 01/12. podłączonych do innych komputerów, komputerach. wspólnej bazie. ! Współużytkowanie drukarek, ploterów czy modemów

pasja-informatyki.pl

Temat: Budowa i działanie sieci komputerowych. Internet jako sieć globalna.

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Działanie komputera i sieci komputerowej.

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Struktura adresu IP v4

Architektura INTERNET

Laboratorium 6.7.1: Ping i Traceroute

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 25

Protokół IP. III warstwa modelu OSI (sieciowa) Pakowanie i adresowanie przesyłanych danych RFC 791 Pakiet składa się z:

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Transkrypt:

Politechnika Warszawska Wydział Elektryczny Laboratorium Teletechniki Skrypt do ćwiczenia T.24 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

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

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 Numer warstwy OSI Nazwa równoważnej warstwy TCP/IP Aplikacji (składa się z programów użytkowych, które korzystają z sieci) Prezentacji (standaryzuje sposób przedstawiania danych aplikacjom) Sesji (zarządza sesjami między aplikacjami) Transportu (zapewnia wykrywanie i korekcje błędów po obu stronach połączenia) Sieci (zarządza połączeniami nawiązywanymi poprzez sieć przez wyższe warstwy) Łącza danych (zapewnia rzeczywiste dostarczanie danych poprzez fizyczne połączenie) Fizyczna (definiuje fizyczne właściwości medium transmisyjnego sieci) 7 6 5 4 3 2 1 Prosesu/Aplikacji (składa się z aplikacji i procesów używających sieci) Hosta z hostem (udostępnia usługi dostarczające dane z jednego miejsca w inne) Internetu (definiuje datagramy i wyznacza trasy) 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

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

Warstwa aplikacji Dane Warstwa transportowa Nagłówek Dane Warstwa internetu Nagłówek Nagłówek Dane Warstwa dostępu do sieci Nagłówek Nagłówek Nagłówek Dane 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 UDP 7 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 TCP strumień UDP Wiadomość Warstwa transportowa segment pakiet Warstwa internetu datagram datagram Warstwa dostępu do sieci 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

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 IP 8 dodaje się nagłówki oraz zakończenie i w ten sposób otrzymuje się ramki 9 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 PPP 10 lub SLIP 11. 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 6 6 2 min 20 min 20 46-1482 4 Preambuła SFD Adres docelowy Adres źródłowy Długość Nagłówek IPX Nagłówek TCP Rys. 3. Umieszczenie pakietu IP w ramce Ethernet. Długości pól podane w bajtach Dane FCS 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

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 IA nad FF:FF:FF:FF:FF:FF IA odb znany HA nad znany HA odb Adres sieci: 132.17.0.0 1 Adres HA nad 1 Adres HA k+1 Kabel sieciowy 1 Adres HA odb 2 3 Adres IA nad 2 3 Adres IA k+1... 2 3 Adres IA odb 4 4 4 Stacja sieciowa k (nadawcza) o adresie 132.17.0.1 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 HA odb = 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 IA odb zawartego w pakiecie ARP request z adresem IA odb 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

Pakiet ARP response Inne elementy interfejsu znany IA nad znany IA odb znany HA nad znany HA odb Adres sieci: 132.17.0.0 1 Adres HA nad 1 Adres HA k+1 Kabel sieciowy 1 Adres HA odb 2 3 Adres IA nad 2 3 Adres IA k+1... 2 3 Adres IA odb 4 4 4 Stacja sieciowa k (nadawcza) o adresie 132.17.0.1 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 (HA odb ). Trafia on do stacji nadawczej, która już może w ramce Ethernet uzupełnić brakujący adres MAC (HA odb ) 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

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 WAN LAN 2 Rys. 8. Przykładowa sieć WAN 10

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) Oktet (8 bitów) Oktet (8 bitów) Oktet (8 bitów) 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 wartość dziesiętna 192 5 34 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 1 bajt 8 bitów 1 bajt 8 bitów 1 bajt 8 bitów 172 16 122 204 Rys. 9. Struktura klas adresów IP 11

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

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 0 4 8 12 16 20 24 28 31 Słowa 1 2 3 4 5 6 Wersja Czas życia IHL Identyfikator Typ usługi Protokół Opcja Adres źródła flagi Adres przeznaczenia Długość całkowita Przesunięcie fragmentu Suma kontrolna nagłówka wypełnienie Nagłówek 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

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

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) - KTÓRE ZAWIERAJA ADRESY IP ODPOWIEDNIO KOMPUTERA ŹRÓDŁOWEGO I DOCELOWEGO. 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

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

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

Bity 0 4 8 12 16 20 24 28 31 Słowa 1 2 3 4 5 6 Dł. nagłówka Port źródłowy Zarezerwowane Suma kontrolna Opcja Flagi Numer sekwencji Numer potwierdzenia Port przeznaczenia Okno Priorytet 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

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

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

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

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:haslo@ftp.microsoft.com. 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