---
title: 'Kaplama Ağları'
source: 'https://academia.sh/tr/kurslar/anahtarlama-ve-yonlendirme/kaplama-aglari'
course: 'Anahtarlama ve Yönlendirme'
language: tr
updated: '2026-08-17T18:07:20+00:00'
license: 'CC BY-SA 4.0'
---

# Kaplama Ağları

Tünellerle kurulan mantıksal topoloji kendi tablosunu tutar ve altındaki tabloyu görmez: alt ağ düzeni koptuğunda kaplamanın tek satırı değişmez ama alt ağ düzeni adımı 188'den 211'e çıkar, alt ağ düzeninin tabloları eskidiğinde kaplamanın doğru tablosuyla 21 paket ölür, kaplama tablolarının kısmî bilgisi ise alt ağ düzeninde tek bir yanlış karar olmadan 12 paketi döngüye sokar.

Önceki ders kararı kenara taşıdı, ama yol hâlâ ağın kendi bağlarından geçiyordu: `b`'den
`c`'ye giden etiketli paket gerçekten `b–c` bağını kullandı. Etiket yolu adlandırıyordu ve
adlandırdığı yol fizikseldi.

Bu dersin sorusu şudur: iki düğüm arasındaki bağ fiziksel bir bağ değil de, **başka bir ağın
üzerinden kurulmuş** mantıksal bir bağ olsaydı ne olurdu? O zaman ortada tek bir tablo değil
**iki tablo** olur, ikisi ayrı ayrı yakınsar, ve paketin kaderi ikisinin **birden**
anlaşmasına bağlanır. Kursun ölçü ekseninin en uç biçimi budur.

## Kaplama ve Alt Ağ Düzeni

**Kaplama ağı (overlay network)**, tünellerle kurulan mantıksal bir topolojidir. Kaplamanın
bir bağı, iki düğüm arasında doğrudan bir kablo olduğu anlamına gelmez; o iki düğümün
birbirini **komşu sayması** anlamına gelir. Kaplamanın üzerinde durduğu gerçek bağ kümesine
**alt ağ düzeni (underlay)** denir. (`alt ağ` tek başına adres öbeğini bölen kavram için
ayrılmıştır; buradaki kavramın adı **alt ağ düzenidir** ve ikisi karıştırılmaz.)

Konteynerler kursu konteyner ağlarının kaplamasını kurmuştu; o yordam burada tekrarlanmaz.
Burada kaplama bir **mantıksal topoloji** olarak ölçülür: kendi tablosu, kendi komşuluğu,
kendi yakınsaması ve kendi atlama sayacı vardır.

```text
# ogretilen dokum, calistirilmamistir

kaplama bağı   alt ağ düzenindeki yol   anlamı
  a-c            a-b-c                    a ile c kaplamada komşudur
  a-e            a-b-f-e                  a ile e kaplamada komşudur
  c-f            c-b-f                    c ile f kaplamada komşudur

tünellenmiş paket
  dış başlık   kaynak a   hedef c    <- alt ağ düzeni yalnız bunu okur
  iç başlık    kaynak a   hedef g    <- kaplama yalnız bunu okur
  yük          ...

a düğümünün iki tablosu
  kaplama tablosu              alt ağ düzeni tablosu
  hedef  bir sonraki           hedef  bir sonraki
  g      e                     c      b
  d      d                     e      b
```

Sağdaki iki tablo dersin tamamıdır. `a` düğümü kaplamada `g` hedefi için `e`'yi gösterir;
`e` kaplamada komşudur ama alt ağ düzeninde üç adım uzaktadır. Paket `a`'dan çıkarken alt
ağ düzeni tablosuna göre `b`'ye gider ve kaplama bunu hiç görmez. İki tablo aynı cihazın
içindedir ve **birbirini okumaz**.

