SIECI KOMPUTEROWE
STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP
Stos protokołów TCP/IP
(ang. Transmission Control Protocol/Internet Protocol)
W latach 1973-78 Agencja DARPA i Stanford University opracowały dwa wzajemnie
uzupełniające się protokoły: połączeniowy TCP i bezpołączeniowy IP. Protokoły te służą do łączenia
oddzielnych fizycznie sieci w jedną sieć logiczną. Wykorzystywane są w systemach UNIXowych,
sieciach lokalnych i rozległych.
Najistotniejsze zalety protokołów TCP/IP:
otwartość i niezależność od specyfikacji sprzętowo-programowej systemów
komputerowych,
możliwość integracji wielu różnych rodzajów sieci komputerowych,
wspólny schemat adresacji pozwalający na jednoznaczne zaadresowanie każdego
użytkownika,
istnienie standardowych protokołów warstw wyższych .
Współcześnie protokoły TCP/IP to zestaw wielu protokołów przeznaczonych m.in. do:
transferu danych: IP, TCP, UDP (User Datagram Protocol),
kontroli poprawności połączeń: ICMP (Internet Control Message Protocol),
zarządzania siecią: SNMP (Simple Network Management Protocol),
zdalnego włączania się do sieci: TELNET,
usług aplikacyjnych, np. przesyłanie plików: FTP (File Transfer Protocol),
Architektura protokołów TCP/IP jest czterowarstwowa (w odróżnieniu od siedmiowarstwowej
architektury ISO/OSI). Wyróżniamy w niej następujące warstwy:
1. aplikacji,
2. transportową,
3. Internet,
4. dostępu do sieci
1
SIECI KOMPUTEROWE
STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP
Jak w każdym modelu warstwowym, dane generowane przez programy aplikacyjne są
przekazywane w dół stosu, kiedy mają być wysłane przez sieć i w górę stosu przy odbiorze. Każda
warstwa stosu dodaje do danych przekazywanych z warstwy wyższej informacje sterujące w postaci
nagłówków. Nagłówek dodany w warstwie wyższej jest traktowany jako dane w warstwie niższej.
Nazewnictwo struktur danych w zależności od wykorzystywanego protokołu transportowego
przedstawia poniższy schemat
TCP UDP
warstwa aplikacji
strumień (ang. stream) wiadomość (ang. message)
warstwa transportowa
segment pakiet
warstwa Internet
datagram datagram
warstwa dostępu do sieci
ramka (ang. frame)
ramka (ang. frame)
FUNKCJE POSZCZEGÓLNYCH WARSTW:
warstwa dostępu do sieci
- najniższa w hierarchii architektury protokołów TCP/IP. Jej funkcje odpowiadają w przybliżeniu
funkcjom trzech najniższych warstw modelu ISO/OSI.
Do komunikacji w sieciach rozległych lub przez łącza szeregowe wykorzystuje m.in. takie protokoły
jak: X.25 (w sieciach pakietowych), PPP (Point-to-Point Protocol) lub SLIP (Serial Line IP).
warstwa Internet
- podstawowym protokołem tej warstwy jest IP, który jest odpowiedzialny za przesyłanie pakietów
zwanych datagramami między użytkownikami sieci. Jest to protokół bezpołączeniowy, tzn., ż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.
Drugim protokołem tej warstwy jest ICMP ściśle związany z IP. Służy on do przesyłania komunikatów
o nieprawidłowościach w pracy sieci. Protokół pozwala na przesyłanie wiadomości sterujących między
węzłami sieci. Wiadomości te dotyczą sterowania przepływem, testowania połączeń, wskazania
alternatywnych połączeń i wykrywania niedostępnych użytkowników.
2
SIECI KOMPUTEROWE
STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP
warstwa transportowa
- zapewnia bezpośrednie połączenie między końcowymi użytkownikami (systemami) wymieniającymi
informacje. Najważniejsze protokoły tej warstwy to TCP oraz UDP.
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.
Protokół UDP jest protokołem bezpołączeniowym, nie posiada 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.
warstwa aplikacji
- protokoły tej warstwy dostarczają użytkownikom różnych usług wykorzystując jako protokołów
transportowych TCP lub UDP.
Najbardziej znane protokoły warstwy aplikacji korzystające z TCP to:
TELNET – umożliwia zdalne łączenie z systemem,
FTP - przesyłanie plików przez sieć,
SMTP (Simple Mail Transfer Protocol) dla wymiany poczty elektronicznej, Natomiast do
bardziej znanych protokołów warstwy aplikacji korzystających z protokołu UDP należą:
DNS (Domain Name Service) – odpowiada za zamianę adresów IP na tzw. adresy
domenowe,
RIP (Routing Information Protocol) - wymiana informacji związanych z aktualizacją reguły
doboru tras w węzłach sieci (routing),
NFS (Network File System) - współdzielenie plików przez wiele komputerów dołączonych
do sieci.
ROUTERY, HOSTY, GNIAZDA
Protokoły TCP/IP wyróżniają dwa typy urządzeń sieciowych: routery (lub gatewaye) oraz
hosty (czyli komputery). Routery służą do przesyłania pakietów między sieciami, a na hostach
instalowane jest oprogramowanie aplikacyjne użytkowników.
3
SIECI KOMPUTEROWE
STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP
4
FTP SMTP NFS DNS
TCP
UDP
IP (ICMP)
interfejs A
(np. PPP)
FTP SMTP NFS DNS
TCP
UDP
IP (ICMP)
interfejs A
(np. PPP)
sieć A
sieć B
IP (ICMP)
interfejs A
(np. PPP)
interfejs B
(np. PPP)
Router
lub
Gateway
warstwa
aplikacji
warstwa
transportowa
warstwa
Internet
warstwa dostępu
do sieci
host A
host B
Każda aplikacja korzystająca z protokołów TCP/IP jest identyfikowana za pomocą numeru
portu. (W systemach UNIX numery portów dla odpowiednich aplikacji zapisane są w pliku
/etc/services). Z kolei protokoły transportowe są określone za pomocą numerów protokołów. (W
UNIXie numery protokołów zapisane są w pliku /etc/protocols). Wykorzystanie numerów portów i
numerów protokołów pozwala łączyć dane generowane przez różne aplikacje z kilkoma protokołami
transportowymi i dalej te protokoły z protokołem IP. Podejście takie daje możliwość tzw. multipleksacji
danych, czyli np. umożliwia równoczesną komunikację wielu aplikacji z TCP.
W Internecie niektóre numery portów są zarezerwowane i wstępnie przypisane do tzw. dobrze
znanych usług (mogą przyjmować numery od 0 do 255). Dobrze znane usługi to np. takie protokoły
sieciowe jak FTP: porty 20 i 21, TELNET: 23, SMTP: 25, POP3: 110.
Protokoły TCP/IP używają również pojęcia gniazdo.
Gniazdo to kombinacja adresu IP i
numeru portu.
W związku z tym gniazdo jednoznacznie określa proces w Internecie, czy zakończenie
logicznego łącza komunikacyjnego między dwiema aplikacjami. Jeśli aplikacje realizowane są na
dwóch różnych komputerach, to para odpowiadających im gniazd definiuje połączenie w protokole
połączeniowym TCP.
PROTOKÓŁ IP
Protokół bezpołączeniowy, co oznacza, że nie sprawdza on poprawności dostarczenia
datagramów do miejsc przeznaczenia. Podstawowe funkcji protokołu IP:
a) określenie struktury datagramu,
b) określenie schematu adresacji,
c) kierowanie ruchem datagramów w sieci,
d) dokonywanie fragmentacji datagramu i odtwarzanie z fragmentów oryginalnego
datagramu.
SIECI KOMPUTEROWE
STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP
Adresy IP v.4
W sieciach wykorzystujących protokoły TCP/IP wykorzystywane są, zdefiniowane
w IP v.4,
4-bajtowe adresy jednoznacznie określające sieć oraz komputer dołączony do tej sieci
. Istnieje 5
podstawowych klas adresów zdefiniowanych przez IP v. 4: A, B, C, D, E. Struktura binarna adresów w
tych klasach przedstawiona jest na rysunku poniżej. Dla rozszerzenia zakresów adresów zdefiniowano
protokół IP v.6, w którym adresy są 16-bajtowe .
A.
0
B
1 0
C
1 1 0
D
1 1 1 0
E
1 1 1 1 0
A:
1
.0.0.0 –
127
.0.0.0
- numer sieci w I-ym bajcie
- 1
sieć- ok. 1,6 mln hostów
B:
128.0.
0.0 –
191.255.
0.0
- numer sieci w 2 pierwszych bajtach
- 16320 sieci o 65024 hostach w każdej
C:
192.0.0.
0 –
223.255.255.
0
- numer sieci w 3 pierwszych bajtach
- ok. 2 mln sieci po 254 hosty
D, E, F:
224.0.0.0 – 254.0.0.0
- adresy eksperymentalne, zarezerwowane do zastosowań specjalnych, nie
określają żadnej sieci;
-
przykład wykorzystania: transmisja grupowa IP (ang. IP multicasting) –
usługa pozwalająca na przesłanie danych do wielu miejsc w Internecie
jednocześnie.
Adresy IP umożliwiają tworzenie sieci logicznych w jednej dużej sieci fizycznej posiadającej
jeden adres IP. Można tego dokonać korzystając z bitów części identyfikującej komputer w adresie IP
oraz 32-bitowej maski podsieci.
5
SIECI KOMPUTEROWE
STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP
PODSIECI – MASKA SIECI
1. Podział jest już widoczny w wyodrębnieniu w adresach IP części sieciowej i
części hosta.
Domyślnie sieć przeznaczenia jest uzyskiwana z części sieciowej adresu IP
⇒
hosty o identycznych numerach sieci IP powinny znajdować się w tej samej sieci
2. Wewnątrz sieci można zastosować podobny schemat wyodrębnić mniejsze sieci
⇒
podział na
podsieci.
Podsieć:
jest rozszerzeniem pojęcia podziału pól bitowych, jak w klasach A, B i C,
część sieciowa jest rozszerzana tak, by zawierała niektóre bity z części hosta,
liczba bitów, interpretowana jako numer podsieci, jest określona przez tzw.
maskę
podsieci
lub
maskę sieci,
-
maska podsieci =
32-bitowa liczba określająca maskę bitową dla części
sieciowej adresu IP,
jeśli bit w masce jest jedynką, to odpowiadający mu bit w adresie IP jest
interpretowany jako bit adresu sieci,
jeżeli bit maski wynosi zero, oznacza, że należy do części adresu określającej
komputer,
odpowiada za dostarczanie datagramów do pewnego zakresu adresów IP,
podsieci są generowane przez administratora,
określają wewnętrzny podział sieci (administracyjny, lokalizacyjny, itp.) – nie są
widoczne z zewnątrz.
Przykład zastosowania podsieci:
Sieć klasy B:
149.76.
0.0
Maska dla tej sieci:
255.255.
0.0
Możliwy podział na 254 podsieci:
149.76.
1
.0
-
149.76.
254
.0
Maska dla podsieci: 255.255.
255
.0
6
SIECI KOMPUTEROWE
STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP
Klasa B:
część sieciowa
część hosta
149
76
12
4
Klasa B z podsiecią:
część sieciowa
podsieć
część hosta
149
76
12
4
W związku z nieustanną redukcją puli adresów IP v.4 wprowadzono IP v.6 oraz
wykorzystuje się tzw. adresy nierutowalne. Zakresy adresów IP zarezerwowanych dla sieci
prywatnych, wewnętrznych:
A:
10.0.0.0 -
10.255.255.255
B:
172.16.0.0
-
172.31.0.0
C:
192.168.0.0 -
192.168.255.0
7