From: http://id.wikipedia.org/wiki/Protokol_Internet
Ada tiga buah field yang berguna untuk menunjukkan apakah sebuah datagram IP harus difragmentasi atau tidak, yakni sebagai berikut:
Sebuah node yang berada di dalam jaringan Token Ring mengirimkan sebuah datagram IP yang dapat difragmentasikan dengan nilai field Identification (dalam header IP) diset ke nilai 9999 ke sebuah node dalam jaringan Ethernet, seperti terlukis dalam gambar. Anggaplah jaringan Token Ring tersebut memiliki pengaturan sebagai berikut: kepemilikan token selama 9 milidetik, kecepatan 4 megabit per detik, dan tidak ada header routing Token Ring, serta MTU 4482 byte. Sementara itu, jaringan Ethernet memiliki MTU 1500 byte, yang menggunakan skema enkapsulasi frame Ethernet II.
Sebelum fragmentasi terjadi, field-field dalam header IP untuk datagram IP yang asli bernilai sebagai berikut:
Router yang menghubungkan dua jenis jaringan tersebut akan
menerima datagram IP dari komputer pengirim dalam jaringan Token Ring.
Router pun mengecek tabel routing yang ada di dalam dirinya dan
menentukan antarmuka mana yang hendak digunakan untuk meneruskan pesan
tersebut dan kemudian router mengetahui bahwa datagram IP yang
dikirimkan lebih besar daripada nilai MTU, mengingat jaringan yang
dituju merupakan jaringan Ethernet. Selanjutnya, router melihat flag DF
dalam header IP: jika diset ke angka 1, router akan mengabaikan datagram
yang bersangkutan dan mengirimkan pesan balasan "ICMP Destination
Unreachable-Fragmentation Needed And DF Set" kepada pengirim datagram
IP; dan karena memiliki nilai "0", router pun melakukan fragmentasi
terhadap muatan datagram IP tersebut, yakni sebesar 4462 byte
(dengan anggapan bahwa datagram tersebut tidak memiliki IP Options) ke
dalam empat buah fragmen, yang setiap fragmennya memiliki ukuran 1500
byte (yang merupakan nilai MTU dari jaringan Ethernet).
Muatan IP maksimum yang dapat ditampung dalam MTU 1500 byte milik Ethernet adalah 1480 byte (20 byte digunakan sebagai header IP, dan dengan anggapan bahwa datagram tersebut tidak memiliki IP Options). Setiap muatan yang berukuran 1480 byte tesebut dipecah ke dalam 185 fragment block (185x8=1480). Karenanya router akan mengirimkan empat fragmen dengan ukuran muatan 1480 byte dan fragmen terakhir berukuran 22 byte (4462=1480+1480+1480+22)
Karena fragmentasi terjadi, maka nilai-nilai field datagram IP yang dikirimkan pun akan diubah oleh router menjadi nilai-nilai berikut:
Ada tiga buah field yang berguna untuk menunjukkan apakah sebuah datagram IP harus difragmentasi atau tidak, yakni sebagai berikut:
- Field identification:
Digunakan untuk mengelompokkan semua fragmen dari sebuah datagram IP dalam sebuah kelompok. Host pengirim akan mengeset nilai field ini, dan nilai ini tidak akan beruba selama proses fragmentasi berlangsung. Field ini selalu diset (memiliki nilai) meskipun datagram IP tidak boleh diset dengan menggunakan bit flag Dont Fragment (DF). - Field Flag, yang memiliki dua buah nilai:
- Don't fragment (DF):
Flag ini akan diset ke nilai "0" untuk mengizinkan fragmentasi dilakukan, atau nilai "1" untuk mencegah fragmentasi dilakukan terhadap datagram IP. Dengan kata lain, fragmentasi akan terjadi jika flag DF ini bernilai "0". Jika fragmentasi dibutuhkan untuk meneruskan datagram IP (akibat ukuran datagram IP yang lebih besar dibandingkan dengan ukuran maximum transmission unit (MTU)) dan flag DF ini diset ke nilai "1", maka router akan mengirimkan pesan "ICMP Destination Unreachable-Fragmentation Needed And DF Set" kepada host pengirim, sebelum router tersebut akan mengabaikan datagram IP tersebut. - More Fragments (MF):
Flag ini akan diset ke nilai "0" jika tidak ada fragmen lainnya yang mengikuti fragmen yang bersangkutan (berarti tanda bahwa fragmen tersebut merupakan fragmen terakhir), atau diset ke nilai "1" jika ada tambahan fragmen yang mengikuti fragmen tersebut (berarti tanda bahwa fragmen tersebut bukanlah fragmen terakhir).
- Don't fragment (DF):
- Field' Fragment Offset:
Field ini akan diset untuk mengindikasikan posisi fragmen yang bersangkutan terhadap muatan IP yang belum difragmentasikan. Field ini akan digunakan untuk mengurutkan kembali semua fragmen pada saat proses penyatuan kembali menjadi sebuah datagram IP yang utuh di pihak penerima. Ukurannya adalah 13 bit, sehingga mendukung nilai hingga 8191 saja.
Mengingat ukuran muatan IP terbesar adalah 65515 byte (216-20), sedangkan ukuran field ini adalah 13 bit, maka field ini tidak dapat digunakan untuk mengindikasikan byte offset. Karenanya setiap nilai field fragment offset harus merepresentasikan nilai 3 bit. Dengan demikian, field Fragment Offset pun dapat didefinisikan dalam blok-blok berukuran 8 byte yang disebut sebagai Fragment block.
Selama fragmentasi dilakukan, muatan IP akan dipecah ke dalam fragmen-fragmen dengan menggunakan batasan 8 byte dan nilai maksimum fragment block (8 byte) diletakkan pada setiap fragmen. Field Fragment Offset pun diset untuk mengindikasikan permulaan fragment block untuk fragmen tersebut dibandingkan dengan muatan IP yang belum difragmentasi.
- Header length: Bisa berubah atau tidak bergantung pada keberadaan IP Options, dan juga apakah IP Options tersebut disalin ke semua fragmen atau hanya fragmen pertama saja.
- Time-to-Live (TTL): selalu dikurangi 1.
- Total Length: Diubah untuk merefleksikan perubahan pada header IP yang baru dan tentunya muatan IP yang baru.
- Flag More Fragment akan diset ke angka 1 untuk fragmen pertama atau fragmen pertengahan, atau nilai 0 untuk fragmen terakhir.
- Fragment Offset: Diset untuk mengindikasikan posisi fragmen di dalam fragment block relatif terhadap muatan IP yang belum difragmentasi.
- Header Checksum: dihitung ulang berdasarkan field yang berubah di dalam header IP.
- Field "identification": tidak berubah untuk setiap fragmen.
[sunting] Contoh proses fragmentasi
Sebagai sebuah contoh bagaimana proses fragmentasi berlangsung, perhatikan skenairo berikut:Sebuah node yang berada di dalam jaringan Token Ring mengirimkan sebuah datagram IP yang dapat difragmentasikan dengan nilai field Identification (dalam header IP) diset ke nilai 9999 ke sebuah node dalam jaringan Ethernet, seperti terlukis dalam gambar. Anggaplah jaringan Token Ring tersebut memiliki pengaturan sebagai berikut: kepemilikan token selama 9 milidetik, kecepatan 4 megabit per detik, dan tidak ada header routing Token Ring, serta MTU 4482 byte. Sementara itu, jaringan Ethernet memiliki MTU 1500 byte, yang menggunakan skema enkapsulasi frame Ethernet II.
Sebelum fragmentasi terjadi, field-field dalam header IP untuk datagram IP yang asli bernilai sebagai berikut:
Field | Nilai |
---|---|
Total Length | 4482 |
Identification | 9999 |
flag DF | 0 |
flag MF | 0 |
Fragment Offset | 0 |
Muatan IP maksimum yang dapat ditampung dalam MTU 1500 byte milik Ethernet adalah 1480 byte (20 byte digunakan sebagai header IP, dan dengan anggapan bahwa datagram tersebut tidak memiliki IP Options). Setiap muatan yang berukuran 1480 byte tesebut dipecah ke dalam 185 fragment block (185x8=1480). Karenanya router akan mengirimkan empat fragmen dengan ukuran muatan 1480 byte dan fragmen terakhir berukuran 22 byte (4462=1480+1480+1480+22)
Karena fragmentasi terjadi, maka nilai-nilai field datagram IP yang dikirimkan pun akan diubah oleh router menjadi nilai-nilai berikut:
Field | Nilai pada fragmen 1 | Nilai pada fragmen 2 | Nilai pada fragmen 3 | Nilai pada fragmen 4 |
---|---|---|---|---|
Total Length | 1500 | 1500 | 1500 | 42 |
Identification | 9999 | 9999 | 9999 | 9999 |
flag DF | 0 | 0 | 0 | 0 |
flag MF | 1 | 1 | 1 | 0 |
Fragment Offset | 0 | 185 | 370 | 555 |
[sunting] Contoh penyatuan kembali (proses reassembly)
[place holder][sunting] Contoh datagram IP
Berikut ini adalah contoh dari datagram IP (packet capture dari Microsoft Network Monitor, dipantau dengan perintah "Ping 192.168.1.2"):+ Frame: Base frame properties + ETHERNET: ETYPE = 0x0800 : Protocol = IP: DOD Internet Protocol IP: ID = 0x34CD; Proto = ICMP; Len: 60 IP: Version = 4 (0x4) IP: Header Length = 20 (0x14) IP: Precedence = Routine IP: Type of Service = Normal Service IP: Total Length = 60 (0x3C) IP: Identification = 13517 (0x34cd) IP: Flags Summary = 0 (0x0) IP: .......0 = Last fragment in datagram IP: ......0. = May fragment datagram if necessary IP: Fragment Offset = 0 (0x0) bytes IP: Time to Live = 128 (0x80) IP: Protocol = ICMP - Internet Control Message IP: Checksum = 0xB869 IP: Source Address = 192.168.1.1 IP: Destination Address = 192.168.1.2 IP: Data: Number of data bytes remaining = 40 (0x0028) + ICMP: Echo: From 192.168.1.1 To 192.168.1.2
0 komentar: