Podstawowe pojęcia

Zestaw podstawowych pojęć, związanych z komunikacją w sieciach komputerowych.
Takich jak:
  • model OSI
  • protokoły komunikacyjne
  • porty protokołu
  • pakiet
    Lektura zalecana, przed zapoznaniem się z tematem zapór sieciowych.
  • OSI

    OSI (ang. Open System Interconnection) lub Model OSI to zdefiniowany przez organizacje ISO oraz ITU-T standard opisujący strukturę komunikacji sieciowej. Model OSI jest traktowany jako model odniesienia dla większości rodzin protokołów komunikacji. Podstawowym założeniem modelu jest podział systemów sieciowych na 7 całkowicie niezależnych warstw (ang. layers).

    Model OSI definiuje jakie zadania oraz rodzaje informacji mogą być przesyłane między warstwami w całkowitym oderwaniu od ich fizycznej i algorytmicznej realizacji. Mimo iż, każda z warstw sama nie jest funkcjonalna, to możliwe jest projektowanie warstwy w całkowitym oderwaniu od pozostałych. Jest to prawdziwe, jeżeli wcześniej zdefiniuje się protokoły wymiany informacji pomiędzy poszczególnymi warstwami.

    Warstwy górne

  • Warstwa aplikacji
  • Warstwa prezentacji
  • Warstwa sesji

    Warstwy dolne

  • Warstwa transportowa
  • Warstwa sieciowa
  • Warstwa łącza danych
  • Warstwa fizyczna

    Protokoły komunikacyjne

    Protokoły komunikacyjne to zbiór ścisłych reguł i kroków postępowania, które są automatycznie wykonywane przez urządzenia komunikacyjne w celu nawiązania łączności i wymiany danych. Dzięki temu, że połączenia z użyciem protokołów odbywają się całkowicie automatycznie typowy użytkownik zwykle nie zdaje sobie sprawy z ich istnienia i nie musi o nich nic wiedzieć.

    Klasyczne protokoły, których prawzorem był protokół telexu składają się z trzech części:

  • procedury powitalnej (tzw. "handshake") która polega na przesłaniu wzajemnej podstawowej informacji o łączących się urządzeniach, ich adresu (nr. telefonu), szybkości i rodzaju transmisji itd, itp,
  • właściwego przekazu danych,
  • procedury analizy poprawności przekazu (np: sprawdzania sum kontrolnych) połączonej z procedurą pożegnania lub powrotu do procedury powitalnej.

    Protokoły służące programom komputerowym do porozumiewania się między sobą poprzez Internet są określone przez IETF (ang. Internet Engineering Task Force - nieformalne, międzynarodowe stowarzyszenie osób zainteresowanych ustanawianiem standardów technicznych i organizacyjnych w Internecie) w dokumentach zwanych RFC (ang. Request For Comment - dosłownie: prośba o komentarz - seria numerowanych dokumentów informacyjnych).

    TCP/IP

    TCP/IP to wspólna nazwa dwóch podstawowych protokołów sieci Internet. Powstała oczywiście przez połączenie nazw TCP i IP.
    Protokół TCP/IP (ang. Transmission Control Protocol/Internet Protocol) jest "programowym protokołem komunikacji sieciowej" (ang. software-based communications protocol used in networking).

    TCP

    TCP (ang. Transmission Control Protocol) to strumieniowy protokół komunikacji między dwoma komputerami. Jest on częścią większej całości określanej jako stos TCP/IP. W modelu OSI TCP odpowiada warstwie Transportowej.

    W przeciwieństwie do UDP, TCP zapewnia wiarygodne połączenie dla wyższych warstw komunikacyjnych przy pomocy sum kontrolnych i numerów sekwencyjnych pakietów, w celu weryfikacji wysyłki i odbioru. Brakujące pakiety są obsługiwane przez żądania retransmisji. Host odbierający pakiety TCP porządkuje je według numerów sekwencyjnych tak, by przekazać wyższym warstwom modelu OSI pełen, złożony segment.

    Charakterystyczny dla TCP jest moment nawiązania połączenia, nazywany ang. three-way handshake. Host inicjujący połączenie wysyła pakiet zawierający segment TCP z ustawioną flagą SYN (Synchronize). Host odbierający połączenie, jeśli zechce je obsłużyć odsyła pakiet z ustawionymi flagami SYN i ACK (Acknowledge - potwierdzenie). Inicjujący host powinien teraz wysłać pierwszą porcję danych, ustawiając już tylko flagę ACK (gasząc SYN). Jeśli host odbierający połączenie nie chce lub nie może odebrać połączenia, powinien odpowiedzieć pakietem z ustawioną flagą RST (Reset).

    Aplikacje, w których zalety TCP przeważają nad wadami (większy koszt związany z utrzymaniem sesji TCP przez stos sieciowy) to między innymi HTTP, SSH, FTP czy SMTP/POP3 i IMAP4.

    UDP

    UDP (ang. User Datagram Protocol - Datagramowy Protokół Użytkownika) to jeden z podstawowych protokołów internetowych. Umieszcza się go w warstwie czwartej (transportu) modelu OSI.

    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 większa szybkość transmisji 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ą sie inne warstwy modelu OSI. Innym przykładem usługi wykorzystującej UDP (oprócz TCP) jest 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. 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 na raz (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.

    Porty protokołu

    Porty protokołu to pojęcie związane z protokołem TCP/IP używanym w Internecie do rozróżniania wielu różnych usług i połączeń na serwerze. Porty protokołu są oznaczone za pomocą liczb całkowitych z zakresu od 1 do 65535. Niektóre porty (od 1 do 1023) są zarezerwowane na standardowe usługi takie jak WWW albo poczta elektroniczna. Przykładowo jeśli jakiś host jest serwerem WWW i poczty elektronicznej to program chcący otworzyć stronę WWW na tym hoście musi otworzyć port 80 a chcąc wysłać email musi otworzyć port 25. Różne usługi mogą używać tych samych numerów portów pod warunkiem, że korzystają z innego protokołu TCP albo UDP chociaż niektóre usługi korzystają jednocześnie z danego numeru portu i obudwu protokołów np. DNS korzysta z portu 53 za pomocą TCP i UDP jednocześnie. Poszczególne numery portów przydzielone są przez IANA (Internet Assigned Number Authority- organizacja, która wyłoniła się z IETF w celu zaprowadzenia porządku w nazwach domen i numerach IP komputerów przyłączonych do Internetu).

    W systemach typu Unix/Linux lista portów i nazw odpowiadających im usług znajduje się w pliku /etc/services

    Numery portów

    Oto kilka usług i aplikacji oraz porty odpowiadające im w Linuksie:
  • echo - 7/tcp
  • systat - 11/tcp
  • ftp-data - 21/tcp
  • ssh - 22/tcp
  • telnet - 23/tcp
  • smtp - 25/tcp
  • finger - 79/tcp
  • http - 80/tcp
  • pop3 - 110/tcp
  • printer - 515/tcp
  • router - 520/udp
  • nfs - 2049/tcp
  • xwindows - 6000/tcp
  • Pakiet

    Pakiet (inaczej datagram, są to synonimy, chociaż w pewnych kontekstach rozróżnia się subtelne różnice) jest podstawową jednostką nośnika informacji w nowoczesnych sieciach telekomunikacyjnych.

    Pakiet składa się z nagłówka i obszaru danych. Nagłówek pakietu zawiera informacje wymagane do przesłania pakietu od nadawcy do odbiorcy. Obszar danych zawiera informacje, które mają zostać przesłane za pomocą pakietu. Można się posłużyć analogią do listu - nagłówek jest kopertą, a obszar danych tym, co nadawca włożył do koperty.

    Połączenie zawiera zwykle serię pakietów; w niektórych rodzajach sieci pakiety składające się na połączenie nie muszą być przesyłane tą samą trasą przez sieć. Wiele architektur sieci nie zapewnia mechanizmu zapobiegającego utracie pakietów, duplikacji lub ogólnie nieprawidłowemu dostarczeniu pakietu. Możliwe jest jednak umieszczenie protokołu transportowego w warstwie powyżej protokołu pakietowego, który udostępnia takie zabezpieczenia. Przykładem takiego protokołu jest TCP.

    Datagramem określa się samodzielny pakiet - zawierający w nagłówku ilość informacji wystarczającą do przesłania go przez sieć od nadawcy do odbiorcy niezależnie od innych pakietów. Dzięki temu nie są konieczne żadne przygotowania zanim komputer prześle datagram do innego komputera, z którym wcześniej się nie komunikował.

    Niektóre systemy oparte o pakiety wymagają przygotowania połączenia przed wysyłaniem pakietów. Z tego względu wprowadza się rozróżnienie pomiędzy tymi pojęciami. Inne, jak na przykła protokół IP, nie wymagają żadnych przygotowań, i w takim przypadku terminów pakiet i datagram używa się zamiennie.

    źródło: wikipedia.org

    powrót do zapór sieciowych