Header
IPv4 header paket terdiri dari 14 bidang, yang 13 diperlukan. Bidang-14 adalah opsional (latar belakang merah dalam tabel) dan aptly bernama: pilihan. Bidang dalam header yang dikemas dengan byte paling signifikan pertama ( big endian ), dan untuk diagram dan diskusi, bit paling signifikan dianggap datang pertama ( MSB 0 bit penomoran ). Bit yang paling signifikan adalah nomor 0, sehingga bidang versi sebenarnya ditemukan dalam empat bit paling signifikan dari byte pertama, misalnya.
Offset | Oktet | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Oktet | Sedikit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Versi | IHL | DSCP | ECN | Total Panjang | |||||||||||||||||||||||||||
4 | 32 | Identifikasi | Flags | Fragment Offset | |||||||||||||||||||||||||||||
8 | 64 | Time To Live | Protokol | Header Checksum | |||||||||||||||||||||||||||||
12 | 96 | Sumber IP Address | |||||||||||||||||||||||||||||||
16 | 128 | Tujuan IP Address | |||||||||||||||||||||||||||||||
20 | 160 | Pilihan (jika IHL> 5) |
- Versi
- Kolom header pertama dalam IP paket adalah bidang versi empat-bit. Untuk IPv4, ini memiliki nilai 4 (maka nama IPv4).
- Header Internet Panjang (IHL)
- Bagian kedua (4 bit) adalah panjang header Internet (IHL), yang merupakan jumlah 32-bit kata-kata di header. Karena header IPv4 mungkin berisi sejumlah variabel pilihan, bidang ini menentukan ukuran header (ini juga bertepatan dengan offset untuk data). Nilai minimum untuk bidang ini adalah 5 ( RFC 791 ), yang merupakan panjang dari 5 × 32 = 160 bit = 20 byte. Menjadi nilai 4-bit, panjang maksimum adalah 15 kata (15 × 32 bit) atau 480 bit = 60 byte.
Bidang ini didefinisikan dalam RFC 3168 dan memungkinkan end-to-end pemberitahuan kemacetan jaringan tanpa menjatuhkan paket. ECN merupakan fitur opsional yang hanya digunakan ketika kedua endpoint mendukung dan bersedia untuk menggunakannya. Hal ini hanya efektif bila didukung oleh jaringan yang mendasarinya.
- Total Panjang
- Identifikasi
- Flags
- bit 0: Reserved; harus nol. [catatan 1]
- bit 1: Jangan Fragment (DF)
- bit 2: Lebih Fragmen (MF)
- Fragment Offset
- Time To Live (TTL)
Program traceroute menggunakan ICMP Waktu Melebihi pesan-pesan ini untuk mencetak router yang digunakan oleh paket untuk pergi dari sumber ke tujuan.
- Protokol
- Header Checksum
Artikel utama: IPv4 Header checksum
16-bit checksum field digunakan untuk pengecekan error header. Ketika sebuah paket tiba di router, router menghitung checksum dari header dan membandingkannya dengan bidang checksum. Jika nilai tidak cocok, router membuang paket. Kesalahan di bidang data harus ditangani oleh protokol enkapsulasi. Kedua UDP dan TCP memiliki ladang checksum. Ketika sebuah paket tiba di router, router berkurang bidang TTL. Akibatnya, router harus menghitung checksum baru. RFC 1071 mendefinisikan perhitungan checksum: - Bidang checksum adalah 16-bit melengkapi seseorang dari jumlah melengkapi salah satu dari semua kata-kata 16-bit pada header. Untuk keperluan komputasi checksum, nilai field checksum adalah nol.
- Langkah 1) 4500 + 0030 + 4422 + 4000 + 8006 + 0000 + 8c7c + 19ac + ae24 + 1e2b = 0002BBCF (32-bit sum)
- Langkah 2) 0002 + BBCF = BBD1 = 1011101111010001 (1 komplemen 16-bit sum, yang dibentuk oleh "berakhir sekitar carry" dari 32-bit 2 komplemen sum)
- Langkah 3) ~ BBD1 = 0100010000101110 = 442E (1 komplemen dari 1 komplemen 16-bit sum)
- 2BBCF + 442E = 2FFFD. 2 + FFFD = FFFF. 1 komplemen dari FFFF = 0.
- Alamat sumber
- Alamat tujuan
- Pilihan
Bidang | Ukuran (bit) | Deskripsi |
---|---|---|
Disalin | 1 | Set ke 1 jika pilihan perlu disalin ke semua fragmen dari sebuah paket terfragmentasi. |
Pilihan Kelas | 2 | Sebuah pilihan umum kategori. 0 adalah untuk "kontrol" pilihan, dan 2 adalah untuk "debugging dan pengukuran". 1, dan 3 undang-undang. |
Jumlah opsi | 5 | Menentukan pilihan. |
Opsi Panjang | 8 | Menunjukkan ukuran seluruh opsi (termasuk bidang ini). Bidang ini mungkin tidak ada untuk opsi sederhana. |
Opsi data | Variabel | Data Option-spesifik. Bidang ini mungkin tidak ada untuk opsi sederhana. |
- Catatan: Jika panjang header lebih besar dari 5, yaitu adalah 6-15, itu berarti bahwa bidang pilihan hadir dan harus dipertimbangkan.
- Catatan: Disalin, Option Class, dan Nomor Opsi kadang-kadang disebut sebagai single bidang delapan-bit - Type Option.
Data
Bagian data paket tidak termasuk dalam paket checksum. Isinya ditafsirkan berdasarkan nilai dari kolom header Protokol.
Beberapa protokol yang umum untuk bagian data adalah sebagai berikut:
Jumlah protokol | Protokol Nama | Singkatan |
---|---|---|
1 | Internet Control Message Protocol | ICMP |
2 | Internet Group Management Protocol | IGMP |
6 | Transmission Control Protocol | TCP |
17 | User Datagram Protocol | UDP |
41 | IPv6 enkapsulasi | Encap |
89 | OSPF | OSPF |
132 | Protokol Streaming Transmission Control | SCTP |
Fragmentasi dan reassembly
Artikel utama: IP fragmentasi
Internet Protocol memungkinkan jaringan untuk berkomunikasi satu sama lain. Desain mengakomodasi jaringan alam fisik yang beragam; itu adalah independen dari teknologi transmisi yang mendasari digunakan dalam Link Layer. Jaringan dengan hardware yang berbeda biasanya bervariasi tidak hanya dalam kecepatan transmisi, tetapi juga di unit transmisi maksimum (MTU). Ketika salah satu jaringan yang ingin mengirimkan datagram ke jaringan dengan MTU yang lebih kecil, mungkin fragmen datagram nya. Dalam IPv4, fungsi ini ditempatkan pada lapisan internet
, dan dilakukan di router IPv4, yang dengan demikian hanya membutuhkan
lapisan ini sebagai yang tertinggi diterapkan dalam desain mereka. Sebaliknya, IPv6 , generasi berikutnya dari Internet Protocol, tidak memungkinkan router untuk melakukan fragmentasi; host harus menentukan jalur MTU sebelum mengirim datagram.
Fragmentasi
Ketika router menerima paket, mengkaji alamat tujuan dan menentukan antarmuka keluar untuk digunakan dan antarmuka yang MTU. Jika ukuran paket lebih besar dari MTU, dan Jangan Fragment (DF) bit dalam header paket set ke 0; router dapat memecah paket.
Router membagi paket ke segmen. Ukuran maksimal masing-masing segmen adalah MTU dikurangi ukuran header IP (20 bytes minimum; 60 byte maksimum). Router menempatkan setiap segmen dalam paket sendiri, masing-masing paket fragmen yang memiliki perubahan berikut:
- Total panjang lapangan adalah ukuran segmen.
- Semakin banyak fragmen (MF) flag ditetapkan untuk semua segmen kecuali yang terakhir, yang diatur ke 0.
- Fragmen lapangan diimbangi diatur, berdasarkan offset dari segmen dalam data payload asli. Hal ini diukur dalam satuan blok delapan byte.
- Kolom header checksum adalah menghitung ulang.
Hal ini dimungkinkan untuk paket yang terfragmentasi pada satu router, dan fragmen yang akan terfragmentasi pada router lain. Sebagai contoh, perhatikan segmen lapisan transport dengan ukuran 4.500 bytes, tidak ada pilihan, dan IP ukuran header 20 byte. Jadi ukuran paket IP adalah 4.520 byte. Asumsikan bahwa paket dikirimkan melalui link dengan MTU 2.500 byte. Maka akan menjadi dua fragmen:
Fragmen | Jumlah byte | Header byte | Data byte | "Fragmen Lebih" flag | Fragmen offset (blok 8-byte) |
---|---|---|---|---|---|
1 | 2500 | 20 | 2480 | 1 | 0 |
2 | 2040 | 20 | 2020 | 0 | 310 |
Perhatikan bagaimana kita mendapatkan offset dari ukuran data yang:
- 0.
- 0 + 2480/8 = 310.
Fragmen | Jumlah byte | Header byte | Data byte | "Fragmen Lebih" flag | Fragmen offset (blok 8-byte) |
---|---|---|---|---|---|
1 | 1.500 | 20 | 1480 | 1 | 0 |
2 | 1020 | 20 | 1000 | 1 | 185 |
3 | 1.500 | 20 | 1480 | 1 | 310 |
4 | 560 | 20 | 540 | 0 | 495 |
Perhatikan bagaimana kita mendapatkan offset dari ukuran data yang:
- 0.
- 0 + 1480/8 = 185
- 185 + 1000/8 = 310
- 310 + 1480/8 = 495
Reassembly
Sebuah penerima tahu bahwa paket adalah fragmen jika setidaknya salah satu dari kondisi berikut ini benar:
- "Lebih fragmen" flag diatur. (Hal ini berlaku untuk semua fragmen kecuali yang terakhir.)
- The "fragmen offset" lapangan adalah nol. (Hal ini berlaku untuk semua fragmen kecuali yang pertama.)
Ketika penerima memiliki semua fragmen, dapat menempatkan mereka dalam urutan yang benar, dengan menggunakan offset mereka. Hal ini kemudian dapat melewatkan data mereka menaiki tumpukan untuk diproses lebih lanjut.
0 komentar:
Posting Komentar