Bunun doğrudan bir sonucu vardır: **bir kaplama adımı, alt ağ düzeninde birkaç adımdır.**
İki katmanın sayaçları ayrıdır ve ayrı sayılmak zorundadır.

Ölçümün varsayımları:

- **YL81** — Alt ağ düzeni kurs boyunca aynıdır: sekiz düğüm, `a–b–c–d–e–f–g–h–a` halkası ve
  halkayı kesen `b–f` kirişi.
- **YL82** — Kaplama dokuz tünelden kurulur ve tünellerin **hiçbiri** alt ağ düzeninin bir
  bağıyla aynı değildir; her tünel alt ağ düzeninde iki ile dört adım arasında bir yola
  karşılık gelir.
- **YL83** — İki katmanın tabloları ayrı hesaplanır ve birbirini görmez. Kural ikisinde de
  aynıdır: her hedefe giden **en kısa yolun ilk adımı**. Kâhin değiştirilmez.
- **YL84** — Her katmanın kendi atlama sayacı vardır ve ikisinin sınırı 12'dir. Bir kaplama
  adımı içinde harcanan alt ağ düzeni adımları kaplama sayacına **eklenmez**.
- **YL85** — Bir kaplama adımı ancak tünel alt ağ düzeninde teslim edildiyse atılmış
  sayılır; tünel teslim edilemezse paketin kaderi tünelin kaderidir.
- **YL86** — Son iki rejimde kalkan kaplama bağı `a–c` tünelidir. Dördüncüsünde kalkışı
  yalnız `a` ve `c` duyar; öteki yedi düğüm eski kaplama tablosunu sürdürür.
- **YL87** — Son iki rejimde alt ağ düzeninin tablosu **kâhinin kendisidir**: alt ağ
  düzeninde tek bir yanlış karar yoktur ve tek bir tünel teslim edilemez değildir.
- **YL88** — Kırk kaynak–hedef çifti kurs çekirdeğinin üretecinden gelir, her çıkış ayrı bir
  pakettir ve kümenin çözünürlüğü `1/40 = 0,025`'tir.

## Ölçüm

