1. TCP protokol pro podávání ruky
V protokolu TCP/IP poskytuje protokol TCP spolehlivé služby připojení pomocí třícestného handshake k navázání spojení.
První handshake: Při navázání spojení klient odešle syn paket (syn=j) serveru a vstoupí do stavu SYN_SEND, čeká na potvrzení serveru.
Druhý handshake: Když server přijme SYN paket, musí potvrdit zákaznický SYN (ack=j+1) a také odeslat SYN paket (syn=k), tedy SYN+ACK paket, v tu chvíli server vstoupí do stavu SYN_RECV.
Třetí handshake: Klient přijme paket SYN+ACK od serveru a odešle potvrzovací paket ACK (ack=k+1) serveru.
Po třech podání ruky začnou klient a server přenášet data a v uvedeném procesu jsou důležité koncepty:
Nepřipojená fronta: V protokolu třícestného handshake server udržuje nepřipojenou frontu, která otevírá položku pro každý klientův SYN paket (syn=j), která označuje, že server obdržel SYN paket a vydává zákazníkovi potvrzení, čeká na potvrzovací paket od zákazníka. Spojení identifikované těmito záznamy je na serveru ve stavu Syn_RECV a když server obdrží potvrzovací paket od zákazníka, záznam je smazán a server přechází do stavu ESTABLISHED. Parametr Backlog: Ukazuje maximální počet nepřipojených front.
Časy opětovného přenosu SYN-ACK Pokud server odešle paket SYN-ACK a nepřijme potvrzovací paket zákazníka, server provede první opětovné odeslání, čeká určitou dobu bez obdržení potvrzovacího paketu zákazníka a provede druhé znovuodeslání. Všimněte si, že čekací doba na každé opakování nemusí být nutně stejná.
Doba přežití polopřipojení: označuje maximální dobu, po kterou záznam ve frontě semi-connection přežije, tedy maximální dobu od okamžiku, kdy služba přijme SYN paket do okamžiku, kdy je potvrzen jeho neplatnost, a hodnota času je součtem maximální čekací doby pro všechny pakety žádosti o opětovné odeslání. Někdy také nazýváme částečně propojený čas přežití SYN_RECV časem přežití.
|