Prenosové protokoly

Prenosové, alebo transportné, protokoly sú protokoly 3. a 4. vrstvy OSI a ich úlohou je prenášať dáta medzi strojmi a aplikáciami v počítačovej sieti.

V minulosti boli používané viaceré prenosové protokoly, ktoré neboli navzájom kompatibilné.

Protokoly IPX/SPX
  • boli vyvinuté firmou Novell pre softvér NetWare:
  • IPX (Internetwork Packet Protocol) je protokol 3. vrstvy, ktorý slúži na smerovanie paketov v sieti IPX, nepotrebuje vytvorenie spojenia
  • SPX (Sequenced Packet Exchange) je protokol 4. vrstvy, ktorý riadi tok dát medzi komunikujúcimi aplikáciami v rámci siete IPX, poskytuje spoľahlivú službu
Protokol NetBEUI
  • NetBEUI (NetBIOS Extended User Interface)
  • bol vyvinutý firmou IBM v polovici 80. rokov
  • bol štandardom v prostredí malých sietí starých verzií MS Windows na komunikáciu medzi počítačmi
  • nie je smerovateľný, t.j. nedá sa použiť k pripojeniu LAN do siete Internetu

V súčasnosti sú najrozšírenejšie transportné protokoly:

Vrstva Protokol
sieťová IP, IPv6
transportná TCP, UDP

Protokoly sieťovej vrstvy

Tretia vrstva sieťového modelu OSI poskytuje prenos dát medzi strojmi jednej alebo viacerých sietí. Poskytujú nespoľahlivú službu a prenášajú pakety.

Protokoly sieťovej vrstvy umožňujú (a vyžadujú) jednoznačne identifikovať stroj v sieti, identifikovať sieť, a tak prenášať dáta medzi jednotlivými strojmi.

Hlavnými protokolmi tretej vrstvy sú IP a jeho novšia verzia IPv6, pričom oba majú rovnaké charakteristiky:

  • protokoly 3. vrstvy
  • poskytujú nespoľahlivú datagramovú službu
  • po sieti prenášajú pakety (datagramy)
  • paket môže doraziť poškodený, mimo poradia odoslania, duplikovane alebo nemusí doraziť vôbec – ak je potrebná spoľahlivosť doručenia, musia ju zaistiť vyššie vrstvy (konkrétne TCP)
  • používajú adresy IP/IPv6
IP
Protokol IP (označovaný aj IPv4) je starší, ale stále je hlavným protokolom sieťovej vrstvy.
IPv6
Protokol IPv6 je novšia verzia sieťového protokolu, ktorá je nevyhnutnou budúcnosťou, ale zatiaľ nie je veľmi rozšírená – v krajinách s najväčším pokrytím používa IPv6 len menej ako 20 % (u nás len jednotky percent).

Obe verzie protokolov používajú adresy IP/IPv6, čo je logický identifikátor“ stroja v sieti a je prideľovaná správcom siete (narozdiel od fyzickej adresy MAC, ktorá je prideľovaná výrobcom).

Adresa IP

Adresa IP je 32b číslo, ktoré je zapisované ako štvorica desiatkových čísel, oddelených bodkami, napr.:

192.168.10.1

Špeciálne adresy

Existuje niekoľko adries so špeciálnym významom:

  • akákoľvek adresa – 0.0.0.0
  • tento (lokálny) stroj – 127.0.0.1
  • všetky stroje – 255.255.255.255

Maska siete

Na identifikáciu siete je k adrese IP pridávaná tzv. maska siete, ktorá udáva časť adresy IP, ktorá tvorí adresu siete. Maska je počet po sebe nasledujúcich jednotiek, zapisuje za adresu IP a je oddelená lomkou. Masku je zapisovaná za adresu IP/IPv6. V prípade IP možno masku zapísať dvomi spôsobmi (v prípade IPv6 len druhým):

  • podobne ako adresu IP, tzn. štyri desiatkové čísla oddelené bodkami (len IP), napr.:

    192.168.10.1/255.255.255.0
    
  • ako počet jednotiek číslo (IP i IPv6), napr.:

    192.168.10.1/24
    fe80::96c6:91ff:fe12:e24/64
    2001:470:5b81:10::11/48
    

Triedy adries

