Ders 04 / 14
Dolaşım ve Bant Yönlendirme
Geçiş eşiği 30'dan 14'e indikçe fazla geçen 8'den 0'a iner ve fazla duran 0'dan 8'e çıkar; erken geçiş ile geç geçiş aynı düğmenin iki ucudur ve tek yönü düzeltmek öbürünü büyütür.
İçindekiler
Önceki ders hücreleri bilerek örtüştürdü: boşluk kalmasın diye komşu hücrelerin kenarları üst üste bindirildi. Ölçüm bütçeyi taradı ve istemciler yerlerinde durdu — kırk istemcinin hiçbiri kımıldamadı.
Örtüşme tam da kımıldayanlar için kurulmuştu. Kenardaki bir istemci iki noktayı birden duyar; yürüdükçe biri zayıflar, öbürü güçlenir. O zaman ilişkilenme kararı bir kez değil defalarca verilir ve her seferinde aynı soru sorulur: elimdekini bırakayım mı? Bu dersin ölçtüğü şey o sorunun eşiğidir. Eşiği yükseltmek istemciyi erken bırakır, düşürmek zayıf noktaya yapıştırır. İkisi de hatadır ve aynı sayıda görünmezler.
Geçiş Kararını Kim Verir
Dolaşım (roaming), bir istemcinin bağını bir erişim noktasından ötekine taşımasıdır. İlk söylenmesi gereken şey, kararın kimde olduğudur: karar istemcidedir. Ağ istemciyi bir noktadan atabilir, ona komşularını bildirebilir, hatta belirli bir noktaya gitmesini önerebilir; ama istemci hangi noktaya ilişkileneceğini kendi seçer.
Bu, ölçümün neden iki yönlü olduğunu doğrudan açıklar. Ağın elindeki tek şey eşiklerdir: hangi işaret gücünün altında istemciye “artık seni tutmuyorum” denecek, komşu listesinde ne bildirilecek. Eşik ağın yazdığı, karar istemcinin verdiği şeydir.
# ogretilen gecis dizisi , kurgudur ve calistirilmamistir
1. nokta A -> istemci komsu bildirimi
A: kanal 4 , olculen isaret 21
B: kanal 1 , olculen isaret 29
C: kanal 7 , olculen isaret 12
2. istemci karar
elimdeki isaret 21 , esik 22 -> birak
3. istemci -> nokta B iliskilenme istegi
4. nokta B -> istemci iliskilenme yaniti
sonuc: kabul , verilen kademe 4
5. nokta A eski bag dusurulur
<-- 2. ve 3. adim arasinda cerceve kaybi olur
Beşinci adımın altındaki not dolaşımın asıl maliyetidir. İki ilişkilenme arasında istemci hiçbir noktaya bağlı değildir; o aralıkta gelen çerçeveler düşer. Aralık kısaysa üst katmanlar bunu bir gecikme dalgalanması olarak yutar, uzunsa bağlantı kopmuş gibi görünür. Geçiş sırasında yeniden kurulması gereken başka şeyler de vardır ve bunlardan biri sonraki dersin konusudur.
Birinci adımın da bir bedeli vardır ve daha az görünür. İstemci komşularını bilmiyorsa onları kendi bulmak zorundadır; bulmak için de öbür kanalları dinlemesi gerekir. Bir kanalı dinlerken kendi kanalında değildir — yani o sırada gelen çerçeveleri kaçırır. Tarama, geçiş olmasa bile kayıp üretir. Bir istemci ne kadar sık tararsa komşularını o kadar taze bilir ve o kadar çok çerçeve kaçırır.
Komşu bildirimi tam bu ödünleşimi hafifletmek içindir: ağ, istemcinin arayacağı listeyi ona verir. İstemci artık on kanal yerine bildirilen üçünü dinler. Ama bildirimi kim yazar sorusu önceki dersin sorusudur — bağımsız bir erişim noktası komşularını bilmez, ortak görüş yoksa liste de yoktur. Dolaşımın kalitesi, kararın nerede alındığına bu noktadan bağlanır.
Erken Geçiş ile Geç Geçiş
Ölçümün kurgusu bir koridordur: iki erişim noktası 50 m arayla duruyor ve her istemci bu
doğru üzerinde bir yerde. İstemcinin A’ya uzaklığı ilk dersin uzaklık alanıdır; B’ye
uzaklığı 50 - uzaklık.
Niyet en yalın hâliyle şudur: istemci hangi noktaya yakınsa ona ait olmalıdır. Önceki dersteki örtüşme burada bir belirsizlik yaratır — 20 ile 30 m arasındaki bir istemciyi iki hücre de kendi içinde sayar. Kâhinin tek bir cevap vermesi için en yakın nokta kuralı seçilir; koridorun ortası olan 25 m sınırdır.
Düzenek ise niyetin bilebildiği şeyi bilmez. İstemci kendi konumunu ölçmez; yalnız elindeki noktanın işaret gücünü ölçer ve o güç eşiğin altına düştüğünde bırakır. İşaret gücü uzaklığa ve girişime bağlı olduğundan, aynı uzaklıktaki iki istemci farklı zamanlarda bırakır.
İki hata buradan doğar:
- Erken geçiş — istemci hâlâ A’ya yakınken bırakır. Niyet durduracaktı, düzenek geçirdi: fazla geçen.
- Geç geçiş — istemci çoktan B’ye yaklaşmışken A’ya yapışır. Niyet geçirecekti, düzenek durdurdu: fazla duran.
Bant Yönlendirme Neyi Bilmez
Bant yönlendirme (band steering) ikinci bir geçiş kararıdır: istemciyi menzili kısa ama kademe tavanı yüksek olan geniş banda mı, menzili uzun ama tavanı düşük olan dar banda mı koymalı?
Doğru cevap istemcinin geniş bantta gerçekten ne alacağına bağlıdır. Sorun şudur: istemci geniş bandı henüz denemedi. Yönlendirme kararı verilirken elde yalnız dar bant okuması vardır ve karar o okumayla verilir. Kural bir vekil ölçümdür — ölçmek istediği şeyi değil, onunla ilişkili başka bir şeyi ölçer.
Ölçümün varsayımları:
- KB22 — Kırk istemci, uzaklık ve girişim ilk dersin kurgusundan gelir. İşaret bütçesi dolaşım ölçümünde 52’de sabittir.
- KB23 — Koridor kurgusu: iki nokta 50 m arayla durur, istemcinin B’ye uzaklığı
50 - uzaklıktır. Niyet en yakın nokta kuralıdır; sınır 25 m’dir. - KB24 — Düzenek yalnız elindeki noktanın işaret gücünü görür. Konum, B’nin işareti ve istemcinin yönü ölçüme girmez.
- KB25 — Taranan geçiş eşikleri 30, 26, 22, 18 ve 14’tür. Tek seferde yalnız eşik değişir.
- KB26 — Kararsızlık ölçümünde işaretin kısa sürede 3 birim oynadığı varsayılır. Bir istemci, oynama aralığı hem bırakma hem dönme eşiğini kesiyorsa kararsız sayılır; histerezis payı 0 iken iki eşik çakışıktır.
- KB27 — Bant yönlendirmede dar bant 58, geniş bant 46 bütçesiyle modellenir; geniş bandın
kademe tavanı iki katıdır (
2 × kademe). Bu, menzil–hız ödünleşiminin kurgusudur. - KB28 — Bant niyeti kâhinden gelir: istemci geniş bantta gerçekten daha çok alıyorsa oraya aittir. Kâhin iki bandın da kademesini bilir.
- KB29 — Yönlendirme kuralı yalnız dar bant okumasını görür. Geniş bant okuması karara girmez; girseydi kural değil ölçüm olurdu.
- KB30 — Küme 40 istemcidir; ölçülebilen en küçük fark 1/40 = 0,025’tir.
Ölçüm
"""Dolasim ve bant yonlendirme: erken gecis ile gec gecis iki ayri hatadir.""" TOHUM = 20260811 GUC = 52 KORIDOR = 50 # iki erisim noktasi arasindaki uzaklik, metre OYNAKLIK = 3 # isaretin kisa surede oynadigi aralik 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)}) return liste def isaret(o, guc=GUC): return guc - o["uzaklik"] - o["girisim"] def hiz(o, guc=GUC): for esik, kademe in KADEMELER: if isaret(o, guc) >= esik: return kademe return 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 gecis_niyeti(o): """Istemci hangi noktaya yakinsa ona ait olmalidir.""" return o["uzaklik"] > KORIDOR / 2 def gecis(o, esik): """Duzenek: elindeki noktanin isareti esigin altina duserse birak.""" return isaret(o) < esik def kararsiz(o, esik, pay): """Isaret oynadikca karar iki esigi de kesiyorsa istemci gidip gelir.""" return esik + pay - OYNAKLIK <= isaret(o) <= esik + OYNAKLIK ist = istemciler() print(f"istemci {len(ist)} | koridor {KORIDOR} m | B'ye ait olmasi gereken " f"{sum(1 for o in ist if gecis_niyeti(o))}") print() print(f"{'gecis esigi':>11s} {'gecen':>6s} {'dogru':>6s} {'fazla gecen':>12s} " f"{'fazla duran':>12s}") for esik in (30, 26, 22, 18, 14): d = fark(ist, gecis_niyeti, lambda o, e=esik: gecis(o, e)) print(f"{esik:11d} {d['dogru_gecti'] + d['yanlis_gecti']:6d} " f"{d['dogru_gecti'] + d['dogru_durdu']:6d} {d['yanlis_gecti']:12d} " f"{d['yanlis_durdu']:12d}") print() print(f"{'histerezis payi':>15s} {'kararsiz istemci':>17s}") for pay in (0, 2, 4, 6): print(f"{pay:15d} {sum(1 for o in ist if kararsiz(o, 22, pay)):17d}") print() DAR, GENIS = 58, 46 def hiz_dar(o): return hiz(o, DAR) def hiz_genis(o): """Genis bant: menzil kisa, kademe tavani iki kat.""" return 2 * hiz(o, GENIS) def bant_niyeti(o): return hiz_genis(o) > hiz_dar(o) def yonlendirme(o, esik): """Karar yalniz dar bant okumasiyla verilir; genis bant henuz denenmedi.""" return isaret(o, DAR) >= esik print(f"{'yonlendirme esigi':>17s} {'genise itilen':>13s} {'dogru':>6s} " f"{'fazla gecen':>12s} {'fazla duran':>12s}") for esik in (44, 40, 36, 32): d = fark(ist, bant_niyeti, lambda o, e=esik: yonlendirme(o, e)) print(f"{esik:17d} {d['dogru_gecti'] + d['yanlis_gecti']:13d} " f"{d['dogru_gecti'] + d['dogru_durdu']:6d} {d['yanlis_gecti']:12d} " f"{d['yanlis_durdu']:12d}") print() print(f"genise ait olmasi gereken istemci: {sum(1 for o in ist if bant_niyeti(o))}") print("fazla gecenlerin kademe kaybi (no, dar kademe, genis kademe):") print([(o["no"], hiz_dar(o), hiz_genis(o)) for o in ist if yonlendirme(o, 36) and not bant_niyeti(o)])
istemci 40 | koridor 50 m | B'ye ait olmasi gereken 19
gecis esigi gecen dogru fazla gecen fazla duran
30 27 32 8 0
26 27 32 8 0
22 19 36 2 2
18 17 36 1 3
14 11 32 0 8
histerezis payi kararsiz istemci
0 9
2 9
4 6
6 2
yonlendirme esigi genise itilen dogru fazla gecen fazla duran
44 7 38 0 2
40 9 40 0 0
36 13 36 4 0
32 13 36 4 0
genise ait olmasi gereken istemci: 9
fazla gecenlerin kademe kaybi (no, dar kademe, genis kademe):
[(1, 6, 4), (11, 6, 4), (23, 6, 4), (36, 6, 4)]
Eşik Dengeyi Kaydırır
Üst tablo tek bir düğmeyi çeviriyor ve iki sütun ters yönde hareket ediyor.
Eşik 30 iken fazla geçen 8, fazla duran 0. İstemciler A’ya yakınken bırakıyor; sekizi hâlâ A’nın tarafındayken B’ye geçmiş. Hiç kimse geç kalmıyor, çünkü eşik o kadar yüksek ki herkes zamanından önce gidiyor.
Eşik 14 iken tam tersi: fazla geçen 0, fazla duran 8. Kimse erken gitmiyor, sekiz istemci B’ye çoktan yaklaşmışken A’ya yapışıyor. Yapışan istemci hem kendi kademesini düşük tutar hem ortamı uzun tutar; ilk dersteki paylaşılan süre hesabı burada karşımıza çıkar.
Ortadaki üç satır dengenin kaydığı yeri gösteriyor: 2/2, 1/3 ve arada 30 ile 26’nın aynı satırı vermesi. İkisinin aynı çıkması kurgunun çözünürlüğünden gelir — 26 ile 30 arasında hiçbir istemcinin işaret gücü yoktur, dolayısıyla o aralıkta eşiği oynatmak hiçbir kararı değiştirmez. Ölçüm bandı (KB30, 0,025) bu boşluğu göremez.
Okunacak kural şudur: erken geçiş ile geç geçiş aynı düğmenin iki ucudur. Yalnız yapışma şikâyeti alan bir işletmeci eşiği yükseltir ve yapışmayı bitirir; bitirdiği anda erken geçiş başlar ve o da bir şikâyettir — üstelik farklı bir şikâyet, çünkü erken geçiş kısa kesintiler üretir, yapışma ise sürekli yavaşlık. İki yönü ayrı saymayan bir ölçüm, düğmeyi bir uçtan öbür uca taşımaktan başka bir şey yapamaz.
Gidip Gelme ve Histerezis
Orta tablo başka bir kusuru sayıyor. İşaret gücü sabit değildir; kısa sürede birkaç birim oynar (KB26). Eşiğin tam kenarında duran bir istemci, bu oynamayla bırakma kararını verir, sonra geri döner, sonra yine bırakır. Buna gidip gelme denir ve her turda bir çerçeve kaybı üretir.
Tek eşikli düzenekte (histerezis payı 0) kırk istemcinin 9’u bu bandın içinde. Payı 4’e çıkarmak kararsız istemciyi 6’ya, 6’ya çıkarmak 2’ye indiriyor. Düzenek şudur: bırakma eşiği ile dönme eşiği ayrılır; istemci ancak işaret alt eşiğin altına düşünce bırakır, ancak üst eşiğin üstüne çıkınca döner. Aradaki pay oynamayı yutar.
Payın bedeli üst tabloda okunur. Bırakma eşiğini sabit tutup dönme eşiğini yükseltmek, geri dönüşü zorlaştırır: yanlış noktaya gitmiş bir istemci orada daha uzun kalır. Histerezis kararsızlığı azaltır, yanlış kararın ömrünü uzatır. Pay 2’nin hiçbir şeyi değiştirmemesi de aynı çözünürlük sorunudur — 2 birimlik bir pay, 3 birimlik bir oynamanın altındadır ve hiçbir istemciyi banttan çıkarmaz.
Yanlış Okumayla Verilen Karar
Alt tablo bant yönlendirmeyi ölçüyor. Kırk istemcinin 9’u gerçekten geniş banda ait; yönlendirme kuralı ise bunu dar bant okumasından tahmin etmeye çalışıyor.
Eşik 44 iken kural 7 istemciyi itiyor: fazla geçen 0, fazla duran 2. Kural temkinli; kimseyi yanlış yere göndermiyor ama iki istemciyi hak ettiği bantta çalıştırmıyor. Eşik 36 iken 13 istemci itiliyor: fazla geçen 4, fazla duran 0. Bu dördü son satırda listeleniyor ve bedelleri belli — dar bantta kademe 6 alacaklarken geniş bantta 4 alıyorlar. Kural onları “iyileştirmek” için ittiği yerde yavaşlatıyor.
Eşik 40 satırı 40/40 doğru veriyor: 0 fazla geçen, 0 fazla duran. Bu satır dikkatle okunmalıdır. Kuralın doğru olduğunu göstermez; bu kümede o kesimin niyetle çakıştığını gösterir. Kural hâlâ ölçmek istediği şeyi ölçmüyor — geniş bandın okumasını hiç görmüyor (KB29). Başka bir istemci dağılımında aynı eşik pekâlâ yanılabilir, çünkü vekil ölçümün doğruluğu ölçtüğü kümeye bağlıdır.
Ve eşik 36 ile 32’nin aynı satırı vermesi, üst tablodaki 30–26 çiftinin karşılığıdır: eşiği oynatmanın hiçbir kararı değiştirmediği aralıklar vardır. Bir eşiğin “ayarlandığı” her seferde gerçekten bir şeyin değiştiği varsayılamaz.
Özet
- Dolaşım kararını istemci verir; ağın elindeki tek düzenek eşiklerdir. Bu yüzden ölçü, ağın niyeti ile istemcinin kararı arasındaki farktır.
- Geçiş eşiği 30’dan 14’e indikçe fazla geçen 8, 8, 2, 1, 0, fazla duran 0, 0, 2, 3, 8 olur. Erken geçiş ile geç geçiş aynı düğmenin iki ucudur.
- Tek eşikli düzenekte 9 istemci gidip gelme bandındadır; histerezis payı 4 ve 6 olduğunda bu sayı 6 ve 2’ye iner, ama yanlış kararın ömrü uzar.
- Bant yönlendirme kuralı geniş bandın okumasını hiç görmez; eşik 44’te 2 istemci hak ettiği banda gitmez, eşik 36’da 4 istemci kademe 6’dan kademe 4’e düşürülür.
- Eşiği değiştirmenin hiçbir kararı değiştirmediği aralıklar vardır (30–26 ve 36–32); bir ayarın etkili olduğu, ayarın yapılmış olmasından çıkarılamaz.
Sonraki Adım
Buraya kadar kimin geçtiğini ortam belirledi. Uzaklık, girişim, bütçe ve eşik — dördü de fiziksel ya da sayısal büyüklüklerdi ve hiçbiri istemcinin kim olduğunu sormadı. Hücrenin içinde duran herkes ilişkilendi, dışında duran hiç kimse ilişkilenemedi; sınırı çizen şey mesafeydi.
Peki geçişe bir kimlik koşulu eklenirse ne olur? O zaman ilişkilenme iki sınavdan geçer: istemci yeterince yakın mı, ve istemci kabul edilebilir mi? Sonraki ders bu ikinci sınavı kurar ve aynı iki yönü orada da sayar — kimlik koşulu kimi fazladan geçirir, kimi fazladan durdurur.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.