Co to jest pakiet RST / ACK w transmisji danych?


Najlepsza odpowiedź

RST / ACK służy do zakończenia sesji TCP. Pakiet potwierdza odebranie poprzedniego pakietu w strumieniu, a następnie zamyka tę samą sesję pakietem RST (Reset) wysyłanym do odległego końca, aby poinformować go, że połączenie jest zamykane. Jest to całkowicie normalne zachowanie (chociaż w większości przypadków nie jest to zachowanie \_preferowane\_), ponieważ zarówno ustanowienie, jak i zakończenie sesji TCP jest procesem wieloetapowym, ale pakiet FIN byłby bardziej wdzięcznym zakończeniem.

Odpowiedź

Rozumiem, że masz na myśli ACK w protokole kontroli transmisji (TCP). Ważną, właściwie jedną z najważniejszych cech TCP jest możliwość zapewnienia poprawności danych i zachowania poczucia „stanu” połączenia. Oba te cele spełnia system potwierdzenia (ACK).

Ostrzeżenie: Poniższy post zawiera mnóstwo uproszczeń. Wynik ten powstał na podstawie moich notatek z wykładów sprzed 9 lat oraz szybkiego ponownego przeczytania RFC 793 . Proszę mnie poprawić, jeśli się mylę.

Proces uzgadniania trójetapowego TCP składa się z:

  • Inicjator wysyła SYN do odbiorcy.
  • Odbiorca wysyła SYN / ACK z powrotem do inicjatora.
  • Inicjator odpowiada ACK .

ACK jest również używany do ACK teraz informuje o pakietach, które zostały prawidłowo odebrane. Pozwala to na jednoczesne „w locie” wielu pakietów. ACK służy do potwierdzenia, że ​​pakiet został odebrany, a nadawca (osoba odbierająca ACK) powinien rozpocząć wysyłanie danych przedstawionych w numerze ACK.

Jeśli ACK nie zostanie odebrany, dane zostaną ponownie wysłany po przekroczeniu limitu czasu. Tę wartość limitu czasu można ustawić w systemie operacyjnym. Jest to jednak dość ukryte i ma duży wpływ na jakość sieci, więc nie zaleca się tego, chyba że masz naprawdę konkretny powód, aby to zrobić.

Wprowadzono wiele uproszczeń. Mam nadzieję, że nadal rozumiesz ogólny pomysł.

(Zdjęcia są częściowo moją własnością. Ikona z szablonu MS Visio. Skomponowałem obraz.)

Uwaga: to nie jest pierwsza odpowiedź na to „zamknięte” pytanie. Jeśli uznasz, że moja odpowiedź jest przydatna, zamiast tego zagłosuj za pana Warda (który odpowiedział w bardziej odpowiednim czasie).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *