TCP półotwarty

Termin półotwarty odnosi się do połączeń TCP , których stan nie jest zsynchronizowany między dwoma komunikującymi się hostami, prawdopodobnie z powodu awarii jednej strony. Połączenie, które jest w trakcie ustanawiania, jest również znane jako połączenie embrionalne . Brak synchronizacji może wynikać ze złośliwych zamiarów .

RFC793

Zgodnie z dokumentem RFC 793 połączenie TCP jest określane jako półotwarte , gdy host na jednym końcu tego połączenia TCP uległ awarii lub w inny sposób usunął gniazdo bez powiadomienia drugiego końca. Jeśli drugi koniec jest bezczynny, połączenie może pozostawać w stanie półotwartym przez nieograniczony czas.

Połączenie embrionalne

Obecnie jednak terminem połączenie półotwarte najczęściej określa się połączenie embrionalne , czyli połączenie TCP , które jest w trakcie nawiązywania.

TCP ma trójstanowy system otwierania połączenia. Najpierw źródłowy punkt końcowy (A) wysyła pakiet SYN do miejsca docelowego (B). A jest teraz w stanie embrionalnym (w szczególności SYN_SENT) i oczekuje na odpowiedź. B aktualizuje teraz informacje o jądrze, aby wskazać połączenie przychodzące od A i wysyła żądanie otwarcia kanału zwrotnego ( SYN/ACK ).

W tym momencie B jest również w stanie embrionalnym (konkretnie SYN_RCVD). Zauważ, że B został wprowadzony w ten stan przez inną maszynę, poza kontrolą B.

W normalnych okolicznościach (patrz atak typu „odmowa usługi” w przypadkach umyślnego niepowodzenia) A otrzyma SYN/ACK od B, zaktualizuje swoje tabele (które teraz zawierają wystarczającą ilość informacji, aby A mógł zarówno wysłać, jak i odebrać) i wysłać końcowe potwierdzenie ACK z powrotem do b.

Gdy B otrzyma to końcowe potwierdzenie ACK, ma również wystarczające informacje do komunikacji dwukierunkowej, a połączenie jest w pełni otwarte. Oba punkty końcowe są teraz w stanie ustalonym.

Zobacz też

Linki zewnętrzne