Pôvodne boli adresy rozdelené do piatich tried, triedy A, B a C boli na bežné použitie a líšili sa veľkosťou sieťovej masky. Triedy D a E majú špeciálny účel a nemajú byť priraďované strojom:

Trieda 1. bajt od   do maska
A 0 – 127 0.0.0.0 127.255.255.255 255.0.0.0
B 128 – 191 128.0.0.0 191.255.255.255 255.255.0.0
C 192 – 223 192.0.0.0 223.255.255.255 255.255.255.0
D 224 – 239 224.0.0.0 239.255.255.255 255.255.255.255
E 240 – 255 240.0.0.0 255.255.255.255

Neverejné adresy

V IP v súčasnosti nie je na to dostatok adries, a tak bol zavedený systém NAT (Network Address Translation) a boli vyhradené rozsahy neverejných adries pre každú triedu adries. O preklad neverejných adries na verejné sa potom stará smerovač:

Trieda od do Maska
A 10.0.0.0 10.255.255.255 10.0.0.0/8
B 172.16.0.0 172.31.255.255 172.16.0.0/12
C 192.168.0.0 192.168.255.255 192.168.0.0/16
  • verejné adresy
    • sú poskytované centrálnym registrátorom jednotlivým krajinám a poskytovateľom pripojenia k internetu (ISP), ktorí ich prideľujú jednotlivým zákazníkom
    • poskytujú prístup do/z verejného internetu
  • neverejné adresy
    • sú prideľované správcom siete/systému podľa vlastnej úvahy
    • na prístup k verejnému Internetu je potrebný NAT

Tip

Systém NAT je laikmi považovaný za bezpečnostné opatrenie, pretože počítače s neverejnou adresou IP nie sú priamo dostupné z verejného Internetu, ale je to omyl! Existuje viacero spôsobov ako NAT prekonávať a získať tak prístup priamo k strojom za ním.

Automatické adresy

Okrem týchto neverejných adries existuje rozsah APIPA, ktorý slúži na automatické nastavenie siete (v prípade zlyhania dynamického nastavenia) a bol pre nebo vyčlenený rozsah z triedy C:

Trieda od   do maska
C 169.254.0.0 169.254.255.255 169.254.0.0/16

Poznámka

Hoci je možné priradiť rozhraniu aj viac adries IP, zvyčajne má len jednu (okrem 127.0.0.1).

Adresa IPv6

Adresy IPv6 plnia rovnaký účel ako adresy IP, len sú používané protokolom IPv6. Líšia sa veľkosťou, formátom zápisu a tým, že stroj má väčšinou viac ako jednu adresu (predvolene až šestnásť adries).

Adresa IPv6 má 128 bitov, čím poskytuje mnohonásobne väčší počet dostupných adries, a zapisuje sa v ôsmich štvoriciach šestnástkových čísel, oddelených dvojbodkou, napr.:

2001:0470:5b81:0010:0000:0000:0000:11

Takýto zápis je pomerne dlhý, preto existujú dve základné pravidlá skracovania zápisu:

  1. všetky úvodné nuly štvoríc možno vynechať:

    2001:470:5b81:10:0:0:0:11
    
  2. po sebe nasledujúce nulové štvorice možno zlúčiť (ale len jednu skupinu) a nahradiť dvojitou dvojbodkou:

    2001:470:5b81:10::11
    

Na rozdiel od IP, v prípade IPv6 je stroju zvyčajne prideľovaných viacero adries:

  • linková adresa – umožňuje komunikovať len v LAN, má ju každé rozhranie s podporou IPv6, začína (začína fe80)
  • globálna adresa – umožňuje komunikovať v internete (začína 2)
  • lokálna adresa (ULA) – umožňuje komunikovať v sieťach jednej organizácie (začína fd20)

Príklad všetkých troch typov adresy IPv6 (na jednom stroji):

fe80::96c6:91ff:fe12:e24
2001:470:5b81:10::11
fd20:eefc:5945:10::11

Existujú tri typy adries IPv6:

Unicastové adresy

