# Komşu Saptama İletişim Kuralı
Komşu Keşfi Protokolü (Neighbor Discovery Protocol (NDP)) IPv6 ile kullanılan internet iletişim kuralları dizisinde bir protokoldur. Bağlantı katmanında çalışır (Link Layer) ve bağlantıdaki diğer düğümleri bulmak, diğer düğümlerin ağ katmanı adreslerine karar vermek, uygun routerlar bulmak ve diğer aktif komşu düğümlere yollar hakkında erişilebilirlik bilgisi sağlamakla yükümlüdür(RFC 4861, 2007).
IPv4'de Adres Çözümleme Protokolü (ARP), ICMP Yönlendirici Keşfi (Router Discovery - RDSISC) ve Yeniden Yönlendirme bileşenleri tarafından gerçekleştirilen görevler, IPv6'da NDP tarafından yapılır. Bununla birlikte, IPv4'teki karşılıklarına göre daha fazla gelişme içerir. (bkz RFC 4861, bölüm 3.1) Örneğin başarısız yönlendirici ya da bağlantıların varlığında paket sağlamlığını sağlayan Komşu Erişilememezlik Tespiti(Neighbor Unreachability Detection (NUD))'ni içerir. NDP, ARP'den bağlantı tipi daha bağımsızdır.


## Teknik ayrıntılar.
Komşu Keşfi Protokolü şu işlevsellikleri sağlamak için gerekli olan mekanizmayı tanımlar:
  - Yönlendirici Keşfi: hostlar bitişik bağlantılardaki yönlendiricilerin yerini belirleyebilir.
  - Önek Keşfi: hostlar bitişik bağlantılar için bağlı olan(on-link) adres öneklerini bulabilir.
  - Parametre Keşfi: hostlar internet parametrelerini bulabilir (MTU gibi).
  - Adres Otomatik Yapılandırması: bir arayüz için adreslerin yersiz(stateless) yapılandırması.
  - Adres Çözümlemesi: IP adreslerinin bağlantı-katmanı(link-layer) adresine eşlenmesi.
  - Sonraki-Durak(next-hop) Kararı: hostlar bir hedef için sonraki-durak yönlendiricileri bulabilirler.
  - Komşu Erişilememezlik Tespiti (Neighbor Unreachability Detection (NUD)): bağlantıdaki bir komşunun artık erişilemez olduğuna karar verir.
  - Çoklu Adres Tespiti (Duplicate Address Detection (DAD)): düğümler bir adresin kullanımda olup olmadığını kontrol edebilir.
  - Yeniden Yönlendirme: yönlendirici düğümü daha iyi ilk-durak(first-hop) hakkında bilgilendirebilir
NDP aşağıdaki beş farklı ICMPv6 paketini tanımlar:
  - Yönlendirici Talep Mesajı (Router Solicitation): Bu mesaj ağa bağlı yönlendiricilerin “Yönlendirici İlan” mesajlarını periyodik güncelleme zamanını beklemeden hemen yollamasını tetiklemek için yollanır.
  - Yönlendirici İlanı Mesajı(Router Advertisement): Ağa bağlı yönlendiriciler varlıklarını duyurmak ve ağa bağlanmak için gerekli parametreleri bildirmek için periyodik olarak ya da “Yönlendirici Talep Mesajı’na” cevaben “Yönlendirici İlan Mesajı” yayınlarlar.
  - Komşu Talep Mesajı (Neighbor Solicitation): Bu mesaj ağa bağlı tüm düğümler tarafından diğer düğümlerim bağlantı katmanı adreslerinin (link-layer) bulunması ve daha önceden iletişim kurulmuş ve bağlantı katmanı adresleri komşu tamponuna (neighbor cache) eklenmiş komşuların erişilebilirliğinin kontrol edilmesi amacıyla kullanılır.
  - Komşu İlan Mesajı (Neighbor Advertisement): Bu mesaj Komşu Talep mesajına cevap olarak ya da düğümde oluşan bağlantı katmanı adresi değişikliğinin ilan edilmesi amacıyla yayınlanır.
  - Yeniden Yönlendirme (Redirect): Bu mesaj yönlendiriciler tarafından düğümlere yollanır. Mesaj içeriğinde belirli bir hedef IPv6 adresi için daha iyi bir yönlendirme yolunun varlığının belirtilir.