1. TCP protokol handshake
V protokole TCP/IP poskytuje protokol TCP spoľahlivé služby pripojenia pomocou trojcestného handshake na nadviazanie spojenia.
Prvý handshake: Pri nadväzovaní spojenia klient pošle syn paket (syn=j) serveru a vstúpi do stavu SYN_SEND, pričom čaká na potvrdenie servera.
Druhý handshake: Keď server prijme SYN paket, musí potvrdiť SYN zákazníka (ack=j+1) a tiež odoslať SYN paket (syn=k), teda SYN+ACK paket, pričom server vstúpi do stavu SYN_RECV.
Tretie handshake: Klient prijíma paket SYN+ACK od servera a odosiela potvrdzovací paket ACK (ack=k+1) serveru.
Po troch podaniach ruky začnú klient a server prenášať dáta a v uvedenom procese sú niektoré dôležité koncepty:
Nepripojená fronta: V protokole trojcestného handshake server udržiava nepripojenú frontu, ktorá otvára záznam pre každý klientov SYN paket (syn=j), ktorý signalizuje, že server prijal SYN paket a odosiela potvrdenie zákazníkovi, pričom čaká na potvrdzovací paket od zákazníka. Spojenie identifikované týmito záznamami je na serveri v Syn_RECV stave a keď server dostane potvrdzovací paket od zákazníka, záznam sa vymaže a server vstúpi do stavu ESTABLISHED. Parameter Backlog: Označuje maximálny počet nepripojených front.
Časy opätovného prenosu SYN-ACK Ak server odošle paket SYN-ACK a nedostane potvrdenie od zákazníka, server vykoná prvé opätovné odoslanie, počká určitý čas bez prijatia potvrdenia od zákazníka a vykoná druhé opätovné odoslanie. Všimnite si, že čakacia doba na každý opätovný prechod nemusí byť nevyhnutne rovnaká.
Čas prežitia semi-connection: označuje maximálny čas, počas ktorého záznam v semi-connection queue prežije, teda maximálny čas od prijatia SYN paketu službou po potvrdenie neplatnosti paketu, pričom hodnota času je súčtom maximálneho čakacieho času pre všetky pakety žiadosti o opätovné odoslanie. Niekedy nazývame poloprepojený čas prežitia SYN_RECV čas prežitia.
|