IPv4
Suit protokol Internet |
---|
Lapisan Penggunaan |
Lapisan Pengangkutan |
|
Lapisan Internet |
Lapisan Pautan |
|
|
Protokol Internet versi 4 (IPv4) merupakan semakan keempat dalam pembangunan Protokol Internet (IP) dan ia merupakan versi pertama yang dilaksanakan secara meluas. Bersama-sama dengan IPv6, ia merupakan teras kaedah antara jaringan berasaskan piawaian bagi Internet. IPv4 masih lagi setakat ini merupakan protokol Lapisan Internet yang digunakan paling meluas. Setakat 2011[kemas kini], pelaksanaan IPv6 masih lagi belum matang.
IPv4 telah diperihalkan dalam RFC 791 penerbitan IETF (September 1981), menggantikan takrifan yang lebih awal (RFC 760, Januari 1980).
IPv4 adalah protokol tanpa sambungan untuk digunakan pada jaringan Lapisan Pautan bersuis paket (seperti Ethernet). Cara ia beroperasi adalah mengikut model penghantaran sehabis baik, di mana ia tidak menjamin penghantaran, juga tidak menjamin penjujukan yang wajar, atau mengelakkan penghantaran berganda. Aspek-aspek ini, termasuklah kewibawaan data, diuruskan oleh protokol pengangkutan protokol lapisan atas (seperti Protokol Kawalan Penghantaran).
Pengalamatan
IPv4 menggunakan alamat-alamat 32-bit (empat bait), yang menghadkan ruang alamat kepada 4,294,967,296 (232) alamat unik yang mungkin. Pun begitu, sebahagiannya disimpan untuk tujuan-tujuan khusus misalnya rangkaian persendirian (~18 juta alamat) atatu alamat-alamat multisiar (~270 juta alamat). Ini mengurangkan jumlah alamat yang boleh diuntukkan bagi penghalaan pada Internet awam. Sedang alamat-alamat semakin diwakilkan kepada pengguna akhir, kekurangan alamat IPv4 semakin berkembang. Namun, perekabentukan semula seni bina pengalamatan rangkaian melalui reka bentuk rangkaian berkelas-kelas, Classless Inter-Domain Routing, dan terjemahan alamat rangkaian (NAT) telah menyumbang kepada pelengahan dengan ketara bagi kehabisan yang tidak terhindarkan itu.
Batasan ini telah merangsang pembangunan IPv6, yang sekarang ini masih berada pada takat awal pengerahan, dan merupakan satu-satunya penyelesaian jangka panjang.
Perwakilan alamat
Alamat IPv4 biasanya ditulis dalam tatatanda dot-perpuluhan, yang terdiri daripada empat oktet alamat yang dinyatakan dalam perpuluhan dan dipisahkan oleh noktah. Jadual berikut menunjukkan format asas yang digunakan dalam penukaran:
Tatatanda | Nilai | Penukaran dari dot-perpuluhan |
---|---|---|
Tatatanda dot-perpuluhan | 192.0.2.235 | T/A |
Perenambelasan berdot | 0xC0.0x00.0x02.0xEB | Setiap oktet ditukarkan kepada bentuk perenambelasan secara satu persatu |
Perlapanan berdot | 0300.0000.0002.0353 | Setiap okted ditukarkan kepada perlapanan secara satu persatu |
Perenambelasan | 0xC00002EB | Penjeraitan oktet-oktet daripada perenambelasan berdot |
Perpuluhan | 3221226219 | Nombor 32-bit dinyatakan dalam perpuluhan |
Perlapanan | 030000001353 | Nombor 32-bit dinyatakan dalam perlapanan |
Kebanyakan format-format ini berfungsi pada semua pelayar web. Lagi, dalam format berdot, setiap oktet boleh dari asas yang lain. Sebagai contoh, 192.0x00.0002.235 adalah padanan yang sah (tapi tidak lazim) bagi alamat-alamat di atas.
Bentuk akhir tidak semestinya suatu tatatanda kerana ia jarang sekali ditulis dalam tatatanda rentetan ASCII. Bentuknya adalah bentuk perduaan bagi tatatanda perenambelasan dalam perduaan. Perbezaan ini hanyalah perbezaan perwakilan antara "0xCF8E83EB" dan nilai integer 32-bit 0xCF8E83EB. Bentuk ini dugunakan untuk penugasan ruang sumber dan destinasi dalam sesebuah atur cara perisian.
Peruntukan
Asalnya, alamat IP dibahagikan kepada dua bahagian, pengecam rangkaian yang diwakili oleh oktet paling bererti (urutan tertinggi) dan pengecam hos menggunakan bahagian alamat selebihnya (juga dipanggil rest field). Ini membolehkan penciptaan sehingga 256 rangkaian. Dengan cepat, ia disedari tidak mencukupi.
Bagi mengatasi had ini, oktet berututan tinggi alamat ditakrifkan semula untuk mencipta satu set kelas rangkaian, dalam satu sistem yang kemudiannya dikenali sebagai perangkaiaan berkelas-kelas. Sistem terbabit mentakrifkan lima kelas, Kelas A, B, C, D, dan E. Kelas A, B, dan C mempunyai panjang bit berbeza untuk pengecaman rangkaian yang baru. Bahagian alamat yang selebihnya digunakan seperti sebelumnya untuk mengecam hos dalam sesuatu rangkaian, bermakna, setiap kelas rangkaian memiliki muatan berbeza untuk mengalamatkan hos. Kelas D diperuntukkan bagi pengalamatan multisiar dan Kelas E disimpan untuk kegunaan masa hadapan.
Bermula sekitar 1985, kaedah-kaedah telah dicipta untuk membenarkan rangkaian IP disubbahagikan. Konsep variable-length subnet mask (VLSM) yang membenarkan subbahagian kepada saiz rangkaian yang pelbagai telah diperkenalkan.[1][2]
Sekitar 1993, sistem kelas-kelas ini secara rasminya telah digantikan dengan Classless Inter-Domain Routing (CIDR), dan skema berasaskan kelas dipanggil classful (berkelas-kelas), sebagai lawannya.
CIDR direka untuk membenarkan pemetaan semula sebarang ruang alamat supaya blok-blok yang lebih kecil atau besar boleh diperuntukkan kepada pengguna. Struktur hirarki yang dihasilkan oleh CIDR diurus Internet Assigned Numbers Authority (IANA) dan Regional Internet Registry (RIR). Setiap RIR mengekalkan pangkalan data WHOIS boleh dicari secara umum yang membekalkan maklumat berkenaan penugasan alamat IP.
Alamat-alamat kegunaan khusus
Blok alamat CIDR | Penerangan | Rujukan |
---|---|---|
0.0.0.0/8 | Rangkaian terkini (hanya sah sebagai alamat sumber) | RFC 1700 |
10.0.0.0/8 | Rangkaian persendirian | RFC 1918 |
127.0.0.0/8 | Loopback | RFC 5735 |
169.254.0.0/16 | Link-Local | RFC 3927 |
172.16.0.0/12 | Rangkaian persendirian | RFC 1918 |
192.0.0.0/24 | Simpanan (IANA) | RFC 5735 |
192.0.2.0/24 | TEST-NET-1, Pendokumenan dan kod contoh | RFC 5735 |
192.88.99.0/24 | Geganti IPv6 kepada IPv4 | RFC 3068 |
192.168.0.0/16 | Rangkaian persendirian | RFC 1918 |
198.18.0.0/15 | Ujian tanda aras rangkaian | RFC 2544 |
198.51.100.0/24 | TEST-NET-2, Pendokumenan dan contoh | RFC 5737 |
203.0.113.0/24 | TEST-NET-3, Pendokumenan dan contoh | RFC 5737 |
224.0.0.0/4 | Multisiar IP (bekas rangkaian Kelas D) | RFC 3171 |
240.0.0.0/4 | Simpanan (bekas rangkaian Kelas E) | RFC 1700 |
255.255.255.255 | Siaran | RFC 919 |
Rangkaian persendirian
Tiga julat alamat daripada lebih kurang empat bilion alamat yang dibenarkan oleh IPv4 disimpan untuk kegunaan perangkaian persendirian. Julat-julat ini adalah tidak terhalakan luar daripada rangkaian-rangkaian persendirian dan mesin-mesin persendirian tidak dapat berkomunikasi secara langsung dengan rangkaian awam. Walau bagaimanapun, mereka boleh melakukannya melalui terjemahan alamat rangkaian.
Berikut adalah tiga julat yang disimpan untuk rangkaian persendirian (RFC 1918):
Nama | Julat alamat | Jumlah alamat | Perihal berkelas-kelas | Blok CIDR terbesar |
---|---|---|---|---|
Blok 24-bit | 10.0.0.0–10.255.255.255 | 16,777,216 | Kelas A tunggal | 10.0.0.0/8 |
Blok 20-bit | 172.16.0.0–172.31.255.255 | 1,048,576 | Julat berdampingan 16 blok Kelas B | 172.16.0.0/12 |
Blok 16-bit | 192.168.0.0–192.168.255.255 | 65,536 | Julat berdampingan 256 blok Kelas C | 192.168.0.0/16 |
Rangkaian persendirian maya
Paket-paket yang dialamatkan dengan alamat persendirian adalah diabaikan oleh semua penghala awam secara sengaja. Maka, tidak mustahil bagi dua rangkaian persendirian untuk berhubung (contohnya dua pejabat cawangan) melalui Internet awam tanpa kemudahan khusus. Ini dapat dicapai dengan bantuan rangkaian persendirian maya (VPN).
VPN mewujudkan sambungan penerowongan sepanjang rangkaian awam di mana titik-titik hujung terowong berkenaan berfungsi sebagai penghala bagi paket-paket rangkaian persendirian. Penghala-penghala ini mengkapsulkan atau mempakejkan paket-paket yang dialamatkan secara persendirian dengan pengepala-pengepala dalam rangkaian awam boleh hala supaya ia boleh dihantar ke penghala yang berlawanan, pada hujung terowong yang satu lagi, melalui rangkaian awam kemudian menyingkirkan pengepala pengalamatan awamnya lalu dihantar secara setempat ke destinasinya.
Paket yang dikapsulkan boleh juga disulitkan demi keselamatan datanya sementara ia merentasi rangkaian awam.
Pengalamatan link-local
Blok alamat 169.254.0.0/16 ditakrifkan oleh RFC 5735 untuk kegunaan khusus bagi pengalamatan link-local. Alamat-alamat ini cuma sah pada pautan pada mana sesuatu hos disambung, contohnya sebuah segmen rangkaian setempat atau sambungan titik-ke-titik. Alamat-alamat ini tidak boleh halakan dan macam alamat-alamat persendirian, ia tidak boleh menjadi sumber atau destinasi bagi paket-paket yang terabas Internet. Alamat link-local digunakan terutamanya untuk autokonfigurasi alamat (Zeroconf) bila sesebuah hos tidak dapat menerima alamat IP daripada pelayan DHCP atau kaedah tatarajah dalaman lain.
Pada masa blok alamat ini disimpan, tiada sebarang piawaian wujud untuk mekanisme autokonfigurasi alamat. Demi menyelesaikan perkara ini, Microsoft telah mencipta satu pelaksanaan yang dipanggil Automatic Private IP Addressing (bermaksud 'pengalamatan IP persendirian automatik', disingkatkan sebagai APIPA). Atas kuasa pasaran Microsoft, APIPA telah dikerahkan pada berjuta-juta mesin dan lantas menjadi piawaian de facto bagi industri berkaitan. Beberapa tahun kemudian, IETF telah mentakrifkan piawaian formal bagi kefungsian ini, RF 3927, berjudul Dynamic Configuration of IPv4 Link-Local Addresses (bermaksud 'tatarajah dinamik bagi alamat-alamat link-local IPv4').
Localhost
Alamat-alamat dalam julat 127.0.0.0–127.255.255.255 (127.0.0.0/8 dalam tatatanda CIDR) adalah tersimpan untuk komunikasi localhost. Alamat-alamat dalam julat ini seharusnya tidak pernah muncul luar daripada sesebuah komputer hos dan paket-paket yang dihantar kepada alamat ini dipulangkan sebagai paket-paket mendatang pada peranti rangkaian maya (dikenali sebagai loopback).
Alamat-alamat yang diakhiri 0 atau 255
Sering kali disalahtafsirkan yang alamat-alamat yang berakhir dengan oktet 0 atau 255 tidak akan pernah ditugaskan kepada hos. Perkara ini benar hanya untuk rangkaian yang mempunyai tapisan subrangkaian sekurang-kurangnya 24 — rangkaian Kelas C dalam skema pengalamatan berkelas-kelas yang lama, atau dalam CIDR, rangkaian dengan topeng /24 ke /32 (atau 255.255.255.0—255.255.255.255).
Dalam pengalamatan berkelas-kelas (sekarang ini usang dengan munculnya CIDR), hanya terdapat tiga tapisan subrangkaian: Kelas A, 255.0.0.0 atau /8; Kelas B, 255.255.0.0 atau /16; dan Kelas C, 255.255.255.0 atau /24. Sebagai contoh, dalam subrangkaian 192.168.5.0/255.255.255.0 (atau 192.168.5.0/24) pengenal pasti 192.168.5.0 merujuk kepada keseluruhan subrangkaian, maka ia juga boleh merujuk kepada sebuah peranti individu dalam subrangkaian berkenaan.
Alamat siaran ialah alamat yang membenarkan maklumat disampaikan kepada kesemua mesin pada subrangkaian tertentu, bukan hanya kepada satu mesin tertentu. Umumnya, alamat siaran boleh ditemui dengan mendapatkan pelengkap bit bagi tapisan subrangkaian dan melakukan pengendalian bit ATAU dengan pengenal pasti rangkaiannya. Dalam kata lain, alamat siar adalah alamat yang terakhir dalam julat yang dimiliki oleh subrangkaian terbabit. Dalam contoh kita, alamat siaran ialah 192.168.5.255, jadi untuk mengelakkan kekeliruan, alamat ini juga tidak boleh ditugaskan kepada hos. Pada subrangkaian Kelas A, B, atau C, alamat siaran sering diakhiri dengan 255.
Walau bagaimanapun, ini tidak bermakna yang setiap alamat diakhiri dengan 255 tidak boleh digunakan sebagai alamat hos. Sebagai contoh, bagi sebuah subrangkaian Kelas B 192.168.0.0/255.255.0.0 (atau 192.168.0.0/16), bersamaan dengan julat alamat 192.168.0.0–192.168.255.255, alamat siarannya ialah 192.168.255.255. Namun, sesiapa boleh menugaskan 192.168.1.255, 192.168.2.255, dan sebagainya. (walaupun ini boleh menyebabkan kekeliruan). Tambahan lagi, 192.168.0.0 ialah pengenal pasti rangkaiannya dan dengan ini tidak boleh di tugaskan[perlu rujukan], tapi 192.168.1.0, 192.168.2.0, dan sebagainya boleh ditugaskan (walaupun ini juga boleh menyebabkan kekeliruan).
Dengan munculnya CIDR, alamat siaran tidak semestinya berakhir dengan 255.
Secara umum, alamat pertama dan terakhir dalam sesebuah subrangkaian masing-masing digunakan sebagai pengenal pasti rangkaian dan alamat siaran. Kesemua alamat lain dalam subrangkaian boleh ditugaskan kepada hos pada subrangkaian berkenaan.
Peleraian alamat
Hos pada Internet selalunya tidak dikenal melalui alamat IPnya, tetapi dengan namanya (contohnya ms.wikipedia.org, www.google.com, www.youtube.com). Penghalaan bagi paket-paket IP menerusi Internet tidak diarahkan oleh nama-nama sedemikian, tapi oleh nombor alamat IP yang ditugaskan kepada nama domain tadi. Ini memerlukan penterjemahan (atau peleraian) nama domain kepada alamat.
Sistem Nama Domain (DNS) membekalkan sistem yang diperlukan untuk menukarkan nama kepada alamat dan alamat kepada nama. Sebagai mana pengalamatan CIDR, penamaan DNS juga berbentuk hirarki dan membenarkan delegasi separa bagi ruang-ruang nama ke pelayan DNS lain.
DNS sering dianalogikan kepada sistem maklumat direktori sistem telefon di mana nama pelanggan diterjemahkan kepada nombor telefon.
Kehabisan ruang alamat
Semenjak 1980-an, sudah ketara bahawa jumlah alamat IPv4 yang tersedia semakin berkurang pada satu kadar yang tidak dijangka semasa mereka bentuk rangkaiannya.[perlu rujukan] Faktor inilah yang mendorong kepada pengenalan rangkaian berkelas-kelas, terciptanya pengalamatan CIDR, dan akhirnya perekabentukan semula Protokol Internet, berasaskan format alamat yang lebih besar (IPv6).
Kini, terdapat beberapa pendorong kepada meningkatnya kehabisan alamat IPv4[perlu rujukan]:
- Peranti mudah alih — laptop, PDA, telefon bimbit
- Peranti sentiasa terpasang — modem ADSL modems, modem kabel
- Pantasnya pertambahan pengguna Internet
Penyelesaian yang diterima dan dipiawaikan ialah penghijrahan kepada IPv6. Saiz alamat meningkat secara mendadak dari 32 bit ke 128 bit, membekalkan ruang alamat jauh lebih besar membenarkan pengagregatan hala yang lebih baik merentasi Internet dan menawarkan peruntukan subrangkaian yang besar dengan jumlah minimum 264 alamat hos kepada pengguna akhir. Penghijrahan kepada IPv6 masih lagi dalam progres tapi dijangka mengambil masa yang lama.
Kaedah-kaedah untuk mengurangkan kehabisan alamat IPv4 adalah:
- Terjemahan alamat rangkaian
- Penggunaan rangkaian persendirian
- Protokol Konfigurasi Hos Dinamik (DHCP)
- Pengehosan maya berasaskan nama
- Kawalan yang lebih ketat oleh Pendaftaran Internet Serantau terhadap peruntukan alamat Pendaftaran Internet Tempatan
- Pernomboran semula rangkaian untuk memperoleh kembali blok-blok besar bagi ruang alamat yang diperuntukkan ketika masa muda Internet
Ramalan April 2008 tentang tarikh kehabisan bagi tabung IANA yang tidak teruntuk dilihat tertumpu di antara Februari 2010[3] dan Mei 2011[4]
Terjemahan alamat rangkaian
Kerancakan peruntukan bagi alamat IPv4 dan kekurangan ruang alamat yang berlaku sejak awal 1990-an membawa kepada beberapa kaedah bagi penggunaan yang lebih cekap. Salah satunya ialah pengenalan terjemahan alamat rangkaian (NAT). Peranti-peranti NAT menyamarkan keseluruhan, rangkaian persendirian 'di belakang' satu alamat IP awam tunggal lantas membenarkan penggunaan alamat persendirian di dalam rangkaian berkenaan. Kebanyakan pembekal capaian Internet pelanggan pasaran massa bergantung kepada teknik ini.
Struktur paket
Sesebuah paket IP terdiri daripada bahagian pengepala dan bahagian data.
Penggepala
Pengepala paket IPv4 terdiri daripada 13 medan, yang mana 12 diperlukan. Medan yang ke-13 adalah tidak wajib (berlatar merah dalam jadual) dan lantas dinamakan: pilihan. Medan dalam pengepala dipaketkan dengan bait paling bererti terlebih dahulu (big endian), dan untuk gambar rajah dan perbincangan, bit paling bererti datang dulu (Penomboran bit MSB 0). Bit paling bererti dinomborkan 0, jadi medan versi sebenarnya boleh ditemukan dalam empat bit paling bererti bagi bait pertama, sebagai contoh:
ofset bit | 0–3 | 4–7 | 8–15 | 16–18 | 19–31 | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Versi | Panjang pengepala | DiffServ | Jumlah Panjang | ||||||||||||||||||||||||||||
32 | Pengenalpastian | Bendera | Ofset Serpihan | |||||||||||||||||||||||||||||
64 | Masa Hayat | Protokol | Hasil Tambah Semak Pengepala | |||||||||||||||||||||||||||||
96 | Alamat Sumber | |||||||||||||||||||||||||||||||
128 | Alamat Destinasi | |||||||||||||||||||||||||||||||
160 | Pilihan ( jika Panjang Pengepala > 5 ) | |||||||||||||||||||||||||||||||
160 or 192+ | Data |
- Versi
- Medan pengepala pertama dalam sesebuah paket IP ialah medan versi empat bit. Bagi IPv4, nilainya ialah 4 (maka dinamakan IPv4).
- Panjang Pengepala Internet (IHL)
- Medan kedua (4 bit) ialah Panjang Pengepala Internet (IHL) menguraikan bilangan 32-bit kata dalam pengepala. Oleh kerana pengepala IPv4 boleh mengandungi bilangan pilihan tidak tetap, medan ini menyatakan saiz pengepala (ini juga sekena dengan ofset kepada data). Nilai minimum bagi medan ini ialah 5 (RFC 791), dengan kepanjangan 5×32 = 160 bit = 20 bait. Kerana nilainya empat bit, panjang maksimumnya ialah 15 kata (15×32 bit) atau 480 bit = 60 bait.
- DiffServ (DS)
- Asalnya ditakrifkan sebagai medan ToS, medan ini kini ditakrifkan oleh RFC 2474 untuk DiffServ dan oleh RFC 3168 untuk Explicit Congestion Notification (ECN), memadankan IPv6. Teknologi-teknologi adalah semakin maju yang memerlukan penstriman data masa sebenar dan dengan itu akan menggunakan medan DS. Salah satu contoh ialah Suara melalui IP (VoIP) yang digunakan untuk pertukaran suara data interaktif.
- Medan Type of Service (ToS) asalnya bertujuan untuk sesebuah hos penghantar menyatakan pilihan bagi cara datagram patut dikendalikan sedang ia merentasi Internet. Sebagai contoh, sesebuah hos boleh menetapkan medan ToS datagram IPv4nya untuk memilih lengahan rendah, sementara yang lain mungkin memilih keutuhan tinggi. Secara praktikal, medan ToS tidak digunakan secara meluas. Walau bagaimanapun, banyak kerja ujikaji, penyelidikan dan pengerahan telah tertumpu kepada cara untuk menggunakan lapan bit ini, lantas terhasilnya takrifan medan DS yang sekarang.
- Seperti yang ditakrifkan dalam RFC 791, lapan bit berikut diuntukkan kepada medan ToS:
- bits 0–2: Duluan (111 - Kawalan Rangkaian, 110 - Kawalan Antara Rangkaian, 101 - CRITIC/ECP, 100 - Penggubal Flash, 011 - Flash, 010 - Segera, 001 - Keutamaan, 000 - Rutin)
- bit 3: 0 = Lengahan Normal, 1 = Lengahan Rendah
- bit 4: 0 = Truput Normal, 1 = Truput Tinggi
- bit 5: 0 = Keutuhan Normal, 1 = Keutuhan Tinggi
- bit 6: 0 = Kos Normal, 1 = Kurangkan Kos Kewangan (ditakrifkan oleh RFC 1349)
- bit 7: belum ditakrifkan
- Jumlah Panjang
- Medan sepanjang 16-bit ini mentakrifkan keseluruhan saiz datagram, termasuk pengepala dan data, dalam bait. Panjang minima datagram adalah 20 bait (20-bait pengepala + 0 bait data) dan maksima adalah 65,535 — nilai maksima bagi perkataan 16-bit. Saiz minima datagram yang sebarang host perlukan bagi mampu dikendali adalah 576 bait, tetapi kebanyakan hos moden mengendali paket lebih besar. Kadang-kala subrangkaian menetapkan had tambahan pada saiz, dalam kes ini datagram perlu diserpihkan. Serpihan dikendali pada samada suis paket atau hos dalam IPv4.
- Pengenalpastian
- Medan ini merupakan medan pengenalpastian dan digunakan khusus bagi mengenal pasti serpihan dari datagram IP asal. Sesetengah ujian mencadangkan menggunakan medan ID bagi tujuan lain, seperti untuk menambah maklumat penyurihan paket pada datagram bagi membantu mengesan kembali datagram dengan alamat sumber dari serangan perdayaan.
- Bendera
- Medan tiga bit seterusnya dan digunakan bagi mengawal dan mengenal pasti serpihan. Ia adalah (dalam turutan, dari tahap tertinggi pada tahap terendah):
- bit 0: Disimpan; mesti sifar.[note 1]
- bit 1: Jangan Serpihkan (DF)
- bit 2: Lebih Serpihan (MF)
- Jika bendera DF disetkan dan penyerpihan diperlukan untuk menghalakan sesebuah paket, maka paket tersebut akan ditolak. Ini dapat digunakan apabila menghantar paket kepada hos yang tidak memiliki sumber yang cukup untuk mengendalikan penyerpihan.
- Apabila sesebuah paket diserpihkan, bendera MF bagi semua serpihan akan diset kecuali serpihan yang akhir. Bendera MF juga tidak diset pada paket yang tidak diserpihkan — sesebuah paket yang tidak diserpihkan merupakan serpihan terakhirnya sendiri.
- Ofset Serpihan
- Medan ofset serpihan diukur dalam unit blok lapan bait, berkepanjangan 13 bit dan menyatakan ofset bagi serpihan tertertu relatif kepada permulaan datagram IP asal yang belum diserpihkan. Ofset serpihan pertama adalah sifar. Ini membenarkan ofset maksimum (213 – 1) × 8 = 65,528 bait yang mana lebih daripada panjang maksimum paket IP 65,535 bait termasuk pengepalanya (65,528 + 20 = 65,548 bait).
- Masa Hayat (TTL)
- Medan lapan bit masa hayat (TTL) membantu mengelakkan datagram daripada menetap di Internet. Medan ini menghadkan jangka hayat sesebuah datagram. Ia dinyatakan dalam saat, tapi buat sela masa kurang daripada 1 saat, ia akan dibundarkan kepada satu. Dalam kependaman biasa dalam praktik, ia dijadikan sebagai medan kiraan hop. Setiap penghala yang direntasi sesebuah datagram mengurangkan medan TTL dengan satu. Bila saja medan TTL mencapai sifar, paket tidak lagi akan dimajukan oleh suis paket dan dibuang. Biasanya, mesej ICMP (khususnya Time Exceeded) akan dihantar balik kepada penghantar yang ia telah dibuang. Penerimaan mesej-mesej ICMP ini adalah kunci bagaimana traceroute berfungsi.
- Protokol
- Medan ini mentakrifkan protokol yang digunakan dalam bahagian data bagi sesebuah datagram IP. Internet Assigned Numbers Authority menyenggara satu senarai nombor-nombor protokol yang asalnya ditakrifkan dalam RFC 790. Protokol-protokol biasa dan nilai perpuluhannya ditunjukkan di bawah (lihat Data).
- Hasil Tambah Semak Pengepala
- Medan hasil tambah semak (h.t.s.) 16-bit digunakan untuk pemeriksaan ralat pengepala. Pada setiap hop, h.t.s. pengepala harus dibandingkan dengan nilai medan ini. Jika ada satu h.t.s. yang tidak cocok, maka paket tersebut akan dibuang. Perhatikan bahawa ralat dalam medan data akan ditangani oleh protokol yang dikapsulkan - tentu sekali, kedua-dua UDP dan TCP mempunyai medan h.t.s..
- Kerana medan TTL dikurangkan pada setiap hop dan penyerpihan boleh dilakukan pada setiap hop, maka, h.t.s. akan dikira semula pada setiap hop. Kaedah yang digunakan untuk mengira semula h.t.s. ditakrifkan dalam RFC 1071:
- Medan hasil tambah semak adalah pelengkap satu 16-bit bagi jumlah pelengkap satu bagi semua kata 16-bit dalam pengepala. Nilai medan hasil tambah semak adalah sifar untuk tujuan mengira hasil tambah semak.
- Dalam kata lain, semua kata 16-bit dijumlahkan bersama menggunakan pelengkap satu (dengan medan h.t.s. disetkan menjadi sifar). Jumlah tadi kemudiannya dilengkapsatukan dan jumlah akhir ini disisipkan sebagai medan h.t.s..
- Sebagai contoh, bagi Heks 45000030442240008006442e8c7c19acae241e2b (pengepala IP 20 bait):
- 4500 + 0030 + 4422 + 4000 + 8006 + 0000 + 8c7c + 19ac + ae24 + 1e2b = 2BBCF
- 2 + BBCF = BBD1 = 1011101111010001, lengkapan 1 untuk jumlah = 0100010000101110 = 442E
- Algoritma yang sama boleh digunakan untuk mengesahkan h.t.s. sesuatu pengepala — h.t.s. bagi pengepala dengan medan h.t.s. diisikan seharusnya satu kata yang mengandungi semua sifar (nilai 0).
- Alamat sumber
- Alamat IPv4 adalah kumpulan empat oktet dengan jumlah 32 bit. Nilai medan ini ditentukan dengan mengambil nilai perduaan setiap oktet dan menggabungkan mereka menjadi satu nilai 32 bit tunggal.
- Sebagai contoh, alamat 10.9.8.7 akan jadi 00001010000010010000100000000111.
- Alamat ini adalah alamat bagi penghantar paket. Perhatikan bahawa alamat ini mungkin bukan penghantar "sebenar" paket disebabkan oleh terjemahan alamat rangkaian. Sebaliknya, alamat sumber tersebut akan diterjemahkan oleh mesin NAT kepada alamatnya sendiri. Jadi, paket-paket balasan yang dihantar oleh penerima dihalakan ke mesin NAT, yang menterjemahkan alamat destinasi kepada alamat asal penghantar.
- Alamat destinasi
- Serupa dengan alamat sumber tetapi untuk penerima paket.
- Pilihan
- Medan-medan pengepala tambahan mungkin menyusuli medan alamat destinasi, namun ini jarang digunakan. Perhatikan bahawa nilai dalam medan IHL mesti menyertakan kata 32-bit tambahan yang cukup untuk memegang kesemua pilihan (termasuk sebarang pad diperlukan untuk memastikan yang pengepala mengandungi nombor integer kata 32-bit). Senarai pilihan boleh dimatikan dengan pilihan EOL (End of Options List, 0x00); ini cuma perlu jika penghujung pilihan tidak akan sama dengan penghujung pengepala. Pilihan-pilihan yang boleh diletakkan di dalam pengepala adalah seperti berikut:
Medan | Saiz (bit) | Huraian |
---|---|---|
Copied | 1 | Diset kepada 1 jika pilihan perlu disalin kedalam semua serpihan bagi paket terserpih. |
Option Class | 2 | Kategori pilihan yang umum. 0 untuk pilihan "control", dan 2 untuk "debugging and measurement". 1, dan 3 adalah simpanan. |
Option Number | 5 | Menyatakan pilihan. |
Option Length | 8 | Menunjukan saiz bagi keseluruhan pilihan (termasuk medan ini). Medan ini mungkin tiada untuk pilihan mudah. |
Option Data | Boleh ubah | Data berkhususkan pilihan. Medan ini mungkin tiada untuk pilihan mudah. |
- Catatan: Jika Panjang Pengepala lebih besar daripada 5, yakni berada di antara 6-15, ini bermakna yang medan Pilihan wujud dan harus diambil kira.
- Catatan: Copied, Option Class, dan Option Number kadang kala dirujuk sebagai satu medan lapan bit tunggal - Option Type.
- Penggunaan pilihan LSRR dan SSRR tidak digalakkan kerana boleh memberi kesan terhadap keselamatan; paket blok kebanyakan penghala mengandungi pilihan-pilihan ini.[perlu rujukan]
Data
Ruang terakhir bukanlah sebahagian daripada pengepala dan, dengan itu, tidak disertakan dalam ruang hasil tambah semak. Kadungan ruang data dinyatakan dalam ruang pengepala protokol dan boleh jadi salah satu daripada protokol-protokol lapisan pengangkutan.
Antara protokol yang sering digunakan, termasuk nilainya dalam ruang protokol, disenaraikan di bawah:
- 1: Protokol Mesej Kawalan Internet (ICMP)
- 2: Internet Group Management Protocol (IGMP)
- 6: Protokol Kawalan Penghantaran (TCP)
- 17: User Datagram Protocol (UDP)
- 89: Open Shortest Path First (OSPF)
- 132: Stream Control Transmission Protocol (SCTP)
Lihat Senarai nombor protokol IP untuk senarai yang lengkap.
Penyerpihan dan penghimpunan semula
Protokol Internet adalah kemudahan dalam seni bina yang membolehkan rangkaian yang berbeza untuk menukar trafik dan menghala trafik di antara satu sama lain. Reka bentuknya menampung rangkaian dengan pelbagai sifat fizikal; ia tidak bergantung pada teknologi penghantaran dasar yang digunakan dalam Lapisan Pautan. Rangkaian Lapisan Pautan yang berlainan rekaan perkakasan biasanya berbeza tidak hanya dari segi kelajuan penghantaran, tapi juga dari segi struktur dan saiz kaedah pembingkaian sahnya, disifatkan oleh unit penghantaran maksimum (MTU). Untuk memenuhi peranan IP menerabas rangkaian, maka perlu dilaksanakan satu mekanisme untuk menyesuaikan ukuran unit penghantaran secara automatik supaya serasi dengan teknologi dasar. Ini memperkenalkan keperluan untuk penyerpihan dari datagram IP. Dalam IPv4, fungsi ini terletak di Lapisan Internet, dan dilakukan pada penghala IPv4, yang dengan demikian hanya memerlukan lapisan ini sebagai yang tertinggi dilaksanakan dalam rekaan mereka.
Sebaliknya, generasi Protokol Internet berikutnya, iaitu IPv6, tidak memerlukan penghala untuk melakukan penyerpihan, sebaliknya, hos harus menentukan MTU laluan sebelum penghantaran dan menghantar datagram penyelaras.
Penyerpihan
Apabila sesebuah peranti menerima sebuah paket IP, ia menyemak alamat destinasi dan menentukan antara muka keluar untuk digunakan. Antara muka ini mempunyai MTU berkaitan yang menentukan saiz data maksimum untuk muatannya. Jika MTU lebih kecil daripada saiz data, maka peranti berkenaan perlu menyerpihkan data terbabit.
Peranti tersebut kemudiannya mensegmenkan data itu menjadi segmen-segmen di mana setiap segmen adalah kurang-dari-atau-sama-dengan MTU kurang saiz header IP (20 bait minimum; 60 bait maksimum). Setiap segmen kemudian dimasukkan ke dalam pakek IPnya sendiri dengan perubahan berikut:
- Medan jumlah panjang diselaraskan kepada saiz segmen
- Bendera more fragments (MF) diset untuk semua segmen kecuali yang terakhir, yang diset kepada 0
- Medan ofset serpihan diset sewajarnya mengikut ofset serpihan berkenaan dalam muatan data asal. Ini diukur dalam unit blok lapan bait.
- Medan hasil tambah semak pengepala dikira semula.
Sebagai contoh, bagi pengepala IP dengan panjang 20 bait dan 1,500 bai MTU Ethernet, ofset serpihannya adalah : 0, (1480/8) = 185, (2960/8) = 370, (4440/8) = 555, (5920/8) = 740, dsb..
Kalau sesebuah paket menukar protokol lapisan pautan atau MTU berkurang, maka serpihan-serpihan ini akan diserpihkan lagi.
Contohnya, jika muatan data 4,500 bait disisipkan ke dalam sesebuah paket IP tanpa pilihan (menjadikan jumlah panjangnya 4,520 bait) dan dihantarkan menerusi sebuah link dengan MTU 2,500 bait, maka ia akan dipecahkan menjadi dua serpihan:
# | Jumlah Panjang | Set bendera More fragments (MF)? | Ofset serpihan | |
---|---|---|---|---|
Pengepala | Data | |||
1 | 2500 | Ya | 0 | |
20 | 2480 | |||
2 | 2040 | Tidak | 310 | |
20 | 2020 |
Sekarang, katakan MTU menurun kepada 1,500 bait. Setiap serpihan akan diceraikan kepada dua setiap satu::
# | Jumlah panjang | Set bendera More fragments (MF)? | Ofset serpihan | |
---|---|---|---|---|
Pengepala | Data | |||
1 | 1500 | Ya | 0 | |
20 | 1480 | |||
2 | 1020 | Ya | 185 | |
20 | 1000 | |||
3 | 1500 | Ya | 310 | |
20 | 1480 | |||
4 | 560 | Tidak | 495 | |
20 | 540 |
Tentu sekali, jumlah data telah dipelihara — 1480 + 1000 + 1480 + 540 = 4500 — dan ofset serpihan terakhir (495) * 8 (bait) tambah data — 3960 + 540 = 4500 — juga adalah jumlah panjangnya.
Perhatikan bahawa serpihan 3 dan 4 telah diterbikan daripada serpihan asal 2. Apabila sesebuah peranti harus menyerpihkan serpihan terakhir maka ia harus mensetkan bendera untuk semua serpihan diciptanya kecuali yang akhir (dalam kes ini, serpihan 4). Serpihan akhir diset kepada nilai 0.
Penghimpunan semula
Bila sesebuah penerima mengesan paket IP di mana salah satu daripada yang berikut ini benar:
- bendera "more fragments" diset
- medan "fragment offset" bukan sifar
maka penerima mengetahui paket tersebut adalah sebuah serpihan. Penerima kemudian menyimpan data tersebut dengan medan pengenalpastian, ofset serpihan, dan bendera more fragments (MF). Bila penerima menerima sebuah serpihan dengan bendera MF diset 0, maka ia tahu panjang muatan data asal kerana ofset serpihan didarabkan dengan 8 (bait) ditambah dengan panjang data sama dengan saiz muatan data asal.
Dengan contoh di atas, bila penerima menerima serpihan 4 ofset serpihan (495 atau 3960 bait) dan panjang data (540 bait) ditambah bersama-sama menghasilkan 4500 - panjang data asal.
Data dapat dihimpunkan semula dalam susunan yang benar (dengan menggunakan serpihan offset) setelah semua serpihan telah didapatkan dan menghantarnya ke tindanan untuk proses seterusnya.
Protokol pembantu
Protokol Internet merupakan protokol yang mentakrifkan dan membolehkan antara rangkaian pada Lapisan Internet dan seterusnya membentuk Internet. Ia menggunakan sistem pengalamatan logik. Alamat IP tidak terikat dari segi apapun kepada pengenalpastian perkakasan dan, semestinya, sesebuah antara muka rangkaian boleh memiliki lebih daripada satu alamat IP. Hos dan penghala memerlukan mekanisme tambahan untuk mengenal pasti hubungan antara antara muka peranti dan alamat IP, supaya dapat mengirim paket IP dengan betul ke hos destinasi pada sesebuah pautan. Protokol Peleraian Alamat (ARP) melakukan terjemahan alamat IP kepada alamat perkakasan (alamat MAC) ini untuk IPv4. Lagi, korelasi terbalik biasanya perlu, sebagai contoh, bila satu hos IP dibut atau disambung ke satu rangkaian, ia perlu menentukan alamat IPnya, melainkan sudah ada alamat yang ditatarajahkan oleh pentadbir. Protokol untuk korelasi songsang sebegini wujud dalam Suit Protokol Internet. Kaedah yang sekarang ini digunakan ialah Protokol Konfigurasi Hos Dinamik (DHCP) dan, yang jarang, inARP.
Lihat juga
- Rangkaian berkelas-kelas
- Classless Inter-Domain Routing
- Internet Assigned Numbers Authority
- IPv6
- Pendaftaran Internet Serantau
Catatan
- ^ Sebagai gurauan April Fool, diusulkan untuk digunakan dalam RFC 3514 sebagai "Evil bit".
Rujukan
- ^ http://technet.microsoft.com/en-us/library/cc779089%28WS.10%29.aspx
- ^ http://www.3com.com/other/pdfs/infra/corpinfo/en_US/501302.pdf
- ^ Hain, Tony. "IPv4 Address Pool, quarterly generated" (PDF). Dicapai pada 2007-07-01.
- ^ Huston, Geoff. "IPv4 Address Report, daily generated". Dicapai pada 2007-09-30.
Pautan luar
- https://www.iana.org — Internet Assigned Numbers Authority (IANA)
- http://www.networksorcery.com/enp/protocol/ip.htm — IP Header Breakdown, including specific options
- RFC 3344 — IPv4 Mobility
- IPv6 vs. carrier-grade NAT/squeezing more out of IPv4
- RIPE report on address consumption as of October 2003
- Official current state of IPv4 /8 allocations, as maintained by IANA
- Dynamically generated graphs of IPv4 address consumption with predictions of exhaustion dates—Geoff Huston
- IP addressing in China and the myth of address shortage
- Countdown of remaining IPv4 available addresses (anggaran)