İçeriğe geç
academia.sh

Ders 02 / 14

Erişim Noktaları ve Denetleyiciler

Kararın erişim noktasında mı denetleyicide mi alındığı ölçülür: ayrı ayrı verilmiş bütçelerle çalışan üç nokta 25 istemci ilişkilendirip 2 fazla geçen üretiyor, ortak politika 23 istemci ilişkilendirip sıfır sızdırıyor ve tam hızda çalışan istemci 5'ten 9'a çıkıyor.

İçindekiler

Önceki ders tek bir erişim noktasının kendi başına verdiği kararı saydı: istemciyi eşiğin üstünde duyuyorsa ilişkilendiriyor, duymuyorsa duymuyor. Kırk istemcinin 23’ü ilişkilendi, hücrenin içindeki 4’ü ilişkilenemedi ve dışarıdan hiç kimse sızmadı.

Bir binada ise tek bir erişim noktası yoktur. Onlarca nokta vardır ve her birinin işaret bütçesi, kanalı ve eşiği verilmiş bir değerdir — bir yerde, bir zamanda, bir kişi tarafından. Bu dersin sorusu şudur: o değeri kim veriyor ve karar nerede alınıyor? Aynı istemci iki erişim noktasından iki farklı cevap alabiliyorsa, cevabın sahibi istemcinin durumu değil, kime denk geldiğidir.

İlişkilenme Bir Alışveriştir

Bir istemcinin ağı “görmesi” ile ona bağlanması ayrı işlerdir. Arada bir çerçeve alışverişi durur ve karar o alışverişin belirli bir adımında verilir.

# ogretilen yonetim cercevesi dizisi , kurgudur ve calistirilmamistir

1. erisim noktasi -> herkes     duyuru
                                  ag: olcum.ornek
                                  kanal: 4 , bant: D
                                  desteklenen kademeler: 6 4 2 1

2. istemci -> herkes            arama istegi
                                  ag: olcum.ornek

3. erisim noktasi -> istemci    arama yaniti
                                  olculen isaret gucu: 26

4. istemci -> erisim noktasi    iliskilenme istegi
                                  istenen kademe: 4

5. erisim noktasi -> istemci    iliskilenme yaniti
                                  sonuc: kabul , verilen kademe: 2
                                  <-- KARAR BU ADIMDA VERILIR

Beşinci adım kararın verildiği yerdir ve iki şeyi birden söyler: istemci kabul edildi mi, ve hangi hız kademesiyle. Birinci soruya “hayır” cevabı istemcinin gözünde ağın olmaması demektir; ikinci soruya verilen cevap ise hiçbir göstergede görünmez.

Kritik nokta şudur: beşinci adımı kim yazıyor? Çerçeveyi gönderen erişim noktasıdır, ama cevabın içeriğini belirleyen kural başka bir yerde tanımlanmış olabilir.

İki Yönetim Modeli

Bağımsız erişim noktası kendi yapılandırmasını taşır. Kanalı, işaret bütçesi ve eşiği kendi belleğindedir; ilişkilenme kararını yalnız kendi ölçtüğü işaret gücüne bakarak verir. Komşusunun hangi kanalda olduğunu, hangi bütçeyle yayın yaptığını ve hangi istemciyi reddettiğini bilmez.

Denetleyici tabanlı model kararı ikiye ayırır. Denetim düzlemi merkezîdir: kanal atamaları, işaret bütçeleri, eşikler ve ilkeler tek bir yerde tutulur ve noktalara dağıtılır. Veri düzlemi yerelde kalabilir ya da denetleyiciye tünellenebilir; bu ayrı bir seçimdir ve bu dersin ölçtüğü şey değildir.

Denetleyicinin taşıdığı asıl şey ortak görüştür. Bütün noktaların ölçümleri tek bir yerde toplandığında, bir noktanın tek başına bilemeyeceği şeyler bilinir hâle gelir: hangi kanal nerede yeniden kullanılıyor, hangi istemci kaç noktadan duyuluyor, bir noktanın bütçesi komşusunun kapsamasını nereden kesiyor.

