ARP Nedir ?

ARP (Address Resolution Protocol) Nedir?

Adında anlaşılacağı gibi bir adres çözümleme protokolüdür. Peki nedir bu adres çözümleme? Nerede, ne amaçla kullanırız? Bu yazımda bunlardan bahsedeceğim.

LAN(Local Area Network) ‘da yani Yerel ağda bilgisayarlar birbirleriyle haberleşmek için birbirlerinin MAC adreslerine ihtiyacı duyarlar.MAC adresi nedir derseniz ; bilgisayarlarımız üzerinde birçok donanım mevcuttur , bunlardan bir taneside Ağ kartıdır. Bir ağa bağlanmak istediğimiz zaman bu ağ kartı aracılığıyla bağlanırız .İşte bu ağ kartalarının her birinin 48 bitlik bir adresi vardır.İşte biz bu adreslere MAC adresi diyoruz. Bu adresler her ağ kartı için farklıdır.

Örnek :

MAC adresleri üç farklı biçimde yazılabilirler.

  • 11:33:AA:BD:12:56
  • 22-44-BB-CE-23-67
  • 335.5CC.DF3.478

Bu adreslerin ilk 6 hanesi ağ kartını üreten firmayı gösterir.Son 6 hanesi ise o ağ kartına özgü diğer ağ kartlarından farklı olan bir numaradır.Cmd ekranına “ipconfig /all” komutunu girdiğimiz zaman MAC adresimizi görebiliriz.


 Bilgisayarlar yerelde haberleşmek için birbirlerinin MAC adreslerine ihtiyaç duyduğundan bahsettik , MAC adresinin ne olduğundan bahsettik, şimdi gelelim ARP‘ye.Örnek üzerinden anlatırsak daha anlaşılır olacağını düşünüyorum.

          PC-1 ve PC-2 adında iki bilgisayarımız olduğunu varsayalım ve bu bilgisayarlar yerel ağda haberleşmek istiyorlar, birbirlerini IP adreslerini biliyorlar fakat birbirlerinin MAC adreslerini bilmiyorlar.Ee haberleşmek için MAC adresi lazım, ne yapacaklar ? İşte tam bu noktada ARP devreye giriyor ve bilgisayarların birbirlerinin MAC adreslerini tesbit etmelerini sağlıyor. Nasıl yapıyor bu işi?

PC-1’i mizin ip adresi –> 192.168.2.34 , mac adresi –> 11:22:33:AA:BB:CC   olsun.

PC-2’i mizin ip adresi –> 192.168.2.35, mac adresi –> 33:4A:33:AB:BC:DE   olsun.

  • PC-1 : Öncelikle PC-1 ağa ARP istek paketi(ARP request packet) yollar  ve bir istekte bulunur  ” Merhaba ben 11:22:33:AA:BB:CC mac adresine sahip bilgisayarım bana IP adresi 192.168.2.35 olan bilgisayarın MAC adresi lazım ” der.

(Tabi bu istek bir genel yayın(Broadcast) olduğu için ağdaki tüm bilgisayarlara ulaşır ama istekteki IP sadace PC-2 ye ait olduğu için bu isteğide PC-2 cevaplar diğer bilgisayarlar cevaplamazlar.)

  • PC-2: Mesajı alan PC-2 de bir ARP cevabı(ARP reply) ile cevap verir “Mesajını aldım benim MAC adersim 33:4A:33:AB:BC:DE budur” der.

Böylelikle birbirlerinin MAC adreslerini öğrenmiş olurlar.Tabi bu öğrendikleri adresleri de her biligisayar kendi içinde ARP Tablosu(ARP Table) dediğimiz özel tablolarda tutarlar.Bu arda şunuda söylemden geçmeyelim , yukarıda demiştik ki bu yapılan istkeler genel yayın(Broadcast) dır bütün bilgisayarlara ulaşır.Bunun ne avantajı var örneğin ortamda PC-3 olsaydı , bu istekler PC-3 de ulaşacaktı ve oda ARP tablosuna bu bilgileri kayıt edecekti ve tekrar sorgulama yapmak zorunda kalmayacaktı.

Gelin şimdi bu işlemleri canlı bir sistem üzerinden inceleyelim.

İki tane PC’miz var.

PC-1 : Ip adres: 192.168.218.129 , Mac adresi : 00-0C-29-C0-7A-1B

PC-2 : Ip adres: 192.168.218.151 , Mac adresi : 00-0C-29-B5-D4-96

Şimdi PC-1 üzerindeki ARP tablosuna bakalım.Bunun için CMD ekranına ‘arp -a‘ yazıyoruz.

Şimdide PC-1 den PC-2 ye ping atalım ve sonuca bakalım.

Gördüğümüz gibi PC-2 nin IP ve Mac adresi , PC-1’in ARP tablosuna eklendi.

Şimdi birde wireshark programı üzerinde network trafiğini inceleyelim.

Gördüğümüz gibi 35. satırda PC-1 bir ARP isteği yayınlıyor ve 192.168.218.151 IP adresli bilgisayarın yani PC-2 nin Mac adresini soruyor. 36. satırda ise PC-2 , PC-1 in bu isteğine cevap veriyor ve MAC adresini söylüyor.

37-44 nolu satırlar arasındaki paketler PC-2 ye attığımız ping sonucu oluşan paketler . 45. satırda ise nu sefer PC-2 , PC-1 in mac adresini soruyor . 46. satırda da PC-1 , PC-2 inin yaptığı isteğe cevap veriyor.