konto shell'owe (ssh, scp, sftp, unix) :: poczta (SMTP, POP3, IMAP) :: NNTP :: HTTP (HTML, PHP, DB) :: DNS :: IRC :: Przekaz w czasie rzeczywistym i VoIP :: transmisje multimedialne - RTSP :: SIP :: XMPP/Jabber :: telnet :: FTP :: SMB (samba) :: Inne usługi: finger, identd, daytime, time, ... :: Lista ważniejszych programów "komunikacyjnych" :: Programy komunikacyjne :: Serwery :: podstawy testowania protokołów sieciowych - telnet i netcat :: Linki

O podstawowych usługach sieciowych

konto shell'owe (ssh, scp, sftp, unix)

Jest to usługa polegająca na udostępnieniu kont użytkowników na serwerze (z dostępem zdalnym przez SSH, rzadziej telnet) pozwalających na korzystanie z zainstalowanych tam programów oraz innych usług omawianych poniżej, jak również umieszczania tam swoich plików (przy pomocy SCP lub SFTP, rzadziej FTP).

SSH (bezpieczny shell) jest protokołem pozwalającym na zdalną pacę w którym połączenie (a w szczególności hasło) jest kodowane, na jego bazie funkcjonują rozwiązania takie jak SCP (bezpieczne kopiowanie) pozwalający na kopiowanie plików między zdalnymi serwerami i SFTP (bezpieczny FTP) pozwalający pracować z komendami FTP przy połączeniu szyfrowanym.

poczta (SMTP, POP3, IMAP)

Simple Mail Transfer Protocol to protokół przesyłania poczty elektronicznej pomiędzy agentami dostarczania - MTA (jest to względnie prosty, tekstowy protokół, w którym określa się co najmniej jednego odbiorcę wiadomości (w większości przypadków weryfikowane jest jego istnienie), a następnie przekazuje treść wiadomości). SMTP (także w wersji rozszerzonej m.in. o autoryzację - zobacz SMTP-AUTH) jest często stosowany także do wysyłania poczty z programu pocztowego do pierwszego MTA. SMTP operuje kilkoma typami numerów błędów - są to podstawowe numery zdefiniowane w samym SMTP, numery rozszerzające (rozdzielane kropkami) zdefiniowane w RFC 3463 oraz numery błędów DSN (RFC 1894).

Dopiero odbieranie wiadomości z serwera na którym działa MTA odbywa się przy pomocy innych protokołów takich jak POP3 (Post Office Protocol) oraz IMAP (Internet Message Transfer Protocol). IMAP jest protokołem nowszym od POP3 i posiadającym więcej funkcji m.in. obsługę już przefiltrowanej poczty umieszczanej w różnych plikach - skrzynkach (w odróżnieniu od POP3, który jest w stanie pobrać tylko wiadomości ze skrzynki systemowej, pozostawiając je tam lub kasując). Aby odbierać przez IMAP pocztę ze skrzynki systemowej jako folder należy podać INBOX, natomiast aby odebrać pocztę z innej skrzynki należy podać jej ścieżkę (np. ~/Mail/wazne odbierze pocztę z pliku ważne umieszczonego w podkatalogu Mail katalogu domowego użytkownika). Warto również zwrócić uwagę na systemy obsługi poczty przez WWW, zarówno przez POP3, IMAP jak i z lokalnych skrzynek, bardzo popularnym programem tego typu obsługującym zasadniczo pocztę z lokalnego serwera jest SquirrelMail. Wart jeszcze wspomnieć o możliwości czytania poczty po zalogowaniu na swoje konto - najczęściej program mutt lub poprzez edytor tekstowy.

Systemy obsługi poczty umożliwiają często konfigurację zaawansowanego jej przetwarzania po stronie serwera (takiego jak przenoszenie do odpowiednich folderów pocztowych, autoodpowiadanie, przekazywanie na inne adresy, ...)

NNTP

NNTP - zbliżony do poczty elektronicznej protokół grup dyskusyjnych (wiadomości wysyłane są do grupy o zadanej nazwie, przechowane są na serwerze i mogą zostać pobrane przez osoby czytające daną grupę). Protokół może być wykorzystywany na pojedynczym serwerze lub w ramach sieci serwerów (gdzie te same grupy przechowywane są na wielu serwerach, a użytkownik korzysta z "najbliższego"). W oparciu o ten protokół funkcjonuje sieć usenet.

HTTP (HTML, PHP, DB)