Bu, Anahtarlama ve Yönlendirme kursunun eksenine benzer ama aynısı değildir. Orada sorulan soru paylaşılan bir gerçeğin kopyalarının anlaşıp anlaşmadığıydı; burada sorulan soru kopyaların hiç var olup olmadığıdır. Bağımsız noktalar ortak bir gerçeğin eski kopyalarını taşımaz — hiçbir ortak gerçek yoktur, her nokta kendi değerini tek başına taşır.

Denetleyicinin bir cihaz olması da zorunlu değildir. Ayrı bir donanım, ağdaki bir sunucu ya da noktalardan birinin üstlendiği bir rol olabilir; ölçüm açısından değişen bir şey yoktur. Ölçülen şey kutunun kendisi değil, kararın tek bir yerden mi çıktığıdır.

Veri Düzlemi Nerede Akıyor

Denetim düzlemini merkezîleştirmek veri düzlemini de merkezîleştirmez; bu ikinci ve ayrı bir seçimdir.

Yerel anahtarlamada istemcinin çerçevesi erişim noktasından çıkar ve doğrudan yerel ağa girer. Denetleyici yalnız kuralı verir, trafiği görmez. Yol kısadır, denetleyici kesildiğinde akan trafik etkilenmez, ama ilkenin uygulanması noktaların doğru yapılandırılmış olmasına bağlıdır.

Tünellenmiş veri düzleminde çerçeve önce denetleyiciye taşınır, oradan ağa çıkar. Bunun kazandırdığı şey tek noktadan uygulanan bir ilkedir: bütün kablosuz trafik aynı yerden geçer ve aynı kurala çarpar. Ödediği şey ise yoldur — iki istemci yan yana dursa bile çerçeveleri denetleyiciye kadar gidip döner — ve denetleyicinin bir darboğaz hâline gelmesidir.

Seçim ikili de değildir: kimi trafik yerelde bırakılıp kimi trafik tünellenebilir. Bu dersin ölçümü yalnız denetim düzlemini değiştirir; veri düzleminin nereden aktığı ilişkilenme kararına girmez ve ölçüme karışmaz.

Yapılandırma Sapması

Bağımsız modelin sayılabilir kusuru yapılandırma sapmasıdır (configuration drift). Noktalar aynı anda kurulmaz. İlk nokta bir kapsama şikâyeti üzerine yükseltilir, ikincisi kurulduğu gibi kalır, üçüncüsü bir girişim şikâyeti üzerine kısılır. Her adım tek başına makuldür; hiçbiri kayıt bırakmaz ve toplamı kimse görmez.

Sapmanın kaçınılmazlığı bir ölçek sorunudur. İki noktanın birbirine etkisi akılda tutulabilir; on noktanın kırk beş ikili etkileşimi tutulamaz. Bir noktanın bütçesini yükseltmek yalnız o noktanın kapsamasını büyütmez, komşularının kapsamasının nereden kesildiğini de değiştirir. Kararın tek tek noktalarda alınması, bu etkileşimi görebilecek hiçbir yerin olmaması demektir.

Sonuç, aynı ağın içinde birbirinden farklı üç sınır çizilmesidir. Ölçüm bu durumu üç bütçeyle kuruyor: bir nokta 58, biri 52, biri 46. Karşısına konan denetleyici rejimi ise üç noktaya da tek bir değeri, 52’yi dağıtıyor. Değişen tek şey kararın nerede alındığıdır; istemciler, uzaklıklar, girişim ve niyet aynı kalır.

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

  • KB7 — Kırk istemci önceki dersin kurgusundan gelir; uzaklık ve girişim aynıdır. Kâhin yine hücre niyetidir: yarıçapı 30 m olan hücrenin içindeki istemci geçmeliydi.
  • KB8 — Hangi istemciyi hangi erişim noktasının duyduğu ayrı bir üreteçten gelir ve uzaklıktan bağımsızdır. uzaklık alanı, istemciyi duyan noktaya olan uzaklıktır.
  • KB9 — Üç nokta vardır ve bağımsız rejimdeki bütçeleri 58, 52 ve 46’dır. Bu üç değer yapılandırma sapmasının kurgusudur, bir güç taraması değildir; taramanın kendisi sonraki dersin konusudur.
  • KB10 — Denetleyici rejiminde üç noktanın da bütçesi 52’dir. İki rejim arasında yalnız bu değişir.
  • KB11 — Denetleyicinin dağıtımı anlıktır ve kayıpsızdır. Dağıtım gecikmesi ve denetleyicinin erişilemez olması ölçülmez; ikisi de metinde ayrıca ele alınır.
  • KB12 — Tutarlılık ölçümü aynı istemciyi üç bütçeyle ayrı ayrı değerlendirir. Bu bir hareket kurgusu değildir; istemci yerinde durur, yalnız değerlendiren nokta değişir. İstemcinin gerçekten yer değiştirmesi dolaşım dersinin konusudur.
  • KB13 — Küme 40 istemcidir; ölçülebilen en küçük fark 1/40 = 0,025’tir.

