---
title: 'IPv4 Adresleme'
source: 'https://academia.sh/tr/kurslar/ag-modelleri/ipv4-adresleme'
course: 'Ağ Modelleri ve Protokoller'
language: tr
updated: '2026-08-17T18:07:09+00:00'
license: 'CC BY-SA 4.0'
---

# IPv4 Adresleme

32 bitlik adresin yapısı, ağ ve düğüm bölümlerinin ayrımı, sınıflı adreslemenin mirası ve özel amaçlar için ayrılmış bloklar.

Önceki iki ders IP adreslerini bir etiket gibi kullandı: `192.168.10.196` yazıldı, hangi
cihazı gösterdiği söylendi, ama sayının kendisi çözümlenmedi. Oysa bu sayının içinde
yönlendirmenin dayandığı bir yapı vardır.

Bu dersin sorusu, o yapının ne olduğudur: 32 bitin hangi bölümü ağı, hangi bölümü o ağdaki
düğümü gösterir ve bu bölünme kim tarafından belirlenir?

## Adresin Yapısı

Bir IPv4 adresi **32 bitlik işaretsiz bir tam sayıdır**. Okunabilirlik için dört bayta
bölünüp her bayt ondalık yazılır ve aralarına nokta konur — buna **noktalı ondalık gösterim**
denir. Gösterim bir kolaylıktır; adresin kendisi bir bit dizisidir.

```python
import ipaddress

adres = ipaddress.ip_address("192.168.10.196")
print("tam sayı  :", int(adres))
print("ikilik    :", format(int(adres), "032b"))
print("bayt bayt :", " ".join(f"{b:08b}" for b in adres.packed))
print("onaltılık :", adres.packed.hex())
```

```
tam sayı  : 3232238276
ikilik    : 11000000101010000000101011000100
bayt bayt : 11000000 10101000 00001010 11000100
onaltılık : c0a80ac4
```

Dört baytın karşılıkları doğrudan okunur: `11000000` = 192, `10101000` = 168, `00001010` =
10, `11000100` = 196. Taban dönüşümleri, Bilgisayarlar Nasıl Çalışır kursundaki İkilik Sayı
Sistemi ve Onaltılık ve Sekizlik Tabanlar derslerinde kurulan yöntemin doğrudan
uygulanmasıdır.

Toplam adres sayısı $2^{32} = 4\,294\,967\,296$'dır. Bu sayının, dünyadaki uca bağlı cihaz
sayısı karşısında yetersiz kalması, bu kursta ele alınan birçok mekanizmanın — adres
dönüştürme, değişken uzunluklu alt ağlar, IPv6 — varlık nedenidir.

## Ağ ve Düğüm Bölümü

Adres tek parça bir kimlik değildir; **iki bölüme** ayrılır:

- **Ağ bölümü (network portion):** Soldaki bitler. Adresin hangi ağa ait olduğunu söyler.
  Aynı ağdaki tüm adreslerde aynıdır.
- **Düğüm bölümü (host portion):** Sağdaki bitler. Adresi o ağ içinde ayırt eder.

Bölünme noktası **önek uzunluğu (prefix length)** ile belirtilir ve adresin sonuna eğik
çizgiyle yazılır: `192.168.10.196/24` gösteriminde soldaki 24 bit ağı, kalan 8 bit düğümü
belirtir.

| Gösterim | Ağ bölümü | Düğüm bölümü |
|---|---|---|
| `192.168.10.196/24` | `11000000 10101000 00001010` | `11000100` |
| `192.168.10.196/27` | `11000000 10101000 00001010 110` | `00100` |

Aynı adres, farklı önek uzunluklarıyla farklı ağlara ait olur. Bu, çok önemli bir sonuç
doğurur: **bir adres tek başına eksik bilgidir.** Bir arayüzü yapılandırmak için adres ve
önek uzunluğu birlikte verilmelidir; ikisinden biri eksikse hangi hedeflerin yerel olduğu
belirlenemez.

Bölünmenin yönlendirmedeki karşılığı doğrudandır. Yönlendiriciler tek tek düğümleri değil,
**ağları** bilir. Yönlendirme tablosundaki bir satır, bir önek ile bir sonraki sekmeyi
eşler; tablo satır sayısı düğüm sayısıyla değil, ağ sayısıyla orantılıdır. Adresleri
hiyerarşik dağıtmanın nedeni budur.

## Sınıflı Adreslemenin Mirası

