Ders 13 / 17
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.
İçindekiler
Ö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.
# 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–ahalkası ve halkayı kesenb–fkiriş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–ctünelidir. Dördüncüsünde kalkışı yalnızavecduyar; ö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
"""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-gvec-ftü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.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.