Ders 16 / 17
Yedeklilik ve Devralma
Ağ geçidi yedekliliğinde devralma penceresi ölçülür: yukarı bağ koptuğunda ve kimse duymadığında kırk akışın kırkı bir adım sonra kara deliğe düşer, geçit devrettiğinde kara delik sıfırlanır ama eş bağı kırk geçiş taşır, iki geçit birbirini etkin sandığında kırk akış döngüye girer ve eş bağı seksen geçiş taşır.
İçindekiler
Omurga–yaprak düzeninde yedeklilik yapısaldı: hiçbir cihaz bir yolun tek sahibi değildi ve bir omurganın kaybı yalnız akışların dağılımını değiştiriyordu. Konak tarafında durum böyle değildir. Konak, ağın dışına giden paketini bir yola değil bir adrese yollar — varsayılan ağ geçidinin adresine. Adres tekildir ve bir anda tek bir cihazın üstünde durur.
Bu tekillik yedekliliği yapısal olmaktan çıkarır. Cihaz düştüğünde ikinci bir cihazın adresi devralması ve devralmayı herkesin duyması gerekir. Bu dersin sorusu, duymanın sürdüğü o kısa aralıkta paketin başına ne geldiğidir.
Sanal Adres ve İki Rol
Ağ geçidi yedekliliği (gateway redundancy) iki cihazı tek bir adresin arkasına koyar. Bu adrese sanal adres denir; konaklar onu varsayılan ağ geçidi olarak bilir ve iki cihazın varlığından haberdar değildir.
Cihazlardan biri etkin, öteki yedektir. Etkin olan sanal adresi yanıtlar ve paketleri yukarı iletir; yedek olan sessizce dinler. Etkin olanın düzenli aralıklarla gönderdiği duyurular kesildiğinde yedek olan bir süre bekler ve sonra adresi devralır.
# ogretilen dokum , calistirilmamistir ağ geçidi çifti sanal adres tek adres, konakların varsayılan ağ geçidi g1 öncelik 110 etkin -> sanal adresi yanıtlar, yukarı iletir g2 öncelik 100 yedek -> sessiz dinler, duyuru bekler eş bağı g1 - g2, duyuruların ve durum bilgisinin taşındığı bağ zamanlama duyuru aralığı etkin olan her aralıkta bir kez duyurur ölü sayacı yedek olan bu süre boyunca duyuru duymazsa devralır devralma anı yedek olan sanal adresi yanıtlamaya başlar yaprak tablosu (uzak ağlar için) hedef bir sonraki düğüm u1 u2 u3 sanal adresin o an bulunduğuna inanılan geçit
Servis düzeyindeki devralma kalıpları — sağlık sınaması, yeniden deneme, devre kesici — Dayanıklılık Kalıpları kursunda kuruldu ve burada tekrarlanmaz. Orada devralan şey bir servis örneğiydi ve ölçülen şey isteğin akıbetiydi; burada devralan şey ağ geçididir ve ölçülen şey paketin kaderidir.
Pencere Nedir
Devralma anlık değildir. Ölü sayacı dolana kadar geçen süre, yedek olanın adresi ilan etmesi ve yol üzerindeki anahtarların adresin yerini yeniden öğrenmesi — bunların toplamına devralma penceresi denir. Pencere boyunca cihazlar sanal adresin nerede olduğu konusunda anlaşmaz.
Pencerede iki ayrı soru vardır. Birincisi: sanal adresi kim yanıtlıyor? İkincisi: yanıtlayan cihaz paketi iletebiliyor mu? Ölçüm tam bu ayrımı sayar: yukarı bağı kopmuş bir geçit, adresi tuttuğu sürece paketleri toplamayı sürdürür.
Ölçümün dayandığı varsayımlar:
- TP17 — Dokuz yaprak (
y1–y9) bir ağ geçidi çiftine (g1,g2) bağlıdır; çift çekirdeğe (c), çekirdek üç uzak ağa (u1,u2,u3) bağlıdır. Kırk akışın kaynağı bir yaprak, hedefi bir uzak ağdır; ölçülen trafik tümüyle kuzey–güney yönlüdür. - TP18 — Ölçülen arıza
g1–cyukarı bağının kopmasıdır.g1sağdır, yapraklara bağlıdır ve sanal adresi tutmayı sürdürebilir. - TP19 — Her yaprağın bir inancı vardır: sanal adresin
g1’de mig2’de mi olduğu. Duyan yaprakg2der, duymayang1der. - TP20 — Her geçidin de bir inancı vardır. Kendini etkin sanan geçit paketi yukarı iletir; eşini etkin sanan geçit paketi eş bağından eşine verir.
- TP21 — Kâhin kurguyu biz kurduğumuz için bilinir:
g1–ckoptuktan sonra uzak ağlara giden tek yolg2’nin üstündedir. - TP22 — Rejimler yalnız inançta ayrılır; topoloji
g1–cbağının varlığı dışında değişmez. Böylece ölçülen fark bilgi farkıdır, yapı farkı değil. - TP23 — “Eş bağı” sütunu kırk akışın
g1–g2bağını toplam kaç kez geçtiğini sayar. Bu bağ denetim trafiği için boyutlandırılır; kullanıcı trafiği taşıması bir belirtidir. - TP24 — Bir paket aynı bağdan ikinci kez geçtiğinde ya da atlama sınırını (12) yaktığında döngü sayılır; bir sonraki düğümü artık komşu olmayan paket kara delik sayılır.
- TP25 — Adım sütunu yalnız harcanan adımı sayar; kara deliğe düşen paket öldüğü yere kadarki adımı harcamış olur.
- TP26 — Kırk akışlık kümede ölçülebilen en küçük fark 1/40 = 0,025’tir.
Ölçüm
"""Ag gecidi yedekliligi: devralma penceresinde paketin kaderi. Bolum 1 - rejimler: yakinsamis, pencere, yukari bag izleme, ikiye bolunme. Bolum 2 - duyan yaprak sayisi artarken kaderin degisimi. """ TOHUM = 20260810 ATLAMA_SINIRI = 12 YAPRAK = [f"y{i}" for i in range(1, 10)] UZAK = ["u1", "u2", "u3"] DUGUMLER = YAPRAK + ["g1", "g2", "c"] + UZAK BAGLAR = ([(y, g) for y in YAPRAK for g in ("g1", "g2")] + [("g1", "g2"), ("g1", "c"), ("g2", "c")] + [("c", u) for u in UZAK]) KOPUK = [b for b in BAGLAR if b != ("g1", "c")] def uretec(tohum): d = tohum % 2147483646 + 1 def r(n): nonlocal d d = (d * 48271) % 2147483647 return d % n return r 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 tablolar(yaprak_inanci, g1_inanci, g2_inanci): """Her dugumun uzak aglar icin tuttugu bir sonraki dugum.""" t = {} for y in YAPRAK: for u in UZAK: t[(y, u)] = yaprak_inanci[y] for g, es, inanc in (("g1", "g2", g1_inanci), ("g2", "g1", g2_inanci)): for u in UZAK: t[(g, u)] = "c" if inanc == g else es for u in UZAK: t[("c", u)] = u return t def ilet(kaynak, hedef, tab, baglar): k, u, gecilen, atlama = komsuluk(baglar), kaynak, [], 0 while u != hedef: if atlama >= ATLAMA_SINIRI: return "dongu", atlama sonraki = tab.get((u, hedef)) if sonraki is None or sonraki not in k[u]: return "kara delik", atlama if (u, sonraki) in gecilen: return "dongu", atlama gecilen.append((u, sonraki)) u, atlama = sonraki, atlama + 1 return "ulasti", atlama def ciftler(sayi=40, tohum=TOHUM): r, liste = uretec(tohum), [] while len(liste) < sayi: liste.append((YAPRAK[r(9)], UZAK[r(3)])) return liste def es_gecisi(tab, baglar): """Kirk akisin g1-g2 es bagini kac kez gectigi.""" k, say = komsuluk(baglar), 0 for x, y in ciftler(): u, gecilen, atlama = x, [], 0 while u != y and atlama < ATLAMA_SINIRI: v = tab.get((u, y)) if v is None or v not in k[u] or (u, v) in gecilen: break if {u, v} == {"g1", "g2"}: say += 1 gecilen.append((u, v)) u, atlama = v, atlama + 1 return say def olc(tab, baglar): sayim, adim = {"ulasti": 0, "dongu": 0, "kara delik": 0}, 0 for x, y in ciftler(): kader, a = ilet(x, y, tab, baglar) sayim[kader] += 1 adim += a return sayim, adim def inanc(duyan): return {y: ("g2" if y in duyan else "g1") for y in YAPRAK} HEPSI, HIC = set(YAPRAK), set() REJIM = [ ("yakınsamış, g1 etkin", BAGLAR, inanc(HIC), "g1", "g1"), ("yukarı bağ koptu, kimse duymadı", KOPUK, inanc(HIC), "g1", "g1"), ("g1 devretti, yapraklar duymadı", KOPUK, inanc(HIC), "g2", "g2"), ("g1 devretti, dört yaprak duydu", KOPUK, inanc(set(YAPRAK[:4])), "g2", "g2"), ("g1 devretti, hepsi duydu", KOPUK, inanc(HEPSI), "g2", "g2"), ("ikisi de kendini etkin sanıyor", BAGLAR, inanc(set(YAPRAK[:5])), "g1", "g2"), ("ikisi de eşini etkin sanıyor", BAGLAR, inanc(set(YAPRAK[:5])), "g2", "g1"), ] print(f"{'rejim':<32s} {'ulaştı':>6s} {'döngü':>6s} {'kara delik':>10s} " f"{'adım':>5s} {'eş bağı':>7s}") for ad, bag, yi, a1, a2 in REJIM: tab = tablolar(yi, a1, a2) s, a = olc(tab, bag) print(f"{ad:<32s} {s['ulasti']:6d} {s['dongu']:6d} {s['kara delik']:10d} " f"{a:5d} {es_gecisi(tab, bag):7d}") print() print(f"{'duyan yaprak':>12s} {'g1 devretmedi':>30s} {'g1 devretti':>30s}") print(f"{'':>12s} {'ulaştı kara delik adım eş':>30s}" f" {'ulaştı kara delik adım eş':>30s}") for n in range(0, 10): yi, sutun = inanc(set(YAPRAK[:n])), [] for g1i in ("g1", "g2"): tab = tablolar(yi, g1i, "g2") s, a = olc(tab, KOPUK) sutun.append(f"{s['ulasti']:9d}{s['kara delik']:11d}{a:5d}" f"{es_gecisi(tab, KOPUK):5d}") print(f"{n:12d} {sutun[0]} {sutun[1]}") print() print(f"düğüm {len(DUGUMLER)}, bağ {len(BAGLAR)}, akış 40, " f"atlama sınırı {ATLAMA_SINIRI}")
rejim ulaştı döngü kara delik adım eş bağı
yakınsamış, g1 etkin 40 0 0 120 0
yukarı bağ koptu, kimse duymadı 0 0 40 40 0
g1 devretti, yapraklar duymadı 40 0 0 160 40
g1 devretti, dört yaprak duydu 40 0 0 146 26
g1 devretti, hepsi duydu 40 0 0 120 0
ikisi de kendini etkin sanıyor 40 0 0 120 0
ikisi de eşini etkin sanıyor 0 40 0 120 80
duyan yaprak g1 devretmedi g1 devretti
ulaştı kara delik adım eş ulaştı kara delik adım eş
0 0 40 40 0 40 0 160 40
1 4 36 48 0 40 0 156 36
2 7 33 54 0 40 0 153 33
3 9 31 58 0 40 0 151 31
4 14 26 68 0 40 0 146 26
5 18 22 76 0 40 0 142 22
6 24 16 88 0 40 0 136 16
7 29 11 98 0 40 0 131 11
8 34 6 108 0 40 0 126 6
9 40 0 120 0 40 0 120 0
düğüm 15, bağ 24, akış 40, atlama sınırı 12
Yanıtlamak İletmek Değildir
İkinci satır dersin en önemli sayısıdır. g1–c koptuğunda ve kimse duymadığında kırk akışın
kırkı kara deliğe düşer. Harcanan adım 40’tır — akış başına bir adım. Paket yaprağı
terk eder, sanal adresi tutan geçide varır ve orada ölür.
Arızanın biçimi budur: cihaz ayaktadır, bağlantı noktaları çalışır, sanal adres yanıtlanır ve konak varsayılan ağ geçidini erişilebilir bulur. Yalnız paket yukarı çıkmaz. Sanal adresin sahibi ile paketi iletebilen ayrı sorulardır ve konak yalnız birincisini sorabilir.
Devretmek Kara Deliği Eş Bağına Çevirir
Üçüncü satır arızayı kapatıyor: g1 yukarı bağının koptuğunu fark edip devrettiğinde kırk
akışın kırkı ulaşır, kara delik 0’a iner. Yapraklar hâlâ hiçbir şey duymamıştır;
g1 onların paketini alıp eşine verir.
Bedel iki sütunda birden görünür. Adım 120’den 160’a çıkar — akış başına bir fazladan
adım. Ve eş bağı sütunu 0’dan 40’a çıkar: denetim trafiği için kurulmuş olan bağ,
kullanıcı trafiğinin tamamını taşır.
Alt tablo bu bedelin nasıl eridiğini gösteriyor. Duyan yaprak sayısı sıfırdan dokuza
çıkarken, g1 devretti sütununda ulaşan 40’ta sabit kalıyor; değişen şey adımın
160’tan 120’ye, eş bağı geçişinin 40’tan 0’a inmesidir. Devralma penceresi
paketleri kaybettirmiyor; onları eş bağı üzerinden taşıtıyor ve pencere kapandıkça bu yük
kalkıyor.
Sol sütun aynı pencereyi devretme olmadan gösteriyor: duyan yaprak sayısı arttıkça ulaşan 0’dan 40’a, kara delik 40’tan 0’a doğrusal olarak akıyor. Sekiz yaprak duymuşken bile 6 akış hâlâ ölü geçide gidiyor.
Kısmî Bilgi Yine Döngü Üretiyor
Son satır kursun ikinci iddiasını ikinci kez ödüyor. g1 ve g2 birbirini etkin
sandığında kırk akışın kırkı döngüye girer: kara delik 0, ulaşan 0.
Bu durum uydurma değildir. g1 düşerken “artık etkin olan eşimdir” bilgisini almıştır; g2,
g1 döndüğünde “önceliği yüksek olan eşimdir” bilgisini almıştır. İkisi de doğru bir şey
duydu, ama farklı anlarda. Yanlış olan ikisinin birlikte söylediğidir.
İki sayı karşılaştırılmalıdır. Hiç bilginin olmadığı rejimde (kimse duymadı) kırk paket
kara deliğe düşer, 40 adım harcanır ve eş bağı 0 geçiş taşır: arıza ucuzdur ve
bellidir. Kısmî bilginin olduğu rejimde kırk paket döngüye girer, 120 adım harcanır ve eş
bağı 80 geçiş taşır — akış başına iki geçiş. Döngü kara delikten üç kat pahalıdır ve
kara delik gibi değil, tıkanıklık gibi görünür: yönetici boş bir bağ değil, dolu bir eş bağı
görür.
Üçüncü iddia da burada okunur. Döngüye giren kırk akışın yaprakları iki gruba ayrılmıştı;
beşi g1’e, dördü g2’ye yolluyordu. Hangi grupta olduğu hiç fark etmedi — kırkı da
döngüye girdi. Yaprağın tablosu doğruydu ve paketi öldü. Hiçbir cihaz tek başına bir paketi
döngüye sokamaz; döngü çiftin ortak ürünüdür.
Altıncı satır bir uyarı taşır. İkisi de kendini etkin sandığında — yani sanal adres iki cihazda birden yanıtlandığında — kader tablosu tertemiz görünür: 40 ulaştı, 0 döngü, 0 kara delik, 120 adım. Bu ölçü ikiye bölünmeyi göremez, çünkü paketler gerçekten varır. Görülebileceği yer başka bir tablodadır: aynı adres iki bağlantı noktasından duyulduğunda eşleştirme tablosu iki kayıt arasında salınır. O tablo Eşleştirme Tabloları dersinin konusudur ve burada tekrarlanmaz.
Sayılan Yüzeyler ve Daraltmaları
Bu bölüm arızaların nasıl göründüğünü ve nasıl daraltıldığını yazar; bir yordam vermez. Saldırı tarafı Kablosuz Ağlar ve Ağ Güvenliği kursuna aittir.
Birinci yüzey — pencerenin uzunluğu. Ölçümde devretme olmadan sekiz yaprak duymuşken hâlâ 6 akış ölüyor. Daraltma: duyuru aralığının ve ölü sayacının kısaltılması pencereyi daraltır; bedeli, geçici bir aksamanın gereksiz bir devralma başlatmasıdır. İkinci daraltma yedek yolun önceden hesaplanmış olmasıdır: tablo devralma anında hesaplanmaz, hazır bekletilir.
İkinci yüzey — yanıtlayan ama iletemeyen geçit. Ölçümde 40 kara delik ve akış başına tek adım. Daraltma: yukarı bağ izleme — geçidin önceliği, yukarı bağının durumuna bağlanır; bağ düşünce öncelik düşer ve eş devralır. Ölçüm bu daraltmanın tam kazancını veriyor: kara delik 40’tan 0’a iner, karşılığında eş bağı 40 geçiş taşır.
Üçüncü yüzey — iki geçidin birbirini etkin sanması. Ölçümde 40 döngü ve eş bağında 80 geçiş. Daraltma: önceliklerin kesin ve eşitsiz sıralanması, ve önceliğin geri alınmasının (preemption) kapatılması — dönen cihaz adresi geri istemezse iki taraflı bekleyiş doğmaz. Ayrıca atlama sınırı döngüyü sonlandırır, ama sınır bir çözüm değil bir tavandır: bedeli ölçümde 120 adım olarak durur.
Dördüncü yüzey — eş bağının tek olması. Eş bağı hem duyuruyu hem devralma sırasında bütün kullanıcı trafiğini taşır; ölçümde bu yük 40 geçiş. Bağ koptuğunda iki cihaz birbirini göremez ve ikiye bölünme doğar. Daraltma: eş bağının kendisinin yedeklenmesi ve eşin sağlığının ikinci bir yoldan doğrulanması — tek bir bağın sessizliği ölüm kanıtı sayılmaz.
Beşinci yüzey — duyuruların doğrulanmadan kabul edilmesi. Devralma duyurusu bir bildirimdir; bildirimi doğrulayan bir şey yoksa geçidi hangi cihazın devraldığı bildirene kalır. Daraltma: duyuruların kimlik doğrulamasına bağlanması ve yalnız geçit çiftinin bulunduğu bağlantı noktalarında kabul edilmesi.
Özet
- Ağ geçidi yedekliliği iki cihazı tek bir sanal adresin arkasına koyar; konak adresi bilir, cihazları bilmez ve yalnız “adres yanıtlıyor mu” sorusunu sorabilir.
- Yukarı bağ koptuğunda ve kimse duymadığında kırk akışın kırkı bir adım sonra kara deliğe düşer: yanıtlamak iletmek değildir.
- Geçit devrettiğinde kara delik 0’a iner ama adım 120’den 160’a, eş bağı geçişi 0’dan 40’a çıkar; duyan yaprak sayısı arttıkça ikisi de geri iner.
- İki geçit birbirini etkin sandığında kırk akış döngüye girer: 120 adım ve eş bağında 80 geçiş — hiç bilginin olduğu rejimin üç katı ve tıkanıklık görünümlü.
- Yaprakların yarısı bir geçide, yarısı ötekine yollarken kırkı da döngüye girdi; döngü çiftin ortak ürünüdür ve ikisi de kendini etkin sandığında ölçü hiçbir şey göremez.
Sonraki Adım
Buraya kadarki üç ders topolojiyi bir çizge olarak ölçtü: düğümler, bağlar, adımlar, turlar. Tablo satırı sayısı her ölçümde bir sütun olarak göründü ve her seferinde topolojiden çıktı — üç katmanlı düzende 272, dört omurgalı düzende 468. Ama satır sayısını belirleyen ikinci bir şey daha vardır ve topolojiyle hiç ilgisi yoktur: hedeflerin nasıl adlandırıldığı. Aynı topolojide, adresleri bir düzene göre dağıtan bir plan ile büyüme sırasına göre dağıtan bir plan aynı tabloyu farklı sayıda satırla doldurur. Sonraki ders bu farkı sayar ve kursu kapatır.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.