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:

1. İstemcinin IP adresi, alt ağ maskesi ve varsayılan ağ geçidi adresi.
2. BOOTP sunucusunun IP adresi ve ana bilgisayar adı.
3. İş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, RFC 951 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.

| **Karşılaştırma için temel** | BOOTP | **DHCP** |
| --- | --- | --- |
| Otomatik yapılandırma | Mümkün değil sadece manuel konfigürasyonu 
destekler. | IP adreslerini otomatik olarak alır ve atar. |
| Geçici IP adresleme | Sağlanmadı | Sınırlı bir süre için sağlanmıştır. |
| Mobil makineler | IP Yapılandırması ve bilgi erişimi mümkün 
değildir. | Makinelerin hareketliliğini destekler. |
| Uygunluk | DHCP istemcileriyle uyumlu değil. | BOOTP istemcileri ile birlikte çalışabilir. |
| Hata oluşumu | Mannual konfigürasyon hatalara açıktır. | Otomatik yapılandırma, hatalara karşı 
bağışıklık kazanır. |
| Kullanım | Disksiz bilgisayara veya iş istasyonuna 
bilgi sağlar. | Bilgilerin saklanması ve iletilmesi için diskler gerekir. |

Tarihçe
-------

BOOTP ilk olarak Eylül 1985'te RFC 951'de, Haziran 1984'te RFC 903'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 alt ağdaki 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ı. RFC 1048'de tanıtılan satıcı uzantıları popülerdi ve yıllar içinde ek satıcı uzantıları tanımlandı; RFC 1048, arka arkaya RFC 1084, 1395 ve 1497 ile değiştirildi. Yıllar içinde, RFC 951'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* RFC 1542, 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ı. (RFC 1542 aslında içinde bazı küçük hatalar olan neredeyse aynı RFC 1532'nin bir düzeltmesidir.)

İlişkili RFC'ler
----------------

**BOOTP ile ilgili RFC'ler** (NOT: Grayed out RFCs are Obsolete)

| RFC # | Başlık | Tarih | Eski ve Güncel bilgi |
| --- | --- | --- | --- |
| RFC 3942 | Reclassifying Dynamic Host Configuration Protocol version 4 (DHCPv4) Options | Kas-04 | Updates RFC 2132 |
| RFC 2132 | DHCP Options and BOOTP Vendor Extensions | Mar-97 | Obsoletes RFC 1533, Updated by RFC 3442, RFC 3942, RFC 4361, RFC 4833, RFC 5494 |
| RFC 1542 | Clarifications and Extensions for the Bootstrap Protocol | Eki-93 | Obsoletes RFC 1532, Updates RFC 951 |
| RFC 1534 | Interoperation Between DHCP and BOOTP | Eki-93 |   |
| RFC 1533 | DHCP Options and BOOTP Vendor Extensions | Eki-93 | Obsoletes RFC 1497, RFC 1395, RFC 1084, RFC 1048, Obsoleted by RFC 2132 |
| RFC 1532 | Clarifications and Extensions for the Bootstrap Protocol | Eki-93 | Obsoleted by RFC 1542, Updates RFC 951 |
| RFC 1497 | BOOTP Vendor Information Extensions | Ağu-93 | Obsoletes RFC 1395, RFC 1084, RFC 1048, Obsoleted by RFC 1533, Updates RFC 951 |
| RFC 1395 | BOOTP Vendor Information Extensions | Oca-93 | Obsoletes RFC 1084, RFC 1048, Obsoleted by RFC 1497, RFC 1533, Updates RFC 951 |
| RFC 1084 | BOOTP vendor information extensions | Ara-88 | Obsoletes RFC 1048, Obsoleted by RFC 1395, RFC 1497, RFC 1533 |
| RFC 1048 | BOOTP vendor information extensions | Şub-88 | Obsoleted by RFC 1084, RFC 1395, RFC 1497, RFC 1533 |
| RFC 0951 | Bootstrap Protocol | Eyl-85 | Updated by RFC 1395, RFC 1497, RFC 1532, RFC 1542, RFC 5494 |

Kaynakça
--------

1. ↑  Personal Computer World, Feb 2005, pg 156 'Putting the Boot in'
2. 1 2 3  "Arşivlenmiş kopya". 28 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Mart 2023.
3. ↑  "BOOTP ve DHCP Arasındaki Fark". *tr.gadget-info.com*. 28 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Mart 2023.
4. ↑  "The TCP/IP Guide - BOOTP Overview, History and Standards". *www.tcpipguide.com*. 12 Eylül 2004 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Nisan 2023.

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 Diagram26 Şubat 2015 tarihinde Wayback Machine sitesinde arşivlendi. (PDF)
* Multicast BOOTP for configuring a network device from a workstation30 Aralık 2009 tarihinde Wayback Machine sitesinde arşivlendi.