---
title: 'Ağ Nedir'
source: 'https://academia.sh/tr/kurslar/internet-nasil-calisir/ag-nedir'
course: 'İnternet Nasıl Çalışır'
language: tr
updated: '2026-08-17T18:07:04+00:00'
license: 'CC BY-SA 4.0'
---

# Ağ Nedir

Uçlar, bağlantılar ve anahtarlama; paket anahtarlamanın devre anahtarlamaya göre neden seçildiği ve en iyi çaba teslimin sonuçları.

Bir adres satırına `http://ornek.test/` yazıp isteği gönderdiğinizde, saniyenin küçük bir
bölümü içinde bir sayfa görünür. Arada olan biteni tek bir cümleyle özetlemek mümkün
değildir: adın bir adrese çevrilmesi, iki makine arasında bir bağlantı kurulması, bir
isteğin biçimlendirilip gönderilmesi ve dönen yanıtın çizilmesi gerekir.

Bu kurs, o tek isteğin yolculuğunu parça parça açar. Her ders zincirin bir halkasını
kurar; son ders hepsini baştan sona birleştirir. Zincirin en altında, en somut soru
durur: iki makine arasında veri nasıl hareket eder?

## Uçlar, Bağlantılar ve Anahtarlar

**Ağ (network)**, aralarında veri taşıyabilen makinelerden oluşan bir yapıdır. Üç
bileşenle tanımlanır.

**Konaklar (host)**, veri üreten ve tüketen uç makinelerdir. İsteği yazdığınız makine bir
konaktır; `ornek.test` sayfasını tutan makine de bir konaktır. Ağ, konaklar için vardır;
konaklar ağ için değil.

**Bağlantılar (link)**, iki noktayı fiziksel olarak birleştiren ortamdır: bakır tel, cam
lif, radyo dalgası. Her bağlantının iki ölçülebilir özelliği vardır. **Bant genişliği
(bandwidth)**, birim zamanda taşınabilen veri miktarıdır. **Gecikme (latency)**, bir
verinin bir uçtan diğerine varması için geçen süredir. İkisi bağımsızdır: geniş bant
genişlikli bir bağlantının gecikmesi yüksek olabilir. Gecikmenin bir bölümü fizik
yasalarıyla sınırlıdır; sinyal, ortamdaki yayılma hızından daha çabuk gidemez.

**Anahtarlama düğümleri**, ikiden çok konağı birbirine bağlar. Her konağı her konağa ayrı
bir bağlantıyla iliştirmek düşünülemez: $n$ konak için gereken bağlantı sayısı
$\frac{n(n-1)}{2}$ olur ve bu, $n$ büyüdükçe hızla olanaksızlaşır. Bunun yerine konaklar
ortak düğümlere bağlanır, düğümler birbirine bağlanır ve veri düğümden düğüme aktarılır.
Bu aktarma kararını veren düğüme **yönlendirici (router)** denir.

## İki Anahtarlama Modeli

Veriyi düğümler üzerinden geçirmenin iki farklı yolu vardır ve aralarındaki seçim,
internetin tasarımını belirleyen kararların en temelidir.

### Devre Anahtarlama

**Devre anahtarlama (circuit switching)** modelinde, iletişim başlamadan önce iki uç
arasında bir yol kurulur ve bu yol üzerindeki kaynaklar iletişim süresince o iki uca
ayrılır. Yol kurulduktan sonra veri, ayrılmış kapasiteden akar.

Bu modelin bir üstünlüğü vardır: kaynak ayrıldığı için başarım öngörülebilirdir. Devre
kurulduysa, ayrılan kapasite garanti edilmiştir.

Bedeli ise kaynak israfıdır. Bir sayfayı okurken hiçbir veri göndermezsiniz; bir metin
yazarken duraklarsınız. Veri iletişimi **patlamalıdır**: kısa yoğun aralıklar, uzun
sessizlikler. Ayrılmış devre, sessizlik boyunca da ayrılmış kalır ve o kapasiteyi başka
kimse kullanamaz. İkinci bedel kuruluş süresidir: tek bir sayfa isteği için önce bir yol
kurmak, sonra veriyi göndermek, sonra yolu yıkmak gerekir.

