Który z wymienionych protokołów jest protokołem działającym w warstwie aplikacji?
A. FTP
B. TCP
C. ARP
D. UDP
Pytanie z egzaminu CKE, wrzesień 2015 (arkusz E.13-X-15.08).
FTP, czyli File Transfer Protocol, jest protokołem warstwy aplikacji, bo służy bezpośrednio do realizacji konkretnej usługi dla użytkownika lub programu: przesyłania plików między klientem a serwerem. W modelu OSI warstwa aplikacji obejmuje protokoły takie jak FTP, HTTP, SMTP, DNS czy SSH, czyli takie, które definiują sposób komunikacji usług sieciowych, format poleceń, odpowiedzi oraz zachowanie aplikacji. FTP działa zwykle nad TCP, najczęściej z użyciem portu 21 do sterowania połączeniem oraz dodatkowego kanału danych, zależnie od trybu aktywnego albo pasywnego. I to jest ważny praktyczny szczegół, bo przy konfiguracji zapory sieciowej albo NAT często trzeba uwzględnić nie tylko sam port sterujący, ale też sposób otwierania połączeń danych. Moim zdaniem FTP jest dobrym przykładem do nauki warstw sieciowych, bo od razu widać różnicę między protokołem aplikacyjnym a transportowym. FTP nie zajmuje się samym niezawodnym dostarczaniem segmentów, tylko korzysta z TCP, który robi to niżej. W praktyce administrator może spotkać FTP przy serwerach plików, aktualizacjach urządzeń, starszych systemach monitoringu albo archiwizacji danych. Dobrą praktyką branżową jest jednak pamiętać, że klasyczny FTP przesyła dane logowania i treść transmisji bez szyfrowania, więc w nowoczesnych wdrożeniach częściej stosuje się SFTP albo FTPS, szczególnie gdy przesyłane są hasła, kopie zapasowe lub dane firmowe.
W tym pytaniu łatwo pomylić pojęcie protokołu sieciowego z protokołem warstwy aplikacji, bo wszystkie wymienione nazwy faktycznie występują w sieciach komputerowych. Kluczowe jest jednak to, na jakim poziomie modelu odniesienia dany protokół pracuje i za co odpowiada. UDP oraz TCP nie są protokołami aplikacyjnymi, tylko transportowymi. Ich zadaniem jest przenoszenie danych między procesami działającymi na hostach, czyli obsługa portów, podział danych na jednostki transmisyjne i w przypadku TCP także kontrola kolejności, retransmisje oraz potwierdzenia. TCP zapewnia połączeniową i niezawodną transmisję, a UDP jest prostszy, bezpołączeniowy i używany tam, gdzie liczy się niskie opóźnienie, na przykład w VoIP, transmisji wideo, DNS czy grach online. Żaden z nich sam nie definiuje usługi użytkowej typu przesyłanie plików czy pobieranie strony WWW. ARP też nie pasuje do warstwy aplikacji. ARP działa na styku warstwy sieciowej i łącza danych w sieciach IPv4, ponieważ służy do ustalenia adresu MAC na podstawie znanego adresu IP w lokalnej sieci. To mechanizm bardzo techniczny, potrzebny do dostarczenia ramki Ethernet w LAN, a nie protokół wykorzystywany bezpośrednio przez aplikację użytkownika. Typowy błąd myślowy polega na tym, że ktoś kojarzy skrót z siecią i od razu wrzuca go do jednej grupy. W praktyce warto zawsze zadać sobie pytanie: czy ten protokół świadczy konkretną usługę aplikacyjną, czy raczej tylko transportuje albo adresuje dane? FTP świadczy usługę przesyłania plików, dlatego należy do warstwy aplikacji, natomiast TCP, UDP i ARP pracują niżej w stosie komunikacyjnym.