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, 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 sunting

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 sunting

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 sunting

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 sunting

Blok-blok alamat simpanan
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 sunting

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 sunting

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 sunting

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 sunting

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 sunting

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 sunting

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 sunting

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]:

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:

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 sunting

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 sunting

Sesebuah paket IP terdiri daripada bahagian pengepala dan bahagian data.

Penggepala sunting

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 sunting

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:

Lihat Senarai nombor protokol IP untuk senarai yang lengkap.

Penyerpihan dan penghimpunan semula sunting

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 sunting

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 sunting

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 sunting

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 sunting

Catatan sunting

  1. ^ Sebagai gurauan April Fool, diusulkan untuk digunakan dalam RFC 3514 sebagai "Evil bit".

Rujukan sunting

  1. ^ http://technet.microsoft.com/en-us/library/cc779089%28WS.10%29.aspx
  2. ^ http://www.3com.com/other/pdfs/infra/corpinfo/en_US/501302.pdf
  3. ^ Hain, Tony. "IPv4 Address Pool, quarterly generated" (PDF). Dicapai pada 2007-07-01.
  4. ^ Huston, Geoff. "IPv4 Address Report, daily generated". Dicapai pada 2007-09-30.

Pautan luar sunting