Handshake: Porovnání verzí
Smazaný obsah Přidaný obsah
mBez shrnutí editace značka: editace z Vizuálního editoru |
wikifikace značka: editace z Vizuálního editoru |
||
Řá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]]).
== 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
# 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
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.
|