Apakah tuan rumah memesan kembali paket IP terfragmentasi yang diterima rusak?


2

Host A mengirimkan paket IP 1400 byte ke Host B melalui tautan Ethernet dan PPP. Tautan PPP memiliki MTU 532 byte, yang berarti bahwa paket IP akan terfragmentasi menjadi 3 paket yang lebih kecil.

Fragmen 1 diterima terlebih dahulu. Ini memiliki ident unik dan flag M bit diatur, menunjukkan ada lebih banyak fragmen yang akan datang. Namun, fragmen 3 diterima berikutnya, karena beberapa pemesanan ulang di jaringan. Fragmen ini memiliki ident yang sama dengan fragmen 1, tetapi bit M tidak disetel, karena ini adalah fragmen terakhir. Fragmen 2 diterima tidak lama setelah itu.

Apa yang akan dilakukan host penerima?

  1. Apakah host penerima tahu bahwa offset dan panjang paket tidak cocok, dan menganggap paket perantara telah jatuh atau dipesan ulang di jaringan, dan menunggu?

  2. Apakah host penerima merakit kembali paket (baik header checksum cocok) dan meneruskannya ke lapisan yang lebih tinggi (di mana ia akan gagal checkum IP atas data jika menggunakan UDP / TCP).

  3. Apakah host penerima akan menghapus semua fragmen untuk identitas ini.

Jawaban:


2

Host penerima tahu bahwa ada fragmen yang hilang dan menunggu hingga batas waktu pemasangan kembali berakhir. Kecuali jika fragmen yang hilang tiba, fragmen dijatuhkan.

RFC 791 dalam bagian 3.2 mendefinisikan bahwa:

If the timer runs out, the all reassembly resources for this buffer identifier are released. The initial setting of the timer is a lower bound on the reassembly waiting time. This is because the waiting time will be increased if the Time to Live in the arriving fragment is greater than the current timer value but will not be decreased if it is less. The maximum this timer value could reach is the maximum time to live (approximately 4.25 minutes). The current recommendation for the initial timer setting is 15 seconds.

Batas waktu pemasangan kembali untuk IPv4 dan IPv6 di Linux adalah 30 detik dan untuk Windows (Vista, 2008, 7 dan 2008 R2) adalah 60 detik sesuai dengan bagian 4.5 dari RFC 2460 :

If insufficient fragments are received to complete reassembly of a packet within 60 seconds of the reception of the first-arriving fragment of that packet, reassembly of that packet must be abandoned and all the fragments that have been received for that packet must be discarded.


Anda sadar bahwa RFC 2460 mendefinisikan IPv6, bukan? Dalam penggunaan normal, IP == IPv4. IPv6 berbeda.
CVn

@ MichaelKjörling paket dalam TCP akan habis sebelum itu, apakah benar untuk berpikir bahwa waktu reassembly harus didahului oleh protokol lapisan tinggi?

@ GeorgeRobinson, jika saya memahami pertanyaan Anda dengan benar, ya, semakin tinggi batas waktu ada di tumpukan protokol, semakin pendek batas waktu itu, karena jika batas waktu lapisan bawah terjadi terlebih dahulu, lapisan yang lebih tinggi tidak akan pernah mendapatkan kesempatan untuk menangani saya t. Saya memiliki layanan web yang mengakses database dan benar-benar HARUS mengembalikan false jika ada kegagalan, tetapi karena masalah pada akhir hoster, selama masa penggunaan tinggi, koneksi DB akan habis. Saya harus mengatur batas waktu sedemikian rupa sehingga batas waktu DB diasumsikan sebelum jendela batas waktu SOAP terjadi sehingga penelepon akan mendapatkan False
Frank Thomas
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.