### Paket Anahtarlama

**Paket anahtarlama (packet switching)** modelinde önceden hiçbir yol kurulmaz. Gönderilen
veri **paket (packet)** adı verilen parçalara bölünür. Her paket, nereye gideceğini kendi
üzerinde taşır ve düğümler her paketi ayrı ayrı, geldiği anda iletir.

Her paketin iki bölümü vardır. **Başlık (header)**, paketin nereden gelip nereye gittiği
gibi yönlendirme için gereken bilgiyi taşır. **Yük (payload)**, taşınan verinin
kendisidir. Zarf ve mektup benzetmesi doğrudur: düğümler zarfa bakar, mektubu açmaz.

Bu modelin kazancı **istatistiksel çoğullamadır**: bir bağlantı, o anda gönderecek verisi
olan herkes tarafından paylaşılır. Sessiz kalan bir konak kapasiteyi tutmaz. Toplam talep
ortalaması, tepe taleplerin toplamından çok küçük olduğu için aynı bağlantı çok daha fazla
konağa hizmet eder.

İkinci kazanç dayanıklılıktır. Önceden kurulmuş bir yol olmadığı için, bir bağlantı
koptuğunda o yolu kullanan bir "devre" yıkılmaz; sonraki paketler başka bir yoldan gider.
Ağın bir bölümünün arızalanması, iletişimi bütünüyle durdurmak yerine yeniden
yönlendirilmesine yol açar.

Bedeli belirsizliktir. Ayrılmış kapasite olmadığı için, aynı anda çok sayıda paket aynı
düğüme geldiğinde kuyruklar oluşur; kuyruk dolarsa paketler düşürülür. Teslim süresi
paketten pakete değişir.

### Seçimin Gerekçesi

İnternet paket anahtarlama üzerine kuruludur. Gerekçe, taşınan trafiğin niteliğidir:
bilgisayar iletişimi patlamalıdır ve konak sayısı çok büyüktür. Kaynağı önceden ayırmak,
kaynağın büyük bölümünü boşta bırakır. Paket anahtarlama, öngörülebilirlikten vazgeçip
verimlilik ve dayanıklılık satın alır.

| Ölçüt | Devre anahtarlama | Paket anahtarlama |
|---|---|---|
| Kaynak ayırma | İletişimden önce, süre boyunca | Yok; paket başına paylaşım |
| Boşta kapasite | Ayrılmış kalır, kullanılamaz | Başkalarınca kullanılır |
| Kuruluş maliyeti | Her iletişim için yol kurulur | Yok |
| Arıza davranışı | Yol kopunca iletişim düşer | Paketler başka yoldan gider |
| Teslim süresi | Öngörülebilir | Yüke göre değişken |
| Yük altında | Yeni devre kabul edilmez | Kuyruklar uzar, paket düşebilir |

Bu ödünleşim, ağın verdiği sözün adını da belirler: **en iyi çaba (best effort)** teslim.
Ağ, paketi iletmek için elinden geleni yapar; ancak varacağına, sırasında varacağına veya
bir kez varacağına söz vermez.

## Bir Mesajın Paketlere Bölünmesi

Söz bu kadar zayıfken güvenilir bir sayfa nasıl görüntülenir? Yanıt, eksik sözün konaklar
tarafından tamamlanmasıdır. Gönderen uç veriyi numaralandırılmış paketlere böler; alan uç
numaralara bakarak sırayı düzeltir ve eksikleri saptar.

Aşağıdaki program bu bölme ve yeniden kurma işini gösterir. Ağ katmanının kendisi
kullanılmadan, yalnızca veri üzerinde yapılan işlem incelenir.

```python
MESAJ = "Ornek Sayfa icerigi"
PAKET_BOYU = 5

paketler: list[tuple[int, str]] = [
    (sira, MESAJ[i:i + PAKET_BOYU])
    for sira, i in enumerate(range(0, len(MESAJ), PAKET_BOYU))
]
for sira, yuk in paketler:
    print(f"sira={sira}  yuk={yuk!r}")

print()
# Paketler farklı yollardan gidebilir; varış sırası gönderim sırası değildir.
varis_sirasi = [2, 0, 3, 1]
gelen = [paketler[i] for i in varis_sirasi]
print("varista gorulen sira:", [sira for sira, _ in gelen])

birlestirilmis = "".join(yuk for sira, yuk in sorted(gelen))
print("yeniden kurulan:", repr(birlestirilmis))
print("kayipsiz mi:", birlestirilmis == MESAJ)
```