```python
"""Kaplama agi: kaplamanin tablosu ile alt ag duzeninin tablosu anlasmazsa."""
TOHUM = 20260810
DUGUMLER = "abcdefgh"
BAGLAR = [("a", "b"), ("b", "c"), ("c", "d"), ("d", "e"), ("e", "f"),
          ("f", "g"), ("g", "h"), ("h", "a"), ("b", "f")]
KOPUK = [b for b in BAGLAR if b != ("b", "f")]
KAPLAMA = [("a", "c"), ("a", "d"), ("a", "e"), ("b", "d"), ("b", "g"),
           ("c", "f"), ("d", "h"), ("e", "g"), ("f", "h")]
ATLAMA_SINIRI = 12


def uretec(tohum):
    d = tohum % 2147483646 + 1

    def r(n):
        nonlocal d
        d = (d * 48271) % 2147483647
        return d % n
    return r


def ciftler(sayi=40):
    r, liste = uretec(TOHUM), []
    while len(liste) < sayi:
        x, y = DUGUMLER[r(8)], DUGUMLER[r(8)]
        if x != y:
            liste.append((x, y))
    return liste


def komsuluk(baglar):
    k = {u: set() for u in DUGUMLER}
    for x, y in baglar:
        k[x].add(y)
        k[y].add(x)
    return k


def kahin(baglar):
    """Her dugum icin her hedefe giden en kisa yolun ilk adimi."""
    kom, t = komsuluk(baglar), {}
    for kaynak in DUGUMLER:
        onceki, sira, gorulen = {}, [kaynak], {kaynak}
        while sira:
            yeni = []
            for u in sira:
                for v in sorted(kom[u]):
                    if v not in gorulen:
                        gorulen.add(v)
                        onceki[v] = u
                        yeni.append(v)
            sira = yeni
        for hedef in DUGUMLER:
            if hedef == kaynak or hedef not in onceki:
                continue
            adim = hedef
            while onceki[adim] != kaynak:
                adim = onceki[adim]
            t[(kaynak, hedef)] = adim
    return t


def ilet(kaynak, hedef, t, baglar):
    """Tek katmanda yurutur; kaderi ve attigi adimi dondurur."""
    kom, u, gecilen, atlama = komsuluk(baglar), kaynak, [], 0
    while u != hedef:
        if atlama >= ATLAMA_SINIRI:
            return "dongu", atlama
        s = t.get((u, hedef))
        if s is None or s not in kom[u]:
            return "kara delik", atlama
        if (u, s) in gecilen:
            return "dongu", atlama
        gecilen.append((u, s))
        u, atlama = s, atlama + 1
    return "ulasti", atlama


def kaplama_ilet(kaynak, hedef, ust, ust_bag, alt, alt_bag):
    """Her kaplama adimi bir tuneldir ve alt agda ayrica yurutulur."""
    kom, u, gecilen, ust_adim, alt_adim = komsuluk(ust_bag), kaynak, [], 0, 0
    while u != hedef:
        if ust_adim >= ATLAMA_SINIRI:
            return "kaplama dongusu", ust_adim, alt_adim
        s = ust.get((u, hedef))
        if s is None or s not in kom[u]:
            return "kaplama kara deligi", ust_adim, alt_adim
        if (u, s) in gecilen:
            return "kaplama dongusu", ust_adim, alt_adim
        kader, a = ilet(u, s, alt, alt_bag)
        alt_adim += a
        if kader != "ulasti":
            return "tunel " + kader, ust_adim, alt_adim
        gecilen.append((u, s))
        u, ust_adim = s, ust_adim + 1
    return "ulasti", ust_adim, alt_adim


def kismi(eski, yeni, duyan):
    """Kaplama bagininin kalktigini yalniz bir kume duymustur."""
    return {(u, h): (yeni if u in duyan else eski)[(u, h)]
            for (u, h) in eski if (u, h) in yeni}


def olc(ust, ust_bag, alt, alt_bag):
    sayim = {"ulasti": 0, "kaplama dongusu": 0, "kaplama kara deligi": 0,
             "tunel kara delik": 0, "tunel dongu": 0}
    ua = aa = 0
    for x, y in ciftler():
        kader, u_, a_ = kaplama_ilet(x, y, ust, ust_bag, alt, alt_bag)
        sayim[kader] += 1
        ua += u_
        aa += a_
    return sayim, ua, aa


UST, ALT, ALT_YENI = kahin(KAPLAMA), kahin(BAGLAR), kahin(KOPUK)
EKSIK = [b for b in KAPLAMA if b != ("a", "c")]
UST_YENI = kahin(EKSIK)
REJIM = (("iki katman da yakınsamış", UST, KAPLAMA, ALT, BAGLAR),
         ("alt ağ düzeni koptu, yakınsadı", UST, KAPLAMA, ALT_YENI, KOPUK),
         ("alt ağ düzeni koptu, tablo eski", UST, KAPLAMA, ALT, KOPUK),
         ("tünel kalktı, iki uç duydu",
          kismi(UST, UST_YENI, {"a", "c"}), EKSIK, ALT, BAGLAR),
         ("tünel kalktı, hepsi duydu", UST_YENI, EKSIK, ALT, BAGLAR),
         ("iki katman birden eski",
          kismi(UST, UST_YENI, {"a", "c"}), EKSIK, ALT, KOPUK))
OLCUM = [(ad, olc(ust, ubag, alt, abag)) for ad, ust, ubag, alt, abag in REJIM]

print(f"{'rejim':<32s} {'ulaştı':>7s} {'kaplama döngüsü':>16s} "
      f"{'tünel kara deliği':>18s}")
for ad, (s, ua, aa) in OLCUM:
    print(f"{ad:<32s} {s['ulasti']:7d} {s['kaplama dongusu']:16d} "
          f"{s['tunel kara delik']:18d}")

print()
print(f"{'rejim':<32s} {'kaplama adımı':>14s} {'alt ağ düzeni adımı':>20s}")
for ad, (s, ua, aa) in OLCUM:
    print(f"{ad:<32s} {ua:14d} {aa:20d}")

print()
print("tünelin alt ağ düzenindeki uzunluğu")
print(f"{'tünel':>6s} {'yakınsamış':>11s} {'kopma sonrası':>14s} {'eski tabloyla':>14s}")
for x, y in KAPLAMA:
    _, a0 = ilet(x, y, ALT, BAGLAR)
    k1, a1 = ilet(x, y, ALT_YENI, KOPUK)
    k2, a2 = ilet(x, y, ALT, KOPUK)
    print(f"{x + '-' + y:>6s} {a0:11d} {a1:14d} "
          f"{('kara delik' if k2 != 'ulasti' else str(a2)):>14s}")
```

