TCP/IP (ang. Transmission Control Protocol / Internet Protocol) - to zespół protokołów sieciowych używany w sieci Internet. Najczęściej wykorzystują go systemy Unixowe oraz systemy Windows, choć można stosować go również w systemach Novell NetWare. Zadanie protokołu TCP/IP polega na dzieleniu danych na pakiety odpowiedniej wielkości, ponumerowaniu ich w taki sposób, aby odbiorca mógł sprawdzić, czy dotarły wszystkie pakiety oraz ustawieniu ich we właściwej kolejności. Kolejne partie informacji wkładane są do kopert TCP, a te z kolei umieszczane są w kopertach IP. Oprogramowanie TCP po stronie odbiorcy zbiera wszystkie nadesłane koperty, odczytując przesłane dane. Jeśli brakuje którejś koperty, wysyła żądanie ponownego jej dostarczenia. Pakiety wysyłane są przez komputery bez uprzedniego sprawdzenia, czy możliwa jest ich transmisja. Może się zdarzyć taka sytuacja, że do danego węzła sieci, gdzie znajduje się router, napływa więcej pakietów, aniżeli urządzenie może przyjąć, posegregować i przesłać dalej. Każdy router posiada bufor, który gromadzi pakiety czekające na wysłanie. Gdy bufor ulegnie całkowitemu zapełnieniu, nowo nadchodzące pakiety zostaną odrzucone i bezpowrotnie przepadną. Protokół, który obsługuje kompletowanie pakietów zażąda więc wtedy ponownego ich wysłania.
IP (Internet Protocol) - to protokół do komunikacji sieciowej, gdzie komputer klienta wysyła żądanie, podczas gdy komputer serwera je wypełnia. Protokół ten wykorzystuje adresy sieciowe komputerów zwane adresami IP. Są to 32-bitowa liczby zapisywana jako sekwencje czterech ośmiobitowych liczb dziesiętnych (mogących przybierać wartość od 0 do 255), oddzielonych od siebie kropkami. Adres IP dzieli się na dwie części: identyfikator sieciowy (network id) i identyfikator komputera (host id). Istnieje kilka klasy adresowych, o różnych długościach obydwu składników. Obowiązujący obecnie sposób adresowania ogranicza liczbę dostępnych adresów, co przy bardzo szybkim rozwoju Internetu jest dla niego istotnym zagrożeniem. W celu ułatwienia zapamiętania adresów wprowadzono nazwy symboliczne, które tłumaczone są na adresy liczbowe przez specjalne komputery w sieci, zwane serwerami DNS.
Nagłówek protokołu IP.
Przesyłany jest z każdym datagramem. Moduły zajmujące
się transmisją wykorzystują go do transportu danych pomiędzy stacjami źródłową
i docelową. Wiadomości zawarte w nagłówku IP, są również wykorzystywane przy
dzieleniu i łączeniu pakietów danych podczas transmisji.
IP jest protokołem zawodnym. Jedynym kryterium pozwalającym sprawdzić
poprawność przesyłania jest suma kontrolna nagłówka zawarta w polu Header
Checksum. Jeżeli w trakcie transmisji został odkryty błąd to pakiet jest
niszczony przez stację, która wykryła niezgodność. W takim przypadku nie ma
żadnych powtórek transmisji i kontroli przepływu danych.
Budowa nagłówka protokołu IP w wersji 4
0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
wersja protokołu |
długoć nagłówka |
typ usługi |
całkowita długoć |
||||||||||||||||||||||||||||||||
numer identyfikacyjny |
flagi |
kontrola przesunięcia |
|||||||||||||||||||||||||||||||||
czas życia pakietu (TTL) |
protokół warstwy wyższej |
suma kontrolna nagłówka |
|||||||||||||||||||||||||||||||||
Ruting
Warstwa IP odpowiada za wybranie następnego poprawnego "skoku" dla każdego
datagramu, który wysyła. Jeśli odbiorca znajduje się w tej samej sieci, pakiet
będzie wysłany bezpośrednio do niego. W przeciwnym przypadku musi być
przekazany do bramy łączącej sieci. Decyzję, czy adres przeznaczenia leży na
przyłączonej do danej stacji sieci, podejmuje się w oparciu o maskę adresów,
sprawdzając zgodność adresów odbiorcy i nadawcy po przefiltrowaniu przez tę
maskę. Jeśli wyniki nie są zgodne, należy wybrać bramę, przez którą komunikaty
przejdą do docelowej sieci. Ewentualnie, jeśli adres odbiorcy oznacza
rozgłaszanie do aktualnej sieci lub podsieci, to adres taki jest przekazany do
interfejsu sieciowego niższej warstwy. Aby efektywnie przekazywać pakiety
dalej, każda stacja posiada pamięć podręczną adresów bram tzw. route cache - do
której bezpośrednio można posyłać datagramy o danych adresach przeznaczenia.
Każda pozycja w tabeli adresów bram zawierać musi przynajmniej:
Algorytm wykonywany przez stację (zaprojektowany tak, aby główny ciężar wyboru trasy spoczywał na urządzeniu spełniającym funkcję bramy), jest następujący:
Dzięki temu rozwiązaniu, w połączeniu z różnymi mechanizmami wykrywania "martwych bram" (dead gateway detection) i wybierania bram nowych, których w tym miejscu nie omawiamy, protokół IP może spełniać funkcję, do której był oryginalnie zaprojektowany - utrzymania przy życiu sieci, której infrastruktura została w znacznej części zniszczona lub przeciążona. Dodatkowo, istnieje możliwość implementowania tras statycznych (static routes) czyli specjalnie ustawionych pozycji w route cache, które nie muszą być uaktualniane komunikatami Redirect. Mogą one mieć także znaczenie jako mechanizm obsługujący pole Type of Service nagłówka IP (patrz budowa nagłówka IP), np. pakiety o wysokim priorytecie mogą iść do szczególnie szybkiej bramy. Stacja nie będąca fizycznie bramą między dwiema odmiennymi sieciami może również służyć jako brama (tutaj: ruter) - pośredni "skok" w trasie pakietu - jeśli spełnia następujące warunki:
Bramy decydujące o dynamicznym wyborze trasy między sieciami działają na zasadzie minimalizacji kosztu przesyłu pakietu, wymieniając między sobą informacje o obciążeniu poszczególnych połączeń.
Metody przesyłania danych przy użyciu protokołu IP
Terminale w sieciach komputerowych komunikują się przeważnie według schematu
nadawca-odbiorca (model jeden do jednego). Stacja (klient) wysyła
zapotrzebowanie na określoną usługę, serwer odpowiada, spełniając jej życzenie
lub nie. Typowe zastosowania sieci wykorzystującej taki model to przesyłanie
plików bądź korzystanie z baz danych.
Dynamiczny rozwój technik multimedialnych powoduje jednak zwrot ku innemu
rodzajowi komunikacji: jeden do wielu lub wielu do wielu. Zasadą działania jest
rozprowadzanie informacji jednocześnie z jednego lub kilku źródeł do dużej
grupy stacji, na przykład rozsyłanie wiadomości do wszystkich pracowników firmy
lub konferencja audiowizualna.
Metody przesyłania danych przy użyciu protokołu IP to unicast, multicast i
broadcast. Unicast jest wspomnianym wcześniej systemem wymiany informacji typu
jeden do jednego, jak w przypadku przesłania plików między stacjami roboczymi.
W trybie broadcast informacja jest skierowana do wszystkich komputerów
pracujących w określonej podsieci. Wykorzystuje się broadcast, między innymi,
do wysyłania w sieć pytania typu "gdzie jesteś?". Pytanie analizuje każdy z
komputerów, ale odpowiada tyko jeden. Zadaniem multicastu jest rozsyłanie
wiadomości do wszystkich członków danej grupy.
Pakiety multimedialne zwykle stosują unicast. W danym momencie informacja jest
przesyłana od serwera do jednego odbiorcy. Problemy pojawiają się wtedy, gdy
odbiorcą przekazu ma być grupa klientów. Serwer w takim przypadku musiałby
nawiązać oddzielną komunikację z każdym klientem i pojedynczo rozsyłać dane.
Nie jest to dobre rozwiązanie, gdyż informacje są wysyłane kilkakrotnie -
oznacza to stratę czasu i zmniejszenie przepustowości sieci. W takim przypadku
przydatny jest multicast - dane rozsyłane są raz, równolegle do wszystkich
członków grupy multicastowej.
W protokole TCP/IP do adresowania grup multicastowych wykorzystuje się adresy
klasy D. Przynależność pakietu do tej klasy rozpoznaje się na podstawie
pierwszych czterech bitów IP (1110). Pozostałe 28 bitów definiuje adres grupy
multicastowej. Komputer, który ma rozesłać informacje do wielu użytkowników,
adresuje je pod ten właśnie numer.
Protokół IP wersja 6
Protokół IP w wersji 6 to nowa wersja protokołu IP, nazywana także początkowo
protokołem następnej generacji (Internet Protocol next generation) .
Rozszerzenie dotychczasowego standardu (IP wersja 4) jest odpowiedzią na
rewolucję, jaka w ostatnich latach dokonała się w Internecie. Dynamiczny wzrost
liczby przyłączanych komputerów doprowadził do znacznego zmniejszenia się puli
dostępnych adresów. Choć 32-bitowa długość adresu w IPv4 teoretycznie umożliwia
zaadresowanie około 4 miliardów (2
32
-1) urządzeń, to różne rozrzutne techniki (m.in. podział adresów na klasy)
doprowadziły do roztrwonienia tego ogromnego zasobu. Także zadania, jakim muszą
sprostać współcześnie i w przyszłości internetowe łącza są zupełnie inne niż 20
lat temu, gdy projektowano standard IP.
Rosnący w siłę elektroniczny biznes domaga się z kolei poprawy bezpieczeństwa
danych przesyłanych siecią. Aby nadążyć za stałą ekspansją Internetu,
nowelizacja musiała wyeliminować wszystkie te ujawniające się obecnie w
protokole IPv4 słabości a także uzyskać pewien zapas dla przyszłych rozwiązań.
IP w wersji 6 rozwiązuje wymienione wcześniej problemy. Dostarcza także
zupełnie nowych właściwości.
Najważniejsze zmiany, jakie zaimplementowano w IPv6 to:
Przez ostatnich kilka lat protokół IPv6 poddawany był intensywnym testom. Obecnie następuje jego powolne wdrażanie. Istnieją już implementacje dla najważniejszych systemów operacyjnych i routerów. W lipcu 1999 roku pule adresów IPv6 zostały formalnie przekazane regionalnym organizacjom przydzielającym adresy IP. Naturalnie, jeszcze przez wiele lat zostanie zachowana kompatybilność z dotychczasowym protokołem. Zalety IPv6 uwidocznią się szczególnie w sieciach budowanych od początku w oparciu o ten protokół, zatem nie należy się spodziewać radykalnych zmian w sieci Internet aż do całkowitego wyparcia protokołu IPv4 przez protokół IPv6.
SLIP (ang. Serial Line Internet Protocol) - protokół używany dawniej przy połączeniach modemowych (połączenia dodzwaniane, ang. dial-up). Obecnie niemal całkowicie zastąpiony przez nowszy i bardziej elastyczny protokół PPP. Działanie protokołu sprowadza się do definicji sposobu ramkowania danych. Nie istnieje wykrywanie ani naprawa błędów. Jedynym jego celem jest wysyłanie pakietów na łącze szeregowe.
Protokół SLIP obsługuje wyłącznie transmisje datagramów protokołu IP (maksymalna długość 1006 bajtów), kapsułkowanych w swoich ramkach. Transmisja ta może się odbywać zarówno w łączach synchronicznych jak i asynchronicznych.
PPP (ang. Point to Point Protocol) - to protokół transferu, który służy do tworzenia połączeń z siecią Internet przy użyciu sieci telefonicznej i modemu, umożliwiający przesyłanie danych posiadających różne formaty dzięki pakowaniu ich do postaci PPP. Steruje on połączeniem pomiędzy komputerem użytkownika a serwerem dostawcy internetowego. PPP działa również przez łącze szeregowe. Protokół PPP określa parametry konfiguracyjne dla wielu warstw z modelu OSI (ang. Open Systems Interconnection). PPP stanowiąc standard internetowy dla komunikacji szeregowej, określa metody, za pośrednictwem, których pakiety danych wymieniane są pomiędzy innymi systemami, które używają połączeń modemowych.
Należą do nich:
IPX/SPX (ang. Internetwork Packet Exchange/Sequenced Packet Exchange) - to zespół protokołów sieciowych opracowanych przez firmę Novell. Obecnie są to jedne z najpopularniejszych protokołów, wykorzystywanych w wielu rodzajach sieci (nie tylko w systemach NetWare).
NetBEUI (ang. Network BIOS Extended USER Interface) - to protokół transportu sieci LAN, wykorzystywany przez systemu operacyjne firmy Microsoft. NetBEUI jest w pełni samodostrajającym się protokołem i najlepiej działa w małych segmentach LAN. Protokół ten, ma minimalne wymagania, jeśli chodzi o użycie pamięci. Zapewnia bardzo dobrą ochronę przed błędami występującymi w transmisji, oraz powrót do normalnego stanu w przypadku ich wystąpienia. Wadą NetBEUI jest to, że nie może on być trasowany i nie najlepiej działa w sieciach typu WAN.
FTP (ang. File Transfer Protocol) - to protokół służący do transmisji plików. Przeważnie usługę ftp stosuje do przesyłania danych z odległej maszyny do lokalnej lub na odwrót. Protokół ten działa w oparciu o zasadę klient-serwer i korzystanie z usługi polega na użyciu interaktywnej aplikacji. Technologia FTP zapewnia ochronę stosując hasła dostępu.
NetDDE - protokół wykorzystujący interfejs NetBIOS (ang. Network Basic Input/Output System), rozszerza możliwości DDE, aby aplikacje pracujące na różnych maszynach mogły miedzy sobą wymieniać dane.
SNMP (ang. Simple Network Managment Protocol) - to podstawowy protokół służący do zarządzania siecią. SNMP (RFC 1157) stanowi standard internetowy, jeżeli chodzi o zdalne monitorowanie i zarządzanie routerami, hostami oraz innymi urządzeniami sieciowymi.
SMTP (ang. Simple Mail Transfer Protocol) - jest podstawowym protokołem realizującym transfer poczty elektronicznej, SMTP należy do rodziny protokołów TCP/IP i służy do wysyłania poczty elektronicznej. Jego definicję zawierają dokumenty STD 10 oraz RFC 821.
CSMA/CD (ang. Carrier Sense Multiple Access with Collision Detection) - to metoda wielodostępu do łącza sieci z wykrywaniem kolizji oraz badaniem stanu kanałów, stosowana w sieciach Ethernet w celu przydziału nośnika dla poszczególnych węzłów. Węzeł zaczyna nadawanie, kiedy nie wykryje w sieci transmisji z innego węzła, sprawdzając przez cały czas, czy nie doszło do kolizji. W przypadku zaistnienia kolizji próba transmisji zostaje ponowiona po przerwie o losowej długości.
DNS (ang. Domain Name Service) - protokół używany w sieci Internet obsługujący system nazywania domen. Umożliwia on nadawanie nazw komputerom, które są zrozumiałe i łatwe do zapamiętania dla człowieka, tłumacząc je na adresy IP. Nazywany czasem usługą BIND (BSD UNIX), DNS oferuje hierarchiczną, statyczną usługę rozróżniania nazw hostów. Administratorzy sieci konfigurują DNS używając listę nazw hostów oraz adresów IP. DNS nie posiada centralnego repozytorium przechowującego adresy IP maszyn w sieci. Dane dotyczące tych adresów dzielone są między wiele komputerów, zwanych serwerami DNS (nazw domenowych), które są zorganizowane hierarchicznie w formie drzewa. Początek drzewa nazywany jest korzeniem. Nazwy najwyższego poziomu składają się z dwuliterowych domen narodowych opartych na zaleceniach ISO 3166 (wyjątek stanowi brytyjska domen uk). Nadrzędna domena narodowa w Polsce oznaczona jest przez pl. Jeżeli chodzi o domeny trzyliterowe, ich znaczenie jest następujące:
Do każdego węzła w drzewie przypisana jest informacja, zawierająca kolejne nazwy węzłów oddzielone kropkami, poczynając od określonego węzła a skończywszy na korzeniu. Przykładowo etykietą węzła agh w Akademi Górniczo-Hutniczej będzie agh.edu.pl. Komputer w Japonii, który nadaje pocztę do odbiorcy znajdującego się w tym węźle, wyśle prośbę o rozstrzygnięcie nazwy do lokalnego serwera nazw (DNS) znajdującego się najbliżej nadawcy. Jeżeli serwer ten nie posiada tej informacji, skieruje zapytanie do kolejnych serwerów, a te, jeżeli nie będą znały odpowiedzi prześlą pytanie dalej, aż do administratora domeny, gdzie znajduje się poszukiwany węzeł. Otrzymana informacja przechowywana jest przez jakiś czas w pamięci podręcznej (buforze) lokalnego serwera DNS. Jeśli więc poszukiwany adres stosowany jest dosyć często, nie ma potrzeby wysyłania każdorazowo zapytań do serwera administracyjnego dla danej domeny. Administratorzy dowolnej domeny, przykładowo pl, mogą dodać do niej zupełnie nowe adresy nie powiadamiając wszystkich komputerów w świecie o tej sytuacji.
DHCP (ang. Dynamic Host Configuration Protocol) - to standardowy protokół przydzielający adresy IP poszczególnym komputerom. Serwer DHCP przypisuje adresy IP poszczególnym końcówkom.
AARP (ang. AppleTalk Address Resolution Protocol) - protokół służący przyporządkowaniu adresów w sieci AppleTalk. AARP tłumaczy adresy z sieci AppleTalk do formatu sieci Ethernet albo Token ring.
Gopher (goniec) - to wczesny protokół oraz program służący do wyszukiwania, wyświetlania i pobierania dokumentów znajdujących się na zdalnych komputerach lub witrynach. System oparty jest na menu wspomagającym wyszukiwanie informacji w sieci Internet. Gopher jest poprzednikiem WWW. Obecnie wszelkie możliwości, które posiadał gopher zostały zaimplementowane w przeglądarkach WWW. Z komputerami typu gopher można połączyć się klientami WWW, przeglądając je analogicznie jak klient gopher.
ARP (ang. Address Resolution Protocol) - to protokół sieciowy należący do rodziny TCP/IP (lecz niezwiązany wprost z transportowaniem danych). Jest on stosowany w celu dynamicznego określania fizycznych adresów niskiego poziomu, które odpowiadają adresom IP poziomu wyższego dla określonego komputera Protokół ten ogranicza się do fizycznych systemów sieciowych, które obsługują emisję pakietów.
HTTP (ang. HyperText Transfer Protocol) - to protokół internetowy, używany do obsługi stron WWW. HTTP stanowi podstawowy protokół, przy pomocy którego przebiega komunikacja między klientami i serwerami sieci Web. Jest to protokół poziomu aplikacji dla współpracujących ze sobą, hipermedialnych, rozproszonych systemów informacyjnych. HTTP jest bezstanowym i generycznym protokołem zorientowanym obiektowo. Cechą charakterystyczną tego protokołu możliwość wpisywania oraz negocjowania reprezentacji danych, co umożliwia budowę systemów niezależnie od typu transferowanych danych.
ICMP (ang. Internet Control Message Protocol) - jest to rozszerzenie protokołu IP (Internet Protocol). Protokół ICMP służy generowaniu komunikatów o występujących błędach, wysyłaniu pakietów testowych oraz komunikatów diagnostycznych związanych z protokołem IP.