1. Protocolul de strângere de mână TCP
În protocolul TCP/IP, protocolul TCP oferă servicii de conexiune fiabile folosind o strângere de mână în trei căi pentru a stabili o conexiune.
Prima strângere de mână: La stabilirea unei conexiuni, clientul trimite un pachet syn (syn=j) către server și intră în starea SYN_SEND, așteptând confirmarea serverului.
A doua strângere de mână: Când serverul primește pachetul SYN, trebuie să confirme SYN-ul clientului (ack=j+1) și să trimită și un pachet SYN (syn=k), adică pachetul SYN+ACK, moment în care serverul intră în starea SYN_RECV.
A treia strângere de mână: Clientul primește pachetul SYN+ACK de la server și trimite pachetul de confirmare ACK (ack=k+1) către server.
După trei strângeri de mână, clientul și serverul încep să transfere date, iar în procesul de mai sus există câteva concepte importante:
Coadă neconectată: În protocolul de strângere de mână în trei moduri, serverul menține o coadă neconectată care deschide o intrare pentru fiecare pachet SYN al clientului (syn=j) ce indică faptul că serverul a primit pachetul SYN și emite o confirmare către client, așteptând pachetul de confirmare al acestuia. Conexiunea identificată de aceste intrări se află într-o stare Syn_RECV pe server, iar când serverul primește un pachet de confirmare de la client, intrarea este ștearsă, iar serverul intră în starea ESTABLISHED. Parametrul backlog: Indică numărul maxim de cozi neconectate.
Timpi de retransmitere SYN-ACK Dacă serverul trimite pachetul SYN-ACK și nu primește pachetul de confirmare al clientului, efectuează prima retransmisie, așteaptă o perioadă de timp fără să primească pachetul de confirmare al clientului și efectuează a doua retransmisie. Rețineți că timpul de așteptare pentru fiecare retrecere nu este neapărat același.
Timpul de supraviețuire a semi-conexiunii: se referă la timpul maxim în care o intrare din coada semi-conexiunii supraviețuiește, adică timpul maxim de la momentul în care serviciul primește pachetul SYN până la momentul în care pachetul este confirmat ca fiind invalid, iar valoarea timpului este suma timpului maxim de așteptare pentru toate pachetele de cerere de retransmitere. Uneori numim și timpul de supraviețuire semi-conectat, SYN_RECV timpul supraviețuirii.
|