Monday, May 25, 2020

Network Fundamentals: ARP protocol #BelajarJaringanKomputer

Jika Anda mengetahui tentang OSI model dan proses enkapsulasi/dekapsulasi, Anda tahu bahwa ketika dua komputer di LAN ingin saling berkomunikasi, hal berikut akan terjadi:

IP packet dibuat dengan Header yang berisi Source & Destination IP address, dan membawa data dari suatu aplikasi.
IP packet akan di-enkapsulasi dalam Ethernet frame dengan Source (pengirim) & Destination (tujuan) MAC address.

Komputer pengirim tentu saja akan tahu MAC address pengirim (diri sendiri) tetapi bagaimana cara mengetahui MAC address tujuan? Di situlah ARP berperan.


Pada gambar di atas, ada dua komputer, PC1 dan PC2 yang mempunyai IP address dan MAC address masing-masing.

Dari PC1, buka command prompt dan ketik:

C:\Users\PC1>ping 10.1.1.10

Pinging 10.1.1.10 with 32 bytes of data:
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128
Reply from 10.1.1.10: bytes=32 time<1ms TTL=128

Ping statistics for 10.1.1.10:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Sebelumnya kita telah membahas OSI model di tulisan ini dan kita juga tahu bahwa data harus melewati semua layer/lapisan.

Ping menggunakan protokol ICMP dan IP berada di Network Layer (layer 3). IP packet akan memiliki Source IP address 10.1.1.5 dan Destination IP address 10.1.1.10.
Langkah selanjutnya adalah menempatkan IP packet dalam Ethernet frame di mana terdapat Source MAC address dan Destination MAC address.

Nah ... bagaimana PC1 tahu tentang MAC address PC2? PC1 tahu IP address PC2 karena user mengetiknya (ping 10.1.1.10), tetapi tidak ada cara bagi PC1 untuk mengetahui MAC address PC2. Ada protokol lain yang digunakan untuk menyelesaikan masalah ini, protokol itu disebut ARP (Address Resolution Protocol).

Mari kita lihat lebih detail cara kerja ARP dan bagaimana fungsinya:


Dalam contoh ini, ada 2 komputer dengan IP address dan MAC address berbeda. PC1 akan ingin mengirim ICMP ping ke PC2. ARP-table kosong sehingga PC1 tidak tahu MAC address PC2. Hal pertama yang akan dilakukan PC1 adalah mengirimkan ARP-Request yang intinya mengatakan "Siapa yang memiliki 10.1.1.0 dan berapa MAC address-nya?"
Karena PC1 tidak tahu MAC address PC2, PC1 menggunakan alamat MAC broadcast sebagai tujuan (FFFF:FFFF:FFFF). ARP-Request ini akan menjangkau semua host di jaringan.

PC2 akan membalas dengan pesan ARP-Reply secara unicast (ditujukan hanya untuk PC1) yang intinya mengatakan "itu saya! Dan ini MAC address saya ”. PC1 sekarang dapat menambahkan MAC address ke ARP table. Setelah itu PC1 bisa mengirim data menuju PC2.

Hasilnya, ARP table di PC1 akan seperti ini:

C: Users\PC1> arp -a

Interface: 10.1.1.5 --- 0x14
  Internet Address      Physical Address      Type
  10.1.1.10                    f8-62-14-42-38-2e     dynamic

Pada contoh di atas, Anda melihat contoh tabel ARP pada PC1. Saat ini, PC1 telah mengetahui bahwa IP address 10.1.1.10 telah dipetakan ke MAC address f8-62-14-42-38-2e.

Kita bisa menangkap ARP packet menggunakan Wireshark:



Di atas, kita bisa melihat ARP-Request dari PC1 yang mencari MAC address dari IP PC2. Source MAC address adalah MAC PC1, Destination MAC address adalah "Broadcast" sehingga akan dikirim ke semua host di jaringan.

Paket kedua adalah ARP-Reply dari PC2. PC2 mengirim MAC address-nya ke PC1.


Penjelasan ARP versi video, bisa dilihat di: https://youtu.be/k4DfVCJOA4w?t=154

Kesimpulan:
  • ARP (Address Resolution Protocol) adalah protokol di OSI layer 3 (network) yang berfungsi utk mapping (memetakan) IP address ke MAC address. 
  • ARP melibatkan ARP-Request (broadcast) dan ARP-Reply (unicast).


Semoga tulisan dan video di atas bisa membantu dalam memahami protokol ARP.
Selamat belajar :)

-AHa-

#BelajarJaringanKomputer

No comments:

Post a Comment

Dasar-dasar Jaringan Komputer (Tulisan & Video)

Bagi yang ingin belajar jaringan komputer dari dasar, saya sarankan mengikuti link ini (ada versi tulisan dan video di dalamnya) #NetworkF...