Mengapa saya melihat paket RST, ACK dan bukannya paket RST?

42

Mencari di Wireshark, saya sering melihat TCP Streams diakhiri dengan RST, paket ACK bukan paket RST. ada yang tahu mengapa ini?

Contoh dari apa yang saya lihat:

SYN SYN, ACK ... data ... RST, ACK

Wireshark tidak mengambil paket RST sebelum paket RST, ACK.

packetwrassler
sumber
2
Menurut Anda mengapa harus ada segmen RST sebelum RST / ACK? Mungkin Anda bisa memberikan contoh jejak paket seperti itu?
Gerben
Apakah ACK membonceng RST dalam paket yang sama?
generalnetworkerror
Apakah ada jawaban yang membantu Anda? jika demikian, Anda harus menerima jawabannya sehingga pertanyaan tidak terus muncul selamanya, mencari jawaban. Atau, Anda bisa memberikan dan menerima jawaban Anda sendiri.
Ron Maupin
Saya ACK u mengirim permintaan \ koneksi akhir data Koneksi akhir = RST
motoko

Jawaban:

55

RST / ACK bukan merupakan pengakuan RST, sama seperti SYN / ACK bukan merupakan pengakuan dari SYN. Pembentukan TCP sebenarnya adalah proses empat arah: Inisiasi host mengirimkan SYN ke host penerima, yang mengirimkan ACK untuk SYN itu. Host penerima mengirim SYN ke host yang memulai, yang mengirim ACK kembali. Ini membangun komunikasi stateful.

SYN --> 
    <-- ACK
    <-- SYN
ACK -->

Untuk membuat ini lebih efisien, host penerima dapat ACK SYN, dan mengirim SYN sendiri dalam paket yang sama, menciptakan proses tiga arah yang biasa kita lihat.

SYN -->
    <-- SYN/ACK
ACK -->

Dalam hal RST / ACK, Perangkat mengakui data apa pun yang dikirim dalam paket sebelumnya dalam urutan dengan ACK dan kemudian memberi tahu pengirim bahwa koneksi telah ditutup dengan RST. Perangkat ini hanya menggabungkan dua paket menjadi satu, seperti SYN / ACK. RST / ACK biasanya bukan respons normal dalam menutup sesi TCP, tapi itu juga tidak mengindikasikan masalah.

Santino
sumber
4
Contoh skenario pengiriman RST / ACK adalah ketika host penerima tidak mendengarkan pada port TCP tujuan.
Indika K
Ya memang. Saya pernah mencoba mensimulasikan serangan DDoS (untuk tujuan edukatif;)) dari mesin A ke mesin B pada port 80. Tapi port 80 B tidak terbuka. Jadi saya bisa melihat mesin B mengirim banyak RST ACKrespons ke alamat sumber yang dipalsukan.
smwikipedia
Bisakah tanggapan RST / ACK bergantung pada konten paket? Yaitu server menerima paket dan karena konten paket cocok dengan beberapa kondisi, sesi ditutup.
skooog
1

Setelah koneksi dibuat, semua paket harus memiliki ACK yang diatur dan cocok dengan nomor urut paket yang diterima untuk transportasi / keamanan yang dapat diandalkan. RST tanpa ACK tidak akan diterima. Ketika satu sisi mengirim RST, soket segera ditutup dan sisi penerima juga segera menutup soket setelah menerima RST yang valid. Tidak perlu dan tidak bisa diakui.

setelah jabat tangan TCP

A ---> B Syn = x, Ack = y, len = z, ACK Flag

B ---> A Syn = y, Ack = x + z, len = o, ACK Flag

A ---> B Syn = x + z, Ack = y + o, len = p, ACK Flag

B ---> A Syn = y + o, ACK = x + z + p, len = q, RST, ACK Flag

B menutup soket setelah mengirim paket terakhir dan A menutup soket setelah menerimanya.

(tidak mempertimbangkan jendela TCP di sini, atau mungkin ada lebih banyak paket dari satu ujung sebelum acknoledgement)

Bendera ACK, nomor pengakuan, dan prosedur pengakuan terkait tetapi bukan hal yang sama.

Per RFC793

RFC793

Nomor Pengakuan: 32 bit

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.

Atur Ulang Pemrosesan

Di semua negara kecuali SYN-SENT, semua segmen reset (RST) divalidasi dengan memeriksa bidang SEQ mereka. Reset akan valid jika nomor urutnya ada di jendela. Dalam keadaan SYN-SENT (RST yang diterima sebagai tanggapan terhadap SYN awal), RST dapat diterima jika bidang ACK mengakui SYN.

Penerima RST pertama memvalidasinya, lalu berubah status. Jika penerima dalam status DENGARKAN, itu mengabaikannya. Jika penerima dalam keadaan SYN-RECEIVED dan sebelumnya berada dalam keadaan LISTEN, maka penerima kembali ke keadaan LISTEN, jika tidak penerima membatalkan koneksi dan pergi ke keadaan TERTUTUP. Jika penerima dalam keadaan lain, itu membatalkan koneksi dan menyarankan pengguna dan pergi ke keadaan TUTUP.

sdaffa23fdsf
sumber