Tipicamente 2 anfitriões que se estão comunicando e um anfitrião querem terminar a sessão, no máximo, um aperto de mão de quatro vias são utilizados. Cada lado da conexão terminaria a sessão independente. Para responder a sua pergunta, sim, se DeviceA deseja terminar a conexão, transmite um pacote da ALETA, que a outra extremidade reconheça com um ACK. Conseqüentemente, um tear-down típico exige um par de segmentos da ALETA e do ACK de cada valor-limite do TCP.
1. (DeviceA) --> ACK/FIN --> (DeviceB)
2. (DeviceA) <-- ACK="">
3. (DeviceA) <-- ACK="">
4. (DeviceA) --> ACK --> (DeviceB)
Você deve igualmente saber que é possível terminar a conexão por um aperto de mão de 3 maneiras, quando o anfitrião A emite uma ALETA e as respostas do anfitrião B com uma ALETA & um ACK (combina meramente 2 etapas em uma) e hospedam respostas de A com um ACK. Este é o método o mais comum que eu vi.
Esperar que isto ajuda
Billy