Protokoły modelu OSI


Warstwa modelu OSIProtokoły modelu OSI
Warstwa aplikacjiAPPC , NFS , DAP , DLC , DNS: 53 , ed2k , FTAM , FTP: 20, 21 , Gopher , HTTP: 80 , HTTPS: 443 , IMAP: 143 , IRC: 194, 529 , NCP: 524 , NBT (NetBIOS over TCP/IP): 137, 138, 139 , NWLink , NNTP: 119 , NTP: 123 , PAP , POP3: 110 , RPC , RTP , RTSP , SNMP: 161, 162 , SMTP: 25 , SMB , SSL/TLS , SSH: 22 , TDI , Telnet: 23 , X.400 , X.500 (LDAP)
Warstwa prezentacji MIME , XDR , SSL , TLS
Warstwa sesji NetBIOS , SAP
Warstwa transportowa TCP , UDP , PPTP , L2TP , SCTP
Warstwa sieciowaIP (IPv4, IPv6) , IPX , ICMP , IGMP , IPsec
Warstwa łącza danych ARP , CSLIP , SLIP , Frame Relay , ITU-T G.hn DLL , LAPB
Warstwa fizyczna RS-232 , V.35 , V.34 , V.90 , I.430 , I.431 , T1 , E1 , 802.3 Ethernet (10BASE-T, 100BASE-T, 1000BASE-T) , POTS , SONET , DSL , ADSL , 802.11a/b/g/n PHY , ITU-T G.hn PHY