```
rejim                             ulaştı  kaplama döngüsü  tünel kara deliği
iki katman da yakınsamış              40                0                  0
alt ağ düzeni koptu, yakınsadı        40                0                  0
alt ağ düzeni koptu, tablo eski       19                0                 21
tünel kalktı, iki uç duydu            28               12                  0
tünel kalktı, hepsi duydu             40                0                  0
iki katman birden eski                17                3                 20

rejim                             kaplama adımı  alt ağ düzeni adımı
iki katman da yakınsamış                     74                  188
alt ağ düzeni koptu, yakınsadı               74                  211
alt ağ düzeni koptu, tablo eski              40                  124
tünel kalktı, iki uç duydu                   77                  205
tünel kalktı, hepsi duydu                    97                  264
iki katman birden eski                       41                  134

tünelin alt ağ düzenindeki uzunluğu
 tünel  yakınsamış  kopma sonrası  eski tabloyla
   a-c           2              2              2
   a-d           3              3              3
   a-e           3              4     kara delik
   b-d           2              2              2
   b-g           2              3     kara delik
   c-f           2              3     kara delik
   d-h           4              4              4
   e-g           2              2              2
   f-h           2              2              2
```

## Kaplama Kopmayı Görmez

İlk iki rejim kirişin kopmasını ölçüyor. Kırk paketin kırkı iki rejimde de ulaşıyor ve
**kaplama adımı ikisinde de 74**. Kaplamanın tablosunda **tek bir satır değişmedi**; kaplama
için hiçbir şey olmadı.

Alt ağ düzeni adımı **188'den 211'e** çıkıyor. Üçüncü tablo yirmi üç fazladan adımın
nereden geldiğini söylüyor: `a-e` tüneli üç adımdan dörde, `b-g` ve `c-f` tünelleri ikişer adımdan üçer adıma
çıkıyor. Kirişi kullanan tüneller bunlardı; kiriş gidince alt ağ düzeni onları halkanın
öteki yakasından kurdu.

Bu, kaplamanın en çok reklam edilen özelliğidir ve ölçüm onu doğruluyor: **alt ağ düzeni
kendini onardığı sürece kaplama kopmayı hiç görmez.** Ama ölçüm bedeli de veriyor. Kaplamayı
izleyen bir gözlemci yirmi üç fazladan adımı **göremez**, çünkü kendi sayacında hiçbir şey
değişmemiştir. Katman, arızayı gizlerken maliyeti de gizler.

## Doğru Tablo, Ölü Paket

Üçüncü rejim aynı kopmayı alt ağ düzeni **yakınsamadan** ölçüyor. Kaplamanın tablosu yine
değişmedi, yine doğrudur; kırk paketin yalnız **19**'u ulaşıyor ve **21**'i tünel kara
deliğine düşüyor.

