Menu Zavrieť

2.2. Komunikácia s transportnou vrstvou

Každý sieťový program sa spustí ako proces, prípadne množina procesov (záleží na programátorovi). Pokiaľ chcú dva procesy komunikovať v rámci jedného počítača, môžu využiť medziprocesovú komunikáciu, ktorú poskytuje operačný systém. Procesy na rôznych počítačoch komunikujú prostredníctvom správ niektorým z aplikačných protokolov.

Bez ohľadu na typ architektúry aplikácie je pri sieťovej komunikácii medzi dvoma procesmi vždy jeden z procesov klientsky a jeden serverový. Klientsky proces je ten, ktorý inicializuje komunikáciu a serverový proces je ten, ktorý čaká, že sa naň niekto napojí.

Procesy posielajú a prijímajú správy od procesu na druhej strane komunikácie prostredníctvom soketov. Soket je rozhranie (API), ktoré poskytuje komunikáciu sieťovej aplikácie s niektorým protokolom transportnej vrstvy. Samotná transportná vrstva je obyčajne už riadená operačným systémom. Soket poskytuje posielanie a prijímanie správ systémom producent-konzument. Okrem toho umožňuje nastavenie niektorých parametrov protokolov nižších vrstiev.

Na to, aby dva procesy na rôznych staniciach mohli komunikovať, musí klientsky proces vedieť identifikátor presne určujúci, kde sa nachádza serverový proces, aby s ním mohol inicializovať komunikáciu. Identifikátor sa skladá z IP adresy stanice, na ktorej beží serverový proces a čísla portu, ktorý jednoznačne identifikuje proces v rámci tejto stanice. Netreba zabúdať, že na jednom počítači môže byť spustených niekoľko serverových procesov a musia sa preto ich identifikátory od seba líšiť.

Číslo portu si môže serverový proces (lepšie povedané jeho programátor) vybrať, aké chce. Dobre známe služby už majú všeobecne uznané čísla portov (well known ports). Napríklad HTTP server obvykle počúva na porte 80, FTP server na porte 21 a podobne.

Jednotlivé webové aplikácie majú rôzne nároky na transportnú vrstvu a sieťové pripojenie. Niektoré nie sú citlivé na stratu niektorých dát (napr. VoIP, streamované rádio a televízia), iné vyžadujú stopercentne spoľahlivé dátové prenosy. Na druhej strane, rôzne multimediálne prenosy obrazu a zvuku vyžadujú nejakú minimálnu šírku pásma, aby ich kvalita bola dostatočná. Iné aplikácie nie sú až také citlivé na šírku pásma a dokážu sa prispôsobiť aktuálnym možnostiam. Real-time aplikácie určené na komunikáciu tiež vyžadujú malé zdržanie paketov.

Charakter internetu (prepínanie riadené paketmi) neumožňuje žiadnemu transportnému protokolu zabezpečiť minimálnu šírku pásma ani malé zdržanie paketov, takže multimediálne real-time prenosy by sme mali uskutočňovať na „nevyťažených spojeniach s dostatočnou šírkou pásma“, kde je zdržanie malé.

Všetky aplikačné protokoly, ktoré očakávajú spoľahlivý prenos všetkých správ v správnom poradí, využívajú transportný protokol TCP. Protokol UDP je odľahčený protokol nepodporujúci spoľahlivý prenos dát (navyše ani v správnom poradí). Ak sa odosielajúca stanica nemusí starať o to, či všetky dáta spoľahlivo došli ku klientom, je vhodnejšie použiť UDP protokol, ktorý odľahčí odosielajúcu stanicu aj sieťovú komunikáciu. Typicky sú to práve spomínané streamované rádia a televízia či telefonovanie cez internet. Niektoré multimediálne programy však preferujú TCP protokoly hlavne pre ich schopnosť kontroly zahltenia siete. Využívajú ho hlavne archívy multimédií (napr. YouTube). UDP protokol je tiež vhodný, ak je potrebné odosielať totožné správy viacerým staniciam súčasne.