Protokoły warstwy aplikacji



  • Advanced Program to Program Communications (APPC) - protokół komunikacyjny opracowany przez firmę IBM, który umożliwiał współdzielenie aplikacji w sieci.

  • Network File System (NFS) - oparty na UDP lub TCP protokół zdalnego udostępniania systemu plików. Standardowy port NFS to 2049.

    NFS jest de facto standardowym sieciowym systemem plików na systemach uniksowych. Inne protokoły udostępniające taką usługę, jak np. Coda, nie zyskały dużej popularności.

    NFS został opracowany przez Sun Microsystems.

    Z NFS wiąże się wiele problemów - przede wszystkim bardzo trudno zapewnić, że dana operacja została wykonana. Scenariusz prawidłowego działania to:
    • żądanie zostaje wysłane przez klienta
    • żądanie zostaje odebrane przez serwer
    • operacja zostaje wykonana
    • potwierdzenie zostaje wysłane przez serwer
    • potwierdzenie zostaje odebrane przez klienta.
    Jeśli między odebraniem żądania a wysłaniem potwierdzenia wystąpi błąd, klient może się nie dowiedzieć, czy operacja została wykonana.

    Istnieją serwery NFS zarówno w przestrzeni użytkownika jak i w przestrzeni jądra (np. w nowych Linuksach).

  • Directory Access Protocol (DAP) jest standardem stworzonym przez ITU-T oraz ISO w roku 1988 w celu dostępu do usługi katalogowej X.500. DAP stworzony był z myślą wykorzystania go przez systemy klienckie, jednak nie stał się popularny, ponieważ w chwili jego powstania istniało niewiele pełnych implementacji modelu OSI mogących działać na takich maszynach. Podstawowymi operacjami DAP są Bind, Read, List, Search, Compare, Modify, Add, Delete oraz ModifyRDN. Wymienione metody zostały później wykorzystane przez usługi katalogowe Novella oraz Lightweight Directory Access Protocol (LDAP). Domain Name System (DNS, pol. "system nazw domenowych") - system serwerów, protokół komunikacyjny oraz usługa obsługująca rozproszoną bazę danych adresów sieciowych. Pozwala na zamianę adresów znanych użytkownikom Internetu na adresy zrozumiałe dla urządzeń tworzących sieć komputerową. Dzięki DNS nazwa mnemoniczna, np. pl.wikipedia.org jest tłumaczona na odpowiadający jej adres IP, czyli 91.198.174.192.

  • DNS to złożony system komputerowy oraz prawny. Zapewnia z jednej strony rejestrację nazw domen internetowych i ich powiązanie z numerami IP. Z drugiej strony realizuje bieżącą obsługę komputerów odnajdujących adresy IP odpowiadające poszczególnym nazwom. Jest nieodzowny do działania prawie wszystkich usług sieci Internet

    System DNS posiada następujące cechy:
    • Nie ma jednej centralnej bazy danych adresów IP i nazw. Najważniejszych jest 13 głównych serwerów (klastrów) rozmieszczonych na wielu kontynentach.
    • Serwery DNS przechowują dane tylko wybranych domen.
    • Każda domena powinna mieć co najmniej 2 serwery DNS obsługujące ją, jeśli więc nawet któryś z nich będzie nieczynny, to drugi może przejąć jego zadanie.
    • Każda domena posiada jeden główny dla niej serwer DNS (tzw. master), na którym to wprowadza się konfigurację tej domeny, wszystkie inne serwery obsługujące tę domenę są typu slave i dane dotyczące tej domeny pobierają automatycznie z jej serwera głównego po każdej zmianie zawartości domeny.
    • Serwery DNS mogą przechowywać przez pewien czas odpowiedzi z innych serwerów (ang. caching), a więc proces zamiany nazw na adresy IP jest często krótszy niż w podanym przykładzie.
    • Na dany adres IP może wskazywać wiele różnych nazw. Na przykład na adres IP 207.142.131.245 mogą wskazywać nazwy pl.wikipedia.org oraz de.wikipedia.org
    • Czasami pod jedną nazwą może kryć się więcej niż 1 adres IP po to, aby jeśli jeden z nich zawiedzie, inny mógł spełnić jego rolę.
    • Przy zmianie adresu IP komputera pełniącego funkcję serwera WWW, nie ma konieczności zmiany adresu internetowego strony, a jedynie poprawy wpisu w serwerze DNS obsługującym domenę.
    • Protokół DNS posługuje się do komunikacji serwer-klient głównie protokołem UDP, serwer pracuje na porcie numer 53, przesyłanie domeny pomiędzy serwerami master i slave odbywa się protokołem TCP na porcie 53.
    Zapytania i odpowiedzi DNS są najczęściej transportowane w pakietach UDP. Każdy komunikat musi się zawrzeć w jednym pakiecie UDP (standardowo 512 oktetów, ale wielkość tę można zmieniać pamiętając również o ustawieniu takiej samej wielkości w MTU - Maximum Transmission Unit). W innym przypadku przesyłany jest protokołem TCP i poprzedzony dwubajtową wartością określającą długość zapytania i długość odpowiedzi (bez wliczania tych dwóch bajtów). Format komunikatu DNS został zdefiniowany w RFC 1035

  • ed2k - protokół sieciowy typu P2P. Pierwszym klientem obsługującym ten protokół był eDonkey2000, stąd nazwa i wynikające z tego powodu niejednoznaczności: czasem określenie eDonkey dotyczy klienta, a czasem rodzaju sieci.

    Autor protokołu ed2k opracował też protokół Overnet. Wiele aplikacji klienckich obsługuje również Overnet, dzięki czemu obie sieci ze sobą współpracują. Sieć eDonkey jest zdecentralizowana, ale do jej pracy konieczne są komputery pełniące rolę serwerów. Zadaniem serwerów jest kojarzenie klientów, którzy wymieniają między sobą pliki. Oprogramowanie zgodne z protokołem ed2k istnieje w wersjach dla prawie wszystkich systemów operacyjnych.

    W sieci ed2k plik odnajdywany jest na podstawie jego rozmiaru oraz sumy MD4. Dzięki właściwościom MD4 dwa pliki różniące się choć jednym bajtem mają zupełnie różne sumy MD4. Dla wygody ludzi używa się również normalnych nazw plików. Pliki dzielone są na fragmenty nazywane po angielsku chunks. Dzięki takiemu podejściu, podczas ściągania dużego pliku, komputer od razu staje się źródłem dla innych maszyn. Wystarczy, że z pierwszego źródła do wielu innych miejsc trafią poszczególne fragmenty pliku, a system złoży je u każdego odbiorcy w jedną całość posługując się sumami MD4. W efekcie bardzo pożądany plik szybko się rozprzestrzenia.

    Niezwykle ważne jest podkreślenie, że osoba umieszczająca w sieci ed2k plik nie musi posiadać bardzo szybkiego łącza. Jeżeli znajdzie się wielu chętnych, aby mieć ten plik u siebie, to oni staną się kolejnymi centrami jego dystrybucji. W efekcie sieć ed2k może być wykorzystana do masowego rozpowszechniania bardzo dużych ilości danych. Duże pliki mogą trafić prosto do wszystkich odbiorców bez ponoszenia prawie żadnych kosztów. Niektóre strony internetowe WWW (np. polskie osloskop.net i osiolek.com) zawierają bazy z informacjami jakie pliki warto jest ściągnąć z sieci ed2k. Dodatkowo sam protokół przewiduje pewne mechanizmy wyszukiwania.

    Fakt istnienia bardzo wielu serwerów powoduje, że aby włączyć się do sieci eDonkey należy poszukać w Internecie listy aktywnych serwerów. Sieć ed2k jest ogromnym archiwum plików multimedialnych. Dodatkowym plusem są tu sumy kontrolne, które zapewniają mniejszą szansę na ściągnięcie uszkodzonego lub fałszywego pliku.

    Do pełnego wykorzystania sieci eDonkey konieczne jest posiadanie publicznego adresu IP. Może być on dynamicznie przydzielany poprzez DHCP. Jeżeli komputer ma dostęp do sieci przez proxy lub NAT i administrator odmówi forwardowania portów to klient ed2k otrzyma status "Low ID". Klienty ze statusem "Low ID" mogą pobierać pliki tylko od klientów z "High ID", natomiast klienty z "High ID" zarówno od klientów z "High ID jak i z "Low ID". Status "Low ID" może więc spowodować dostępność mniejszej ilości źródeł i wolniejsze pobieranie. Jeśli pobierany plik jest bardzo rozpowszechniony różnica nie powinna być widoczna.

    Obecnie istnieje ogromna ilość darmowych i otwartych klientów tej sieci. Dużą popularnośc zyskał klient eMule (ang. mule - muł). eMule działa w systemie Microsoft Windows, jednak jego wersja xMule pracuje w Linuksie, aMule w Linuksie, Solarisie, FreeBSD, czy MacOS-ie. MediaVAMP jest popularny w Korei Płd.

    Innym popularnym klientem sieci ed2k jest MLDonkey napisany w języku Ocaml, udostępniany na zasadach licencji GPL, pracujący na prawie wszystkich platformach i obsługujący również inne sieci p2p (np. BitTorrent czy KaZaA).

  • FTAM (ang. File Transfer Access and Management protocol) - protokół 7 warstwy (warstwy aplikacji) modelu OSI, opracowany przez Międzynarodową Organizację Normalizacyjną ISO.

    FTAM był próbą zintegrowania w jednym protokole zagadnień przesyłania plików (podobnie do FTP) oraz zdalnego dostępu do otwartych plików (jak w NFS). Dokument RFC 1415 opisuje specyfikację bramki FTP-FTAM.

    FTAM nie został szeroko zastosowany w Internecie, obecnie cele do jakich był zaprojektowany realizują SMB, NFS i Andrew File System.

  • Protokół transferu plików, FTP (od ang. File Transfer Protocol) - protokół komunikacyjny typu klient-serwer wykorzystujący protokół sterowania transmisją (TCP) według modelu TCP/IP (krótko: połączenie TCP), umożliwiający dwukierunkowy transfer plików w układzie serwer FTP-klient FTP.

    FTP jest zdefiniowany przez IETF w dokumencie RFC 959 ?.

    FTP jest protokołem 8-bitowym i dlatego nie wymaga kodowania danych do 7 bitów, tak jak w przypadku poczty elektronicznej.

    Do komunikacji wykorzystywane są dwa połączenia TCP. Jedno z nich jest połączeniem kontrolnym, za pomocą którego przesyłane są polecenia, a drugie służy do transmisji danych. Połączenie za pomocą protokołu FTP (krótko: połączenie FTP) może działać w dwóch trybach: aktywnym i pasywnym:
    • jeżeli połączenie FTP działa w trybie aktywnym, używa portu 21 dla poleceń (zestawiane przez klienta) i portu 20 do przesyłu danych (zestawiane przez serwer)
    • jeżeli połączenie FTP pracuje w trybie pasywnym, używa portu 21 dla poleceń i portu o numerze powyżej 1024 do transmisji danych (obydwa połączenia zestawiane są przez klienta).
    W sieciach chronionych zaporą sieciową komunikacja z serwerami FTP wymaga zwolnienia odpowiednich portów na tej zaporze lub routerze. Możliwe jest zainstalowanie wielu serwerów FTP na jednym routerze. Warunkiem jest rozdzielenie portów przez router dla każdego serwera.

    Serwer FTP, zależnie od konfiguracji, może pozwalać na anonimowy, czyli bez podawania hasła uwierzytelniającego, dostęp do jego zasobów. Najczęściej jednak serwer FTP autoryzuje każde połączenie za pomocą loginu i hasła.

  • Gopher - protokół klient-serwer, pozwalający na rozpowszechnianie informacji w powszechnych lub kampusowych systemach informacyjnych (ang. world/campus-wide information system, CWIS). Powstał w kwietniu 1991 roku na University of Minnesota Microcomputer, Workstation, Networks Center w celu dystrybucji informacji wewnątrzwydziałowej. Był pierwszym rozpowszechnionym systemem informacyjnym w sieci integrującym różne protokoły: FTP, telnet, WAIS własne struktury danych z możliwością dostępu do różnych typów danych, tak czysto tekstowych, jak i grafik i danych czysto binarnych (archiwów wszelkiego rodzaju). Został później wyparty przez WWW z powodu sztywnej, hierarchicznej struktury (gdzie jednym z elementów ścieżki dostępu był typ pliku), niewygodnych metod tworzenia serwisów, braku pełnej "multimedialności" oraz dlatego, że WWW zyskał większe wsparcie tak producentów jak i środowisk akademickich.

    Pierwszy serwer gophera w Polsce został uruchomiony w końcu listopada 1992, był to gopher.torun.edu.pl, jego administratorem był Rafał Maszkowski.

  • HTTP (ang. Hypertext Transfer Protocol) - protokół przesyłania dokumentów hipertekstowych to protokół sieci WWW (ang. World Wide Web). Obecną definicję HTTP stanowi RFC 2616 ?. Za pomocą protokołu HTTP przesyła się żądania udostępnienia dokumentów WWW i informacje o kliknięciu odnośnika oraz informacje z formularzy. Zadaniem stron WWW jest publikowanie informacji - natomiast protokół HTTP właśnie to umożliwia.

    Protokół HTTP jest użyteczny, ponieważ udostępnia znormalizowany sposób komunikowania się komputerów ze sobą. Określa on formę żądań klienta (tj. np. przeglądarki www) dotyczących danych oraz formę odpowiedzi serwera na te żądania. Jest zaliczany do protokołów bezstanowych (ang. stateless) z racji tego, że nie zachowuje żadnych informacji o poprzednich transakcjach z klientem (po zakończeniu transakcji wszystko "przepada"). Pozwala to znacznie zmniejszyć obciążenie serwera, jednak jest kłopotliwe w sytuacji, gdy np. trzeba zapamiętać konkretny stan dla użytkownika, który wcześniej łączył się już z serwerem. Najczęstszym rozwiązaniem tego problemu jest wprowadzenie mechanizmu ciasteczek. Inne podejścia to m.in. sesje po stronie serwera, ukryte parametry (gdy aktualna strona zawiera formularz) oraz parametry umieszczone w URL-u (jak np. /index.php userid=3).

    HTTP standardowo korzysta z portu nr 80 (TCP).

  • HTTPS (ang. Hypertext Transfer Protocol Secure) - szyfrowana wersja protokołu HTTP. W przeciwieństwie do komunikacji niezaszyfrowanego tekstu w HTTP klient-serwer, HTTPS szyfrował dane przy pomocy protokołu SSL, natomiast obecnie używany jest do tego celu protokół TLS. Zapobiega to przechwytywaniu i zmienianiu przesyłanych danych.

    HTTPS jest używany przez 6,41% wszystkich polskich domen.

    HTTPS działa domyślnie na porcie nr 443 w protokole TCP. Wywołania tego protokołu zaczynają się od https://, natomiast zwykłego połączenia HTTP od http://. Protokół HTTPS jest warstwę wyżej od standardu TLS (który znajduje się na warstwie prezentacji), najpierw następuje więc wymiana kluczy TLS, a dopiero później żądanie HTTP. Powoduje to, że jeden adres IP może serwować tylko jedną domenę lub też tylko subdomeny danej domeny (zależnie od przyznanego certyfikatu).

  • IMAP (ang. Internet Message Access Protocol) - internetowy protokół pocztowy zaprojektowany jako następca POP3.

    W przeciwieństwie do POP3, który umożliwia jedynie pobieranie i kasowanie poczty, IMAP pozwala na zarządzanie wieloma folderami pocztowymi oraz pobieranie i operowanie na listach znajdujących się na zdalnym serwerze.

    IMAP pozwala na ściągnięcie nagłówków wiadomości i wybranie, które z wiadomości chcemy ściągnąć na komputer lokalny. Pozwala na wykonywanie wielu operacji, zarządzanie folderami i wiadomościami.

    IMAP4 korzysta z protokołu TCP oraz portu 143, natomiast IMAPS - również korzysta z TCP oraz portu 993.

    Zalety protokołu IMAP w stosunku do POP3:
    • IMAP pozwala na dwa tryby działania: połączeniowy i bezpołączeniowy. W przypadku protokołu POP, klient zazwyczaj podłączony jest do serwera na tyle długo, na ile trwa pobieranie wiadomości. W przypadku IMAP klient często utrzymuje połączenie dopóki interfejs użytkownika jest uruchomiony, żeby móc pobierać wiadomości na żądanie. W przypadku kont pocztowych posiadających wiele bądź duże wiadomości, tego rodzaju strategia może skutkować niższym czasem reakcji.
    • Protokół POP wymaga, aby w tym samym czasie do danego konta pocztowego podłączony był jeden klient. IMAP pozwala równocześnie podłączać się wielu klientom. Dostarcza mechanizmy pozwalające wykryć zmiany dokonane przez inne podłączone w tym samym czasie stacje klientów.
    • Dzięki IMAP IDLE wiadomości mogą być przesyłane do klientów bezpośrednio po dostarczeniu na serwer, bez konieczności ręcznego odpytywania serwera (push e-mail).
    • W protokole IMAP fragmenty wiadomości elektronicznej są opisane za pomocą standardu MIME. IMAP umożliwia pobieranie wskazanych części wiadomości elektronicznej, niekoniecznie całej wiadomości. Tak więc można pobrać jedynie tekst bez konieczności pobierania załączników (zdjęć, dokumentów, które opisane są każde z osobna przez standard MIME, jako osobne części wiadomości). Możliwe jest też częściowe pobieranie określonych przez MIME fragmentów wiadomości.
    • Protokół IMAP implementuje system flag określających status wiadomości w taki sposób, że każdy z podłączonych klientów widzi zmiany statusów dokonane przez innych klientów. Flagi określają m.in.: czy wiadomość została przeczytana, skasowana, czy udzielona została na nią odpowiedź. Status flag zapisywany jest na serwerze.
    • Niektóre z serwerów IMAP pozwalają na przyporządkowanie do wiadomości jednego, bądź większej ilości predefiniowanych znaczników (tags), których znaczenie interpretowane jest przez klienty pocztowe. Dodawanie znaczników (tagów) wiadomościom jest wspierane przez niektórych dostawców poczty oferujących dostęp z poziomu przeglądarki, np. gmail.
    • IMAP pozwala na posiadanie wielu folderów na jednym koncie pocztowym. Klienty IMAP są w stanie tworzyć, zmieniać nazwę oraz kasować foldery w skrzynkach pocztowych na serwerze. Mogą też przenosić wiadomości między folderami. Możliwy jest również dostęp do folderów publicznych i współdzielonych.
    • IMAP pozwala wykonywać przeszukiwanie skrzynki pocztowej po stronie serwera. Zatem zadanie wyszukiwania może być przetwarzane przez serwer pocztowy, nie przez klienta. Działanie takie nie wymusza pobierania wszystkich wiadomości.
    • Korzystając z doświadczeń wcześniej rozwijanych protokołów, IMAP jasno definiuje sposoby dzięki którym może być rozszerzany.

  • IRC (ang. Internet Relay Chat) - jedna ze starszych usług sieciowych umożliwiająca rozmowę na tematycznych lub towarzyskich kanałach komunikacyjnych, jak również prywatną z inną podłączoną aktualnie osobą.

    Usługa ta funkcjonuje w architekturze klient-serwer, tj. fizycznie składa się z grupy połączonych ze sobą na stałe serwerów oraz programów-klientów. Programy klienckie uruchamiane są przez końcowych użytkowników lokalnie - na ich własnych komputerach, lub zdalnie, za pośrednictwem usługi SSH lub telnet. Rozmowy w sieci IRC odbywają się na tzw. kanałach, z których część funkcjonuje stale. Inne mogą być uruchamiane przez jednego użytkownika w celu porozmawiania choćby z jedną inną osobą.

    Na ekranie użytkownika przewijają się od dołu do góry ekranu komunikaty wysyłane przez osoby piszące na danym kanale. Komunikaty te pojawiają się zaraz po ich wysłaniu, a ich kolejność jest identyczna z kolejnością napływania do serwera. Uzyskuje się dzięki temu wrażenie rozmowy osób przebywających w jednym pomieszczeniu.

    Uczestnicy nie używają zwykle w IRC swoich prawdziwych imion i nazwisk, lecz posługują się krótkimi pseudonimami. Pseudonimy te w gwarze IRC popularnie określa się jako nickname lub krócej nick.

    Aby skorzystać z IRC-a, należy pobrać z sieci program - klient IRC dla używanego przez siebie systemu operacyjnego, następnie to oprogramowanie trzeba skonfigurować, podając adres najbliższego serwera IRC z sieci, z której zamierza się korzystać, oraz pseudonim, pod jakim się chce być widocznym. Po połączeniu się z serwerem należy wybrać jakiś kanał. Nazwy kanałów zazwyczaj zaczynają się od znaku "#" (np. #polska), choć na niektórych serwerach istnieją też kanały o innych właściwościach niż "#" z nazwami zaczynającymi się od znaków "!", "&" czy "+". Wejście na kanał odbywa się zwykle poprzez komendę /join #nazwa_kanału. Lista kanałów jest dostępna przez komendę "/list". Należy się nią jednak ostrożnie posługiwać, gdyż w większych sieciach występują tysiące kanałów. Próby ściągnięcia ich pełnej listy kończą się zazwyczaj odcięciem od serwera. Istnieją też liczne bramki IRC umożliwiające korzystanie z tej usługi przez strony WWW bez konieczności instalowania dodatkowego oprogramowania. Mają one jednak zwykle dużo mniejszą funkcjonalność od dedykowanych programów do IRC.

    Interakcja użytkownika z serwerem IRC odbywa się w oparciu o komendy, za których pomocą możemy wykonać każdą akcję obsługiwaną przez dany serwer IRC. Komendy mogą się różnić zależnie od oprogramowania z którego korzysta dana sieć IRC, jednak różnice te są zwykle niewielkie i sprowadzają się do drobnych różnic w niektórych poleceniach, lub obecnością nietypowych komend charakterystycznych dla konkretnego oprogramowania serwera. Istnieją także polecenia, które są interpretowane przez klienta IRC, a nie wysyłane do serwera.

  • NetWare Core Protocol (NCP) - protokół sieciowy, opracowany i wykorzystywany przez firmę Novell, używany głównie pod kontrolą systemu operacyjnego NetWare.

    NCP służy do uzyskiwania dostępu do plików, katalogów, drukarek sieciowych, synchronizacji zegara systemowego, zarządzania pocztą elektroniczną, zdalnego wywoływania poleceń w trybie terminalowym i innych usług sieciowych. W Novell eDirectory NCP używany jest do synchronizacji wymiany danych między serwerami.

    NCP został, częściowo, zaimplementowany w innych systemach operacyjnych: Linux, Microsoft Windows NT i pochodnych Unixa. Wyróżniamy dwa typy implementacji:
    • serwerowe
      • MARS NWE (niem.) - emulator NetWare 3.x dla Linuxa na licencji GPL.
      • usługa udostępniania plików i drukarek dla NetWare, firmy Microsoft.
    • klienckie
      • NetWare Client dla Mac OS X, firmy Prosoft Engineering (ang.)
      • ncpfs - klient NCP dla Linuxa, na licencji GPL (ang.)
      • klient dla systemu NetWare, firmy Microsoft.

  • NetBIOS over TCP/IP (NBT lub NetBT) - protokół sieciowy umożliwiający aplikacjom opartym na przestarzałym API NetBIOS-u komunikację w sieciach TCP/IP.

    NetBIOS został zaprojektowany we wczesnych latach 80. z myślą o bardzo małych sieciach (do 12 komputerów). Niektóre aplikacje wciąż jednak używają NetBIOS-u, stąd nie są przystosowane do dzisiejszych sieci liczących setki komputerów. Natomiast poprawnie skonfigurowany, NBT pozwala tym aplikacjom na komunikację w dużych sieciach TCP/IP (wliczając cały internet, aczkolwiek powiązane są z tym problemy z bezpieczeństwem) nie zmieniając nic w samej architekturze sieci. NetBIOS dostarcza trzy odrębne usługi:
    • usługa nazw służąca rejestracji i przyznawania nazw (port 137/udp)
    • usługa przekazywania datagramów dla komunikacji bezpołączeniowej (port 138/udp)
    • usługa sesji dla komunikacji połączeniowej (port 139/tcp)
    Wszystkie powyższe usługi są zaimplementowane w NBT.

  • NWLink - protokół (kompatybilny z IPX/SPX/NetBIOS) do współpracy sieci Microsoft z sieciami Novell w systemach operacyjnych rodziny Windows. Usługi po stronie Windows, korzystające z NWLink to: Client Services for Netware (CSNW) i Gateway Service for Netware (GSNW).

  • NNTP (ang. Network News Transfer Protocol) - protokół komunikacyjny używany do obsługi grup dyskusyjnych, w szczególności Usenetu, używający obecnie raczej strumienia TCP/IP niż historycznego UUCP.

    Jest używany zarówno do przesyłania tekstów między serwerami, jak również do czytania i wysyłania artykułów. Standard NNTP zdefiniowany w RFC 977 w roku 1986 od początku nie zawierał formalnych ograniczeń do 7-bitowych kanałów ASCII, co doprowadziło m.in. do powstania kodowania yEnc stosowanego na binarnych grupach dyskusyjnych. Obecnie protokół jest opisywany przez RFC 3977 i domyślnie używa zestawu znaków i kodowania UTF-8.

    W roku 2000 w RFC 2980 opisano powszechnie używane rozszerzenia standardu NNTP, obecnie te rozszerzenia zostały opisane w standardach RFC 4643 i RFC 4644 ?.

    Format wiadomości opisuje RFC 1036 ?, w powszechnym użyciu są też rozszerzenia opisane w propozycji standardu znanej jako son-of-1036, zaś obecnie dobiegają końca prace nad gruntowną aktualizacją standardu.

    NNTP działa standardowo na porcie 119. Przy połączeniu szyfrowanym z użyciem protokołu SSL używany jest port 563, przy czym zwykle następuje bezpośrednie połączenie na tym porcie, co jest czasem określane jako NNTPS. Obecnie RFC 4642 definiuje standard używania w połączeniu z NNTP protokołu TLS (następcy SSL), co oznacza, że możliwość skorzystania z portu połączenia bezpiecznego powinna zostać uzgodniona na początku po nawiązaniu połączenia niezabezpieczonego.

  • Network Time Protocol (w skrócie: NTP) - protokół synchronizacji czasu, którego czwarta wersja jest zdefiniowana w RFC 5905 ?.

    NTP - Protokół komunikacyjny umożliwiający precyzyjną synchronizację czasu pomiędzy komputerami. Wzorcowy czas UTC może pochodzić bezpośrednio z zegarów atomowych lub pośrednio ze specjalizowanych serwerów czasu (ang. Time Server NTP). Protokół NTP jest coraz powszechniej uznawany za światowy standard synchronizacji czasu w urządzeniach teleinformatycznych i telekomunikacyjnych. Ma swoją implementację dla większości współczesnych systemów operacyjnych, z Microsoft Windows NT/2K/XP/2003/VISTA/7/8/10 włącznie.

    Implementacja protokołu NTP dla konkretnych systemów operacyjnych wymaga sprzęgnięcia na niskim poziomie jądra systemu operacyjnego. Czas lokalny tworzony jest przez system poprzez dodanie stosownego przesunięcia uwzględniającego lokalną strefę czasową. Dla systemów operacyjnych Linux i FreeBSD istnieją specjalne nakładki na jądro systemowe umożliwiające obsługę biegu zegarów ze zwiększoną precyzją. Nakładki umożliwiają płynną regulację czasu systemowego poprzez przyspieszenie lub spowolnienie programowego zegara systemowego.

    NTP pozwala na synchronizację czasu z bardzo dużą precyzją, jest rozwiązaniem bardzo stabilnym i bezpiecznym. NTP kalibruje czas płynnie - bez skoków czasu i konieczności przestawiania zegara (wykorzystuje technikę przyspieszania i spowalniania). Już przy zastosowaniu standardowego sprzętu komputerowego klasy PC, precyzja ta może wynosić kilka milisekund. Obecnie protokół ma swoje implementacje dla większości współczesnych systemów operacyjnych i urządzeń sieciowych. Stosowanie wielu źródeł czasu jednocześnie znacząco poprawia precyzje synchronizacji, dostarcza wielopoziomową redundancję oraz pozwala wychwytywać i eliminować dostawców fałszywego czasu (ang. falsestickers).

    Zaletą protokołu NTP jest możliwość jednoczesnej synchronizacji bardzo dużej liczby komputerów (rzędu dziesiątek tysięcy) bez przeciążenia łączy i procesorów. Implementacja protokołu nie wymaga wydajnych komputerów, procesorów ani szybkich łączy transmisyjnych.

    Ogólnie dostępny kod źródłowy napisany w języku C pozwala rozszerzać NTP dla kolejnych nowych systemów operacyjnych i powstających nowych urządzeń. Protokół NTP przerwał wieloletnią rywalizację między producentami sprzętu komputerowego i oprogramowania, lansującymi własne standardy na rynku IT.

  • PAP (ang. Password Authentication Protocol) to jeden z dwóch sposobów uwierzytelniania stosowany przez protokół PPP. PAP zapewnia węzłom prosty sposób zgłaszania swojej tożsamości za pomocą dwukierunkowego uzgadniania. PAP nie jest bezpiecznym protokołem uwierzytelniania, bowiem hasła wysyłane są w postaci zwykłego tekstu, dlatego zalecane jest używanie alternatywnego protokołu CHAP. Protokół PAP opisany jest w RFC 1334 ?.

  • Post Office Protocol (POP) - protokół internetowy z warstwy aplikacji pozwalający na odbiór poczty elektronicznej ze zdalnego serwera do lokalnego komputera poprzez połączenie TCP/IP. Ogromna większość współczesnych internautów korzysta z POP3 do odbioru poczty.

    Wcześniejsze wersje protokołu POP, czyli POP (czasami nazywany POP1), POP2 zostały całkowicie zastąpione przez POP3.

    Kiedy użytkownik połączy się z siecią, to korzystając z POP3 może pobrać czekające na niego listy do lokalnego komputera. Jednak protokół ten ma wiele ograniczeń:
    • połączenie jest realizowane tylko na czas kiedy użytkownik pobiera pocztę, nie może zostać uśpione,
    • każdy list musi być pobierany razem z załącznikami i żadnej jego części nie można w łatwy sposób pominąć - istnieje co prawda komenda top, ale pozwala ona jedynie określić przesyłaną liczbę linii od początku wiadomości,
    • wszystkie odbierane listy trafiają do jednej skrzynki, nie da się utworzyć ich kilku,
    • serwer POP3 nie potrafi sam przeszukiwać czekających w kolejce listów.
    Istnieje bardziej zaawansowany protokół IMAP, który pozwala na przeglądanie czekających listów nie po kolei na podobieństwo plików w katalogach i posiada niektóre funkcje pominięte w POP3.

    Programy odbierające pocztę najczęściej obsługują oba protokoły, ale POP3 jest bardziej popularny. Wysyłanie listów zawsze opiera się na protokole SMTP. Komunikacja POP3 może zostać zaszyfrowana z wykorzystaniem protokołu SSL. Jest to o tyle istotne, że w POP3 hasło przesyłane jest otwartym tekstem, o ile nie korzysta się z opcjonalnej komendy protokołu POP3, APOP.

    Protokół POP, podobnie, jak inne protokoły internetowe (np. SMTP, HTTP) jest protokołem tekstowym, czyli w odróżnieniu od protokołu binarnego, czytelnym dla człowieka. Komunikacja między klientem pocztowym a serwerem odbywa się za pomocą czteroliterowych poleceń.

  • Zdalne wywołanie procedury (ang. remote procedure call, RPC) - protokół zdalnego wywoływania procedur, stworzony przez firmę Sun i dość popularny w systemach z rodziny Unix, obsługiwany w bibliotekach języka Java. Współcześnie wypierany przez bardziej rozbudowane protokoły takie jak CORBA, XML-RPC, czy JSON-RPC. RPC zdefiniowany jest w RFC 1057 i używa do kodowania danych formatu XDR (eXternal Data Representation) zdefiniowanego w RFC 1832.

    Protokoły tego typu (jak RPC, CORBA, DCOM czy XML-RPC) mają na celu ułatwienie komunikacji pomiędzy komputerami. Na typowy scenariusz użytkowania takiego protokołu składają się:
    • Serwer (czyli program oferujący usługi, np. drukowania) przez cały czas nasłuchuje na wybranym porcie, czy ktoś się z nim nie łączy.
    • Klient (czyli program, który potrzebuje jakiejś usługi od serwera na innym komputerze) nawiązuje z nim łączność poprzez sieć komputerową.
    • Klient wysyła swoje dane we wcześniej ustalonym przez programistów klienta i serwera formacie.
    • Serwer realizuje usługę i odsyła potwierdzenie lub kod błędu.
    Wymienione protokoły same zapewniają cały powyższy mechanizm działania, ukrywając go przed klientem. Może on nawet "nie wiedzieć", że łączy się z innym komputerem - z punktu widzenia programisty zdalne wywołanie procedury serwera wygląda jak wywołanie dowolnej innej procedury z programu klienta.

  • RTP (ang. Real-time Transport Protocol) - protokół transmisji w czasie rzeczywistym. Pakiet protokołu RTP zawiera informację o typie przesyłanych danych, numer sekwencyjny oraz znacznik czasu. RTP nie gwarantuje jakości usługi (QoS).

    Protokół RTP najczęściej używa UDP jako protokołu warstwy transportowej. Żeby zagwarantować QoS, RTP jest używany razem z innymi protokołami jak RTSP, SIP, H.323, RSVP, które służą do ustalenia połączenia, zanim dane będą mogły być przesłane za pomocą RTP.

    RTP jest używane w telefonii internetowej (VoIP: Voice over IP) oraz w telekonferencjach.

  • RTSP (ang. Real Time Streaming Protocol) jest protokołem poziomu aplikacji, mającym za zadanie sterowanie dostarczaniem danych czasu rzeczywistego. Mimo że jest on wręcz powszechnie stosowany w aplikacjach związanych z przesyłaniem danych multimedialnych (pierwszy dokument RFC datowany jest na kwiecień 1998), nie jest on jeszcze ustanowionym oficjalnie standardem, lecz jedynie jego propozycją ulegającą ciągłym zmianom i korektom (ang. draft). Protokół RTSP dostarcza użytkownikowi jakby elastycznego szkieletu, bazy, która może być rozwijana i dopasowywana do potrzeb użytkownika, aby umożliwić sterowanie transmisją na żądanie danych czasu rzeczywistego takich jak audio i wideo. Źródła danych mogą zawierać dane dwojakiego rodzaju: materiały odtwarzane "na żywo" oraz gromadzone w bazie danych do późniejszego odtworzenia. Protokół w założeniu jego twórców (m.in. firma RealNetworks) ma służyć kontroli jednocześnie wielu sesji transmisji danych, dostarczając środki do wyboru kanału transportowego jak np. UDP, rozgałęziany UDP i TCP oraz środki do wyboru odpowiednich mechanizmów działania opartych na protokole RTP.

    Protokół RTSP tworzy i steruje pojedynczymi lub wielokrotnymi strumieniami ciągłych danych takich jak audio i wideo. Tłumacząc obrazowo, protokół RTSP ma być rodzajem sieciowego "pilota" (ang. network remote control) dla serwerów multimedialnych. W protokole tym w zasadzie nie występuje pojęcie połączenia. Zamiast tego przyjmuje się, że serwer RTSP utrzymuje sesje oznaczoną odpowiednim identyfikatorem, która łączy grupy strumieni mediów i ich stanów. Sesja protokołu RTSP nie jest związana z pojęciem połączenia na poziomie warstwy transportowej w rozumieniu połączenia TCP. Podczas sesji użytkownik może otwierać i zamykać wiele pewnych (w znaczeniu niezawodnych) połączeń transportowych z serwerem, aby wysyłać żądania protokołu RTSP dla tej sesji.

    Protokół RTSP może używać protokołu transportowego TCP gwarantującego niezawodne połączenie lub niepewnego bezpołączeniowego protokołu transportowego UDP. Strumienie sterowane przez protokół RTSP mogą używać protokołu RTP do transportu swoich danych, ale operacje protokołu RTSP nie zależą w żaden sposób od mechanizmów transportowych używanych do transmisji ciągłych danych. Protokół RTSP w wielu aspektach podobny jest do protokołu HTTP (ang. HyperText Transfer Protocol), ale i w wielu ważnych kwestiach różni się od niego:
    • Protokół RTSP wprowadza wiele nowych metod i posiada odmienny identyfikator protokołu,
    • Dla protokołu RTSP występuje pojęcie sesji wbudowanej w protokół,
    • Protokół RTSP jest protokołem stanowym (ang. stateful), co oznacza, że informacje zawarte w jednym żądaniu wysłanym od nadawcy do adresata mogą posłużyć do modyfikacji kolejnych żądań, w odróżnieniu od bezstanowej natury protokołu HTTP (informacje w konkretnym żądaniu nie mogą być wiązane z innymi, więc nie można ich dalej stosować),
    • Zarówno serwer RTSP, jak i użytkownik mogą wysyłać żądania w odróżnieniu do protokołu HTTP, który jest asymetryczny, tzn. użytkownik wysyła żądania a serwer odpowiada,
    • Dane są transportowane przez inny protokół. Informacje opisujące sesje wracają w postaci "odpowiedzi opisowej" i w przypadku używania protokołu TCP mogą być przeplatane ze strumieniem danych transportowanych przez protokół RTP.

  • Simple Network Management Protocol - rodzina protokołów sieciowych wykorzystywanych do zarządzania urządzeniami takimi jak routery, przełączniki, komputery czy centrale telefoniczne za pośrednictwem sieci IP. Do transmisji wiadomości SNMP wykorzystywany jest głównie protokół UDP: standardowo port 161 wykorzystywany jest do wysyłania i odbierania żądań, natomiast port 162 wykorzystywany jest do przechwytywania sygnałów trap od urządzeń. Możliwe jest także wykorzystanie innych protokołów do przekazywania żądań, na przykład TCP.

    Istnieją trzy wersje protokołu:
    • SNMPv1 - pierwsza wersja, która została opublikowana w 1988 roku w dokumencie RFC 1067 (z późniejszymi zmianami w RFC 1098 oraz RFC 1157 ?). W tej wersji protokołu bezpieczeństwo oparte jest na tak zwanych communities, które są pewnego rodzaju nieszyfrowanymi hasłami umożliwiającymi zarządzanie urządzeniem.
    • SNMPv2 - eksperymentalna wersja protokołu, określana także SNMPv2c, opisana w dokumencie RFC 1901
    • SNMPv3 - obsługująca uwierzytelnianie oraz szyfrowaną komunikację
    Każdy komunikat dotyczy określonej zmiennej, tzw. OID (ang. Object IDentifier). Dla przykładu zmienna OID o nazwie sysUpTime (czas pracy urządzenia od ostatniego włączenia) ma postać 1.3.6.1.2.1.1.3.0, co odpowiada jej adresowi w drzewie MIB.

  • SMTP (ang. Simple Mail Transfer Protocol) - protokół komunikacyjny opisujący sposób przekazywania poczty elektronicznej w Internecie. Standard został zdefiniowany w dokumencie RFC 821 ?, a następnie zaktualizowany w 2008 roku w dokumencie RFC 5321

    SMTP 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. Demon SMTP działa najczęściej na porcie 25. Łatwo przetestować serwer SMTP przy użyciu programu telnet.

    Jednym z ograniczeń pierwotnego SMTP jest brak mechanizmu weryfikacji nadawcy, co ułatwia rozpowszechnianie niepożądanych treści poprzez pocztę elektroniczną (wirusy komputerowe, spam). Żeby temu zaradzić stworzono rozszerzenie SMTP-AUTH, które jednak jest tylko częściowym rozwiązaniem problemu - ogranicza wykorzystanie serwera wymagającego autoryzacji do zwielokrotniania poczty. Nadal nie istnieje metoda, dzięki której odbiorca autoryzowałby nadawcę - nadawca może "udawać" serwer i wysłać dowolny komunikat do dowolnego odbiorcy.

  • Server Message Block (SMB) - protokół służący udostępnianiu zasobów komputerowych, m.in. drukarek czy plików. Znany również jako CIFS (Common Internet File System).

    SMB jest protokołem typu klient-serwer, a więc opiera się na systemie zapytań generowanych przez klienta i odpowiedzi od serwera. Wyjątkiem od tej zasady jest mechanizm tzw. oplocków (opportunistic lock), w którym to serwer może wygenerować "nieproszony" przez klienta sygnał informujący o zerwaniu wcześniej założonego oplocka (blokady).

    Niemniej jednak, chociaż sam protokół ma charakter klient-serwer, to z racji tego, że najczęściej maszyny klienckie dysponują także funkcjami serwerowymi (udostępnianie plików) to sieci SMB nabierają charakteru i funkcji sieci peer-to-peer.

    Początki protokołu sięgają połowy lat 80., kiedy to w firmie IBM opracowano jego wczesną wersję (IBM PC Network SMB Protocol). W kolejnych latach protokół był nadal rozwijany, głównie przez firmę Microsoft. W późniejszych latach SMB stał się podstawą Otoczenia sieciowego w systemach Windows.

    Protokół SMB wykorzystuje do działania dwa protokoły niższych rzędów - protokół warstwy sesji NetBIOS (który sam wykorzystuje jako warstwę transportu TCP/IP albo DECnet albo IPX/SPX) lub protokół nierutowalny NetBEUI będący protokołem warstw sieci, transportu i sesji. Systemy Windows potrafią korzystać z SMB, a co za tym idzie z NetBIOS, zarówno poprzez TCP/IP (obecnie najpopularniejsza metoda), jak i poprzez IPX/SPX/NetBEUI (stosowany tylko w małych sieciach). Samba instalowana na systemach Unix korzysta tylko z SMB poprzez TCP/IP. (Patrz: model OSI)

    dentyfikacja komputerów w sieciach SMB odbywa się za pomocą ich nazw NetBIOS (nazwą jest ciąg znaków, nie dłuższy niż 15 znaków) lub za pomocą mechanizmów protokołów "podległych" SMB, np. poprzez adresy IP czy nazwy DNS, gdy SMB wykorzystuje protokół TCP do transportu danych.

  • TLS (ang. Transport Layer Security) - przyjęte jako standard w Internecie rozwinięcie protokołu SSL (ang. Secure Socket Layer), zaprojektowanego pierwotnie przez Netscape Communications. TLS zapewnia poufność i integralność transmisji danych, a także uwierzytelnienie serwera, a niekiedy również klienta. Opiera się na szyfrowaniu asymetrycznym oraz certyfikatach X.509.

    Według modelu OSI, TLS działa w warstwie prezentacji, dzięki czemu może zabezpieczać protokoły warstwy najwyższej - warstwy aplikacji, np.: telnet, HTTP, gopher, POP3, IMAP, NNTP, SIP.

    Certyfikaty używane w protokole SSL zawierają m.in. nazwę domeny, dla której zostały wystawione. Ponieważ każda osoba może stworzyć dowolny certyfikat, utworzono tzw. Infrastrukturę Klucza Publicznego. Na jej szczycie znajdują się Urzędy Certyfikacji (Certificate Authority - CA). Są to zaufane instytucje weryfikujące prawo do posługiwania się domeną. Osoba uprawniona wysyła do wybranego urzędu swój klucz publiczny, nazwę domeny i inne dane niezbędne do wygenerowania certyfikatu w postaci żądania podpisania certyfikatu (Certificate Signing Request - CSR). Po przejściu procedury sprawdzającej, certyfikat jest podpisywany. Jeśli serwer przedstawi certyfikat niepodpisany przez CA, w większości przeglądarek i klientów pocztowych w czasie próby połączenia użytkownik zobaczy odpowiednie ostrzeżenie.

    Krytycznym parametrem określającym siłę szyfrowania SSL jest długość użytych kluczy. Im dłuższy klucz, tym trudniej jest go złamać, a przez to odszyfrować transmisję. Dla kluczy asymetrycznych, zgodnie z zaleceniami organizacji NIST, długością sugerowaną jest obecnie 2048 bitów. Powszechnie używane są wyrażenia "SSL 128 bitów" lub "SSL 256 bitów" określające długość użytego klucza symetrycznego.

  • SSH (ang. secure shell) to standard protokołów komunikacyjnych używanych w sieciach komputerowych TCP/IP, w architekturze klient-serwer a od wersji 2 nawet w architekturze serwer-klient.

    W ścisłym znaczeniu SSH to tylko następca protokołu Telnet, służącego do terminalowego łączenia się ze zdalnymi komputerami. SSH różni się od Telnetu tym, że transfer wszelkich danych jest zaszyfrowany oraz możliwe jest rozpoznawanie użytkownika na wiele różnych sposobów. W szerszym znaczeniu SSH to wspólna nazwa dla całej rodziny protokołów, nie tylko terminalowych, lecz także służących do przesyłania plików (SCP, SFTP), zdalnej kontroli zasobów, tunelowania i wielu innych zastosowań. Wspólną cechą wszystkich tych protokołów jest identyczna z SSH technika szyfrowania danych i rozpoznawania użytkownika. Obecnie protokoły z rodziny SSH praktycznie wyparły wszystkie inne mniej bezpieczne protokoły, takie, jak np. rlogin czy RSH.

    Ogólne założenia protokołu SSH powstały w grupie roboczej IETF. W użyciu są obie jego wersje - 1 i 2. W wersji 2 możliwe jest użycie dowolnych sposobów szyfrowania danych i czterech różnych sposobów uwierzytelniania, podczas gdy SSH1 obsługiwało tylko stałą listę kilku sposobów szyfrowania i dwa sposoby rozpoznawania użytkownika (klucz RSA i zwykłe hasło).

    Wersja 2 została przeprojektowana od zera ze względu na ujawnione w wersji 1.5 podatności na ataki kryptoanalityczne, umożliwiające wstrzykiwanie komend do zaszyfrowanego strumienia SSH. W 2009 roku opublikowano kolejny atak tego typu na wersję 2. Problem został naprawiony w OpenSSH 5.2 za pomocą zmiany domyślnego trybu szyfrowania z CBC na CTR.

    Najczęściej stosowany sposób szyfrowania to AES, choć część serwerów nadal używa szyfrowania Blowfish i technik z rodziny DES.

    Uwierzytelnienie użytkownika może się opierać na haśle, kluczu (RSA, DSA) lub protokole Kerberos.

    Dwie najbardziej znane implementacje SSH to zamknięte ssh.com i otwarte OpenSSH. Z kolei najbardziej znaną implementacją klienta jest PuTTY.[potrzebny przypis]

    Protokoły z rodziny SSH korzystają zwykle z portu 22 protokołu TCP, choć często stosuje się porty o innych numerach w celu utrudnienia wykrycia serwera SSH.

    Protokół SSH jest zaimplementowany na warstwie aplikacji modelu OSI w ramach połączenia TCP.

  • Transport Driver Interface (TDI) - interfejs dla sterowników systemów Windows NT (takich jak Windows 2000 redirector) służący do komunikacji z różnymi protokołami sieciowymi warstwy transportowej. Pozwala on usługom na działanie niezależne od protokołów transportowych.

    Microsoft opracował TDI w celu większej elastyczności i funkcjonalności niż było to możliwe przy użyciu istniejących interfejsów, takich jak Winsock i NetBIOS. Specyfikacja TDI opisuje zestaw funkcji, na podstawie których sterowniki transportu i klienty TDI się wzajemnie komunikują oraz mechanizmy ich wywołań, w celu dostępu do nich.

    Windows 2000 redirector oraz server używają TDI bezpośrednio, nie przechodzą więc przez warstwę mapowania NetBIOS. Dzięki temu sterowniki te unikają wiele ograniczeń narzuconych przez NetBIOS, takich jak np. limit 254 sesji.

    Typowymi komendami TDI są TDI_SEND, TDI_CONNECT, TDI_RECEIVE.

  • Telnet - standard protokołu komunikacyjnego używanego w sieciach komputerowych do obsługi odległego terminala w architekturze klient-serwer.

    Protokół obsługuje tylko terminale alfanumeryczne, co oznacza, że nie obsługuje myszy ani innych urządzeń wskazujących. Nie obsługuje także graficznych interfejsów użytkownika. Wszystkie polecenia muszą być wprowadzane w trybie znakowym w wierszu poleceń. Polecenia wydawane za pomocą komputera-klienta przysłane są poprzez sieć do serwera, na którym zainstalowane jest oprogramowanie serwera telnetu. W odpowiedzi serwer odsyła komunikaty, które następnie wyświetlane są na ekranie komputera-klienta.

    Do korzystania z tej usługi niezbędne jest posiadanie na serwerze konta typu shell. Na niektórych serwerach administratorzy zakładają konta gościnne, które nie wymagają podania hasła lub hasła te są publicznie podawane. Jednakże ze względów nadmiernego wykorzystywania takich kont, administratorzy wprowadzili możliwość używania tylko potrzebnych aplikacji, które mogą być wykorzystane na danym serwerze. Po połączeniu się z serwerem, na którym posiadamy konto shell, program zapyta nas o identyfikator użytkownika (login) i hasło dostępu (password). Usługa Telnet umożliwia zatem pracę na zdalnym komputerze bez konieczności siedzenia bezpośrednio przed nim. Uruchomienie tej usługi wykonuje się poprzez wpisanie polecenia:

    telnet adres

    gdzie adres jest adresem IP komputera, z którym chcemy się połączyć, bądź jego nazwą domenową, gdyż telnet dopuszcza obie te formy podawania adresu. Po nawiązaniu połączenia telnet wyświetli nam informację o wersji systemu operacyjnego serwera, jego nazwie oraz numerze wirtualnego terminala (np. ttyp0, ttyp1, ttyp2 itd.). Następnym krokiem, jaki musimy wykonać w celu zalogowania się do serwera, to podanie użytkownika oraz hasła (login i password).

    W celu uzyskania największej możliwej wydajności usługi terminalowej, jaką jest telnet, konieczna jest świadomość, jakie typy terminali obsługuje serwer, z którym się łączymy oraz jakie typy terminali potrafi emulować wykorzystywana przez nas do tego celu aplikacja. Najbardziej znanymi i najczęściej wykorzystywanymi typami są: VT100 (wykorzystujący sekwencje sterujące ANSI) oraz jego pozostałe odmiany VT102 i VT220, VT-52 oraz VTNT. Filozofia pracy tych terminali polega na przesyłaniu na bieżąco znak po znaku kodów sterujących wydawanych przez nasz komputer, jak i w stronę odwrotną. Odmienny rodzaj pracy wykorzystuje inny typ terminala IBM 3270 pracujący w systemach VM i MVS. Terminale IBM 3270 wymieniają informacje pomiędzy komputerem i terminalem (kontrolerem), przesyłając bloki ekranu - komputer przesyła do terminala zdefiniowane pola tekstu, w których użytkownik może uzupełniać komendy lub dane dla serwera.

    Bardzo często usługa telnet implementowana jest do urządzeń aktywnych sieci (przełączniki, routery) w celu ułatwienia zdalnej konfiguracji. Użytkownik za pomocą polecenia telnet oraz podaniu adresu danego urządzenia loguje się do niego i w trybie znakowym wykonuje konfiguracje VLAN-ów, adresów IP, NAT-a itd. Połączenie tego typu nie jest szyfrowane, a więc istnieje możliwość przechwycenia przesyłanych danych. Z tego powodu częściej stosuje się następcę Telnetu, czyli SSH.

    Telnet jest najstarszą i najbardziej elementarną usługą internetową. Został opisany w dokumentach RFC numer RFC 854 i RFC 855 ?.

    Telnet jest też często używany w grach tekstowych typu MUD. Z reguły uruchamiany jest na porcie 23.

  • X.400 to zestaw zaleceń ITU-T definiujących standard systemów obsługi wiadomości (Message Handling Systems - MHS) w sieciach teleinformatycznych, powszechniej znanych jako "e-mail". Protokół komunikacyjny X.400 nigdy nie rozpowszechnił się tak jak internetowy e-mail, jednak jest używany jako część rozwiązań takich jak:
    • Novell GroupWise
    • Microsoft Exchange
    System obsługi wiadomości X.400 jest zestawem wzajemnie powiązanych ze sobą elementów, które realizują następujące zadania:
    • zapewniają dostęp i działanie użytkowników w systemie
    • przesyłają wiadomości od nadawcy do odbiorcy, zapewniając wymagane bezpieczeństwo
    • przechowują wiadomości
    • współpracują z innymi systemami przesyłania wiadomości
    • powszechność i rozszerzalność
    • wsparcia różnorodnych mediów
    Poczta X.400 obsługuje zarówno użytkowników wewnętrznych i zewnętrznych jak i inne systemy pocztowe komunikujące się z nim.

    Zasadnicze komponenty składowe:
    • User Agent [UA] (Agent Użytkownika) - jest to interfejs pomiędzy użytkownikiem i MTS. Użytkownicy, korzystając z UA, wysyłają i odbierają wiadomości przesyłane i przechowywane w MTS.
    • Acces Unit [AU] (Jednostka Dostępowa) - AU definiuje sposób komunikacji użytkowników MHS z innymi systemami opartymi na wcześniejszych technologiach pocztowych i nie tylko. AU jest urządzeniem pośredniczącym, posiadającym interfejs X.400 z jednej i innego systemu z drugiej strony.
    • Message Transfer System [MTS] (System Przenoszenia Wiadomości) - odbiera wiadomości od AU lub UA i przesyła je do odbiorcy. W zależności od możliwości dostarczenia wiadomości MTS odpowiednio zareaguje według zaleceń nadawcy. MTS składa się z dwu komponentów:
      • Message Store [MS] (Magazyn Wiadomości) - przechowuje wiadomości, które nie mogą być aktualnie dostarczone do odbiorcy.
      • Message Transfer Agent [MTA] (Agent Transferu Wiadomości) - dokonuje wyboru trasy przesyłania wiadomości, następnie przesyła komunikat do współpracującej MTA albo do użytkownika końcowego.

  • X.500 jest zbiorem sieciowych standardów pokrywających usługi katalogowe. X.500 zostało stworzone przez ITU-T (wcześniej CCITT). Usługi katalogowe zostały stworzone w celu wsparcia wymagań X.400. ISO było partnerem w tworzeniu standardów oraz włączeniu ich do zestawów protokołów OSI w ramach rodziny ISO/IEC 9594.

    Nazwa X.500 odnosi się również do charakterystycznej notacji nazw wyróżniających (DN - Distinguished Name) spotykanych w X.509 i LDAP.




Protokoły warstwy prezentacji



  • MIME (ang. Multipurpose Internet Mail Extensions) to standard stosowany przy przesyłaniu poczty elektronicznej (ang. e-mail). MIME definiuje budowę komunikatu poczty elektronicznej.

    Wiadomość w formacie MIME składa się z nagłówków i treści. Nagłówki określają różne parametry związane z przesyłaną wiadomością, takie jak nadawcę, temat, odbiorcę, rodzaj zawartości, kodowanie transportowe (określające sposób zamiany danych 8-bitowych - jak np. pliki binarne, zdjęcia, filmy, dźwięk - do formatu 7-bitowych danych w standardzie ASCII).

    Tradycyjny e-mail umożliwiał jedynie przesyłanie tekstu, który mógł być wydrukowany na drukarkach obsługujących 7-bitowy kod ASCII. Dlatego też konieczne jest zakodowanie danych 8-bitowych na dane 7-bitowe. Powoduje to zwiększenie długości tych danych.

    Typy MIME definiowane przez standard MIME są istotne również poza dziedziną przesyłania poczty elektronicznej, na przykład w protokołach komunikacyjnych takich jak HTTP. Protokół HTTP wymaga, by dane były transmitowane w kontekście podobnym do wiadomości e-mail, chociaż dane te same w sobie nie stanowią wiadomości e-mail.

    Podstawowy protokół przesyłania wiadomości e-mail, SMTP, wspiera tylko 7-bitowe znaki ASCII. To powoduje ograniczenie poczty elektronicznej do wiadomości, które zawierają tylko znaki wystarczające do pisania w niewielkiej ilości języków, głównie w angielskim. Inne języki bazujące na alfabecie łacińskim zazwyczaj zawierają znaki diakrytyczne, które nie są wspierane przez 7-bitowe ASCII, co sprawia, że tekst w tych językach nie może być poprawnie reprezentowany w podstawowej wiadomości e-mail.

    MIME definiuje mechanizmy do przesyłania innego rodzaju informacji wewnątrz wiadomości e-mail:
    • tekstu w językach używających innego kodowania znaków niż ASCII,
    • 8-bitowych danych binarnych, takich jak pliki zawierające obrazy, dźwięki i filmy, a także programy komputerowe.
    Przekształcanie wiadomości w/z formatu MIME jest zazwyczaj wykonywane automatycznie przez klienta e-mail, bądź przez serwer pocztowy w trakcie wysyłania lub odbierania wiadomości poczty elektronicznej.

    Podstawowy standard poczty elektronicznej określa następujące nagłówki wiadomości e-mail: "To:", "Subject:", "From:" oraz "Date:". Określają one adresata wiadomości, jej temat, nadawcę oraz datę wysłania. MIME określa zaś zbiór nagłówków e-mail służących do określenia dodatkowych atrybutów wiadomości, włączając w to rodzaj zawartości (zwany "typem MIME"), oraz definiuje zbiór metod kodowania transportowego, które mogą być użyte do reprezentowania 8-bitowych danych binarnych przy użyciu znaków z 7-bitowego zbioru znaków ASCII. MIME określa również zasady kodowania znaków spoza ASCII wewnątrz nagłówków wiadomości e-mail, takich jak "Subject:", pozwalając tym nagłówkom na zawieranie takich znaków.

    MIME jest rozszerzalne. Jego definicja pozwala rejestrować nowe możliwe wartości Content-Type (typy MIME).

    Cele definicji standardu MIME zawierały brak konieczności wprowadzania zmian do istniejących serwerów e-mail i umożliwienie funkcjonowania w obu kierunkach poczty e-mail składającej się z czystego tekstu przy użyciu istniejących klientów. Cele te zostały osiągnięte poprzez uczynienie nagłówków MIME opcjonalnymi, z wartościami domyślnymi zapewniającymi, że wiadomość niezgodna z MIME będzie poprawnie interpretowana przez klienty obsługujące MIME.

  • XDR (ang. External Data Representation) - standard wprowadzony w celu ujednolicenia reprezentacji danych w transmisjach sieciowych pomiędzy komputerami o odmiennych architekturach. Umożliwia przykładowo wymianę danych między programem napisanym w języku Fortran działającym na komputerze Cray a programem w języku C uruchomionym na komputerze klasy x86 z Linuksem).

    Przykładowa standaryzacja danych:
    • wszystkie typy danych mają rozmiar będący wielokrotnością 4 bajtów (niepełne wielokrotności dopełniane są zerami),
    • liczby całkowite kodowane są w ten sposób, ze młodsze bajty mają starsze adresy (na odwrót niż w x86),
    • liczby rzeczywiste podawane są w formacie IEEE.
    Ograniczeniem XDR jest to, że zarówno nadawca jak i odbiorca muszą znać struktury danych (nie ich reprezentacje), ponieważ nie są one przekazywane.

    Pierwsza wersja standardu XDR powstała w 1987 i opisana jest w RFC 1014 ?. Najnowszą wersję przedstawia RFC 4506 ?, pochodzący z 2006 roku.

  • TLS/SSL, wersje protokołu:
    • SSL 1 - wersja miała poważną dziurę w bezpieczeństwie. Procedury uzgadniania szyfru nie były zabezpieczone, więc atakujący mógł wymusić używanie najsłabszego szyfru obsługiwanego przez komunikujących się, ze złamaniem którego mógł sobie poradzić znacznie łatwiej niż z szyfrem, który strony wybrałyby normalnie.
    • SSL 2 - wersja zmienia procedurę negocjacyjną.
    • SSL 3 - popularna wersja, obecnie wypierana przez TLS 1.0.
    • TLS 1.0 - rozwinięcie SSL 3 opisane w RFC 2246 ?.
    • TLS 1.1 - opisana w RFC 4346 ?, zalecana przez IETF jako standard i coraz częściej używana. Wyjaśnia ona pewne niejednoznaczności i dodaje nowe zalecenia wynikające z praktyki użycia - opisano to w RFC 4366 ?, RFC 4680 i RFC 4681 ?.
    • TLS 1.2 - opisana w RFC 5246 i oparta o wcześniejszą wersję, czyli TLS 1.1.
    • TLS 1.3 - zaproponowana w dokumencie IETF z 21 marca 2018, oparta na poprzedniej wersji czyli TLS 1.2 jako nowy standard.

    SSL nie jest żadnym nowym algorytmem szyfrującym. To ustandaryzowany zestaw wcześniej znanych algorytmów, technik i schematów używanych do zapewnienia bezpieczeństwa. Wykorzystuje on algorytmy szyfrowania:
    • symetryczne - do szyfrowania i deszyfrowania danych używany jest ten sam klucz; znając klucz szyfrujący możemy dokonać również deszyfracji danych (wyznaczyć klucz deszyfrujący)
    • asymetryczne (z kluczem publicznym) - do szyfrowania i deszyfrowania używane są różne klucze; znając klucz szyfrujący nie możemy odszyfrować wiadomości (klucza deszyfrującego nie da się w prosty sposób wyznaczyć z klucza szyfrującego); klucz służący do szyfrowania jest udostępniany publicznie (klucz publiczny), ale informację nim zaszyfrowaną może odczytać jedynie posiadacz klucza deszyfrującego (klucz prywatny), który nie jest nikomu ujawniany.

    SSL jest najczęściej kojarzony z protokołem HTTP (HTTPS), ale może służyć do zabezpieczania wielu innych protokołów, m.in.: Telnet, SMTP, POP, IMAP czy FTP, gdyż protokoły te same w sobie nie zapewniają szyfrowania transmisji.

    SSL składa się z dwóch podprotokołów, gdzie SSL Handshake, SSL Alert Protocol i SSL Change Cipher stanowią pierwszy podprotokół natomiast SSL Record Protocol stanowi osobny podprotokół SSL:
    • SSL Handshake - definiuje metody negocjowania parametrów bezpiecznej sesji, czyli algorytmów szyfrowania danych, algorytmów uwierzytelniania i integralności informacji
    • SSL Change Cipher - protokół zmiany specyfikacji szyfru SSL
    • SSL Alert Protocol - protokół alarmowy SSL