Ölçüm

"""Kararin yeri: bagimsiz erisim noktalari mi, ortak denetleyici mi."""
TOHUM = 20260811
YERLESIM = 20260812     # hangi istemciyi hangi erisim noktasi duyuyor
YARICAP = 30
ORTAK_GUC = 52          # denetleyicinin butun noktalara dagittigi tek deger
NOKTALAR = (("A", 58), ("B", 52), ("C", 46))    # ayri ayri verilmis butceler
KADEMELER = ((34, 6), (28, 4), (22, 2), (18, 1))


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

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


def istemciler(sayi=40, tohum=TOHUM):
    r, liste = uretec(tohum), []
    for i in range(sayi):
        liste.append({"no": i + 1, "uzaklik": 5 + r(41), "girisim": r(13)})
    y = uretec(YERLESIM)
    for o in liste:
        o["nokta"] = y(3)
    return liste


def isaret(o, guc):
    return guc - o["uzaklik"] - o["girisim"]


def hiz(o, guc):
    for esik, kademe in KADEMELER:
        if isaret(o, guc) >= esik:
            return kademe
    return 0


def hucre_niyeti(o, yaricap=YARICAP):
    return o["uzaklik"] <= yaricap


def ortam(o, guc):
    return hiz(o, guc) > 0


def fark(olaylar, niyet, duzenek):
    d = {"dogru_gecti": 0, "dogru_durdu": 0, "yanlis_gecti": 0, "yanlis_durdu": 0}
    for o in olaylar:
        n, g = niyet(o), duzenek(o)
        if n and g:
            d["dogru_gecti"] += 1
        elif not n and not g:
            d["dogru_durdu"] += 1
        elif g:
            d["yanlis_gecti"] += 1
        else:
            d["yanlis_durdu"] += 1
    return d


def yerel(o):
    """Karar erisim noktasinda: istemciyi duyan noktanin kendi butcesi gecerli."""
    return ortam(o, NOKTALAR[o["nokta"]][1])


def merkezi(o):
    """Karar denetleyicide: butun noktalarda tek politika."""
    return ortam(o, ORTAK_GUC)


ist = istemciler()
print(f"{'nokta':>5s} {'butce':>6s} {'istemci':>8s} {'iliskilenen':>11s} "
      f"{'fazla gecen':>12s} {'fazla duran':>12s}")
for i, (ad, guc) in enumerate(NOKTALAR):
    k = [o for o in ist if o["nokta"] == i]
    d = fark(k, hucre_niyeti, lambda o, g=guc: ortam(o, g))
    print(f"{ad:>5s} {guc:6d} {len(k):8d} {d['dogru_gecti'] + d['yanlis_gecti']:11d} "
          f"{d['yanlis_gecti']:12d} {d['yanlis_durdu']:12d}")
print()

print(f"{'rejim':<12s} {'iliskilenen':>11s} {'tam hiz':>8s} {'dogru':>6s} "
      f"{'fazla gecen':>12s} {'fazla duran':>12s}")
for ad, duzenek, hizi in (("bagimsiz", yerel, lambda o: hiz(o, NOKTALAR[o["nokta"]][1])),
                          ("denetleyici", merkezi, lambda o: hiz(o, ORTAK_GUC))):
    d = fark(ist, hucre_niyeti, duzenek)
    print(f"{ad:<12s} {d['dogru_gecti'] + d['yanlis_gecti']:11d} "
          f"{sum(1 for o in ist if hizi(o) == 6):8d} "
          f"{d['dogru_gecti'] + d['dogru_durdu']:6d} "
          f"{d['yanlis_gecti']:12d} {d['yanlis_durdu']:12d}")
print()