Unicastové adresy slúžia na identifikáciu konkrétneho (jedného) stroja, a podobne ako pri IP, majú niekoľko kategórií (účelov):

  • ::1 – adresa lokálneho počítača (localhost, obdoba 127.0.0.1)
  • fe80::/10 – linkové lokálne adresy:
    • každý stroj IPv6 má linkovú adresu na každom rozhraní
    • konkrétna adresa je odvodená z MAC alebo náhodne generovaná
    • slúži na komunikáciu v LAN, bez potreby nastavenia (obdoba APIPA)
  • fd00::/8 – jedinečné lokálne adresy (ULA – Unique Local Address):
    • (teoreticky) globálne jedinečné
    • priraďované správcom siete
    • slúžia na komunikáciu v rámci jednej organizácie
    • neumožňujú komunikáciu vo verejnom Internete
    • obdoba neverejných adries IP
  • 2000::/3 – globálne verejné adresy:
    • globálne jedinečné
    • umožňujú komunikáciu vo verejnom Internete

V prípade adries IPv6, je predpoklad aby stroj používal pre seba celú sieť adries s maskou /64, čo nevylučuje aby v tejto sieti bolo viacero strojov.

Multicastové adresy

Multicastové adresy slúžia na adresovanie viacerých strojov naraz a možno ich považovať za efektívnu náhradu broadcastu. Existuje niekoľko registrovaných (globálnych) unicastových adries, napr.:

  • ff01::1 – všetky lokálne stroje
  • ff01::2– všetky lokálne smerovače
Anycastové adresy
Anycastové adresy slúžia na adresovanie niektorého (zvyčajne najbližšieho) stroja z určitej skupiny (niektorý stroj).

Poznámka

Rozšírenie IPv6 na Slovensku je v súčasnosti veľmi nízke – dostupné len v sieťach približne 3 % poskytovateľov internetu…

Sieť IP

Tretia vrstva modelu OSI má za úlohu komunikáciu medzi strojmi v jednej alebo viacerých sieťach. V kontexte tretej vrstvy sú myslené siete IP, ktoré sú vytvárané logicky, tzn. na základe nastavení adries IP. Sieť IP je tvorená skupinou súvislých (po sebe nasledujúcich) adries IP/IPv6 a je definovaná pomocou adresy a masky siete.

Každá sieť je charakterizovaná:

  • adresou siete
  • adresou obežníka (broadcast)
  • počtom dostupných adries

Hoci sú tieto triedy adries IP naďalej platné, je možné vytvárať siete aj s inou maskou, bez ohľadu na triedu – tento spôsob tvorby sietí je označovaný CIDR (Classless Inter Domain Routing).

Adresa siete a obežník

Sieťová maska sa skladá zo zadaného počtu po sebe nasledujúcich jednotiek, napr. maska /16 (255.255.0.0):

   255   .   255   .    0    .    0
1111 1111.1111 1111.0000 0000.0000 0000

Na rozdelenie adresy IP na sieťovú a hosťovskú časť, je potrebné previesť adresu IP z desiatkovej formy do formy dvojkovej, pričom každé číslo (nie číslicu) adresy IP je potrebné previesť samostatne, napr. adresa 192.168.35.49 bude mať dvojkovú formu:

   192   .   168   .    35   .    49
1100 0000.1010 1000.0010 0011.0011 0001

Po prevedení treba pod adresu IP pridať jej masku (tiež v dvojkovej forme):

1100 0000.1010 1000.0010 0011.0011 0001
1111 1111.1111 1111.0000 0000.0000 0000
  sieťová časť <-- | --> hosťovská časť

Ostáva z adresy vytvoriť adresu siete, ktorá vznikne opísaním sieťovej časti (tzn. hodnoty nad jednotkami) a doplnením všetkého ostatného nulami:

1100 0000.1010 1000.0010 0011.0011 0001
1111 1111.1111 1111.0000 0000.0000 0000
---------------------------------------
1100 0000.1010 1000.
                   .0000 0000.0000 0000
1100 0000.1010 1000.0000 0000.0000 0000

Obdobným spôsobom možno vytvoriť adresu broadcastu siete, len za sieťovú časť je potrebné doplniť jednotky:

1100 0000.1010 1000.0010 0011.0011 0001
1111 1111.1111 1111.0000 0000.0000 0000
---------------------------------------
1100 0000.1010 1000.
                   .1111 1111.1111 1111
1100 0000.1010 1000.1111 1111.1111 1111

Na koniec už len previesť dvojkový formát späť do desiatkového:

  • adresa IP: 192.168.35.49
  • maska: 16 (resp. 255.255.0.0)
  • adresa siete: 192.168.0.0/24
  • adresa broadcast: 192.168.255.255

Počet strojov siete

Sieťová maska teda definuje sieť IP, pričom vždy prvá adresa je adresa siete (doplnené nulami) a posledná adresa je adresa broadcast (doplnené jednotkami). Všetky ostatné adresy siete sú dostupné na použitie v jednotlivých strojoch a ich počet závisí od masky (veľkosti siete).

Na výpočet poštu strojov teda stačí použiť počet bitov hosťovskej časti siete (32 - maska), urobiť mocninu dvojky týmto počtom bitov a od výsledku odpočítať dva (sieť a broadcast):

bitov = 32 - maska

strojov = 2 ^ {bitov} - 2

Ak je maska napríklad 24 (255.255.255.0), bude výpočet:

strojov = 2 ^ {32 - 24} - 2 = 254

Protokoly transportnej vrstvy

Protokoly transportnej vrstvy poskytujú spoľahlivý alebo rýchly prenos dát medzi aplikáciami (protokolmi vyšších vrstiev) jednotlivých strojov siete.

Hlavnými protokolmi transportnej vrstvy sú:

  • TCP – Transmission Control Protocol – poskytuje spoľahlivý prenos dát
  • UDP – User Datagram Protocol – poskytuje nespoľahlivý prenos dát

Oba tieto protokoly používajú na adresovanie cieľovej aplikácie číslo portu, čo je číslo 0 – 65 565. Tento rozsah je rozdelený do troch skupín:

Číslo Popis
0 – 1023 registrované porty
1 024 – 32 767 neregistrované porty
32 768 – 65 536 dynamické porty

Hlavný rozdiel spočíva v tom, kto môže dané porty otvárať (tzn. čakať na prichádzajúce spojenia):

  • registrované porty spúšťajú trvalé čakanie a vyžadujú práva správcu
  • neregistrované tiež spúšťajú trvalé čakanie, ale nevyžadujú práva správcu
  • dynamické porty využívajú aplikácie dočasne, na príjem odpovedí na požiadavky

Protokol TCP

Protokol TCP poskytuje spoľahlivú, spojovo orientovanú službu. To znamená, že protokol TCP zaisťuje:

  • vytvorenie a ukončenie spojenia
  • doručenie segmentu a v správnom poradí

Vytvorenie spojenia zaisťuje jeho spoľahlivosť, ale zároveň pridáva do prenosu dáta naviac, čím spojenie spomaľuje. Kvôli zaisteniu spoľahlivého doručenia je doručenie každého segmentu (každého n-tého) potvrdzované. Segmenty doručené v nesprávnom poradí sú zahodené, a teda nepotvrdené. Každý nepotvrdený segment je odoslaný znova.

Spojenie je vytvárané tzv. trojcestným dohodnutím:

  • prvá strana požiada o spojenie
  • druhá strana odsúhlasí vytvorenie spojenia
  • prvá strana potvrdí vytvorenie spojenia

Poznámka

Každé spojenie má byť na konci zatvorené, ale niektoré programy to nerobia správne alebo dokonca to nerobia vôbec.

V závislosti na fáze komunikácie môže byť spojenie v niektorom z viacerých stavov:

  • LISTENING – čakanie na spojenie (serverové služby)
  • ESTABLISHED – spojenie vytvorené
  • TIME_WAIT – čakanie na ukončenie spojenia
  • SYN_RECV – spojenie začínané= druhou stranou
  • a ďalšie

Najznámejšie aplikačné protokoly, ktoré používajú TCP:

  • HTTP
  • SMTP
  • IMAP
  • a ďalšie

Protokol UDP

Protokol UDP poskytuje rýchlu službu tým, že nevytvára spojenie, a tak nezaručuje doručenie paketov a ani poradie ich doručenia. Spoľahlivosť služby musia, v prípade UDP, zaisťovať protokoly vyšších vrstiev.

Segmenty sú posielané v rýchlom rade za sebou, bez čakania, či sledovania, ich doručenia, čo zaisťuje rýchlu sieťovú komunikáciu, ale s rizikom straty dát.

Najznámejšie aplikačné protokoly, ktoré používajú TCP:

  • DHCP
  • DNS
  • SIP
  • a ďalšie