BOOTP

Bilgisayar ağları konusunda geçen **Önyükleme Protokolü** veya **BOOTP**, bir yapılandırma sunucusundan bir IP adresi almak için bir ağ istemcisi tarafından kullanılan bir ağ protokolüdür. BOOTP protokolü ilk olarak RFC 951 içerisinde tanımlanmıştı.

BOOTP genellikle bir bilgisayar açılıyorken önyükleme işlemi esnasında kullanılır. BOOTP yapılandırma sunucusu bir adres havuzundan her bir istemciye bir IP adresi tahsis eder. BOOTP yalnızca IPv4 ağları üzerinde taşınan User Datagram Protocol (UDP) kullanır.

Geçmişte BOOTP, diski olmayan Unix benzeri iş istasyonları için bir IP adresi almak ve buna ek olarak bu istasyonlara ait önyükleme imajlarının ağdaki konumunu elde etmek için kullanılmıştı. Ayrıca şirketler tarafından, önceden yapılandırılmış bir istemci (örneğin Windows) kurulumunu yeni kurulmuş bilgisayarlara bellekten yollamak için kullanılıyordu.

Başlangıçta, ilk ağ bağlantısını kurmak için bir önyükleme disketinin kullanılması geriyordu. Daha sonra ağ kartı üreticileri, protokolü hem arayüz kartlarının BIOS'ları içerisine hem de yerleşik ağ adaptörlü sistem kartlarına gömdüler. Böylece doğrudan ağ önyüklemesine imkân sağlandı.

Son zamanlarda, diski olmayan bağımsız ortam merkezi bilgisayarlarına ilgi gösteren kullanıcılar, bir Windows işletim sisteminin bu yöntemle önyüklenmesine ilgi duymaya başladılar.

Dinamik Konak Yapılandırma Protokolü (DHCP) aynı amaç için daha gelişmiş bir protokoldür ve BOOTP kullanımının yerini almıştır. Çünkü birçok DHCP sunucusu BOOTP desteği de sunmaktadır.

## Özellikleri

* DHCP'den önce tasarlanmıştır.
* Genellikle bilgisayarların veya işletim sisteminin önyükleme işleminde yapılan ağ istemcilerine otomatik olarak bir IP adresi atar.
* IP ağlanı üzerinden ve UNIX tabanlı disksiz iş istasyonları tarafından uzaktan önyükleme için kullanılır.
* Sağlayıcı uzantıların adı verilen sınırlı sayıda istemci yapılandırma parametresini destekler.

## Çalışma Prensipleri

; Durum 1
: İstemci ve sunucu aynı ağda ise

Bir BOOTP istemcisi başlatıldığında, bir IP adresi yoktur, bu yüzden ağa MAC adresini içeren bir mesaj yayınlar. Bu mesaj "BOOTP isteği" olarak adlandırılır ve BOOTP sunucusu tarafından alınır. Sunucu istemciye aşağıdaki bilgileri içeren yanıt verir:

# İstemcinin IP adresi, alt ağ maskesi ve varsayılan ağ geçidi adresi.
# BOOTP sunucusunun IP adresi ve ana bilgisayar adı.
# İşletim sistemini yüklemek için istemcinin ihtiyaç duyduğu önyükleme görüntüsüne sahip sunucunun IP adresi.

İstemci, bu bilgileri BOOTP sunucusundan aldığında, TCP/IP protokol yığını'nı yapılandırır ve başlatır ve ardından önyükleme görüntüsünün paylaşıldığı sunucuya bağlanır. İstemci, önyükleme görüntüsünü yükler ve bu bilgileri kullanarak işletim sistemini yükler ve başlatır.

Dinamik Ana Bilgisayar Yapılandırma Protokolü (DHCP), BOOTP'nin bir uzantısı olarak geliştirilmiştir. BOOTP,  ve 1084'te tanımlanmıştır.

### Durum 2
İstemci ve sunucu farklı ağda ise

1.Bootp isteğiyle ilgili sorun, isteğin yayınlanmasıdır. Bir yayın IP datagramı herhangi bir yönlendiriciden geçemez. Yönlendirici bu paketi atar.

2. Bu sorunu çözmek için bir aracıya (relay) ihtiyaç vardır.

3. Ana bilgisayardan veya yönlendiriciden biri, geçiş aracısı olarak çalışacak şekilde uygulama katmanında yapılandırılabilir.

4. Aktarma aracısı, bootp sunucusunun tek noktaya yayın adresini bilir ve 67 numaralı bağlantı noktasında yayın iletisini dinler.

5. Bu yayın paketini aldığında, iletiyi tek noktaya yayın datagramında saklar ve isteği bootp sunucusuna gönderir.

6. Tek noktaya yayın hedef adresini taşıyan paket herhangi bir yönlendirici tarafından yönlendirilir ve bootp sunucusuna ulaşır.

7. Aktarma aracısı, yanıtı aldıktan sonra onu bootp istemcisine gönderir.

