Nomor urut RST dan ukuran jendela


2

RFC793 menyatakan hal berikut tentang pemrosesan RST:

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.

Tapi saya tidak yakin apa arti pernyataan ini sebenarnya. Katakanlah saya memiliki skenario berikut:

Image 1

Jadi soket 2 memberi tahu soket 1 bahwa ukuran jendelanya 6 KB, dan kemudian soket 1 mengirimkan data senilai 6 KB ke soket 2.

Dan kemudian soket 1 mengirimkan paket RST ke soket 2:

Image 2

Apa yang akan terjadi dalam kasus ini, apakah paket RST akan diterima oleh soket 2?

Jawaban:


2

Linux hanya menghancurkan koneksi TCP jika nomor urut RST adalah nomor urut yang diharapkan berikutnya. Aturan ini diterapkan untuk menghindari serangan reset TCP yang buta (lihat RFC 5961 bagian 3.2 ). Jadi aturan berikut diterapkan:

1) Jika bit RST diatur dan nomor urut berada di luar         jendela menerima saat ini, diam-diam drop segmen.

2) Jika bit RST diatur dan nomor urut sama persis   itu         nomor urut yang diharapkan berikutnya (RCV.NXT), lalu TCP HARUS mengatur ulang         koneksi.

3) Jika bit RST diatur dan nomor urut tidak tepat         cocok dengan nilai urutan yang diharapkan berikutnya, namun masih dalam saat ini         menerima jendela (RCV.NXT & lt; SEG.SEQ & lt; RCV.NXT + RCV.WND), TCP HARUS         kirim ucapan terima kasih (tantang ACK):

  <SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>

Jadi Anda dalam kasus 1, segmen RST Anda akan diam-diam drop (setidaknya di Linux, ini tergantung implementasi tetapi HARUS dihormati).


0

Setelah semua data ditransfer dari klien ke tujuan dengan mekanisme fragmen menggunakan nilai MTU, FIN akan dimulai bukan RST.

  • FIN: Transfer data terpenuhi dan tidak ada lagi pkts yang tersisa. (Penutupan anggun)
  • RST: Saya tidak mendaftar di port ini / saya kelebihan beban. (Tutup paksa)

Untuk paket RST ya nomor urut divalidasi karena src, dst dan perangkat antara harus mematikan sesi dan koneksi / entri tabel negara.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.