Çıktı:

```
sira=0  yuk='Ornek'
sira=1  yuk=' Sayf'
sira=2  yuk='a ice'
sira=3  yuk='rigi'

varista gorulen sira: [2, 0, 3, 1]
yeniden kurulan: 'Ornek Sayfa icerigi'
kayipsiz mi: True
```

Paketler karışık sırayla geldi; sıra numarası sayesinde özgün mesaj kayıpsız kuruldu.
Numara olmasaydı, karışık varış onarılamaz bir bozulma olurdu.

Bu, ağ tasarımındaki bir ilkeyi örnekler: **zor güvenceler uçlarda kurulur.** Ara
düğümlerin sırayı korumasını istemek onları karmaşıklaştırır ve yavaşlatır; oysa uçlar
zaten veriyi bir bütün olarak görmek zorundadır. Sıra düzeltme, eksik parçayı yeniden
isteme ve yinelenen parçayı atma işleri uçlara bırakılır. Bu işleri yürüten protokoller
Ağ Modelleri ve Protokoller kursunun konusudur.

Gerçek paketlerde yükün baytları, Bilgisayarlar Nasıl Çalışır kursunda tanımlanan
kurallara göre yorumlanır: bir metin belirli bir karakter kodlamasıyla baytlara çevrilir
ve başlıktaki sayısal alanlar belirli bir bayt sırasıyla yazılır. Ağ başlıklarında
kullanılan büyük uçlu düzen, o kursta **ağ bayt sırası** adıyla geçmişti; adın kaynağı
budur.

## Paket Boyu ve Bölünme

Paketin ne kadar büyük olacağı serbest değildir. Her bağlantı türünün taşıyabileceği en
büyük paket boyu vardır. Bu sınırı aşan veri bölünmek zorundadır.

Sınırın iki yönü de maliyetlidir. Paketler küçüldükçe başlık yükünün oranı artar: her
paket kendi başlığını taşır, yani aynı veriyi taşımak için daha çok başlık gönderilir.
Paketler büyüdükçe tek bir kaybın maliyeti artar ve bir paketin bağlantıyı meşgul ettiği
süre uzar.

Yukarıdaki örnekte 19 karakterlik mesaj 5 baytlık paketlere bölündüğünde dört paket
oluştu ve sonuncusu yalnızca dört bayt taşıdı. Son paketin eksik dolması olağandır; veri
boyu paket boyunun katı olmak zorunda değildir.

## Özet

- Ağ, konaklar, bağlantılar ve aktarma kararı veren anahtarlama düğümlerinden oluşur;
  bağlantılar bant genişliği ve gecikme ile nitelenir.
- Devre anahtarlama iletişimden önce kaynak ayırır ve öngörülebilirlik sağlar, ancak
  patlamalı trafikte kapasiteyi boşta bırakır.
- Paket anahtarlama kaynağı önceden ayırmaz; istatistiksel çoğullamayla verimlilik,
  yolun sabit olmamasıyla arızaya dayanıklılık kazanır.
- Bu seçimin bedeli en iyi çaba teslimdir: ağ, paketin varacağına, sırasında varacağına
  veya yalnız bir kez varacağına söz vermez.
- Mesaj başlık ve yük taşıyan numaralı paketlere bölünür; sıra düzeltme ve eksik saptama
  ara düğümlerde değil uçlarda yapılır.

## Sonraki Adım

Bu ders paketlerin nasıl taşındığını kurdu, ancak taşımayı kimin başlattığını
söylemedi. `ornek.test` sayfasını tutan makine ile isteği yazdığınız makine ağ açısından
eşit birer konaktır; buna karşın rolleri simetrik değildir. Biri sürekli bekler, diğeri
istediği anda konuşmaya başlar. Sonraki ders bu rol ayrımını tanımlar ve iki makinenin
birbirini nasıl bulduğunu göstermek üzere gerçek bir sunucu çalıştırır.
