Transportná vrstva TCPIP

10.1.1. TCP operácie
IP adresovanie umožňuje smerovanie paketov medzi sieťami, ale negarantuje ich doručenie. Transportná vrstva – je zodpovedná za spoľahlivý prenos a reguluje dátový tok medzi zdrojom a cieľom. Na zabezpečenie tohto cieľa sa využíva posuvné okno a sekvencia čísel so synchronizačným procesom ktorý zaisťuje, že hosť je pripravený a ochotný komunikovať.
10.1.2. Synchronizácia alebo 3-cestné nadviazanie spojenia
TCP je spojito orientovaný protokol. Pri dátovom prenose sa najskôr medzi dvoma hostami uskutoční synchronizácia na zabezpečenie virtuálnej komunikácie. Synchronizácia zabezpečí, že obe strany sú pripravené na prenos a umožnia zariadeniam určiť inicializačné sekvenčné čísla. Tomuto procesu sa hovorí 3-cestné nadviazanie spojenia.


cisco

Postup nadviazania 3-cestného spojenia:

  1. Prvý host inicializuje spojenie zaslaním paketu s nastaveným SYN bitom a svojím začiatočným poradovým číslom (Sequence Number) x
  2. Druhý host si zaznamená poradové číslo x, odpovie potvrdzovacím číslom (Acknowledge Number) x+ 1 a súčasne oznámi svoje vlastné poradové číslo y
  3. Prvý host si zaznamená poradové číslo druhého hosta a odpovie paketom s potvrdzovacím číslom y+ 1

10.1.3. Útok Denial of service (DOS)


cisco

DOS útok je navrhnutý na odoprení služby legitímnemu užívateľovi pokúšajúceho sa o nadviazanie spojenia. Hacker predstieranou IP adresou (spoofing) sa snaží veľkým množstvom žiadostí o spojenie zahltiť Server a vyčerpať jeho systémové prostriedky (spojenia márne čakajú na 3. časť potvrdenia spojenia, keďže zdrojová IP bola falošná, kým neuplynie timeout)
Obrana: skrátiť timeout pre spojenie, zväčšiť veľkosť connection queue, špeciálny SW pre zachytávanie týchto útokov
10.1.4. Používanie okien a veľkosť okien
Na prenos dát je potrebná ich rozdeliť na menšie segmenty, to zabezpečuje TCP.
Windowing – je to proces prúdovej kontroly, servisný poskytovateľ reguluje, aké množstvo dát môže byť
poslané počas periódy prenášania. Určuje množstvo dát, ktoré môžu byť poslané pred potvrdením z cieľa. Po
poslaní dát určených veľkosťou okna, hosť musí prijať potvrdenie, pred posielaním ďalších dát. Napr. ak WS je
1 po každom segmente musí nasledovať potvrdenie.
TCP používa techniku sliding window, čo umožňuje komunikujúcim zariadeniam dynamicky nastavovať a
meniť veľkosť okna podľa aktuálnej situácie na sieti


cisco

cisco


10.1.5. Poradové čísla (Sequencing numbers)


cisco

TCP delí dáta na segmenty, tie sú označené poradovými číslami a odoslané, keďže pri prenose nie je zaručené, že budú prijaté v rovnakom poradí. Pri prijatí TCP aplikuje poradové čísla a poskladá späť dáta. Umožňujú identifikovať, či nejaký dátový segment v cieľovom zariadení nechýba, ak áno, bude opakovane vyslaný.


10.1.6. Pozitívne potvrdzovanie a retransmisia
Potvrdenie je všeobecným krokom synchronizačného procesu obsahujúceho pohyblivé okná a dátové sekvencie. Po poli so sekvenčným číslom nasleduje pole potvrdenia.


cisco

Zdrojový port


Cieľový port


Poradové číslo segmentu Potvrdzovacie číslo


