Menyederhanakan Pengalamatan IP (bagian 2)

Ini kelanjutan artikel terdahulu dengan judul yang sama, tentang metode belajar pengalamatan IP secara sederhana (well, tapi “sederhana” memang relatif). Artikel aslinya terdiri dari 3 (tiga) halaman, jadi saya pikir lebih baik membuat tulisan adaptasinya secara terpisah.

Kali ini pembahasannya tentang netmasking. Namun sebelum itu, seperti biasa kita ulas dulu serba ringkas beberapa hal pendukungnya; mulai dari “operasi bitwise dengan AND”.

Operasi bitwise dengan operator logika AND adalah… well, operasi bitwise antara 2 (dua) bilangan biner dengan AND sebagai operatornya. Haha, sangat tidak jelas kan😀

Begini, operasi bitwise ialah operasi yang diterapkan terhadap satu atau lebih pola bits, atau terhadap bilangan biner; operasi dikenakan, atau diterapkan ke setiap bit individual dari pola atau bilangan biner tersebut. Lebih jelasnya, misal saja ada bilangan biner “10110010” dan ada juga “01100111“.

Nah, bila operasi bitwise dengan AND diterapkan, ini akan menjadi “10110010 AND 01100111“, dan dilakukan bit per bit sesuai urutannya. Anda tentu sudah mengetahui tentang operator logika AND. Perhatikan tabel kebenaran AND berikut ini.

+-------.--------------.-----------------+
|   A   |  Op. Logika  |   B   | Hasil   |
+-------+--------------+-------+---------+
|   0   |              |   0   | 0       |
|   0   |     AND      |   1   | 0       |
|   1   |              |   0   | 0       |
|   1   |              |   1   | 1       |
'-------'--------------'-----------------'
    Tabel kebenaran operator logika AND

Nah, berdasarkan tabel kebenaran di atas, mari kita coba susun kedua bilangan biner tadi. Kemudian terapkan operator AND bit per bit, yakni bit terkiri dari bilangan pertama di-AND-kan terhadap bit terkiri bilangan kedua, lalu bit berikutnya, berikutnya lagi dan seterusnya. Lakukan seperti ini:

1011 0010       -> 178 (desimal)
0110 0111       -> 103 (desimal)
-------- AND
0010 0010       ->  34 (desimal)

Cukup jelas dan mudah, kan. Bilangan pertama, “1011 0010” setara dengan “178” dalam sistem desimal, sedangkan yang kedua, “0110 0111” sama dengan “103“. Operasi bitwise dengan AND menghasilkan “0010 0010“, alias “34” desimal. Perhitungan bobot nilainya seperti ini:

(0x1) + (1x2) + (0x4) + (0x8) + (1x16) + (1x32) + (0x64) + (1x128) = 178

(1x1) + (1x2) + (1x4) + (0x8) + (0x16) + (1x32) + (1x64) + (0x128) = 103

Sebagai contoh kedua, mari kita amati bagaimana kalau sebuah angka dikenai operasi bitwise dengan AND, terhadap bilangan “255” (bagi yang belum sadar, 255 desimal berarti “1111 1111“).

1011 0010       -> 178 (desimal)
1111 1111       -> 255 (desimal)
--------- AND
1011 0010       -> 178 (desimal)

Rupanya, hasil yang diperoleh adalah angka (yang pertama) itu lagi. Demikianlah jadinya bila sebuah bilangan dan “255” dikenai operasi bitwise dengan operator AND.

Oke, sekarang netmasking. Apakah “mask” yang menjadi dasar istilah “netmasking” itu? Sederhananya, mask adalah data yang digunakan untuk melakukan operasi bitwise (apa pun operator logikanya). Secara umum tentu mudah menebak bahwa “netmasking” merupakan “mask-ing” yang terkait dengan “net” (jaringan, dan yang dimaksud di sini ialah jaringan komputer).

Sistem pengalamatan IP di level yang lebih detail telah membagi aspek yang diberi alamat menjadi 2 (dua), yaitu: “network” dan “host“. Jadi untuk IP “192.168.21.33” misalnya, ada bagian yang bertindak sebagai alamat bagi network dan ada yang sebagai alamat bagi host.

Bagian dari IP yang berperan sebagai alamat bagi network kita kenal dengan sebutan “network ID“, atau singkatnya “net ID“, kadang ditulis bersambung sebagai “netID“. Sementara itu, bagian dari IP yang berperan sebagai alamat untuk host kita sebut “host ID“, dan kadang ditulis sambung sebagai “hostID“. Dan netmasking adalah satu metode atau mekanisme untuk mengidentifikasi dan memisahkan bagian netID dan hostID.

Maka dengan netmasking, kita bisa mengidentifikasi, misalnya, dari alamat IP “192.168.21.33“, manakah yang netID dan mana yang hostID.

Mengapa perlu ada dua pemisahan seperti itu? Nah, untuk memahaminya, bandingkanlah dengan keadaan dunia nyata kita. Mengapa perlu ada pengelompokan RT, RW, desa, kota dan seterusnya? Mengapa kita tidak bisa memberi setiap rumah atau bangunan dengan nomor urut saja? Satu nomor unik bagi setiap rumah, bangunan, lokasi atau apa pun juga.

Mengapa tidak? Tentu saja tidak bisa, sebab metode demikian sangat sulit dan tidak praktis diterapkan. Ingat dan sadarilah lagi, bahwa IP adalah angka, dan angka ini terbatas. Apabila kita menerapkan cara demikian itu, maka IP versi 4 yang hanya 32 bit itu hanya akan bisa mencakup 4.294.967.296 atau 2 pangkat 32,  ini jumlah yang jelas tidak cukup untuk mengalamati seluruh komputer.