ayrilan = [o for o in ist if len({ortam(o, g) for _, g in NOKTALAR}) > 1]
kademe_ayrilan = [o for o in ist if len({hiz(o, g) for _, g in NOKTALAR}) > 1]
print(f"iliskilenme karari noktadan noktaya degisen istemci: {len(ayrilan)}")
print(f"hiz kademesi noktadan noktaya degisen istemci: {len(kademe_ayrilan)}")
print()

print(f"{'nokta cifti':<11s} {'yalniz ilkinde':>14s} {'yalniz ikincide':>15s} "
      f"{'kademesi farkli':>15s}")
for adi, g1, g2 in (("A / B", 58, 52), ("B / C", 52, 46), ("A / C", 58, 46)):
    print(f"{adi:<11s} {sum(1 for o in ist if ortam(o, g1) and not ortam(o, g2)):14d} "
          f"{sum(1 for o in ist if ortam(o, g2) and not ortam(o, g1)):15d} "
          f"{sum(1 for o in ist if hiz(o, g2) != hiz(o, g1)):15d}")
nokta  butce  istemci iliskilenen  fazla gecen  fazla duran
    A     58       10           8            2            0
    B     52       18           9            0            2
    C     46       12           8            0            2

rejim        iliskilenen  tam hiz  dogru  fazla gecen  fazla duran
bagimsiz              25        5     34            2            4
denetleyici           23        9     36            0            4

iliskilenme karari noktadan noktaya degisen istemci: 14
hiz kademesi noktadan noktaya degisen istemci: 29

nokta cifti yalniz ilkinde yalniz ikincide kademesi farkli
A / B                    8               0              22
B / C                    6               0              21
A / C                   14               0              29

Daha Çok Bağlanan, Daha Az Çalışan

Bağımsız rejim 25 istemci ilişkilendiriyor, denetleyici rejimi 23. Yalnız bu sütuna bakan bir karşılaştırma bağımsız modeli kazanan ilan ederdi: iki istemci daha bağlanmış.

Yanındaki sütun bunu bozuyor. Tam hız kademesinde çalışan istemci bağımsız rejimde 5, denetleyici rejiminde 9‘dur. Daha çok istemci ilişkileniyor ve daha azı çalışıyor. Sebep üst tabloda görünüyor: bütçesi 58’e çekilmiş A noktası kendi payına düşen istemcileri fazla uzaktan topluyor, bütçesi 46’ya kısılmış C noktası ise kendi payındakileri alt kademelere düşürüyor. Ortalaması, iki uçtan da kaybeden bir dağılımdır.

İki yön ayrı ayrı okunduğunda tablo daha da netleşiyor. Fazla geçen bağımsız rejimde 2, denetleyicide 0. İki sızıntının ikisi de A noktasından geliyor — üst tablo bunu doğrudan gösteriyor: A’nın fazla geçeni 2, öbür ikisininki 0. Fazla duran ise iki rejimde de 4’tür.

Bu eşitlik dersin en önemli satırıdır. Bir noktanın bütçesini yükseltmek iki sızıntı satın aldı ve eksiği bir istemci bile azaltmadı. Kapsama kazancı, kazanılması gereken yere değil, zaten kapsanmış olan yerin dışına gitti. Kursun ikinci iddiası budur: düzeneği büyütmek niyete yaklaştırmaz.

Kararın Sahibi Kim

Alt iki tablo tutarlılığı ölçüyor. Kırk istemcinin 14’ünde ilişkilenme kararı hangi noktanın değerlendirdiğine göre değişiyor; 29’unda hız kademesi değişiyor. Yani kırk istemcinin yaklaşık üçte ikisi için “bu istemci ne alıyor” sorusunun cevabı istemcinin durumunda değil, kime denk geldiğinde yazılı.

Son tablo çiftleri ayırıyor. A ile C arasında 14 istemci yalnız A’da ilişkilenebiliyor ve hiçbiri yalnız C’de ilişkilenemiyor — asimetri tamdır, çünkü düşük bütçe yalnız kaybettirir. Kademesi farklı olan istemci sayısı A ile B arasında 22, B ile C arasında 21, A ile C arasında 29’dur.

Bu sayılar bir kapsama sorunu gibi görünmez. Şikâyet eden kullanıcı “binanın şu köşesinde ağ yavaş” der; ölçüm o köşede bir kapsama boşluğu bulmaz, çünkü boşluk yoktur. Bulunması gereken şey, o köşeyi kapsayan noktanın başka bir bütçeyle çalıştığıdır.