Üçüncü tablonun son sütunu üç tüneli adlandırıyor: `a-e`, `b-g` ve `c-f` eski alt ağ düzeni
tablosuyla teslim edilemiyor. Kaplama bu üç bağı hâlâ ayakta sayıyor ve paketleri onlara
yolluyor.

İki katmanlı anlaşmazlığın ilk biçimi budur: **üstteki tablo kusursuzdur ve paket ölür.**
Kaplamanın kendi ölçüsüne bakan bir denetim hiçbir arıza bildirmez — kaplama komşulukları
tam, kaplama yolları geçerli, kaplama adımı beklenenden bile düşük (**40**, çünkü ölen paket
adım harcamayı bırakır). Arıza bir katman aşağıdadır ve yukarısı ona bakamaz.

## Alt Ağ Kusursuz, Kaplama Döngüde

Dördüncü rejim anlaşmazlığı ters çeviriyor. Bu rejimde alt ağ düzeninin tablosu kâhinin
kendisidir: **alt ağ düzeninde tek bir yanlış karar yoktur** ve dokuz tünelin dokuzu da teslim
edilebilir. Değişen tek şey kaplamadadır — `a-c` tüneli kalkmıştır ve bunu yalnız `a` ile
`c` duymuştur.

Sonuç: kırk paketin **28**'i ulaşıyor, **12**'si **kaplama döngüsüne** giriyor. Kara delik
**sıfır**. Beşinci rejim aynı tünel kalkışını herkes duyduğunda ölçüyor: **40 ulaşıyor**, kaplama
adımı 97'ye, alt ağ düzeni adımı 264'e çıkıyor.

Kursun ikinci iddiası burada bir katman yukarıda yeniden ödeniyor. **Kısmî bilgi, tam
bilgisizlikten pahalı bir arıza üretir:** herkes duyduğunda kırk paket ulaşıyor, yalnız iki
uç duyduğunda on iki paket ağda dolaşıyor. Ve üçüncü iddia da ikinci kez ödeniyor: on iki
paketin hiçbirini tek bir tablo döngüye sokmadı. Döngü, **iki kaplama tablosunun
anlaşmazlığıdır** — `a` tünelin kalktığını bilir, `d` bilmez ve paketi geri gönderir.

En keskin nokta şudur: **alt ağ düzeni bu döngüyü göremez.** Alt ağ düzeninin gördüğü şey,
her biri ayrı ayrı geçerli olan tünel teslimleridir. `a`'dan `d`'ye giden tünel teslim
edildi, `d`'den `a`'ya giden tünel de teslim edildi; ikisi de doğru. Döngü ancak iki teslimi
**yan yana koyan** bir gözden görünür ve alt ağ düzeninde öyle bir göz yoktur.

## İki Katman Birden

Altıncı rejim iki anlaşmazlığı üst üste koyuyor: `a-c` tüneli kalkmış ve bunu yalnız iki uç
duymuş, **aynı anda** kiriş kopmuş ve alt ağ düzeninin tabloları eskimiş. Kırk paketin
**17**'si ulaşıyor — tek başına alt ağ düzeni arızasından (**19**) da, tek başına kaplama
arızasından (**28**) da az.

Asıl gözlem kaderlerin dağılımındadır. Kaplama döngüsü **12**'den **3**'e, tünel kara deliği
**21**'den **20**'ye iniyor. Döngüye girecek paketlerin çoğu daha ilk turda bir tünel kara
deliğine düşüp ölüyor: **alttaki arıza üsttekini gizliyor.** Kaplamayı izleyen bir göz döngü
sayısının düştüğünü görür ve bunu bir iyileşme sanabilir. Adım sayıları da aynı yöne işaret
ediyor — kaplama **77**'den **41**'e, alt ağ düzeni **205**'ten **134**'e. Ağın en kötü
durumu, bütün sayaçların en sakin göründüğü durumdur.

## İki Sayaç, İki Tanı

