Jabarkan Fragmentasi dari Alamat IP versi 4

Ketika router menerima paket, itu memeriksa alamat tujuan dan menentukan antarmuka keluar untuk digunakan dan MTU antarmuka itu. Jika ukuran paket lebih besar dari MTU, dan bit Do not Fragment (DF) di header paket diatur ke 0, maka router dapat memecah-mecah paket.

Router membagi paket menjadi beberapa bagian. Ukuran maksimum setiap fragmen adalah MTU minus ukuran header IP (minimum 20 bita; maksimum 60 bita). Router menempatkan setiap fragmen ke dalam paketnya masing-masing, setiap paket fragmen memiliki perubahan berikut:

Bidang panjang total adalah ukuran fragmen.

Lebih banyak bendera fragmen (MF) diatur untuk semua fragmen kecuali yang terakhir, yang diatur ke 0.

Bidang offset fragmen diatur, berdasarkan offset fragmen dalam muatan data asli. Ini diukur dalam satuan blok delapan bita.

Bidang checksum header dihitung ulang.

Misalnya, untuk MTU 1.500 bita dan ukuran header 20 bita, offset fragmen akan menjadi kelipatan dari . Kelipatannya adalah 0, 185, 370, 555, 740, ...

Ada kemungkinan bahwa suatu paket terfragmentasi pada satu router, dan bahwa fragmen-fragmen tersebut selanjutnya terfragmentasi pada router lain. Misalnya, paket 4.520 bita, termasuk 20 bita header IP (tanpa opsi) terfragmentasi menjadi dua paket pada tautan dengan MTU 2.500 bita:

Ukuran data total dipertahankan: 2480 bita + 2020 bita = 4.500 bita. Offsetnya adalah  dan .

Pada tautan dengan MTU 1.500 bita, setiap fragmen menghasilkan dua fragmen:

Sekali lagi, ukuran data dipertahankan: 1480 + 1000 = 2480, dan 1480 + 540 = 2020.

Juga dalam kasus ini, bit Fragmen Lainnya tetap 1 untuk semua fragmen yang datang dengan 1 di dalamnya dan untuk fragmen terakhir yang tiba, itu berfungsi seperti biasa, yaitu bit MF diatur ke 0 hanya di yang terakhir. Dan tentu saja, bidang Identifikasi terus memiliki nilai yang sama di semua fragmen yang terfragmentasi. Dengan cara ini, bahkan jika fragmen-fragmen ulang, penerima tahu bahwa mereka semua awalnya dimulai dari paket yang sama.

Offset terakhir dan ukuran data terakhir digunakan untuk menghitung ukuran data total: .