Tutarsızlığın doğrudan bir sonucu dolaşımda ödenir. Bir istemci iki nokta arasında gezinirken “burada duruyorum” ile “öbürüne geçiyorum” kararını kendi ölçtüğü işaret gücüne göre verir; ölçtüğü işaret ise noktanın bütçesine bağlıdır. Bütçesi yüksek bir nokta istemciyi uzaktan tutmayı sürdürür ve geçiş geç olur; bütçesi düşük bir nokta istemciyi erken bırakır. İki bütçe aynı ağın içinde yan yana durduğunda geçiş eşiği ağın her yerinde aynı anlama gelmez. Bu dersin ölçtüğü şey yalnız kararın ayrılmasıdır; geçişin kendisinin ne zaman olması gerektiği ve erken ile geç geçişin iki ayrı hata olması dolaşım dersinin konusudur.

Denetleyicinin Kendi Kusurları

Denetleyici modelinin ölçülen üstünlüğü bedava değildir ve iki yerde ödenir.

Birincisi tek noktadan arıza. Denetleyici erişilemez olduğunda noktalar ne yapacak? İki davranış vardır: ya yeni ilişkilenmeyi durdurup ilkeyi korurlar, ya da ellerindeki son yapılandırmayla yerel kalıp çalışmayı sürdürürler. İkincisi seçilirse ve kesinti uzarsa ağ yavaş yavaş bağımsız rejime döner — üstelik bu kez kimse fark etmeden. Ölçümün bağımsız satırı, denetleyicisiz geçen uzun bir sürenin sonundaki hâldir.

İkincisi ortak kusurdur. Bağımsız modelde yanlış bir değer bir noktayı bozar; denetleyici modelinde yanlış bir değer bütün noktalara dağıtılır. Ölçümdeki denetleyici rejimi 52’yi dağıttığı için sıfır sızdırıyor; 58’i dağıtsaydı sızıntı bütün ağa yayılacaktı. Ortak görüş, ortak hatayı da ortaklaştırır.

Bu iki kusurun ikisi de yapılandırmanın kaydedilmesiyle daraltılır: dağıtılan değerin ne olduğu, ne zaman değiştiği ve hangi noktaya ulaştığı yazılıysa, sapma bir ölçüm konusudur. Yazılı değilse sapma yalnız kullanıcı şikâyetiyle görünür ve o şikâyet yanlış yeri gösterir.

Özet

  • İlişkilenme bir çerçeve alışverişidir ve karar son adımda verilir; o adım hem kabulü hem verilen hız kademesini yazar, ikincisi hiçbir göstergede görünmez.
  • Bağımsız erişim noktası kendi bütçesiyle karar verir ve komşusunu bilmez; denetleyici modeli denetim düzlemini merkezîleştirerek ortak bir görüş kurar.
  • Yapılandırma sapması ölçülebilir bir kusurdur: üç ayrı bütçe 25 istemci ilişkilendirip 2 fazla geçen üretir, ortak politika 23 ilişkilendirip 0 sızdırır.
  • Fazla duran iki rejimde de 4’tür. Bir noktanın bütçesini yükseltmek yalnız sızıntı satın aldı; eksiği hiç azaltmadı.
  • Kırk istemcinin 14’ünde ilişkilenme kararı, 29’unda hız kademesi hangi noktaya denk geldiğine göre değişir; bu bir kapsama boşluğu olarak görünmez.

Sonraki Adım

Bu ölçümde bütçeler kurgudan geldi ve neden o değerlere ayarlandıkları sorulmadı. Oysa bir kablosuz ağın tasarımı tam olarak bu sorudur: her noktaya hangi kanal, hangi bütçe verilecek ve hücreler nerede birbirine değecek? Sonraki ders bütçeyi tek başına tarar — 58, 52, 46 ve 40 — ve her değerde iki yönü birden sayar. Orada görülecek ki bütçeyi düşürmek sızıntıyı sıfırlar, ve sıfırladığı anda hücrenin içinde bıraktığı eksik sessizce büyür.

İlerlemeni kaydetmek ve not almak için Giriş yap

Notlarım

Not almak için giriş yapmalısın.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat