31. Protokoły sieciowe.
Protokół jest to zbiór procedur oraz reguł rządzących komunikacją, między co najmniej dwoma urządzeniami sieciowymi. Istnieją różne protokoły, lecz nawiązujące w danym momencie połączenie urządzenia muszą używać tego samego protokołu, aby wymiana danych pomiędzy nimi była możliwa.
TCP/IP (ang. Transmission Control Protocol / Internet Protocol)
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.
Protokół ten używa IP, aby dać użytkownikowi wrażenie prostego połączenia między procesami. TCP identyfikuje punkty końcowe połączenia po adresach IP dwóch komunikujących się hostów i numerach portów na każdym z nich. Porty mogą być postrzegane jako punkty zaczepienia połączeń sieciowych.
- interfejs strumieniowy - programy wysyłają dane w postaci ciągłego strumienia bitów podzielonego na oktety. Odbiorca dostaje tę samą sekwencję, jaką wysłał nadawca.
- zorientowanie na połączenie - program użytkowy prosi o połączenie odbiorcę, odbiorca to akceptuje, uwzględniane (uzgadniane) są parametry połączenia. Połączenie używane jest później do przesyłu danych.
- niezawodność - TCP gwarantuje, że odbiorca dostanie te same pakiety, które zostały wysłane przez nadawcę.
- dwukierunkowość - dane przepływają w obu kierunkach niezależnie od siebie. Strumień danych w jednym kierunku może przenosić potwierdzenia dla danych z drugiego strumienia.
- transfer buforowany - wysyłający czeka z przetwarzaniem danych, aż będzie miał ich tyle, aby było to efektywne. Istnieje operacja „push”, która „wypycha” dane z serwera.
- zapewnienie wiarygodności - technika pozytywnego potwierdzania z retransmisją.
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 IP (patrz temat 30).
SLIP (ang. Serial Line Interface Protocol)
to protokół transmisji przez łącze szeregowe. Uzupełnia on działanie protokołów TCP/IP tak, by możliwe było przesyłanie danych przez łącza szeregowe.
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.
UDP (ang. User Datagram Protocol)
pozwala aplikacji na łączenie się z usługą na pewnym porcie zdalnej maszyny, ale bez zestawiania połączenia. UDP zapewnia porty protokołów używane do rozróżniania programów wykonywanych na pojedynczej maszynie.
Oprócz wysyłanych danych, każdy komunikat zawiera numer portu odbiorcy i numer portu nadawcy, dzięki czemu oprogramowanie UDP nadawcy może dostarczyć komunikat do właściwego adresata.
Do przesyłania komunikatów między maszynami UDP używa podstawowego protokołu IP i ma tę samą niepewną, bezpołączeniową semantykę dostarczania datagramów co IP - nie używa potwierdzeń w celu upewnienia się o dotarciu komunikatów i nie zapewnia kontroli szybkości przesyłania danych między maszynami. Z tego powodu komunikaty UDP mogą być gubione, duplikowane lub przychodzić w innej kolejności niż były wysłane, ponadto pakiety mogą przychodzić szybciej niż odbiorca może je przetworzyć. Program użytkowy korzystający z UDP musi na siebie wziąć odpowiedzialność za rozwiązanie problemów niezawodności. Ponieważ sieci lokalne dają dużą niezawodność i małe opóźnienia, wiele programów opartych na UDP dobrze pracuje w sieciach lokalnych, ale może zawodzić w większych intersieciach TCP/IP.
DHCP (ang. Dynamic Host Configuration Protocol)
to standardowy protokół przydzielający adresy IP poszczególnym komputerom. Adresy mogą być przydzielane tymczasowo, na podstawie nazwy użytkownika lub adresu MAC karty sieciowej. (Możliwe jest wypożyczenie adresu - który przyznawany jest czasowo, nie przyznawany, lub zwracany).
Umożliwia komputerom uzyskanie od serwera danych konfiguracyjnych, np. adresu IP hosta, adresu IP bramy sieciowej, adresu serwera DNS, maski sieci.
Klient najpierw rozgłasza komunikaty do serwerów DHCP. Serwery te z kolei sprawdzają właściwą dla klienta konfigurację i odpowiadają komunikatem zawierającym kompletną informację. Klient natomiast wybiera jeden z serwerów na podstawie wygodnego dla siebie kryterium. DHCP nie współpracuje z DNS.
DNS (ang. Domain Name System)
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. Zapewnia stałą bieżącą obsługę odnajdywania i łączenia właściwych komputerów za pomocą nazw domen i numerów IP, odpowiedzialny jest także za odnajdywanie, rozpoznawanie i łączenie się komputerów przyłączonych do sieci Internet.
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. Przechowują one informacje na temat adresów domen i ich powiązań z numerami IP oraz udostępniają automatycznie tę informację umożliwiając odnajdywanie się i zestawianie połączeń między komputerami podłączonymi do Internetu.
Nazwy najwyższego poziomu składają się z dwuliterowych domen narodowych opartych na zaleceniach ISO 3166 (wyjątek stanowi brytyjska domen uk).
com - organizacje komercyjne
gov - agencje rządowe
edu - instytucje edukacyjne
mil - organizacje wojskowe
org - pozostałe organizacje.
net - organizacje, których działalność dotyczy sieci komputerowych
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.
DNS, jako system organizacyjny, składa się z dwóch instytucji - IANA i ICANN, które nadzorują ogólne zasady przyznawania nazw domen i numerów IP oraz całej sieci instytucji i firm, które otrzymują od ICANN prawo do administracji i rejestrowania nazw określonych domen.
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. Cechą charakterystyczną tego protokołu jest możliwość wpisywania oraz negocjowania reprezentacji danych, co umożliwia budowę systemów niezależnie od typu transferowanych danych. Protokół HTTP troszczy się o to, by dokumenty HTTP, grafiki, aplety Javy, kontrolki ActiveX i inne elementy WWW zostały poprawnie przedstawione na ekranie. Proces wymiany danych zawsze inicjalizowany jest przez przeglądarkę, która zestawia połączenie z wybranym serwerem, a następnie wysyła do niego zapytanie HTTP. Serwer analizuje zapytanie i wysyła odpowiedź.
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 (klienta FTP). Maszyna zdolna rozpoznawać i realizować tego typu żądania nadchodzące z Internetu nazywana jest serwerem FTP. Technologia FTP zapewnia ochronę stosując hasła dostępu.
POP3
jest najpopularniejszym protokołem wymiany poczty. Pozwala na pobranie poczty z serwera.
SMTP
za pomocą tego protokołu hosty rozsyłają wiadomości e-mail. Komputery osobiste także korzystają z tego protokołu, ale jedynie jako strona wysyłająca.
TELNET
jest tzw. protokołem zdalnej sesji. Oznacza to, że program korzystający z tego protokołu (często również o nazwie „telnet”) umożliwia komunikację ze zdalnym komputerem. Przy pomocy telnetu można więc poprzez sieć Internet zalogować się na odległym serwerze i pracować na nim tak, jak przy pomocy fizycznie podłączonego doń terminala. Protokół ten powstał jako jedna z pierwszych usług dostępnych w sieci Internet.
SSH
umożliwia połączenie z komputerem podłączonym do sieci komputerowej, wykonanie zdalnych poleceń i kopiowanie plików między nimi. Protokół ten oferuje silną autoryzację komputerów i użytkowników.