Již umíme posílat data z jednoho zařízení na druhé, jak v rámci tak napříč sítěmi
Na jednom zařízení ale může běžet více aplikací, které chtějí komunikovat, třeba i s různými zařízeními
Tento problém řeší transportní vrstva, která zajišťuje přenos dat mezi koncovými uzly (aplikacemi, běžícími
programy, apod.)
Každá aplikace dostane svoje číslo, říkáme mu port, které danou aplikaci identifikuje
Na transportní vrstvě máme dva hlavní protokoly, vybírané podle toho, jaké požadavky po komunikačním kanálu požadujeme
TCP (Transmission Control Protocol)
Connection-based protokol: před začátkem komunikace navazují uzly spojení pomocí trojcestného handshaku
Při příjmu paketu je odeslán potvrzovací paket odesílateli (acknowledgement, ACK)
Pakety obsahují případnou korekci chyb a checksum (ověřuje integritu zaslaných dat)
Pokud přijdou pakety v nesprávném pořadí, TCP je umí seřadit (pomocí sekvenčního čísla)
Využívá se v protokolech aplikační vrstvy jako HTTP, SMTP, FTP, SSH
UDP (User Datagram Protocol)
Connection-less protokol, princip "fire and forget"
Nevytváříme spojení, pakety odesílatel "stříli" na příjemce, ten si je nějak zpracuje (pokud mu dojdou)
Používá se v případech, kdy preferujeme rychlost přenosu na úkor možné ztráty dat, nebo když nepotřebujeme výhody
TCP: streaming videa a audia, DNS, DHCP
Dynamické přidělování IP adres (DHCP)
Způsob, jakým se dá novému zařízení na síti automaticky přiřadit IP adresa
Probíhá dialog zařízení a DHCP serveru (v domácí síti běží na vašem "routeru")
Zařízení pošle požadavek o IP adresu, DHCP server odpoví možnostmi
Zařízení si vybere IP adresu a odpoví; DHCP server potvrdí a alokace je hotova
Nutno říci, že IP adresy se jen zapůjčují (lease), tzn. že po určité době se musí znovu požádat o prodloužení,
případně může zařízení dostat úplně novou IP adresu
HTTP
Protokol aplikační vrstvy pro komunikaci mezi klientem a serverem, používaný pro přenos webových stránek,
médií, apod.
Klient-server architektura
Jaký je rozdíl mezi klientem a serverem? Adresu serveru známe, klienta před navázáním spojení ne
Klient podílá požadavky (request) na server, který zpět zasílá odpovědi (response)
HTTP (HyperText Transfer Protocol)
Verze 1 (textová), od verze 2 binární (vzpomeňme na druhou lekci)
Requesty i responses jsou tvořeny hlavičkami (popisují typ obsahu, velikost, apod.) a tělem (obsah, samotná
data)
Odpovědi také obsahují status kód (např. 200 OK, 404 Not Found, apod.)
2xx pro úspěch, 3xx pro přesměrování, 4xx pro chybu na straně klienta, 5xx pro chybu na straně serveru
Rozlišujeme několik typů požadavků: GET, POST, PUT, DELETE,...