## BOOTP ve DHCP Protokollerinin Karşılaştırılması
BOOTP açıkça oldukça başarılı olsa da, kendine ait bazı zayıflıkları da vardı. *Bunlardan en önemlilerinden biri, dinamik* adres atama desteğinin olmamasıdır. İnternet gerçekten 90'ların sonlarında yükselmeye başladığında, dinamik atama ihtiyacı çok daha belirgin hale geldi. Bu, doğrudan Dinamik Ana Bilgisayar Yapılandırma Protokolünün (DHCP) geliştirilmesine yol açtı.

BOOTP ve DHCP arasındaki temel fark, BOOTP'nin IP adreslerinin statik yapılandırmasını desteklerken, DHCP dinamik yapılandırması desteklenmesidir.DHCP'nin internete bağlı bilgisayarın IP adreslerini otomatik olarak atar ve alır ve ayrıca bazı ek özelliklere sahiptir.

## Tarihçe
BOOTP ilk olarak Eylül 1985'te 'de, Haziran 1984'te 'te yayınlanan Ters Adres Çözümleme Protokolü rarp'nin yerine tanımlandı. Rarp'yi BOOTP ile değiştirmenin birincil motivasyonu, rarp'nin bir bağlantı katmanı protokolü olmasıdır. Bu, birçok sunucu platformunda uygulamayı zorlaştırdı ve her bir IP alt ağında bir sunucunun bulunmasını gerektirdi. BOOTP, bir merkezi BOOTP sunucusunun birçok  ana bilgisayarlara hizmet verebilmesi için standart IP yönlendirmesini kullanarak yerel ağdan BOOTP paketlerini ileten geçiş aracılarının yeniliğini tanıttı.

BOOTP, 1980'lerin ortasından 1990'ların sonuna kadar tercih edilen TCP/IP ana bilgisayar yapılandırmasıydı. 'de tanıtılan satıcı uzantıları popülerdi ve yıllar içinde ek satıcı uzantıları tanımlandı; , arka arkaya , 1395 ve 1497 ile değiştirildi. Yıllar içinde, 'in bazı bölümlerinin nasıl yorumlanması gerektiği ve BOOTP'nin belirli özelliklerinin nasıl çalıştığı konusunda bazı kafa karışıklıkları da ortaya çıktı.

*Önyükleme Protokolü için Açıklamalar ve Uzantılar olan* , bunu ele almak için Ekim 1993'te yayınlandı ve ayrıca protokolün işleyişinde bazı küçük değişiklikler yaptı. ( aslında içinde bazı küçük hatalar olan neredeyse aynı 'nin bir düzeltmesidir.)

## İlişkili RFC'ler
**BOOTP ile ilgili RFC'ler** (NOT: Grayed out RFCs are Obsolete)

RFC #BaşlıkTarihEski ve Güncel bilgi
RFC 3942Reclassifying Dynamic Host Configuration Protocol version 4 (DHCPv4) OptionsKas-04Updates RFC 2132
RFC 2132DHCP Options and BOOTP Vendor ExtensionsMar-97Obsoletes RFC 1533, Updated by RFC 3442, RFC 3942, RFC 4361, RFC 4833, RFC 5494
RFC 1542Clarifications and Extensions for the Bootstrap ProtocolEki-93Obsoletes RFC 1532, Updates RFC 951
RFC 1534Interoperation Between DHCP and BOOTPEki-93&nbsp;
RFC 1533DHCP Options and BOOTP Vendor ExtensionsEki-93Obsoletes RFC 1497, RFC 1395, RFC 1084, RFC 1048, Obsoleted by RFC 2132
RFC 1532Clarifications and Extensions for the Bootstrap ProtocolEki-93Obsoleted by RFC 1542, Updates RFC 951
RFC 1497BOOTP Vendor Information ExtensionsAğu-93Obsoletes RFC 1395, RFC 1084, RFC 1048, Obsoleted by RFC 1533, Updates RFC 951
RFC 1395BOOTP Vendor Information ExtensionsOca-93Obsoletes RFC 1084, RFC 1048, Obsoleted by RFC 1497, RFC 1533, Updates RFC 951
RFC 1084BOOTP vendor information extensionsAra-88Obsoletes RFC 1048, Obsoleted by RFC 1395, RFC 1497, RFC 1533
RFC 1048BOOTP vendor information extensionsŞub-88Obsoleted by RFC 1084, RFC 1395, RFC 1497, RFC 1533
RFC 0951Bootstrap ProtocolEyl-85Updated by RFC 1395, RFC 1497, RFC 1532, RFC 1542, RFC 5494


## Kaynakça

## Bunlara da bakın
* Preboot Execution Environment (PXE)
* UDP Helper Address — a tool for routing BOOTP requests across subnet boundaries

## Dış bağlantılar
* BOOTP Sequence Diagram (PDF)
* Multicast BOOTP for configuring a network device from a workstation