Po ustanowieniu połączenia wszystkie pakiety muszą mieć ustawione ACK i pasować do numeru sekwencyjnego odebranych pakietów, aby zapewnić niezawodny transport / bezpieczeństwo. RST bez ACK nie będą akceptowane. Gdy jedna strona wysyła RST, gniazdo jest natychmiast zamykane, a strona odbierająca również zamyka gniazdo natychmiast po otrzymaniu prawidłowego RST. Nie musi być i nie można tego potwierdzić.
po uzgadnianiu protokołu TCP
A ---> B Syn = x, Ack = y, len = z, Flaga ACK
B ---> A Syn = y, Ack = x + z, len = o, Flaga ACK
A ---> B Syn = x + z, Ack = y + o, len = p, flaga ACK
B ---> A Syn = y + o, ACK = x + z + p, len = q, RST, ACK Flag
B zamyka gniazdo po wysłaniu ostatniego pakietu, a A zamyka gniazdo po otrzymaniu.
(nie biorąc pod uwagę okna TCP tutaj, lub może być więcej pakietów z jednego końca przed potwierdzeniem)
Flaga ACK, numer potwierdzenia i procedura potwierdzenia są powiązane, ale nie to samo.
Zgodnie z RFC793
RFC793
Numer potwierdzenia: 32 bity
If the ACK control bit is set this field contains the value of the
next sequence number the sender of the segment is expecting to
receive. Once a connection is established this is always sent.
Zresetuj przetwarzanie
We wszystkich stanach oprócz SYN-SENT wszystkie segmenty resetujące (RST) są sprawdzane przez sprawdzenie ich pól SEQ. Reset jest ważny, jeśli jego kolejny numer znajduje się w oknie. W stanie SYN-SENT (RST odebrany w odpowiedzi na początkową SYN), RST jest akceptowalny, jeśli pole ACK potwierdza SYN.
Odbiornik RST najpierw go sprawdza, a następnie zmienia stan. Jeśli odbiornik był w stanie LISTEN, ignoruje go. Jeśli odbiornik był w stanie SYN-RECEIVED i wcześniej był w stanie LISTEN, wówczas odbiornik powraca do stanu LISTEN, w przeciwnym razie odbiornik przerywa połączenie i przechodzi w stan ZAMKNIĘTY. Jeśli odbiornik był w jakimkolwiek innym stanie, przerywa połączenie i doradza użytkownikowi i przechodzi w stan ZAMKNIĘTY.