Príznaky (SYN, ACK, FIN,...)    Veľkosť okna TCP využíva pozitívny ACK a opakovaný prenos na kontrolu dátového prúdu a overenie dátového doručenia. Je využívaný veľa protokolmi na overenie spoľahlivosti.
Zdroj pošle paket, spustí časovač a čaká na potvrdenie pred poslaním ďalšieho. Ak timer pre segment vyprší bez potvrdenia, segment sa vyšle ešte raz, súčasne sa zníži rýchlosť vysielania dát. Bez potvrdenia zdroj môže vyslať maximálne veľkosť okna bajtov. TCP užívateľ očakáva potvrdenie v ktorom sa číslo potvrdenia odkazuje na nasledujúci paket.
10.1.7. UDP protokol
UDP je nespojito orientovaný protokol, pracuje na 4. vrstve, negarantuje doručenie paketu. Využitie protokolu pre aplikácie:
ciscoTCP musí byť použitý, keď aplikácie potrebujú garantovať, že paket
príde celý, súvislý a neduplicitný.
UDP je vhodný pre aplikácie, kde sa vyžaduje rýchlosť na úkor
spoľahlivosti, neprebieha potvrdzovanie, úlohu detekcie chýb preberá
aplikačná vrstva. Hlavička UDP,
cisco
neobsahuje potvrdenia ani veľkosť okien. Pri DNS požiadavke od hosta, bude mať cieľový port 53, dĺžka identifikuje počet oktetov v UDP segmente. Je možné nastaviť aj kontrolný súčet na zabezpečenie, že dáta neboli zmenené počas
prenosu. Pri prenose cez sieť je UDP zapuzdrený vnútri IP paketu. Cieľový port špecifikuje aplikáciu, z ktorej sa posielajú dáta.


10.2.1. Viacnásobný rozhovor medzi hostami


cisco

Pri prenose sa používajú čísla portov, ktoré umožňujú zistiť, pre akú aplikáciu je paket určený. Napr. FTP má č. portu 21.
cisco
Pridelený rozsah čísel portuv:

  1. pod 255 pre verejné aplikácie
  2. 255 -1023 pridelené firmám na manažovanie aplikácií
  3. od 1023 sú nepridelený
  4. 0 -1023 – well-known porty Príklad komunikácie:

Klient sa pripája na službu telnet (cieľový port 23), pričom číslo jeho zdrojového portu je nepodstatné (1028), je vždy väčšie ako 1023. Server v tomto dialógu používa cieľový port 1028 (s ktorým klient nadviazal spojenie) a zdrojový 23.
10.2.3. Porty pre klientov
Klient musí mať pridelený port, aby sa mohol pripojiť na službu na serveri. Cieľový port je z oblasti well-known portov. Zdrojový port je dynamicky pridelený v oblasti nad 1023. Príklad:
Chcem sa pripojiť na web, zdrojový port je 1045 a cieľový 80, 80 zodpovedá portu http na ktorom beží webový server.
10.2.4. Číslovanie portov a dobre známe čísla portov
V hlavičke TCP a UDB sú 2 bajty vyhradené na čísla portov, tie môžu byť v rozsahu 0 – 65535. Delenie portov:

  1. 0 – 1023 dobre známe portu, napr.: FTP, Telnet, DNS
  2. 1024 – 49151 registrované porty
  3. 49152 – 65535 dynamické alebo privátne

10.2.5. Príklad viacnásobného sesion medzi hostami
Zdrojový a cieľový port sú skombinované zo sieťovou adresou. Hosť môže v rovnakom čase surfovať na
internete, port 80, a zároveň mať spustené telnet na porte 23. IP adresa a MAC adresa budú rovnaké, ale každá
aplikácia a služba bude mať vlastný port .
Príkaz netstat –n (Windows) zobrazí stav jednotlivých relácií
Na smerovači príkaz R#show tcp
10.2.6. Porovnanie MAC adries, IP adries a čísiel portov
Všetky 3 predstavujú adresy. MAC adresa –Linková vrstva IP adresa –Sieťová vrstva Číslo portu –Transportná vrstva