Protokół Transmisji Hipertekstu (Hypertext Transfer Protocol) - jest to obecnie jeden z najpopularniejszych protokołów internetowych. Jest on odpowiedzialny za transfer stron WWW (zarówno samego pliku HTML'owskiego jak i elementów w nim umieszczonych - grafiki, dźwięku, ...), obecnie (dzięki możliwości wznawiania przerwanej transmisji) często wykorzystywany również do przesyłu pobieranych z WWW plików. Pozwala również na transfer od użytkownika do serwera (ciasteczka (cookies), formularze, a nawet całe pliki).

W budowie serwisów (oprócz HTML'a, elementów graficznych, skryptów wykonujących się w przeglądarce, ...) często korzysta się z serwerowych języków skryptowych (CGI, PHP, ...) które pozwalają na dynamiczną generację wysyłanej strony (strona sama w sobie zawiera takie same elementy jak strony tworzony w sposób statyczny). Ich wykorzystanie często łączy się z wykorzystaniem systemów baz danych (prawie zawsze są to bazy SQL, do najpopularniejszej należy system MySQL).

DNS

Domain Name System - system pozwalający na posługiwanie się nazwami przyjaznymi dla człowieka zamiast numerami IP (oraz translację odwrotną). Jest jednym z podstawowych protokółów Internetu. DNS oparty jest na hierarchicznym układzie domen (domena nadrzędna to pierwsza od prawej część adresu, natomiast nazwa najbardziej na lewo określa konkretny komputer w danej domenie).

Serwery DNS zawierają różnego rodzaju wpisy, do najważniejszych zalicza się wpisy typu: A (zamiana nazwy na IPv4), AAAA (zamiana nazwy na IPv6), CNAME (alias), MX (serwer obsługi poczty), NS (serwer nazw obsługujący daną poddomenę), SRV (serwer obsługi zadanej usługi), PTR (DNS odwrotny).

Rekordy SRV są bardzo dobrym rozwiązaniem aby móc oferować usługi zlokalizowane na różnych serwerach pod wspólną nazwą domenową, a także rozkładać obciążenie pomiędzy serwery. Jednak niestety dla wielu (głównie starszych) protokołów implementacja tego mechanizmu praktycznie nie istnieje - jest tak m.in. w wypadku SMTP (tu co prawda mamy MX ale o mniejszych możliwościach niż SRV), HTTP

IRC

IRC - najstarszy, ale nadal bardzo popularny protokół chatów internetowych, rozmowy odbywają się na tzw. kanałach (np. tematycznych), możliwe jest też prowadzenie prywatnej rozmowy z wybraną osobą. Protokół umożliwia tworzenie sieci serwerów przekazujących wiadomości między sobą, wtedy użytkownik komunikuje się z najbliższym siebie serwerem (sieci irc).

Przekaz w czasie rzeczywistym i VoIP

Sieci pakietowe (w szczególności Internet) nie były tworzone z myślą o przesyłaniu danych w czasie rzeczywistym (oczywiście przesyłanie jest stosunkowo szybkie, jednak nie ma gwarancji braku opóźnień ani poprawnej kolejności odbioru pakietów). Jednak popularyzacja tych rozwiązań wraz z chęcią integracji sieci IP z systemami telefonii, radiofonii czy telewizji. O ile w przypadku tych dwóch ostatnich (podobnie jak przy większości usług multimedialnych, np. video na życzenie (VoD)) dość prostym rozwiązaniem jest buferowanie po stronie odbiornika (nawet przy transmisjach na żywo kilkudziesięcio-sekundowe opóźnienie jest zaniedbywalne w świetle opóźnień wprowadzanych na etapie realizatorskim ...). O tyle w przypadku telefonii czy wideotelefonii i usług pokrewnych (konferencje, ...) rozwiązanie to nie może być zastosowane a opóźnienia w przesyle informacji muszą być małe (inaczej rozmowa staje się uciążliwa). VoIP (Voice over IP) jest właśnie określeniem zbioru technik i protokołów służących do przesyłania głosu i obrazu w czasie rzeczywistym. Wykorzystuje się m.in. pola pozwalające na priorytetowanie ruchu IP, kompresję danych (często dostosowaną tylko do danego zagadnienia - np. mowy).

transmisje multimedialne - RTSP

RTSP jest protokołem do adresowania URLowego mediów, sterowania odtwarzaniem, cachowaniem strumieni multimedialnych (transmitowanych innym protokołem np, RTP). Zestaw RTSP+RTP dla transmisji obrazu z kamer IP (do celów rejestracji, umieszczanie na www itp). Kamery korzystające z tego zestawu są obsługiwane m.in przez zoneminder.

SIP

Session Initiation Protocol (SIP) jest dominującym obecnie standardem tego typu usług (wypiera królujący do niedawna H.323). SIP jest w zasadzie protokołem typu "peer to peer", współpracuje z Session Description Protocol (SDP), natomiast do przesyłu swoich sesji wykorzystuje pakiety protokołu RTP. Konstrukcja SIP oparta jest w zasadzie na HTTP, podobnie jak on SIP używa prostego mechanizmu żądań i odpowiedzi oraz korzysta z czystego tekstu. Metoda adresacji została natomiast zaczerpnięta z poczty elektronicznej i jest postaci "uzytkownik@host.domena:port", SIP korzysta z URI scheme "sip:" oraz domyślnego portu 5060; możliwa jest tez adresacja w stylu PSTN. Opracowywany jest też protokół IM opary na założeniach SIPu - SIMPLE. Warto wspomnie o serwerach typu registrar oraz proxy - te pierwsze służą wskazywaniu położenia klienta (ale rozmowa nie przechodzi przez ten serwer, chyba że jest do niego jawnie adresowana), te drugie przekazują rozmowę przez siebie (mogą tym samym udostępniać usługi takie jak nagrywanie rozmów itp.). Obok tych serwerów (mogą być niezależnymi usługami) funkcjonuje także nazwa domenowa konta, która w ogólności może być inna od nazw tych serwerów (ale w pewnym sensie musi być rozwijana do adresu serwera registrar.

Zobacz w Sieci: Telefonia @ Wikibooks, Bezpieczeństwo VOIP opartego na SIP.

XMPP/Jabber

Bardzo interesującym wydaje się protokół XMPP/Jabber (który z dużym prawdopodobieństwem ma szansę stać się oficjalnym protokołem IM). Jest to otwarty, uniwersalny protokół rozproszonej sieci Instant Message (podobnie jak email użytkownik mający konto na serwerze X nie ma problemów z komunikacją z użytkownikiem z serwera Y (są nawet bramki do innych usług IM, takich jak GG, ICQ, ...); a nie jak dzieje się w komunikatorach tylko z użytkownikiem swojej sieci).

Protokół ten posiada wiele interesujących rozszerzeń standaryzowanych w ramach dokumentów XEP. Do najciekawszych w mojej opinii należą:

telnet

Telnet jest usługą internetowa pozwalająca na zdalne logowanie się na serwer i zdalną pracę. Hasło przesyłane jest jednak otwartym tekstem co nie jest bezpieczne i dlatego też usługa ta jest bardzo rzadko używana.
Najbardziej przyjemną cechą telnetu (zasadniczo to jego klientów, a nie samego protokołu) jest możliwość tekstowej komunikacji z innymi usługami (działającymi na innych portach i korzystających z innych protokołów), np: WWW, Jabber. Co jest ważną opcją diagnostyczną.

FTP

Protokół Transmisji Plików (File Transfer Protocol) - jest to usługa internetowa pozwalająca na transfer plików z serwera do komputera i z komputera na serwer. Usługa zasadniczo wymaga autoryzacji, często spotykana jest w wariancie dostępu anonimowego uprawniającego tylko do pobierania plików przez ten protokół, podobnie jak w telnecie hasło wysyłane jest jawnym tekstem. Obecnie coraz częściej wypierany przez SFTP/SCP (z dostępu autoryzowanego) i HTTP (z dostępu nieautoryzowanego).

SMB (samba)

Usługa wykorzystywana w sieciach lokalnych, przeznaczona głównie dla komputerów działających pod kontrolą Windows (taki substytut NFS - sieciowego systemu plików znanego z Unixów / Linuxa), pozwalająca na udostępnianie zasobów dyskowych i drukarek w sieci lokalnej.

Inne usługi: finger, identd, daytime, time, ...

Usługi te (w dużej mierze obsługiwane przez inetd) obecnie praktycznie nie są już używane (ale np. finger na ogół jest dostępny lokalnie) służyły one (w czasach otwartego internetu) podawaniu informacji o maszynie i jej użytkownikach, a także celom diagnostycznym (echo, chargen), były również przodkami usług obecnie powszechnie używanych (gopher -> WWW, talk -> IM, rlogin, rsh -> SSH). Wspomniany inetd / xinetd często odpowiada też za usługi dostępu do poczty, telnet i FTP.

Lista ważniejszych programów "komunikacyjnych"

Programy komunikacyjne

Bardzo ważną w dzisiejszych czasach grupą programów są programy odpowiedzialne za komunikację ze światem zewnętrznym.

Należy tu chyba zacząć od przeglądarek internetowych - są to programy umożliwiające przede wszystkim oglądanie stron WWW (dokumentów opisanych w HTML'u i przesyłanych poprzez protokoły HTTP i HTTPS), jednak obecnie pełnią więcej funkcji z których przede wszystkim trzeba wspomnieć o obsłudze protokołu FTP. W śród nich również znajdziemy programy działające w trybie tekstowym (choćby słynny Lynx czy W3M), jak i w trybie graficznym - Mozilla i jej odmiany, Konqueror.

Następną grupą programów komunikacyjnych są klienci poczty elektronicznej oraz grup dyskusyjnych (często ta funkcjonalność jest połączona w jednym programie), należy tutaj wspomnieć o tekstowym pine oraz graficznych klientach. Należy też pamiętać o programach nie będących typowymi klientami ale pomagającym nam w obsłudze poczty takich jak filtr pocztowy (procmail), narzędzie do przetwarzania nagłówków (formail, będący częścią procmail'a) i podbieracz poczty (fechmail).

Kolejną ważną grupą są klienci takich usług jak telnet, ftp, ssh, scp, sftp, ..., są to najczęściej programy trybu tekstowego o takich właśnie nazwach, jak również klienci graficznie (głównie usług FTP podobnych).

Wspomnieć należy jeszcze o coraz popularniejszych klientach sieci IM, umożliwiających powiadamianie o obecności w sieci, natychmiastowy przesył wiadomości, przesył plików i rozmowy głosowe (skupie się na otwartej i zdecentralizowanej sieci Jabbera), wśród klientów należy wymienić Psi, Exodus oraz tekstowy imcom (stworzony w Perlu) i centericq (obsługujący również inne sieci IM).

Omawianie programów komunikacyjnych zakończyć należy na klientach p2p (sieci bezpośredniej wymiany plików), klientach protokółu VoIP oraz programach obsługujących fax-modem (faxowanie, telefonowanie, aparat zgłoszeniowy, ...) i kartę radiowo-telewizyjną.

Serwery

Są to programy pracujące w trybie ciągłym i obsługujące nadchodzące (lub zaplanowane) żądania. Do najważniejszych należą serwery usług sieciowych takie jak poczty (sendmail, ...), WWW (Apache, ...), IMAP, Jabber, FTP, SSH, ... oraz wielu usług (xinetd), systemów baz danych (MySQL, PostgreSQL) . Swoistym serwerem jest też systemowy corn realizujący zaplanowane zadania w zadanym czasie. Więcej na ten temat w osobnym artykule poświęconym stawianiu serwera sieciowego.

podstawy testowania protokołów sieciowych - telnet i netcat

Większość podstawowych protokołów sieciowych wykorzystuje w komunikacji wiadomości przesyłane zwykłym tekstem (ASCII), dlatego też do ich testowania możemy wykorzystać klienta telnetu (lub bardziej zaawansowany netcat mogący też pełnić rolę serwera przyjmującego połączenia). Do usług takich należy WWW (protokół HTTP) gdzie po połączeniu się z (standardowo) portem 80 serwera i wysłaniu stosownego komunikatu otrzymamy nagłówki HTTP odpowiedzi oraz jej treść (dane tekstowe np. HTML bądź dane binarne np. obrazek). Wspomniana treść żądania może wyglądać następująco (kończy się wysłaniem pustej linii):

GET / HTTP/1.1
Host: www.opcode.eu.org

Podobnie jest w protokołach SMTP (przesył poczty elektronicznej) - tutaj możemy korzystając z tej metody wysyłać listy z np. sfałszowanymi nagłówkami, XMPP (jabber), POP3, IMAP, ... . Szczegółowe opisy składni poszczególnych protokołów znaleźć możemy w dokumentach RFC.

Linki

Warto zapoznać się także z artykułem poświęconym konfiguracji usług sieciowych.

Zobacz w Sieci: URL, URN, Voice Over Internet Protocol Guru, Siproxd, Asterisk, SIP Express Router, Computer network technologies and services.



Copyright (c) 1999-2015, Robert Paciorek (http://www.opcode.eu.org/), BSD/MIT-type license


Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.

This text/program is free document/software. Redistribution and use in source and binary forms, with or without modification, ARE PERMITTED provided save this copyright notice. This document/program is distributed WITHOUT any warranty, use at YOUR own risk.

Valid XHTML 1.1 Dokument ten (URL: http://www.opcode.eu.org/networks/services) należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek, wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: '2015-10-10 11:34:39 (UTC)' (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).