Adres Çözümleme Protokolü

ARP İstek Paketi Gönderilmesi

Bir paketin yerel ağda başka bir bilgisayara gönderilebilmesi için IP adresinin yanında donanım adresinin de bilinmesi gerekir. Kaynak sistem, iletişim yapmak istediği hedef sistemin fiziksel adresini (MAC addresi) öğrenmek amacıyla yerel ağdaki tüm bilgisayarlara özel bir istek yollar. Bu isteğe ARP İsteği denmektedir. ARP isteği ( İngilizce: ARP request ) çerçevesinin kaynak MAC adresi bölümünde ARP isteğini yapan bilgisayarın MAC adresi ve çerçevenin hedef MAC adresi bölümünde ise FF-FF-FF-FF-FF-FF adresi yer alır. Bu çerçeveyi alan anahtar (switch), almış olduğu bu ARP isteği paketini tüm portlarına gönderir. ARP isteğinin içerisinde hedef sistemin IP adresine ait olan fiziksel adres (MAC adres) sorulmaktadır. Anahtara bağlı olan tüm bilgisayarlar bu ARP isteğini alırlar. Sorulan IP adresi kendilerine aitse bu ARP isteğine, ARP Reply ile cevap verirler. "ARP Reply" cevabı kaynak bilgisayara yine anahtar tarafından ulaştırılır. Bu şekilde kaynak bilgisayar hedef bilgisayarın MAC adresini öğrenmiş olur. Bundan sonraki iletişim anahtarın anahtarlama tablosu (switching table) üzerinden gerçekleştirilir.
Bazı düğümler fiziksel adres öğrenme süreçlerini azaltmak için, diğer sistemlerin ARP sorgulamalarını sürekli dinleyerek kendi ARP tablolarını güncel tutabilirler. Böylece kendisi daha önce herhangi bir aktarım yapmasa bile, diğer sistemlerin IP-fiziksel adres dönüşüm bilgisine sahip olurlar.

ARP Çerçeve Formatı

Gerekli durumlardaki mesajlaşmalarda kolaylık sağlaması için bir ARP mesaj yapısı oluşturulmuştur. Bu mesaj yapısı herhangi bir protokol için fiziksel/donanım adres çözümlemesi amaçlasa da genelde IP ağlarında MAC adreslerine ulaşmak için kullanılır.
Donanım Adres Tipi

Her bir veri hattı katman protokolüne bu alanda kullanması için verilen numara. Örneğin Ethernet 1.
Protokol Adres Tipi

Her bir protokole bu alanda kullanılması için verilen numara. Örneğin, IP 0x0800.
Donanım Adres Uzunluğu

Donanım adresinin byte cinsinden uzunluğunu gösterir. Ethernet adresi 6 byte uzunluğundadır.
Protokol Adres Uzunluğu

Logical Adresin byte cinsinden uzunluğu. IPv4 adresi 4 byte uzunluğundadır.
Operasyon

Gönderen belirli operasyonları sergiler: istek için 1, cevap için 2, RARP isteği için 3 ve RARP cevap için 4.
Gönderen Donanım Adresi
 
Donanım adres gönderici.
Gönderen Protokol Adresi

Protokol adres gönderici.
Hedef Donanım Adresi

Alıcıya yönelik donanım adresi. Bu alanda istekler önemsenmez. Bir istek mesaji gönderilirken Varış Donanım Adresi’nin tamamı sıfır yapılır.
Hedef Protokol Adresi

Alıcıya yönelik protokol adresi.

ARP Mesajının İşlenmesi

Bir IP paketi gönderilmeden önce Ethernet ağlarında iki paket daha aktarılır ve paketin gönderileceği düğümün fiziksel adresi bulunur. Bu işlemi aynı varış düğümüne gidecek paketler için tekrar tekrar yapmak anlamsızdır. Bu nedenle bir IP_adresi-Donanım_adresi eşlemesi yapıldığında bu bilgi bir süre ARP cep belleğinde tutulur. Belli bir süre kullanılmamış adresler, bellekte yer sorunu varsa silinir.
Bir ARP mesajı alan düğüm aşağıdaki işlemleri gerçekleştirir
1)Mesajın geldiği düğümün IP adresi ve MAC adresilerinin ARP cep belleğinde olup olmadığının testi yapılır. 
Varsa eski donanım adresinin yerine, gelen mesajdaki donanım adresi yazılır.
2)Mesajın operasyon bölümüne bakılır. 

Bu bölüm istek mesajı ise bir cevap mesajı hazırlanır. Cevap mesajında, gelen mesajdaki gönderen ve varış adreslerinin yerleri değiştirilir. Gönderen donanım adresi bölümüne mesajı hazırlayan bilgisayarın donanım adresi yazılır. Operasyon alanına, 2 değeri verilir.

Bu bölüm cevap mesajı ise daha önce istek gönderilmiş olup gelen bilgiler cep belleğe eklenir.
Yayınlanan tüm ARP mesajlarındaki verilerin ARP cep belleğine konması, cep belleğin kısa sürede dolmasına neden olur. Bu nedenle, bilgisayarlar sadece kendilerini hedef alan ARP mesajları ile ilgilenirler.

Reverse Address Resolution Protocol - RARP

RARP, yeni çalıştırılmış (new-booted) bilgisayarların Ethernet adreslerini ağa duyurması ve kendi IP adresini sormasını sağlar. Bunlar disksiz bilgisayarlardır ve bu bilgisayarlar için RARP sunucusu bu sorulara cevap verir. IP adres istekleri, yerel alan ağı dışına çıkamadığı için isteklerin oluştuğu yerel alan ağlarında bir RARP sunucusu olması gerekir. Bu sorunu çözmek için
alternatif bir başlangıç protokolü (bootstrap) önerilmiştir: BOOTP.
BOOTP, UDP mesajları ile haberleşir bu nedenle yerel alan ağlarını geçebilir. BOOTP’nin detayları RFC 951,RFC 1048 ve RFC 1084’te verilmiştir. BOOTP’nin dezavantajı IP ve Ethernet adres eşlemesinin manuel olarak yapılmasıdır.
ARP ve RARP birbirinden farklı işlemlerdir. ARP her sunucunun kendi donanım adresi ve protokol adresi arasındaki haritalamayı bildiğini farzeder. Diğer sunucular hakkında edinilen bilgi küçük bir bellekte tutulur. Bütün sunucular eşit statüdedir. İstemci ve sunucu arasında hiçbir ayrım yoktur. RARPde ise durum farklıdır. İstemcilerden gelen istekleri cevaplamak ve protokol adresinden donanım adresine veri tabanı haritalanması için daha fazla sunucuya gereksinim duyar.