Olen lukenut, että TCP-yhteyden katkaisemiseksi tarvitaan 3 kättelyä: FIN, FIN ACK ja ACK. Kun yhteys kuitenkin suljetaan, Wireshark näyttää FIN ACK, FIN ACK, ACK; se ei koskaan näytä FIN yksin.
Yhteyttä muodostettaessa Wireshark näyttää kuitenkin selvästi kolme kättelyä: SYN, SIN ACK , ACK.
Joten olen hämmentynyt siitä, miksi yhteyttä suljettaessa kolme kättelyä ei näy tuolla tavalla.
Vastaa
TCP-toteutus saattaa lähettää itsenäisen FIN: n ensimmäiseen sulkeutuvaan segmenttiin. Se voi kuitenkin myös lähettää FIN ACK: n.
Jälkimmäinen on ehdottomasti parempi: toteutus voi niputtaa ”ilmaisen” ACK: n FIN-segmenttiin tekemättä sitä pidemmäksi. Tämä johtuu siitä, että jos et ACK: ta, segmentissä on vielä tilaa ACK-numerolle, joka ohitetaan, ja jätteen kaistanleveys. Siksi viimeisin lähetetty ACK lähetetään yksinkertaisesti uudelleen, siltä varalta, että vastaanotin unohti sen.
Tämä pätee kaikkiin TCP-segmentteihin. Näin ollen lukuun ottamatta ensimmäistä SYN-segmenttiä, jossa lähettäjällä ei ole tietoa ACK-numerosta, kaikilla muilla segmenteillä on yleensä ACK-lippu.