IPv4 adresleri başlangıçta **sınıflara** ayrılmıştı: ağ ile düğüm arasındaki sınır, adresin
ilk bitlerine bakılarak belirlenirdi.

| Sınıf | İlk bitler | Adres aralığı | Ağ bölümü | Ağ başına düğüm |
|---|---|---|---|---|
| A | `0` | 0.0.0.0 – 127.255.255.255 | 8 bit | 16 777 214 |
| B | `10` | 128.0.0.0 – 191.255.255.255 | 16 bit | 65 534 |
| C | `110` | 192.0.0.0 – 223.255.255.255 | 24 bit | 254 |
| D | `1110` | 224.0.0.0 – 239.255.255.255 | Çok noktaya gönderim | — |
| E | `1111` | 240.0.0.0 – 255.255.255.255 | Ayrılmış | — |

Bu düzenin iki kusuru vardı. Birincisi, sınırın yalnızca üç değer alabilmesi adres israfına
yol açıyordu: 300 düğümlük bir kuruluşa C sınıfı yetmez, B sınıfı verildiğinde 65 234 adres
boşa gider. İkincisi, yönlendirme tablolarının boyutu denetlenemiyordu: her ağ ayrı bir
satır gerektiriyor, satırlar birleştirilemiyordu.

Çözüm, sınırı adresten bağımsız kılmaktı. **Sınıfsız alanlar arası yönlendirme (classless
inter-domain routing, CIDR)** ile önek uzunluğu adresle birlikte açıkça taşınır ve 0 ile 32
arasında herhangi bir değer alabilir. Sınıflar artık adres tahsisinde kullanılmaz; ancak
bıraktıkları izler sürer — bazı araçların varsayılan maske önerileri ve bazı belgelerdeki
"C sınıfı ağ" ifadesi bu mirastandır.

Bu kurs sınıfsız gösterimi esas alır. Sınıf adları yalnızca tarihsel bağlam için anılır.

## Özel Amaçlı Bloklar

Adres uzayının bir bölümü, genel İnternet'te yönlendirilmemek üzere ayrılmıştır.

| Blok | Amaç | Genel İnternet'te yönlendirilir mi |
|---|---|---|
| `10.0.0.0/8` | Özel kullanım | Hayır |
| `172.16.0.0/12` | Özel kullanım | Hayır |
| `192.168.0.0/16` | Özel kullanım | Hayır |
| `127.0.0.0/8` | Geri döngü (kendi makinesi) | Hayır |
| `169.254.0.0/16` | Yerel bağlantı (adres alınamadığında) | Hayır |
| `100.64.0.0/10` | Sağlayıcı düzeyi adres dönüştürme | Hayır |
| `224.0.0.0/4` | Çok noktaya gönderim | Koşullu |
| `255.255.255.255` | Sınırlı yayın | Hayır |
| `192.0.2.0/24`, `198.51.100.0/24`, `203.0.113.0/24` | Belgeleme | Hayır |

Üç **özel kullanım (private use)** bloğu, kurum içi ağlarda serbestçe kullanılabilir. Farklı
kurumlar aynı özel adresleri aynı anda kullanabilir; çakışma olmaz, çünkü bu adresler
kurumun dışına çıkmaz. Dışarıya çıkış, adres dönüştürme ile sağlanır ve NAT ve PAT dersinin
konusudur.

**Geri döngü (loopback)** bloğu makinenin kendisini gösterir; bu bloğa gönderilen paket
hiçbir zaman ağ arayüzüne ulaşmaz. **Yerel bağlantı (link-local)** bloğu, bir arayüz adres
alamadığında kendi kendine seçtiği geçici adres içindir; bu adresle yalnızca aynı ağdaki
diğer cihazlara erişilir.

Belgeleme blokları, bu kursta genel adres gerektiren tüm örneklerde kullanılır. Kurumun dış
adresi `203.0.113.10`, hedef sunucu `198.51.100.20` bu bloklardandır.

```python
import ipaddress

for metin in ("10.0.0.1", "127.0.0.1", "169.254.7.3", "224.0.0.251",
              "192.168.10.196", "198.51.100.20"):
    a = ipaddress.ip_address(metin)
    print(f"{metin:16s} özel={str(a.is_private):5s} geri_döngü={str(a.is_loopback):5s} "
          f"yerel_bağlantı={str(a.is_link_local):5s} çok_noktalı={a.is_multicast}")
```

