Handshake: Porovnání verzí

Smazaný obsah Přidaný obsah
Dakur (diskuse | příspěvky)
mBez shrnutí editace
wikifikace
Řádek 2:
V informační technologii, telekomunikacích a příbuzných oborech je '''handshake''' automatizovaný proces vyjednávání, který dynamicky nastavuje parametry komunikačního kanálu mezi dvěma subjekty zřízené před běžnou komunikací. Z toho vyplývá fyzické vytvoření kanálu a předchází normálnímu přenosu informací.
 
Handshake proces obvykle probíhá s cílem stanovit pravidla pro komunikaci, které se nastavuje při navazování kontaktu s neznámým zařízením. Pokud počítač komunikuje s jiným zařízením jako je například [[modem]], [[Počítačová tiskárna|tiskárna]], nebo [[Server|síťový server]], je potřeba provést handshake, aby mohlo být spojení navázáno.
 
Handshake může vyjednávat parametry, které jsou přijatelné pro zařízení a systémy na obou koncích komunikačního kanálu, včetně ale bez omezení na informační přenosovou rychlost, typu kódování, paritě, přerušení zařízení a další funkce protokolu nebo hardwaru. Jedná se o techniku komunikace mezi dvěma entitami. Nicméně v rámci protokolu TCP/IP RFC, je termín Handshake používán ve spojitosti s TCP, třícestné ověřování. Tento termín není k dispozici v [[Request for Comments|RFC]] týkajících se [[File Transfer Protocol|FTP]] nebo [[Simple Mail Transfer Protocol|SMTP]]. Výjimkou je TLS ([[Transport Layer Security]]).
 
JedoduchýJednoduchý handshake protokol by mohl zahrnovat pouze přijímač, který posílá zprávu "Dostal jsem vaši poslední zprávu a jsem připraven, na vaši další zprávu." Složitější protokol může povolit odesílateli se zeptat, zde je připraven přijímat. ZapornáZáporná nebo žádná odpověď znamená nové odeslání určitých dat.
 
== Příklad ==
[[Soubor:Three-way-handshake-example.gif|thumb|Třícestný handshake]]
TLS Handshake protokol je používán k vyjednání bezpečných atributů pro spojení. Běžným typem handshaku je '''třícestný handshake'''. K navázání normálního TCP spojení jsou požadovány tři oddělené kroky.
 
# Nový [[Transmission Control Protocol|TCP]] proces otevírá [[soket]] a používá lokální a vzdálené číslo portu, které je specifikováno. Jestliže TCP proces na aktivní straně přiřadí číslu lokálního portu hodnotu nula, tak IP zajistí soketu unikání číslo lokálního portu. Pasivní strana odpovídá s použitím čísel portů, které byly zjištěny druhou stranou. Je-li lokální soket vytvořen, TCP posílá vzdálenému soketu inicializační paket (SYN) a nastavuje si časovač pro opětovné odeslání a dále čeká na návrat odpovědi od vzdáleného soketu. [[Paket SYN|SYN paket]] je prázdný a v hlavičce má nastaven příznak SYN v [[TCP hlavička|TCP hlavičce]].
# Poté co SYN paket dorazí na serverovou stranu, [[Internet Protocol|IP]] proces zjišťuje zda je soket možné přijmout. Je-li vše v pořádku, je paket postoupen naslouchajícímu procesu, který potvrzuje nastavení příznaku SYN a kontrolní součet. Pokud je i nadále paket vhodný k přijetí požadavku, naslouchající proces zajišťuje vytvoření TCP procesu na této straně komunikace. TCP z paketu vybere IP adresu odesílatele a čísla portů a zajistí vytvoření bufferu. Tento nově vytvoření proces odesílá aktivní straně ([[SYN-ACK]]) paket, kterým potvrzuje spojení. S touto zprávou u sebe nastaví časovač, kde po jeho uplynutí odešle zprávu znovu.
# Po obdržení a potvrzení (SYN-ACK) paketu TCP procesem na straně, která vyvolala spojení. Je poslán zpět paket, potvrzující přijetí. Avšak rozdíl mezi paketem, který přišel a který se posílá je v tom, že tento paket má už jen příznak (ACK) nikoliv (SYN)
 
Pro všechny tyto kroky platí, že po vypršení časovače, je poslána zpráva znovu. Počet opakování lze ovlivnit uživatelem. Po překročení tohoto počtu, je pro vyšší vrstvy vygenerována chyba. Důvod proč klient a server nepoužívají výchozí sekvence čísel jako je 0 pro navázání spojení, je kvůli ochraně proti dalšímu připojení se stejnými čísly.