Warstwa aplikacji
Warstwa aplikacji jest najwyższą warstwą zarówno w modelu odniesienia OSI, jak i w modelu TCP/IP. Jest to warstwa zapewniająca interfejs pomiędzy aplikacjami, których używamy do komunikacji, a siecią poprzez
którą nasze komunikaty są transmitowane. Protokoły warstwy aplikacji są używane do wymiany danych
pomiędzy programami uruchomionymi na hoście źródłowym i hoście docelowym.
Oprogramowanie warstwy aplikacji
Protokoły warstwy aplikacji obsługują interfejs
pomiędzy ludźmi a siecią danych. Kiedy otwieramy okno przeglądarki internetowej lub komunikatora, aplikacja uruchamia się. Każdy program, który został uruchomiony na urządzeniu i aktualnie jest
wykonywany, nazywamy procesem. W warstwie aplikacji istnieją dwa typy oprogramowania
(procesów), które umożliwiają dostęp do sieci. Są to aplikacje oraz usługi.
Oprogramowanie warstwy aplikacji
Aplikacje są oprogramowaniem (ang. software programs) używanym do komunikacji w sieci.
Niektóre aplikacje użytkownika są aplikacjami przystosowanymi do pracy w sieci (ang. network-
aware). Takie aplikacje obsługują protokoły warstwy aplikacji i potrafią komunikować się bezpośrednio z protokołami niższych warstw. Przykładami tego typu aplikacji są: klient poczty elektronicznej oraz
przeglądarka WWW.
Oprogramowanie warstwy aplikacji
Usługi – są to działania świadczone programom ze strony warstwy aplikacji (np. przesyłanie plików czy drukowanie w sieci). Usługi te, łączą program z siecią i przygotowują dane do wysłania. Różne typy danych - tekst, grafika czy video - wymagają różnych usług
sieciowych, aby zapewnić im właściwe przygotowanie do przetworzenia przez funkcje występujące w
niższych warstwach modelu OSI.
Reguły protokołów warstwy aplikacji
Definiują procesy na każdym z końców komunikacji
Definiują składnie wiadomości
Definiują rodzaje wiadomości
Definiują znaczenie pól informacyjnych
Definiują sposób wysyłania wiadomości i oczekiwania odpowiedzi
Definiują sposób współdziałania z niższą warstwą
Protokoły warstwy aplikacji
Powszechnie używane protokoły warstwy aplikacji:
DNS (ang. Domain Name System) - protokół używany do odwzorowywania nazw w sieci Internet na adresy IP;
HTTP (ang. Hypertext Transfer Protocol) - protokół używany do przesyłania plików tworzących strony WWW;
SMTP (ang. Simple Mail Transfer Protocol) - protokół
używany do przesyłania wiadomości poczty elektronicznej wraz z załącznikami;
Telnet (ang. Telecommunication Network) - protokół
emulacji terminala umożliwiający komunikację ze zdalnym urządzeniem;
FTP (ang. File Transfer Protocol) - protokół używany do interaktywnego przesyłania plików pomiędzy systemami.
Protokół i usługa DNS
DNS - system nazw domenowych, umożliwiający przekształcić adres numeryczny na prostą o
rozpoznawalną dla człowieka nazwę.
DNS
System nazw domenowych ma strukturę hierarchiczną.
Hierarchia wygląda jak odwrócone drzewo z korzeniem (root) na szczycie i gałęziami poniżej. Domeny najwyższego poziomu
reprezentują typ organizacji lub kraj pochodzenia. Przykładami domen najwyższego poziomu są:
.au - Australia
.co - Kolumbia
.com - działalność komercyjna lub przemysł
.jp - Japonia
.org - organizacja non-profit
Po domenach najwyższego poziomu występują domeny drugiego poziomu, a poniżej nich - domeny kolejnego niższego poziomu.
HTTP
Protokół HTTP jest jednym z protokołów stosu
TCP/IP. Powstał on pierwotnie w celu publikowania i pobierania stron HTML. Obecnie jest używany przez rozproszone kooperujące systemy informacyjne. HTTP jest stosowany do przesyłania danych w sieci WWW - jest jednym z najczęściej używanych protokołów
aplikacji.
HTTP
HTTP jest protokołem typu żądanie/odpowiedź (ang.
request/response). Kiedy klient (zwykle przeglądarka WWW) wysyła komunikat z żądaniem strony WWW do serwera, protokół HTTP określa typ tego
komunikatu. Podobna sytuacja ma miejsce, gdy serwer wysyła odpowiedź. Trzy najważniejsze typy
komunikatów to: GET, POST oraz PUT.
GET
GET jest prośbą klienta o dane. Przeglądarka wysyła żądanie GET w celu pobrania strony WWW z serwera. W momencie gdy
serwer otrzymuje żądanie GET, odpowiada wierszem
opisującym stan, np. HTTP/1.1 200 OK, a następnie przesyła żądany plik, komunikat o błędzie lub inne informacje.
POST i PUT
Komunikaty POST oraz PUT są używane w procesie
przesyłania danych do serwera WWW. Na przykład, kiedy użytkownik wprowadzi dane do formularza
umieszczonego na stronie WWW, POST włączy te dane do wiadomości przesyłanej do serwera.
PUT przesyła dane w postaci plików do serwera WWW.
HTTPS
HTTP nie jest bezpiecznym protokołem. Komunikaty POST wysyłane są do serwera jawnym tekstem, który może
zostać przechwycony i przeczytany. Podobnie, odpowiedzi serwera (zwykle strony HTML) również nie są szyfrowane.
W sieci Internet, do bezpiecznej komunikacji z serwerem WWW, stosuje się protokół HTTP Secure (HTTPS). Do ochrony danych przesyłanych pomiędzy klientem i
serwerem, HTTPS stosuje algorytmy uwierzytelniania i szyfrowania. HTTPS określa dodatkowe reguły dla
przepływu danych pomiędzy warstwą aplikacji i warstwą transportową.
Poczta elektroniczna (e-mail) - najbardziej popularna usługa sieciowa - zrewolucjonizowała komunikację między ludźmi dzięki swojej prostocie i szybkości. Do poprawnego działania poczty elektronicznej na
komputerze lub innym urządzeniu końcowym (PDA,
telefon komórkowy) wymagane jest klika aplikacji i usług.
Dwa przykładowe protokoły warstwy aplikacji to POP (ang.
Post Office Protocol) oraz SMTP (ang. Simple Mail Transfer Protocol).
POP i SMTP
Do pobierania wiadomości z serwera pocztowego klient używa protokołu POP lub IMAP. Natomiast proces
wysyłania wiadomości opisuje protokół SMTP. Zwykle
klient e-mail dostarcza funkcjonalność obu protokołów w ramach jednej aplikacji.
Procesy serwera
Serwer poczty elektronicznej obsługuje dwa niezależne procesy:
MTA (ang. Mail Transfer Agent) MDA (ang. Mail Delivery Agent)
Proces MTA jest używany do przekazywania poczty elektronicznej. Agent MTA w oparciu o zawartość
nagłówka wiadomości decyduje, jak wiadomość musi być przekazywana, aby osiągnęła swój cel. Jeśli list jest
adresowany do użytkownika, który posiada skrzynkę
pocztową na lokalnym serwerze, to list jest przekazywany do agenta MDA. Natomiast jeśli skrzynka pocztowa
adresata znajduje się na innym serwerze, agent MTA
przekazuje list do agenta MTA na odpowiednim serwerze.
Procesy serwera
Agent MDA otrzymuje od agenta MTA całą pocztę
przychodzącą i umieszcza ją w skrzynkach pocztowych odpowiednich użytkowników. Agent MDA może również zajmować się problemami związanymi z końcową fazą dostarczania wiadomości, np. skanowanie w
poszukiwaniu wirusów, filtrowanie spamu czy potwierdzenia odebrania wiadomości.
Procesy serwera
SMTP
Protokół SMTP (ang. Simple Mail Transfer Protocol) zarządza procesem przesyłania poczty wychodzącej od klienta do serwera pocztowego (MDA), jak również
pomiędzy serwerami (MTA). SMTP umożliwia
przesyłanie poczty elektronicznej pomiędzy różnymi typami serwerów i oprogramowania klienta oraz
wymianę korespondencji w sieci Internet.
SMTP
FTP
FTP (ang. File Transfer Protokol) został stworzony do obsługi przesyłania plików pomiędzy klientem i
serwerem. Klient FTP jest uruchamianą na
komputerze aplikacją, która jest używana do wysyłania i pobierania plików z serwera z uruchomionym
demonem FTP (FTPd).
FTP
Aby przesyłanie plików zakończyło się
powodzeniem, FTP wymaga dwóch połączeń pomiędzy klientem i serwerem: jednego - do
przesyłania komend i odpowiedzi, a drugiego - do
faktycznego przesyłania pliku.
DHCP
Usługa DHCP (ang. Dynamic Host Configuration Protocol) umożliwia urządzeniom w sieci
otrzymywanie adresów IP i innych informacji z serwera DHCP. Ta usługa automatyzuje
przypisywanie adresów IP, masek podsieci, bramy i
innych parametrów sieciowych.
SMB
SMB (ang. Server Message Block) jest protokołem typu klient-serwer, który stosowany jest do
udostępniania plików.. Opisuje on strukturę
współdzielonych zasobów sieciowych, takich jak katalogi, pliki, drukarki czy porty szeregowe. W przeciwieństwie do protokołu FTP, klienci
nawiązują długoterminowe połączenia z serwerem.
Po ustanowieniu połączenia, użytkownik klienta ma dostęp do zasobów na serwerze tak, jakby
zasoby były lokalne dla hosta klienta.
SMB
p2p
Aplikacje P2P - oparte na protokole Gnutella -
umożliwiają ludziom udostępnianie swoich plików (zgromadzonych na twardych dyskach), w celu
pobrania ich przez innych użytkowników.
Oprogramowanie klienta zgodne z protokołem
Gnutella pozwala użytkownikom połączyć się przez
Internet z usługami protokołu Gnutella, zlokalizować i mieć dostęp do zasobów udostępnionych przez inne urządzenia.
Protokół Gnutella
Kiedy użytkownik jest połączony z usługą Gnutella, jego aplikacje poszukują innych węzłów Gnutella, z którymi mogłyby się połączyć. Węzły te obsługują zapytania o lokalizację zasobów i odpowiadają na żądania. Poza tym zarządzają komunikatami
kontrolnymi, które pomagają usłudze odkrywać kolejne węzły. Zazwyczaj przesyłanie plików
funkcjonuje w oparciu o usługi HTTP.