```
10.0.0.1         özel=True  geri_döngü=False yerel_bağlantı=False çok_noktalı=False
127.0.0.1        özel=True  geri_döngü=True  yerel_bağlantı=False çok_noktalı=False
169.254.7.3      özel=True  geri_döngü=False yerel_bağlantı=True  çok_noktalı=False
224.0.0.251      özel=False geri_döngü=False yerel_bağlantı=False çok_noktalı=True
192.168.10.196   özel=True  geri_döngü=False yerel_bağlantı=False çok_noktalı=False
198.51.100.20    özel=True  geri_döngü=False yerel_bağlantı=False çok_noktalı=False
```

Son satır dikkat ister: `198.51.100.20` bir belgeleme adresidir, özel kullanım bloğunda
değildir; buna karşın `is_private` özelliği doğru döner. Kütüphanenin bu özelliği "özel
kullanım bloğunda mı" değil, "genel İnternet'te yönlendirilebilir mi" sorusunu yanıtlar.
Bir kütüphane işlevinin adı ile anlamı arasındaki bu tür farklar, belgelenmiş anlamın
okunmasını zorunlu kılar.

## Adres Kime Aittir

Bir IP adresi makineye değil, **arayüze** aittir. İki arayüzü olan bir makinenin iki adresi
vardır; aynı arayüze birden çok adres de atanabilir. Yönlendiriciler bu kuralın en açık
örneğidir: örnek ağdaki kurum yönlendiricisinin iç arayüzü `192.168.10.193`, dış arayüzü
`203.0.113.10` adresini taşır ve bu iki adres farklı ağlara aittir.

Bu ayrım tanıda işe yarar. "Sunucuya ulaşamıyorum" ifadesi eksiktir; sunucunun hangi
arayüzüne ulaşılamadığı sorulmalıdır. Bir arayüz üzerinden erişilebilen bir makine, başka
bir arayüzü üzerinden erişilemez durumda olabilir.

## Örnek Ağın Bloğu

Kurumun iç ağı `192.168.10.0/24` bloğunu kullanır. Seçimin gerekçeleri şunlardır:

- Blok özel kullanım aralığındadır; sağlayıcıdan tahsis gerektirmez.
- 24 bitlik önek, 8 bitlik düğüm bölümü bırakır: $2^8 = 256$ adres.
- Bu 256 adresin ikisi ayrılmıştır — en küçüğü ağın kendisini, en büyüğü yayın adresini
  gösterir — geriye 254 kullanılabilir adres kalır.

Kurumun bölümlerinde toplam 182 düğüm bulunmaktadır: misafir kablosuz ağında 100,
laboratuvarda 50, yönetimde 20, sunucu odasında 10 ve yönlendiriciler arasındaki noktadan
noktaya bağlantıda 2. Sayı 254'ten küçük olduğuna göre blok yeterlidir — ancak bölümler tek
bir yayın alanında toplanamaz.

Neden toplanamayacağı önceki derste görülmüştü: yayın alanı büyüdükçe her yayın çerçevesinin
maliyeti artar ve bölümler arasında hiçbir erişim denetimi kurulamaz. Bloğun bölümlere
ayrılması gerekir.

## Özet

- IPv4 adresi 32 bitlik bir tam sayıdır; noktalı ondalık gösterim yalnızca okunabilirlik
  içindir.
- Adres ağ ve düğüm bölümlerine ayrılır; sınır önek uzunluğuyla belirtilir ve adresin
  kendisinden okunamaz.
- Önek uzunluğu olmadan bir adres eksik bilgidir; hangi hedeflerin yerel olduğu
  belirlenemez.
- Sınıflı adresleme sınırı üç değere hapsediyor ve israfa yol açıyordu; CIDR ile önek
  uzunluğu 0–32 arasında serbest bırakıldı.
- Özel kullanım, geri döngü, yerel bağlantı, çok noktaya gönderim ve belgeleme blokları
  genel İnternet'te yönlendirilmez.
- Adres makineye değil arayüze aittir; bir makinenin birden çok adresi olabilir.

## Sonraki Adım

`192.168.10.0/24` bloğu, kurumun bölümlerine tek parça hâlinde verilemez. Bloğun her
bölüme ayrı bir ağ düşecek biçimde kesilmesi gerekir ve kesme işlemi düğüm bölümünden bit
ödünç alarak yapılır. Sonraki ders maske aritmetiğini kuracak, ağ ve yayın adreslerinin
nasıl hesaplandığını gösterecek ve bloğu eşit parçalara bölen ilk planı çıkaracak.