Sayaçların ayrılığı tanıyı da ayırıyor. Döngüye giren rejimde kaplama **77 adım**, alt ağ
düzeni **205 adım** harcıyor: kaplamadaki her adım alt ağ düzeninde ortalama iki
buçuk adımın üzerindedir ve kaplama katmanındaki bir döngü alt ağ düzeninde bu katsayıyla
büyür.

İki gözlemci iki ayrı şey görür. Kaplamayı izleyen sayaç döngüyü **döngü olarak** görür:
paketler dolaşıyor, atlama sınırı yanıyor. Alt ağ düzenini izleyen sayaç yalnız **yük
artışı** görür: bağlar üzerinde beklenenden çok paket var, hiçbir teslim başarısız değil.
Ortak tanımın "döngü tıkanıklık gibi görünür" saptaması, iki katmanlı bir ağda **hangi
katmandan bakıldığına** göre değişen bir saptamadır.

Bu, kaplamayı kullanmamak için bir gerekçe değildir; kaplamanın iki katmanı birden
izlemeden kullanılamayacağı için bir gerekçedir. Tek katmanlı bir ağda tablo ile bağ kümesi
aynı yerde durur ve arıza ikisinde birden görünür. Kaplamada ölçülen altı rejimin
**üçünde** paket ölür ve üçünün belirtisi başkadır: biri yalnız kara delik, biri yalnız
döngü, biri ikisi birden.

## Özet

- Kaplama ağı tünellerle kurulan mantıksal bir topolojidir; kaplamanın bir bağı komşuluk
  bildirir, kablo bildirmez. Altındaki gerçek bağ kümesinin adı **alt ağ düzenidir** ve iki
  katmanın tabloları aynı cihazda dursa da birbirini okumaz.
- Alt ağ düzeni kendini onardığında kaplama kopmayı **hiç görmez**: kaplama adımı **74**'te
  kalır, alt ağ düzeni adımı **188'den 211'e** çıkar. Katman arızayı gizlerken maliyeti de gizler.
- Alt ağ düzeni yakınsamadan kaplama doğru tablosuyla çalışırsa **21 paket** tünel kara
  deliğine düşer; kirişi kullanan `a-e`, `b-g` ve `c-f` tünelleri teslim edilemez. Üstteki
  tablo kusursuzdur ve paket ölür.
- Alt ağ düzeninde tek bir yanlış karar yokken kaplama tablolarının kısmî bilgisi **12
  paketi döngüye** sokar; herkes duyduğunda kırk paketin kırkı ulaşır. Döngü **iki kaplama
  tablosunun anlaşmazlığıdır** ve alt ağ düzeni onu göremez.
- Kaplamadaki 77 adım alt ağ düzeninde 205 adımdır; kaplamayı izleyen sayaç döngü görür,
  alt ağ düzenini izleyen sayaç yalnız yük artışı görür.
- İki katman birden eskidiğinde ulaşan paket **17**'ye iner ama döngü **3**'e düşer:
  alttaki kara delik üstteki döngüyü gizler ve en kötü durum sayaçlarda en sakin görünür.

## Sonraki Adım

Buraya kadar bütün ölçümlerde topoloji **verilmişti**. Sekiz düğüm, dokuz bağ ve halkayı
kesen bir kiriş baştan konmuştu; ölçülen şey hep ona verilen yanıttı — hangi tablo kaç
turda yakınsıyor, hangi politika yolu ne kadar uzatıyor, hangi katman kopmayı görüyor.
Topolojinin kendisi hiç sorgulanmadı. Oysa topoloji de bir seçimdir: hangi düğümün hangi
düğüme bağlanacağı, kaç yedek yol bırakılacağı, bir kopmanın kaç düğümün tablosunu
değiştireceği yazılırken kararlaştırılır. Sonraki konu bu seçimi ölçer ve seçimin doğrudan
yakınsama turuna dokunduğunu gösterir.