Protokoły warstwy sesji



  • NetBIOS (ang. Network Basic Input / Output System) - protokół sieciowy oryginalnie zaprojektowany przez firmę IBM. Zapewnia podstawowy interfejs łączenia aplikacji z innymi aplikacjami w innych komputerach znajdujących się w tej samej sieci lokalnej oraz umożliwia współdzielenie danych. NetBIOS działa w 5. warstwie (sesji) modelu OSI.

    NetBIOS transmitowany w TCP/IP (NetBIOS over TCP/IP) używa portów:
    • 137 - NetBIOS Name
    • 138 - NetBIOS Datagram
    • 139 - NetBIOS Session
    NetBIOS spełnia następujące założenia:
    • wszystkie stacje w danej sieci traktowane są jednakowo
    • aplikacje nie zajmują się szczegółami transportu
    • usługi nie zależą od tego, jak sieć została zrealizowana sprzętowo
    • obsługiwane są "przyjazne" nazwy - nie ma potrzeby posługiwania się adresami
    Komunikacja w NetBIOS wykorzystuje dwie metody:
    • bezpołączeniowa - w formie datagramów bez potwierdzenia ich dotarcia na miejsce - najczęściej wykorzystywana w trybie rozgłaszania (broadcast)
    • połączeniowa - w formie sesji - transmisja odbywa się niezawodnie (z potwierdzeniami)

  • Session Announcement Protocol (SAP) jest protokołem wykorzystywanym przez usługi powodujące tzw. "burze rozgłoszeń" (radio, telewizja internetowa).

    Został opublikowany przez instytut IETF w dokumencie RFC 2974 ?.



