1. Protokół uścisku TCP
W protokole TCP/IP protokół TCP zapewnia niezawodne usługi połączenia, wykorzystując trzykierunkowy handshake do nawiązania połączenia.
Pierwszy handshake: Podczas nawiązywania połączenia klient wysyła pakiet syn (syn=j) do serwera i wchodzi w stan SYN_SEND, czekając na potwierdzenie przez serwer.
Drugi handshake: Gdy serwer otrzymuje pakiet SYN, musi potwierdzić SYN klienta (ack=j+1) oraz wysłać pakiet SYN (syn=k), czyli pakiet SYN+ACK, po czym serwer wchodzi w stan SYN_RECV.
Trzeci handshake: Klient otrzymuje pakiet SYN+ACK od serwera i wysyła pakiet potwierdzający ACK (ack=k+1) do serwera.
Po trzech uściskach dłoni klient i serwer zaczynają przesyłać dane, a w powyższym procesie pojawia się kilka ważnych koncepcji:
Niepołączona kolejka: W protokole trzystronnego handshake serwer utrzymuje niepołączoną kolejkę, która otwiera wpis dla każdego pakietu SYN klienta (syn=j), wskazujący, że serwer otrzymał pakiet SYN i wysyła potwierdzenie klientowi, oczekując na pakiet potwierdzenia od klienta. Połączenie zidentyfikowane przez te wpisy znajduje się w stanie Syn_RECV na serwerze, a gdy serwer otrzyma pakiet potwierdzenia od klienta, wpis jest usuwany, a serwer wchodzi w stan USTANOWIONY. Parametr backlogu: Wskazuje maksymalną liczbę niepołączonych kolejek.
Czasy retransmisji SYN-ACK Jeśli serwer wyśle pakiet SYN-ACK i nie otrzyma pakietu potwierdzenia klienta, serwer wykonuje pierwszą ponowną transmisję, czeka przez pewien czas bez otrzymania pakietu potwierdzenia klienta i wykonuje drugą ponowną transmisję. Należy zauważyć, że czas oczekiwania na każde ponowne przepuszczenie nie musi być taki sam.
Czas przetrwania półpołączenia: odnosi się do maksymalnego czasu, jaki wpis w kolejce półpołączenia przeżywa, czyli maksymalnego czasu od momentu otrzymania pakietu SYN przez usługę do momentu potwierdzenia jego nieprawidłowości, a wartość ta jest sumą maksymalnego czasu oczekiwania wszystkich pakietów żądania ponownej transmisji. Czasem nazywamy też półpołączony czas przetrwania SYN_RECV czasem przetrwania.
|