Oleh karena itu, agar jumlah yang terbatas tersebut bisa efisien, selain pembagian / pemisahan antara netID dan hostID tadi, alamat IP juga dibagi menjadi blok-blok, atau kelas-kelas. Setiap kelas sudah ditentukan sekup atau lingkup pemakaiannya. Daftar di tabel berikut ini menerangkan tentang kelas-kelas tersebut beserta netmasknya.

+-------.-----------.-----------.-----------------.-------------------------.-------------+
| Kelas | Byte per- |   Mulai   |    Berakhir     | Subnet mask default dlm | Notasi CIDR |
|       | tama      |           |                 | format dotted decimal   |             |
+-------+-----------+-----------+-----------------+-------------------------.-------------+
|   A   | 0000 0000 | 0.0.0.0   | 127.255.255.255 | 255.0.0.0               | /8          |
|   B   | 1000 0000 | 128.0.0.0 | 191.255.255.255 | 255.255.0.0             | /16         |
|   C   | 1100 0000 | 192.0.0.0 | 223.255.255.255 | 255.255.255.0           | /24         |
|   D   | 1110 0000 | 224.0.0.0 | 239.255.255.255 | N/D                     | N/D         |
|   E   | 1111 0000 | 240.0.0.0 | 255.255.255.254 | N/D                     | N/D         |
'-------'-----------'-----------'-----------------'-------------------------'-------------+
                          Tabel Range kelas-kelas IP standar
N/D  = not defined
CIDR = Classless Inter-Domain Routing

Sebagaimana sudah disinggung tadi, netmask berguna untuk mengidentifikasi netID dan hostID. Apabila sebuah alamat IP dikenakan operasi bitwise AND dengan netmask defaultnya, maka kita akan memperoleh alamat network, atau netID.

Misalnya saja, alamat IP kelas A, “10.0.1.23“. Lakukan operasi bitwise AND dengan netmask defaultnya, yakni “255.0.0.0” seperti berikut ini.

0000 1010 . 0000 0000 . 0000 0001 . 0001 0111      -> 10.0.1.23
1111 1111 . 0000 0000 . 0000 0000 . 0000 0000      -> 255.0.0.0
--------------------------------------------- AND
0000 1010 . 0000 0000 . 0000 0000 . 0000 0000      -> 10.0.0.0

Hasilnya, “10.0.0.0“, ini adalah netID bagi alamat tersebut.

Satu byte pertama akan menjadi “kepala” netID apabila kita lakukan operasi bitwise AND antara sebuah IP kelas A dengan netmask defaultnya.

Sementara itu, dua byte pertama akan menjadi “kepala” netID kalau kita lakukan operasi bitwise AND antara sebuah IP kelas B dengan netmask defaultnya.

Bagi kelas IP standar, “ekor” netID adalah angka nol semua, seperti yang bisa kita amati dari contoh tadi.

Selanjutnya bisa kita ketahui bahwa di kelas A, tiga byte berikutnya bertindak sebagai hostID. Serupa dengan itu, dua byte terakhir dari alamat IP kelas B adalah hostID.

Apabila netID kita singkat sebagai “N” dan hostID sebagai “H“, maka format umum yang berlaku di kelas A adalah “N.H.H.H“, dan di kelas B berlaku “N.N.H.H” ( bagi kelas C tentu saja “N.N.N.H“)

Apa yang bisa disimpulkan dari format umum di atas?

Karakteristik kelas A adalah, jumlah network sedikit, jumlah host per network sangat banyak / besar. Kelas B memperlihatkan rasio yang seimbang. Sementara itu di kelas C, situasinya berkebalikan dengan kelas A, yakni jumlah network sangat banyak, tapi jumlah host per networknya sedikit.

Kesepakatan, atau konsensus umum yang berlaku adalah, IP kelas A dan B disediakan untuk “IP publik“, yakni IP statis, atau IP tetap bagi komputer atau perangkat jaringan yang online terus menerus serta dimaksudkan agar bisa diakses secara global (dalam arti, “dari mana saja”).

Selain klasifikasi atau pengelompokan berbentuk kelas-kelas, alamat IP blok tertentu ditetapkan untuk keperluan khusus atau keperluan tersendiri; kita menyebutnya “reserved IPaddresses” dan bisa dilihat daftarnya di artikel ini.

Untuk mengakhiri topik ini, ingat lagi peran dan tujuan netmasking tadi. Tanpa adanya netmasking, kita terpaksa mengalokasikan satu per satu alamat IP yang jumlahnya “hanya” 4 (empat) milyar sekian itu. Kita kesulitan untuk membagi atau memisahkan sekian milyar itu ke sub-sub network, padahal pembagian dan pemisahan itu sangat penting dan tidak terhindarkan (misalnya, memisahkan network sebuah perusahaan dari network perusahaan lainnya).

Dengan netmasking, kita bisa memanipulasi alamat IP, mengubah-ubah atau “menggeser” bagian netID dan hostIDnya. Ini konsep dasar menuju subnetting yang insya Allah dibahas di artikel berikutnya. Sementara ini, fahami dulu dasar perhitungan dan operasi bitwise tadi serta arti pentingnya sebuah netmask.

Sampai jumpa di artikel selanjutnya🙂

Bahan / sumber bacaan:

  1. Artikel Wikipedia Inggris tentang operasi bitwise.
  2. Artikel Wikipedia Inggris tentang “mask“.
  3. Artikel Wikipedia Inggris tentang referensi subnetting IPv4.
  4. Artikel Wikipedia Inggris tentang alamat IPv4 yang dicadangkan untuk keperluan khusus.
  5. Artikel Linux Journal berjudul “Simplified IP Addressing” halaman 2.

Creative Commons LicenseMenyederhanakan Pengalamatan IP (bagian 2) by Fathoni Wahyu Utama is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s