Protokoły warstwy transportowej



  • Protokół sterowania transmisją, protokół kontroli transmisji, TCP (od ang. Transmission Control Protocol) - połączeniowy, niezawodny, strumieniowy protokół komunikacyjny stosowany do przesyłania danych między procesami uruchomionymi na różnych maszynach, będący częścią szeroko wykorzystywanego obecnie stosu TCP/IP (korzysta z usług protokołu IP do wysyłania i odbierania danych oraz ich fragmentacji wtedy, gdy jest to konieczne). Protokół sterowania transmisją operuje w warstwie transportowej modelu OSI. Opracowano go na podstawie badań Vintona Cerfa oraz Roberta Kahna. Został opisany w dokumencie RFC 793 ?. TCP jest protokołem działającym w trybie klient-serwer. Serwer oczekuje na nawiązanie połączenia na określonym porcie. Klient inicjuje połączenie do serwera.

    W przeciwieństwie do UDP, TCP gwarantuje wyższym warstwom komunikacyjnym dostarczenie wszystkich pakietów w całości, z zachowaniem kolejności i bez duplikatów. Zapewnia to wiarygodne połączenie kosztem większego narzutu w postaci nagłówka i większej liczby przesyłanych pakietów. Chociaż protokół definiuje pakiet TCP, z punktu widzenia wyższej warstwy oprogramowania dane płynące połączeniem TCP należy traktować jako ciąg oktetów. W szczególności, jednemu wywołaniu funkcji interfejsu programowania aplikacji (np. send()) nie musi odpowiadać wysłanie jednego pakietu. Dane z jednego wywołania mogą zostać podzielone na kilka pakietów lub odwrotnie - dane z kilku wywołań mogą zostać połączone i wysłane jako jeden pakiet (dzięki użyciu algorytmu Nagle'a). Również funkcje odbierające dane (recv()) w praktyce odbierają nie konkretne pakiety, ale zawartość bufora stosu TCP/IP, wypełnianego sukcesywnie danymi z przychodzących pakietów.

  • UDP (ang. User Datagram Protocol - protokół pakietów użytkownika) - jeden z protokołów internetowych. UDP stosowany jest w warstwie transportowej modelu OSI. Nie gwarantuje dostarczenia datagramu.

    Jest to protokół bezpołączeniowy, więc nie ma narzutu na nawiązywanie połączenia i śledzenie sesji (w przeciwieństwie do TCP). Nie ma też mechanizmów kontroli przepływu i retransmisji. Korzyścią płynącą z takiego uproszczenia budowy jest szybsza transmisja danych i brak dodatkowych zadań, którymi musi zajmować się host posługujący się tym protokołem. Z tych względów UDP jest często używany w takich zastosowaniach jak wideokonferencje, strumienie dźwięku w Internecie i gry sieciowe, gdzie dane muszą być przesyłane możliwie szybko, a poprawianiem błędów zajmują się inne warstwy modelu OSI. Przykładem może być VoIP lub protokół DNS.

    UDP udostępnia mechanizm identyfikacji różnych punktów końcowych (np. pracujących aplikacji, usług czy serwisów) na jednym hoście dzięki portom (porównaj: gniazdo). UDP zajmuje się dostarczaniem pojedynczych pakietów, udostępnionych przez IP, na którym się opiera. Kolejną cechą odróżniającą UDP od TCP jest możliwość transmisji do kilku adresów docelowych naraz (tzw. multicast).

    Pakiety UDP, zwane też datagramami, zawierają oprócz nagłówków niższego poziomu nagłówek UDP. Składa się on z pól zawierających sumę kontrolną, długość pakietu oraz porty: źródłowy i docelowy.

    Podobnie jak w TCP, porty UDP zapisywane są na dwóch bajtach (szesnastu bitach), więc każdy adres IP może mieć przypisanych 65535 różnych zakończeń. Z przyczyn historycznych, porty 0-1023 zarezerwowane są dla dobrze znanych usług sieciowych - dla aplikacji użytkownika przydziela się porty od 1024.

  • Point to Point Tunneling Protocol (w skrócie PPTP) to protokół komunikacyjny umożliwiający tworzenie wirtualnych sieci prywatnych wykorzystujących technologię tunelowania. Polega to na zdalnym dołączaniu się do stacji roboczych lub sieci (głównie opartych na systemie operacyjnym Windows) za pośrednictwem Internetu i tworzeniu wirtualnego połączenia z lokalną siecią (np. firmową). Ma zapewnić jednocześnie zachowanie bezpieczeństwa przy zdalnym przesyłaniu danych. Inicjalizacja połączenia wykonywana jest na port 1723.

    Najbardziej rozpowszechniona i jednocześnie zawierająca najwięcej podatności na błędy implementacja protokołu PPTP została opracowana przez firmę Microsoft. Protokół PPTP stanowi standardowe wyposażenie systemu operacyjnego Windows od wersji 98 i NT. Od momentu powstania protokół PPTP, w implementacji firmy Microsoft, był wielokrotnie łamany i jego stosowanie w poważnych zastosowaniach nie gwarantuje odpowiedniego poziomu bezpieczeństwa przesyłanych danych.

    W celu zapewnienia kompatybilności z popularnymi systemami Windows konfiguracja serwera PPTP możliwa jest również w innych systemach operacyjnych. Przykładem może być PoPToP przeznaczony do systemów Linux, OpenBSD oraz FreeBSD. Zaleca się jednak stosowanie innych rozwiązań opartych na otwartym oprogramowaniu.

  • Layer Two Tunneling Protocol, L2TP (dekapsułkowanie danych tunelowanych za pomocą IPsec) - protokół umożliwiający tunelowanie ruchu IP, IPX oraz NetBEUI i przekazywanie go poprzez dowolne medium transmisyjne, obsługujące dostarczanie datagramów w połączeniu punkt-punkt, np. IP, X.25, Frame Relay czy ATM.

    Opublikowany w roku 1999 jako standard RFC 2661 ?, L2TP pochodzi od dwóch starszych protokołów do komunikacji P2P: Od protokołu Cisco - L2F oraz od protokołu MicrosoftuPoint to Point Tunneling Protocol (PPTP). Nowa wersja protokołu, L2TPv3, pojawiła się jako standard RFC 3931 w roku 2005. L2TPv3 zapewnia m.in. dodatkowe zabezpieczenia oraz lepszą enkapsulację danych.

  • SCTP (ang. Stream Control Transmission Protocol) - protokół internetowy działający w warstwie transportowej, zdefiniowany w 2000 roku przez grupę roboczą SIGTRAN (Signaling Transport working group) IETF i opisany w dokumencie RFC 2960 ?. SCTP jest protokołem podobnym do protokołów TCP i UDP.

    Zapewnia on działanie takich samych usług jak TCP - zapewnienie wytrzymałego, uporządkowanego transportu informacji z kontrolą zatłoczenia. Podczas gdy TCP jest protokołem strumieniowym przesyłającym pakiety bitów, SCTP służy do przesyłania pakietów z ukształtowanymi wiadomościami.

    Korzyści SCTP
    • Wielopowrotowe wsparcie, gdzie jedno (albo oba) końce połączenia mogą składać się z więcej niż jednego adresu IP, co umożliwia rozpoznawanie poszczególnych komputerów w sieci lokalnej
    • Dostawa danych w pakietach w obrębie niezależnych strumieni, co eliminuje niepotrzebne blokowanie początków linii w przeciwieństwie do transportu strumieniowego TCP.
    • Wybór ścieżki oraz monitoring
    • Mechanizm zatwierdzająco-potwierdzający - chroni przed efektem potocznie nazywanym "floodingiem" oraz zawiadamia o zduplikowanych lub utraconych fragmentach danych.
    Za pomocą SCTP/IP firmy telekomunikacyjne będą mogły wymieniać informacje między systemami komutacyjnymi, wykorzystując technologię internetową, a także łatwiej wprowadzać nowe usługi z uwarunkowaniami czasowymi, takie jak telefonia IP. Nowy protokół, zaprojektowany z myślą o zwiększeniu wydajności i niezawodności protokołów IP, już zaczyna zajmować eksponowane miejsce w stosie protokołów IP - obok tych od dawna uznanych: UDP (User Datagram Protocol) i TCP (Transmission Control Protocol)



Protokoły warstwy sieciowej



  • Protokół internetowy, IP (od ang. Internet Protocol - protokół komunikacyjny warstwy sieciowej modelu OSI (warstwy internetu w modelu TCP/IP). Protokół internetowy to zbiór ścisłych reguł i kroków postępowania, które są automatycznie wykonywane przez urządzenia w celu nawiązania łączności i wymiany danych. Używany powszechnie w Internecie i lokalnych sieciach komputerowych.

    Dane w sieciach IP są wysyłane w formie bloków określanych mianem pakietów. W przypadku protokołu IP, przed rozpoczęciem transmisji nie jest zestawiana wirtualna sesja komunikacyjna pomiędzy dwoma hostami, które nie komunikowały się ze sobą wcześniej.

    Protokół IP jest protokołem zawodnym - nie gwarantuje, że pakiety dotrą do adresata, nie zostaną pofragmentowane, czy też zdublowane, a ponadto mogą dotrzeć do odbiorcy w innej kolejności niż zostały nadane. Niezawodność transmisji danych jest zapewniana przez protokoły warstw wyższych (np. protokół sterowania transmisją), znajdujących się w hierarchii powyżej warstwy sieciowej

  • IPX (ang. Internetwork Packet Exchange) to protokół warstwy sieciowej (trzeciej warstwy modelu OSI) będący częścią stosu IPX/SPX opracowanego przez firmę Novell na potrzeby środowiska sieciowego NetWare. Wzorowany na protokole IDP stosu protokołów XNS firmy Xerox.

    Zorientowany na bezpołączeniowe przesyłanie danych. Nie posiada mechanizmów kontroli transmisji i nie gwarantuje, że wszystkie pakiety dotrą na miejsce.

    Bardzo popularny w latach dziewięćdziesiątych, aktualnie wyparty przez protokół IP ze stosu TCP/IP.

    Protokół IPX jest obecnie czasem stosowany w sieciach ze względów bezpieczeństwa - ruch zewnętrzny (Internet) obsługuje się klasycznie - protokołem IP, zaś ruch sieci lokalnej (w szczególności sieć Windows czy Novell) obsługuje się protokołem IPX (często używając innej ramki Ethernet, np. 802.2 dla IP, 802.3 dla IPX). Powoduje to, że nie można się dostać do stacji Windows poprzez protokół IP do usług LAN, gdyż protokoły sieci windowsowej dostępne są wyłącznie na IPX, który nie jest trasowany na zewnątrz. Jest to rozwiązanie dodatkowo zabezpieczające przed potencjalnymi błędami w regułach na zaporze sieciowej, systemowo blokujące (bez żadnych filtrów) dostęp do sieci Windows poprzez IP. Ataki na usługi otoczenia sieciowego Windows to najczęstszy sposób instalowania trojanów, wirusów i przejmowania kontroli nad komputerami z Windows. Po wyłączeniu (lub przepięciu na IPX) usług LAN, komputer z Windows staje się bezpieczniejszy. Dodatkową korzyścią jest niemożliwość podsłuchiwania transmisji LAN znaczną częścią narzędzi przez "script kiddies", gdyż większość narzędzi nie obsługuje protokołu IPX (lub trzeba użyć dodatkowych opcji).

  • ICMP (ang. Internet Control Message Protocol, internetowy protokół komunikatów kontrolnych) - opisany w RFC 792 protokół warstwy sieciowej modelu OSI, wykorzystywany w diagnostyce sieci oraz trasowaniu. Pełni przede wszystkim funkcję kontroli transmisji w sieci. Jest wykorzystywany w programach ping oraz traceroute.

    Teoretycznie sieci powinny działać poprawnie przez cały czas, lecz tak nie jest. Gdy coś dzieje się nie tak w warstwie internetowej, rolę narzędzia do rozwiązywania problemów odgrywa protokół komunikacyjny zarządzania siecią Internet (ICMP - Internet Control Message Protocol). ICMP jest protokołem serwisowym, który zgłasza błędy łączności między hostami.

    W warstwie internetowej datagramy dostarczane są w sposób bezpołączeniowy, na zasadzie "najlepiej, jak się da". Protokół ICMP jest zestawem komunikatów, przesyłanych w datagramach IP i zdolnych do zgłaszania błędów w dostarczaniu innych datagramów IP.

    Komunikaty ICMP są narzędziami diagnostycznymi "wbudowanymi" w warstwę internetową. Jeśli dwa hosty nie są w stanie komunikować się ze sobą, komunikaty ICMP mogą pomóc w zdiagnozowaniu problemu. Ponieważ w szybko ewoluującym środowisku może wystąpić zalew komunikatów, niedostarczenie komunikatu ICMP nie powoduje wysłania komunikatu ICMP o błędzie. Szczególnie, gdy komunikat ICMP o niedostępności hosta docelowego nie dotrze do hosta źródłowego, ten nie wysyła kolejnego komunikatu ICMP.

  • IGMP (ang. Internet Group Management Protocol) - jeden z rodziny protokołów TCP/IP. IGMP służy do zarządzania grupami multicastowymi w sieciach opartych na protokole IP. Komputery wykorzystują komunikaty IGMP do powiadamiania routerów w swojej sieci o chęci przyłączenia się do lub odejścia z określonej grupy multicastowej.

  • IPsec (ang. Internet Protocol Security, IP Security) - zbiór protokołów służących implementacji bezpiecznych połączeń oraz wymiany kluczy szyfrowania pomiędzy komputerami. Protokoły tej grupy mogą być wykorzystywane do tworzenia Wirtualnej Sieci Prywatnej (ang. VPN).

    VPN oparta na IPsec składa się z dwóch kanałów komunikacyjnych pomiędzy połączonymi komputerami: kanał wymiany kluczy, za pośrednictwem którego przekazywane są dane związane z uwierzytelnianiem i szyfrowaniem (klucze), oraz kanału (jednego lub więcej), który niesie pakiety transmitowane poprzez sieć prywatną. Kanał wymiany kluczy jest standardowym protokołem UDP (port 500). Kanały przesyłu danych oparte są na protokole ESP (protokół numer 50) opisanym w dokumencie RFC 2406 ?.


Protokoły warstwy łącza danych



  • Address Resolution Protocol (ARP) - protokół sieciowy umożliwiający mapowanie logicznych adresów warstwy sieciowej (warstwa 3) na fizyczne adresy warstwy łącza danych (2). Protokół ten nie ogranicza się tylko do konwersji adresów IP na adres MAC stosowany w sieciach Ethernet, lecz jest także wykorzystywany do odpytywania o adresy fizyczne stosowane w technologiach Token ring czy FDDI. Zdefiniowany jest w RFC 826 i jest określany jako standard internetowy STD 37.

    Protokół ARP opisuje także zachowanie systemu operacyjnego, który zarządza tzw. tablicą ARP. Znajdują się w niej pary: adres warstwy sieciowej i przypisany do niego adres fizyczny. Zapobiega to wysyłaniu zapytania ARP przy próbie wysłania każdego pakietu do hosta znajdującego się w tej samej sieci.

    Protokół ARP nie jest niezbędny do działania sieci komputerowych, może zostać zastąpiony przez statyczne wpisy w tablicy ARP, przyporządkowujące adresom warstwy sieciowej adresy fizyczne na stałe.

  • SLIP (ang. Serial Line Internet Protocol) - protokół używany dawniej przy połączeniach modemowych (połączenie wdzwaniane, 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.

  • CSLIP (ang. Compressed SLIP) to wersja protokołu SLIP, która kompresuje dane przed transmisją.

  • Frame Relay (FR) to sieć z komutacją pakietów, używana do łączenia odległych sieci lokalnych (LAN), przesyłania danych, obrazu i głosu oraz dostępu do Internetu. W tej technice informacja jest dzielona na ramki o zmiennej długości, które przenoszą dane między sieciami LAN, co pozwala na przekazywanie informacji między urządzeniami końcowymi sieci rozległych (WAN).

    Frame Relay, do chwili zdominowania sieci przez ATM, była bardzo powszechnym standardem sieciowym. Jej poprzedniczką jest sieć X.25, która została zaprojektowana dla sieci o dużej zawodności z dużą liczbą błędów. Sieć FR jest szybsza niż X.25, ponieważ wykorzystuje dużo prostszy mechanizm wykrywania i korekcji błędów. Protokół FR funkcjonuje w dwóch pierwszych warstwach modelu OSI/ISO, zaś X.25 sięga do warstwy sieciowej.

    Sieć FR wykrywa błędy nagłówka, formatu, jak i cyklicznego kodu nadmiarowego (CRC). Ramki z błędem są kasowane, a urządzenia końcowe są wyposażone w odpowiednie procedury powtarzania części sesji.



Protokoły warstwy fizycznej



  • Standard RS-232 opisuje sposób połączenia urządzeń DTE (ang. Data Terminal Equipment) tj. urządzeń końcowych danych (np. komputer) oraz urządzeń DCE (ang. Data Communication Equipment), czyli urządzeń komunikacji danych (np. modem). Standard określa nazwy styków złącza oraz przypisane im sygnały a także specyfikację elektryczną obwodów wewnętrznych. Standard ten definiuje normy wtyczek i przewodów portów szeregowych typu COM. Standard RS-232 (ang. Recommended Standard) opracowano w 1962 roku na zlecenie amerykańskiego stowarzyszenia producentów urządzeń elektronicznych (Electronic Industries Alliance) w celu ujednolicenia parametrów sygnałów i konstrukcji urządzeń zdolnych do wymiany danych cyfrowych za pomocą sieci telefonicznej.

    RS-232 jest magistralą komunikacyjną przeznaczoną do szeregowej transmisji danych. Najbardziej popularna wersja tego standardu, RS-232C pozwala na transfer na odległość nie przekraczającą 15 m z szybkością maksymalną 20 kb/s.

    W architekturze PC standardowo przewidziano istnienie 4 portów COM oznaczanych odpowiednio COM1 - COM4. Specjalizowane karty rozszerzeń pozwalały na podłączenie znacznie większej liczby portów RS-232, jednak nie były one standardowo obsługiwane przez MS-DOS i wymagały odpowiedniego oprogramowania.

    W przypadku komputerów PC porty RS-232 początkowo obsługiwane były przez układy 8250 (PC, XT), później 16450 (AT, 80386, pierwsze i486), następnie przez zintegrowane z płytą główną 16550A. Układy te są ze sobą wstecznie zgodne, jednak kolejne wersje mają coraz większy bufor FIFO. Układ 16550A ma standardowo bufor 2x 16 bajtów. Zwiększenie długości kolejki FIFO skutkowało obniżeniem częstotliwości przerwań generowanych przez port przy przesyłaniu danych. Na potrzeby zastosowań profesjonalnych (np. równoczesna obsługa wielu szybkich modemów w systemach typu BBS) stosowano często specjalizowane karty RS-232 z jeszcze większymi buforami (np. 16650 czy karty procesorowe). Znane były rozwiązania pozwalające na podłączenie do 1024 urządzeń RS-232, przy zachowaniu pełnej prędkości przez port i buforami rzędu 1024 bajty na port. Część kart tego typu pozwalała także na ustawianie wyższego zegara wskutek czego prędkości układu był większe niż ustawienia standardowe - przy dużej wielkości kolejki FIFO pozwalało to na uzyskiwanie dużych (często niestandardowych - jak w przypadku modemów ZyXel 76800 b/s) prędkości. Spotkać można było na rynku modemy komunikujące się z portem RS-232 z prędkościami do 421 kb/s, a nawet 921,6 kb/s (np. Yuko, Goramo).

    Specyfikacja napięcia definiuje "1" logiczną jako napięcie -3 V do -15 V, zaś "0" to napięcie +3 V do +15 V. Poziom napięcia wyjściowego natomiast może przyjmować wartości -12 V, -10 V, +10 V, +12 V, zaś napięcie na dowolnym styku nie może być większe niż +25 V i mniejsze niż -25 V. Zwarcie dwóch styków RS-232 nie powinno powodować jego uszkodzenia. W praktyce warunek ten nie zawsze jest przestrzegany.

  • V.35 - skasowane zalecenie ITU-T, które specyfikowało synchroniczny dwukierunkowy interfejs transmisji danych (opis gniazd i poziomy sygnałów) pomiędzy dwoma urządzeniami: DTE (Data Terminal Equipment) i DCE (Data Communications Equipment). Interfejs ten przeznaczony był pierwotnie dla szerokopasmowych modemów analogowych klasy 48 kb/s, które używały pasma 60-108 kHz. Pasmo 60-108 kHz stanowi ekwiwalent szerokości pasma normalnie używanego dla 12 analogowych kanałów telefonicznych w systemach telekomunikacyjnych.

    Zalecenie V.35 zostało skasowane ponieważ zawarte w nim informacje zdezaktualizowały się. Alternatywne rozwiązania zostały opisane w zaleceniach ITU-T V.36 i V.37.

    Interfejsy V.35 używają niesymetrycznych sygnałów interfejsu V.28 i symetrycznych V.35, co powoduje, że maksymalna długość kabla jest taka sama jak dla interfejsów V.24/V.28 (RS-232).

    Rozkład końcówek na złączach urządzeń DCE/DTE definiuje norma ISO 2593. Są to 34 końcówkowe złącza typu MRAC.

    Poziomy sygnałów i charakterystyki elektryczne interfejsu V.35 są identyczne jak w zaleceniu ITU-T V.28.

    Typowe przepływności używane w tym standardzie interfejsu to ok. 30 b/s - 2048 kb/s.

  • V.34 to standard w komunikacji rekomendowany przez ITU-T, charakteryzujący się pełną transmisją dwukierunkową pomiędzy dwoma modemami wdzwanianymi (połączenie wdzwaniane, ang. dial-up) przy przepustowości łącza do 28,8 kbit/s. Inne dodatkowo zdefiniowane przepustowości to: 24,0 kbit/s, 19,2 kbit/s a także przepustowości, które są dopuszczalne przez zalecenia V.32 i V.32bis.

    Standard ten jest następcą nieoficjalnego standardu V.FC (V.Fast Class) opracowanego przez firmy Hayes i Rockwell International, który był pierwszym szeroko dostępnym protokołem oferującym przepustowość 28,8 kbit/s.

    Większość modemów standardu V.34 obsługuje także protokół V.FC jakkolwiek nie wszystkie nowoczesne modemy obsługują je oba.

  • ITU-T Recommendation V.90 - rekomendowany przez ITU-T standard komunikacji modemowej, pozwalający z prędkością 56 kbit/s pobierać, a z 33.6 kbit/s wysyłać dane. Standard został zatwierdzony we wrześniu 1998 roku.

  • T1 (Digital Signal 1, DS-1) - podstawowy system zwielokrotnienia kanałów cyfrowych (64 kb/s) w telekomunikacji w Stanach Zjednoczonych i Japonii. Ma 24 kanały (liczone od 0 do 23).

    Przepustowość: 24 × 64 kb/s = 1536 kb/s.

    Specyfikacja charakterystyk fizycznych hierarchicznych interfejsów cyfrowych (w tym T1) jest zawarta w zaleceniu ITU-T G.703. Charakterystyka funkcjonalna tych interfejsów, związana z węzłami sieci i urządzeniami zwielokrotniającymi, jest zawarta w zaleceniu ITU-T G.704.

  • E1 - podstawowy system zwielokrotnienia kanałów cyfrowych (64 kb/s) w telekomunikacji w Europie oraz większości krajów poza Stanami Zjednoczonymi, Kanadą i Japonią.

    Łącze E1 pracuje na dwóch oddzielnych zestawach kabli, zwykle skrętka lub rzadziej już dziś kabel koncentryczny. Nominalny sygnał 3 V (2,37 V na kablu koncentrycznym) jest zakodowany tak, aby unikać długich okresów bez zmiany polaryzacji. Przepustowość wynosi 2048 kb/s, łącze pracuje w trybie pełnego dupleksu (ang. full duplex). Czas transmisji pojedynczej porcji danych (tzw. ramki) na łączu E1 jest dzielony na 32 przedziały czasowe (ang. time slot) oznaczane TS0 - TS31. Transmisja pojedynczej ramki trwa 125 s (8000 transmisji na sekundę) w tym czasie w każdej szczelinie przesyłane jest 8 bitów informacji, stąd wynika przepustowość pojedynczego kanału (8000/s x 8 bit = 64 kb/s) i całego łącza (32 x 64 kb/s = 2048 kb/s). Pierwszy przedział (timeslot 0, TS0) nie jest używany do przesyłania danych, przesyłane są nim bity służące m.in. synchronizacji (ang. framing), pozwalającej wykryć początek ramki i rozpoznawać poszczególne przedziały czasowe. Jeden przedział (TS16) jest zarezerwowany dla celów sygnalizacyjnych.

    W odróżnieniu od łączy T1 używanych w Ameryce Płn., w łączu E1 wszystkie 8 bitów każdej próbki jest dostępnych dla każdego połączenia.

    Specyfikacja charakterystyk fizycznych hierarchicznych interfejsów cyfrowych (w tym E1) jest zawarta w zaleceniu ITU-T G.703. Charakterystyka funkcjonalna tych interfejsów, związana z węzłami sieci i urządzeniami zwielokrotniającymi, jest zawarta w zaleceniu ITU-T G.704

  • Ethernet - technika, w której zawarte są standardy wykorzystywane w budowie głównie lokalnych sieci komputerowych. Obejmuje ona specyfikację przewodów oraz przesyłanych nimi sygnałów. Ethernet opisuje również format ramek i protokoły z dwóch najniższych warstw Modelu OSI. Jego specyfikacja została podana w standardzie IEEE 802.

    Ethernet jest najpopularniejszym standardem w sieciach lokalnych. Inne wykorzystywane specyfikacje to Token Ring, FDDI czy ARCNET.

    Ethernet został opracowany przez Roberta Metcalfe'a w Xerox PARC czyli ośrodku badawczym firmy Xerox i opublikowany w roku 1976. Bazuje na idei węzłów podłączonych do wspólnego medium i wysyłających i odbierających za jego pomocą specjalne komunikaty (ramki). Wszystkie węzły posiadają niepowtarzalny adres MAC.

    Klasyczne sieci Ethernet mają cztery cechy wspólne. Są to:
    • parametry czasowe,
    • format ramki,
    • proces transmisji
    • podstawowe reguły obowiązujące przy ich projektowaniu.
    Standardem jest izolacja o wytrzymałości minimum 250 V~ między kablem a komputerem (niektóre firmy, np. 3Com, stosowały lepszą, co skutkowało dużo większą trwałością ich kart sieciowych)[potrzebny przypis].

  • POTS (ang. Plain Old Telephone Service) - najstarsza, podstawowa usługa telefoniczna, umożliwiająca analogowy przekaz głosu przez komutowane łącza telefoniczne, realizowane w paśmie VF, czyli w zakresie 300 - 3400 Hz. Połączenia są zestawiane poprzez wybieranie pulsowe za pomocą tarczy numerowej (starsza metoda) lub wybieranie tonowe przy pomocy klawiatury z kodowaniem DTMF (metoda nowsza), a następnie komutowane w centralach telefonicznych.

  • Synchronous Optical NETwork (SONET; Synchroniczna sieć optyczna) to standard transmisji optycznej używający laserów lub diod LED do przesyłania informacji cyfrowej poprzez światłowody. Został on wprowadzony, aby zastąpić PDH (ang. Plesiochronous Digital Hierarchy - Plezjochroniczna Hierarchia Cyfrowa) do przesyłania dużych ilości danych oraz aby pozwalał na bezkonfliktową współpracę urządzeń od różnych dostawców.

    Standard ten został opracowany w USA przez firmy Bell-Core i ANSI w latach 80. XX wieku, stał się on najważniejszym standardem sieci światłowodowych w Ameryce Północnej. SONET został zdefiniowany dla charakterystycznych dla T-Carrier ramek 193-bitowych, więc nie można go było zastosować w warunkach europejskich, ponieważ ramka E-Carrier była 256-bitowa. SONET dostosowany do parametrów E-Carrier nosi nazwę SDH (ang. Synchronous Digital Hierarchy - Synchroniczna Hierarchia Cyfrowa).

  • Digital Subscriber Line (DSL, cyfrowa linia abonencka) - technologia cyfrowego szerokopasmowego dostępu do Internetu. Standardowa maksymalna prędkość odbierania danych waha się od 8Mb/s do 52 Mb/s oraz od 1Mb/s do 5Mb/s dla prędkości wysyłania w zależności od stosowanej w danym kraju technologii DSL. Dla technologii ADSL prędkość wysyłania danych jest niższa od prędkości ich odbierania, natomiast prędkości te są symetryczne w technologii SDSL. Wynalazcą modemów DSL był Joseph W. Lechleitter, pracownik firmy Bellcore, który zademonstrował projekt budowy tych urządzeń w latach 80 XX w..

    Według szacunków firmy badawczej Point Topic pod koniec marca 2004 r. na całym świecie było 73,4 mln użytkowników dostępu do Internetu w technologii DSL (najwięcej w Niemczech - ok. 15 mln, Chinach - 13,9 mln, Japonii - 11 mln i USA - ok. 10,5 mln)[2]. Według przeprowadzonego przez GUS badania wykorzystania technologii informacyjno-telekomunikacyjnych w gospodarstwach domowych i przez osoby prywatne w 2011 r. z szerokopasmowych połączeń internetowych w technologii DSL korzystało 3,4 mln gospodarstw domowych (27,3% wszystkich gospodarstw domowych w Polsce z przynajmniej jedną osobą w wieku 16-74 lata)[3].

  • Asymmetric Digital Subscriber Line, ADSL (ang. asymetryczna cyfrowa linia abonencka) - technologia umożliwiająca szerokopasmowy asymetryczny dostęp do sieci teleinformatycznych, a w tym do Internetu i będąca odmianą DSL.

    W technice tej do przesyłania danych wykorzystuje się częstotliwości większe od 25 kHz, które nie są używane przy przesyłaniu głosu rozmowy telefonicznej. Asymetria polega tutaj na tym, iż przesyłanie danych z sieci do użytkownika jest szybsze niż w drugą stronę. Technologia ta stworzona została z myślą o użytkownikach częściej odbierających dane (np. ze stron internetowych) niż wysyłających dane (np. posiadających serwer internetowy).

    W standardzie tym wykorzystuje się zwykłe, miedziane kable telefoniczne. ADSL pozwala na dużo większą przepustowość niż technologia modemów telefonicznych, w której wszystkie sygnały są przesyłane w paśmie przeznaczonym do przesyłania głosu. W najczęstszym przypadku Plain Old Telephone Service w centrali telefonicznej jest demodulowany na postać cyfrową z częstotliwością 8 kHz i 8 bitowym kodowaniem, co odpowiada przepustowości 64 kb/s.

    Przesyłane wspólnym kablem sygnały rozmowy telefonicznej i ADSL w centrali i u użytkownika są rozdzielane przez filtry (spliter) na sygnał telefoniczny (rozmowę) i szerokopasmową transmisję danych. U użytkownika sygnał rozmowy jest kierowany do telefonów a ADSL do modemu. W centrali rozmowa jest kierowana do zwykłej sieci telefonicznej, natomiast pakiety danych związane z transmisją szerokopasmową są przesyłane poprzez multiplekser DSLAM, albo do wewnętrznej sieci ATM (wtedy usługodawca telekomunikacyjny korzysta z enkapsulacji PPPoA)[1], albo do wewnętrznej sieci Ethernet usługodawcy (gdy korzysta z enkapsulacji PPPoE), aż do bramy internetowej.

    ADSL pozwala na transmisję z prędkością od 16 kb/s do 24 Mb/s. Prędkość, z jaką można wysyłać dane, jest zwykle znacznie niższa.

    Technologia ADSL została opisana w zaleceniach ITU-T G.992.1, G.992.2 (G.Lite) (i kolejnych) oraz w standardzie ANSI T1.413-1998.


Powrót