UDP
Protokol UDP (User Datagram Protocol) je urΦen² pro aplikaΦnφ protokoly a procesy, kterΘ po₧adujφ rychl² a nezabezpeΦen² p°enos paket∙ bez potvrzovßnφ p°φjmu a opakovßnφ p°enosu (datagramovß slu₧ba).
Protokol se p°enßÜφ v datovΘ Φßsti IP paket∙.Protokol obsahuje mechanismus adresovßnφ kocov²ch proces∙, aby mohl vykonßvat multiplex a demultiplex dat mezi koncov²mi procesy a sφtφ.
Na adresaci aplikaΦnφch proces∙ se pou₧φvajφ celoΦφselnΘ identifikßtory (aplikaΦnφ porty - socket) p°id∞lenΘ aplikacφm p°ed vlastnφ komunikacφ. Kombinace IP adresy s adresou aplikaΦnφho prortu tvo°φ ·pln² identifikßtor koncovΘho procesu v IP sφti a naz²vß se soketovß adresa (IP-port). RozliÜujeme rezervovanΘ porty (well-know) s Φφsly, kterΘ jsou staticky p°id∞lenΘ konktrΘtnφm slu₧bßm (server∙m) do hodnoty 1023 a dynamickΘ, podle pot°eby p°id∞lovanΘ klienstk²m Φßstφm aplikacφ.
TCP
Protokol TCP (Transport Control Protocol) pracuje podle modelu OSI v transportnφ vrstv∞. Hlavnφ funkcφ protokolu je vytvß°enφ, udr₧ovßnφ a ruÜenφ transportnφch spojenφ, prost°ednictvφm kter²ch komunikujφ aplikaΦnφ procesy v koncov²ch uzlech intersφt∞ IP. Pro protokol TCp jsou charakteristickΘ nßsledujφcφ vlastnosti:
Porty d∙le₧it²ch protokol∙:
Protokol TCP p°i zabezpeΦovßnφ jmenovan²ch slu₧eb vykonßvß nßsledujφcφ funkce:
Adresovßnφ aplikaΦnφch preces∙ v sφti:
Na adresovßnφ aplikaΦnφch proces∙ se pou₧φvajφ, podobn∞ jako na adresovßnφ v protokolu UDP, celoΦφselnΘ identifikßtory, tzv. aplikaΦnφ porty (sekety). Ale protokol TCP pou₧φvß vlastnφ systΘm p°id∞lovßnφ Φφsel soket∙ komunikujφcφm aplikacφm, tak₧e Φφsla soket∙ UDP a TCP jsou vzßjemn∞ nezßvislΘ. Podle ΦφselnΘho rozsahu rozd∞lujeme sokety TCP na:
Ve°ejn∞ znßmΘ sokety jsou vyhrazeny pro servery konkrΘtnφch aplikaΦnφch slu₧eb, zatφmco dynamickΘ jsou klienty aplikaΦnφch protokol∙ a proces∙ pou₧φvanΘ neomezen∞. Podobn∞ jako u UDP je kombinace IP adresy s adresou soketu v rßmci transportnΘho spojenφ TCP ·pln²m identifikßtorem komunikujφch proces∙.
Vytvß°enφ a ruÜenφ transportnφch spojenφ:
Protokol TCP je spojev∞ orientovan². Transportnφ spojenφ je definovßno jako dvojice soketov²ch adres (IPc,portc), (IPz,portz) komunikujφch koncov²ch proces∙. Aplikace si potom vym∞≥ujφ data prost°ednictvφm vytvo°enΘho spojenφ formou proudu byt∙.
Na vytvo°enφ transportnφho spojenφ se pou₧φvß koncepce Klient-server. AplikaΦnφ procesy odevzdajφ vrstv∞ TCP pot°ebnΘ ·daje pro vytvo°enφ spojenφ napr. Φφslo zdrojovΘho a cφlovΘho aplikaΦniho portu. P°i vytvß°enφ spojenφ rozliÜujeme dva re₧imy otev°enφ:
P°i vytvß°enφ TCP spojenφ se vykonßvß synchronizaΦnφ procedura oznaΦovanß Three - Way Handshake (SYN, SYN/ACK, ACK), b∞hem kterΘ si vym∞nφ a potvrdφ ob∞ strany startovacφ sekvenΦnφ Φφsla SN (x,y), pak pou₧φvanΘ na zabezpeΦenφ p°enosu transportnφm spojenφm. Takety TCP majφ v poli °φzenφ spojenφ nastavenΘ bity SYN a ACK, kterΘ druhΘ stran∞ signalizujφ ₧ßdost o vytvo°enφ spojenφ. Procedura je dostateΦn∞ robustnφ a odolnß proti v²padk∙m spojenφ a duplicitßm sekvenΦnφch Φφsel. K ruÜenφ transportnφho spojenφ dochßzφ po ukonΦenφ p°enosu dat z podn∞tu libovolnΘho procesu ve spojenφ. P°i ruÜenφ spojenφ TCP uzel, ruÜφcφ spojenφ, vyÜle zprßvu s nastaven²m bitem FIN °φdφcφho poel, kterΘ informuje druh² proces ve spojenφ o ukonΦenφ p°enosu dat, kterΘ jeÜt∞ nep°enesl transportnφm spojenφm a a₧ po dokonΦenφ p°enosu potvrdφ ukonΦenφ spojenφ zprßvou FIN.
╪φzenφ p°enosu dat:
Po z°φzenφ transportnφho spojenφ vytvß°φ TCP pro aplikaΦnφ procesy virtußlnφ kanßl, kter²m si procesy vym∞≥ujφ data pln∞ duplexnφm zp∙sobem. Z hlediska aplikace se vytvo°enΘ spojenφ jevφ jako p°enos proudu (Stream) byt∙. Transportnφ protokol musφ umo₧nit zabezpeΦen² p°enos proudu byt∙, co₧ znamenß, ₧e p°enßÜenß data musφ b²t p°esenΘ ve sprßvnΘm po°adφ a nesmφ dojφt k jejich ztrßt∞ nebo zahlcenφ p°φjimaΦe. Protokol TCP zabezpeΦuje °φzenφ p°enosu nßsledovn∞:
Hodnota ΦsovΘho intervalu T na p°φjem potvrzenφ se m∞nφ dynamicky podle aktußlnφho stavu sφt∞ adaptivnφm v²poΦtem (Karn-Jacobson∙v algoritmus) na zßklad∞ p°edpoklßdanΘho zpo₧d∞nφ SRTT (Smoothed Round Trip Time) a p°edpoklßdanΘ pr∙m∞rnΘ odchylky od skuteΦnΘho zpo₧d∞nφ SDEV (Smoothed Deviation).