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.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *