İçeriğe geç
academia.sh

Ders 07 / 14

Mobil Ağlar

Hücresel mimaride kararı istemci değil ağ verir; hücre arası uzaklık 90'dan 30'a çekildikçe hizmetin iki yönlü hatası 5 ve 1'den sıfıra iner ama örtüşen istemci 0'dan 31'e çıkar, devir kararı ise gereksiz devirden kaçırılan devire geçer.

İçindekiler

Önceki dersin üç menzil sınıfında da hizmet veren nokta tekti ve yerinden kımıldamadı. İstemci uzaklaştıkça kademesi düştü, sonunda ilişkilenemedi ve kimse ona başka bir nokta önermedi. Oysa geniş bir alanı kapsamanın öbür yolu tek noktayı güçlendirmek değil, çok sayıda noktayı yan yana dizip istemciyi aralarında devretmektir.

Hücresel mimarinin kurucu fikri budur. Bu dersin sorusu iki katlıdır: devir kararını kim verir, ve iki hücrenin kapsaması ne kadar örtüşmelidir. İkinci soru bir tasarım değişkenidir ve iki yönde birden ödenir.

Hücresel Mimarinin Ana Bileşenleri

Mimari iki yarıya ayrılır. Radyo erişim tarafında baz istasyonları durur; bir baz istasyonu bir ya da birden çok hücre taşır ve her hücrenin bir kimliği vardır. Hücreler birbirinin komşusudur ve her hücre komşularının listesini bilir — devir bu listeden başlar.

Çekirdek tarafta üç iş görülür. Hareketlilik yönetimi hangi istemcinin nerede olduğunu tutar; bağlı istemci için bu bilgi hücre düzeyinde, boştaki istemci için takip alanı düzeyindedir. Boştaki istemcinin tam hücresi bilinmez ve bilinmesi de gerekmez; istemciye ulaşmak gerektiğinde takip alanının tamamına çağrı yapılır. Geçit, veri düzleminin dış ağa çıktığı noktadır. Abone kaydı ise kimlik bilgilerini ve izinleri tutar.

İstemci tarafında iki bileşen sayılır: kimlik bilgisini taşıyan kimlik modülü ve komşu hücrelerin işaret gücünü bildiren ölçüm raporu.

# ogretilen yerlesim , calistirilmamistir
# bilesen adlari ve kimlik degerleri kurgudur

radyo erişim tarafı              çekirdek taraf
  baz istasyonu                    hareketlilik yönetimi
    hücre A (kimlik 1001)            bağlı istemci kaydı
    hücre B (kimlik 1002)            takip alanı kaydı
  devir arayüzü                    geçit
    komşu listesi                    veri düzlemi çıkışı
    bağlam aktarımı                abone kaydı
                                     kimlik bilgisi ve izin kaydı

istemci
  kimlik modülü : kimlik bilgisini taşır
  ölçüm raporu  : komşu hücrelerin işaret gücünü bildirir

Bu yerleşimin taşıdığı asıl ayrım denetim düzlemi ile veri düzleminin ayrı olmasıdır. Devir bir denetim düzlemi işidir: kararı, bağlamın aktarılmasını ve kaydın güncellenmesini kapsar. Veri düzlemi bu sırada durmaz; akış eski hücreden yeni hücreye taşınır. İki düzlemin ayrı olması, devir sırasında hizmetin kesilmemesinin koşuludur.

Hücre Devri

Hücre devri, hizmet veren hücrenin değişmesidir ve dolaşımın hücresel karşılığıdır. Ama karar akışı terstir. Kablosuz yerel ağda ölçen de karar veren de istemcidir. Hücresel mimaride istemci ölçer, ağ karar verir: istemci komşu hücrelerin işaret gücünü ölçüm raporuyla bildirir, hizmet veren hücre raporu değerlendirir, hedef hücreyle bağlamı anlaşır ve istemciye devir komutunu gönderir.

Bu terslik iki sonuç doğurur. Birincisi, karar tek elde toplanır: ağ, komşu hücrelerin yükünü ve durumunu da hesaba katabilir; istemci bunları göremez. İkincisi, karar bir gidiş–dönüş borcu taşır — rapor gitmeden ve komut gelmeden devir olmaz.

Kararın eşiği devir payıdır: hedef hücrenin işaret gücü, hizmet veren hücreninkini bu kadar birim aşmadan devir başlatılmaz. Pay sıfır olsaydı, iki hücrenin işareti birbirine yakın olan her istemci sürekli ileri geri devredilirdi. Bu derste pay sabit tutulur; değiştirilen tek şey hücreler arası uzaklıktır.

Devrin tamamlanamaması ayrı bir durumdur. Rapor gönderildikten sonra hizmet veren hücrenin işareti komut gelmeden eşiğin altına düşerse bağ kopar; istemci bu noktada devri bekleyemez, en iyi bulduğu hücreye yeniden kurulum başlatır ve bağlamı sıfırdan kurar. Bu, devrin kazandırmaya çalıştığı sürekliliğin tam tersidir ve geç kalmış bir devir kararının gerçek bedelidir. Ölçümde bu durum ayrı bir sütun olarak görünmez; kaçırılan devir sayısının arkasında durur.

Devrin Kaç Türü Var ve Boştaki İstemci

Her devir aynı maliyeti taşımaz. İki hücre aynı baz istasyonundaysa bağlam istasyonun içinde taşınır ve çekirdek tarafın haberi olması gerekmez. İki hücre ayrı baz istasyonlarındaysa bağlam devir arayüzünden geçer ve hareketlilik yönetimindeki kayıt güncellenir. Veri düzleminin çıkış noktası da değişiyorsa geçit tarafında bir işlem daha gerekir. Aynı adı taşıyan üç işlem, denetim düzleminde üç ayrı yük demektir; komşu listesi bu yüzden yalnız hangi hücrelerin komşu olduğunu değil, hangi devrin hangi türden olacağını da belirler.

Sektörleme bu tabloyu doğrudan etkiler. Bir baz istasyonu yönlü antenlerle birden çok hücre taşıdığında, o hücreler arasındaki devirler ucuz türden olur; hücre sayısını artırmanın maliyeti, hücreleri ayrı istasyonlara dağıtmanın maliyetiyle aynı değildir.

Boştaki istemci ayrı bir denge taşır. Bağlı istemcinin hücresi bilinir; boştaki istemcinin yalnız takip alanı bilinir ve ona ulaşmak gerektiğinde alanın tamamına çağrı yapılır. Takip alanı büyütülürse istemci alan değiştirmedikçe konum güncellemesi göndermez ve denetim düzlemi rahatlar; karşılığında her çağrı daha çok hücreye yayılır. Alan küçültülürse çağrı ucuzlar, güncelleme pahalılaşır. Bu, kursun saydığı iki yönün mimarideki bir başka görünümüdür: bir yönü ucuzlatan ayar öbür yönü pahalılaştırır ve tek yöne bakan bir ölçüm ikisini de yanlış sıralar.

Örtüşme Bir Tasarım Değişkenidir

İki hücre birbirine yaklaştıkça kapsamaları örtüşür. Örtüşme boşluk bırakmamayı ve devrin tamamlanacağı bir alan sağlamayı garanti eder; karşılığında iki hücre aynı toprağı ikinci kez kapsar ve orta hat çevresindeki istemciler iki hücre arasında kararsız kalır.

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

  • KB65 — İstemciler A ile B hücrelerini birleştiren doğru üzerindedir. Her istemcinin A’ya uzaklığı ortak kurgudan gelir; B’ye uzaklığı, hücreler arası uzaklıkla A’ya uzaklığının farkının mutlak değeridir.
  • KB66 — İki hücrenin gücü eşittir ve 58’dir; tasarım yarıçapı ikisinde de 30. Girişim istemcinin kendi değeridir ve iki hücre için aynıdır.
  • KB67 — Hizmet niyeti iki tasarım yarıçapının birleşimidir: istemci hücrelerden birine tasarım yarıçapı kadar yakınsa hizmet almalıdır. Niyet ortak kurgunun hücre niyetinden, yakın hücrenin uzaklığıyla kurulur.
  • KB68 — Devir niyeti ayrı bir sorudur: devir ancak istemcinin hız kademesini yükseltiyorsa yapılmalıdır. Kademeyi değiştirmeyen devir gereksizdir.
  • KB69 — Devir düzeneği iki koşulu arar: hedef hücrenin işareti ilişkilendirme eşiğini aşacak ve hizmet veren hücreninkini devir payı kadar geçecek. Devir payı 3’tür ve ölçüm boyunca sabit kalır.
  • KB70 — Örtüşen istemci, iki hücreden de eşiği aşan işaret alan istemcidir. Kararsız istemci, örtüşen istemcilerden iki işaret farkı devir payının altında kalanlardır.
  • KB71 — Boşlukta kalan istemci, iki hücreden de eşiği aşamayandır.
  • KB72 — Kümenin çözünürlüğü kırk istemcidir; ölçülebilen en küçük fark 1/40 = 0,025’tir.

Ölçüm

"""Hucre devri ve kapsama ortusmesi.

Bolum 1 - ortusme degistikce hizmetin iki yonlu hatasi.
Bolum 2 - devir kararinin kendi iki yonlu hatasi.
"""
TOHUM = 20260811
ESIK = 18
KADEMELER = ((34, 6), (28, 4), (22, 2), (18, 1))
GUC = 58
PAY = 3
ARALIKLAR = (30, 45, 60, 75, 90)


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

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


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 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 hucre_niyeti(o, yaricap=30):
    return o["uzaklik"] <= yaricap


def ikili(o, ara):
    """Iki hucreye uzaklik ve iki hucreden gelen isaret gucu."""
    da, db = o["uzaklik"], abs(ara - o["uzaklik"])
    return da, db, GUC - da - o["girisim"], GUC - db - o["girisim"]


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


def hizmet_niyeti(o, ara):
    """Tasarimin sozu: iki hucrenin yaricapinin birlesimi kapsanir."""
    da, db, _, _ = ikili(o, ara)
    return hucre_niyeti({"uzaklik": min(da, db)})


def hizmet(o, ara):
    _, _, ia, ib = ikili(o, ara)
    return max(ia, ib) >= ESIK


def devir_niyeti(o, ara):
    """Devir ancak hiz kademesini yukseltiyorsa yapilmalidir."""
    _, _, ia, ib = ikili(o, ara)
    return kademe(ib) > kademe(ia)


def devir(o, ara):
    _, _, ia, ib = ikili(o, ara)
    return ib >= ESIK and ib - ia >= PAY


ist = istemciler()
print(f"istemci {len(ist)} | hücre içi {sum(hucre_niyeti(o) for o in ist)} | "
      f"tek hücrede hizmet alan "
      f"{sum(1 for o in ist if GUC - o['uzaklik'] - o['girisim'] >= ESIK)}")
print()
print("hizmet: iki hücrenin birleşimi")
print(f"{'aralık':>6s} {'örtüşen':>7s} {'kararsız':>8s} {'boşlukta':>8s} "
      f"{'hizmet alan':>11s} {'fazla geçen':>11s} {'fazla duran':>11s}")
for ara in ARALIKLAR:
    d = fark(ist, lambda o, a=ara: hizmet_niyeti(o, a),
             lambda o, a=ara: hizmet(o, a))
    ortusen = kararsiz = bosluk = 0
    for o in ist:
        _, _, ia, ib = ikili(o, ara)
        if ia >= ESIK and ib >= ESIK:
            ortusen += 1
            if abs(ia - ib) < PAY:
                kararsiz += 1
        elif ia < ESIK and ib < ESIK:
            bosluk += 1
    print(f"{ara:6d} {ortusen:7d} {kararsiz:8d} {bosluk:8d} "
          f"{d['dogru_gecti'] + d['yanlis_gecti']:11d} "
          f"{d['yanlis_gecti']:11d} {d['yanlis_durdu']:11d}")
print()
print("devir: kademeyi yükseltmeli")
print(f"{'aralık':>6s} {'niyet devir':>11s} {'yapılan devir':>13s} "
      f"{'fazla geçen':>11s} {'fazla duran':>11s}")
for ara in ARALIKLAR:
    d = fark(ist, lambda o, a=ara: devir_niyeti(o, a),
             lambda o, a=ara: devir(o, a))
    print(f"{ara:6d} {sum(devir_niyeti(o, ara) for o in ist):11d} "
          f"{d['dogru_gecti'] + d['yanlis_gecti']:13d} "
          f"{d['yanlis_gecti']:11d} {d['yanlis_durdu']:11d}")
istemci 40 | hücre içi 27 | tek hücrede hizmet alan 31

hizmet: iki hücrenin birleşimi
aralık örtüşen kararsız boşlukta hizmet alan fazla geçen fazla duran
    30      31        1        0          40           0           0
    45      28        3        0          40           0           0
    60      11        4        1          39           0           1
    75       1        0        7          33           7           1
    90       0        0        9          31           5           1

devir: kademeyi yükseltmeli
aralık niyet devir yapılan devir fazla geçen fazla duran
    30          27            30           3           0
    45          19            21           2           0
    60          13            12           0           1
    75           2             2           0           0
    90           0             0           0           0

Örtüşme Daraldıkça

Alt satır bir denetim noktasıdır. Aralık 90 olduğunda ikinci hücre kimseye ulaşmıyor: örtüşen 0, devir 0, ve hizmet tablosu ortak kurgunun tek hücreli 58 satırını birebir veriyor — 31 hizmet alan, 5 fazla geçen, 1 fazla duran. İki hücreli ölçüm, hücreler yeterince ayrıldığında tek hücreli ölçüme çöküyor.

Aralık daraldıkça hizmetin iki hatası da iniyor: 60’ta 0 ve 1, 45 ile 30’da ikisi de 0. Kırk istemcinin kırkı hizmet alıyor ve hiçbiri niyetin dışında değil. Bu, kâğıt üzerinde kusursuz bir yapılandırmadır — ve dersin uyarısı da buradadır.

Bedel örtüşen sütununda duruyor: aralık 30’da 31 istemci iki hücreden birden eşiği aşan işaret alıyor. Kırk istemcinin otuz biri iki hücrenin birden kapsadığı toprakta duruyor; ikinci hücre kapsamayı genişletmiyor, aynı yeri ikinci kez kapsıyor. Hata sütunlarını sıfırlayan yapılandırma, kapsamanın yarısını yeniden harcayan yapılandırmadır. Bu maliyet fark işlevinin saydığı iki yönde görünmez; başka bir sütunda görünür.

Aralık 75 satırı ters yöndeki uyarıyı taşıyor. Fazla geçen burada 7’ye çıkıyor — tek hücrenin 5’inden yüksek. İki hücre ayrıldıkça her biri kendi kenarından sızıyor ve sızıntılar toplanıyor; hücre eklemek sızıntıyı bölmüyor, çoğaltıyor. Aynı satırda 7 istemci boşlukta kalıyor: iki hücreden de eşiği aşamıyorlar. Aynı yapılandırma hem fazladan sızdırıyor hem boşluk bırakıyor.

kararsız sütunu beklenmedik davranıyor: 1, 3, 4, 0, 0. En geniş örtüşmede en az kararsız istemci var. Nedeni şudur: kararsızlık örtüşmenin büyüklüğüne değil, iki hücrenin orta hattı çevresindeki istemci yoğunluğuna bağlıdır. Aralık 30’da orta hat 15 metrededir ve orada az istemci vardır; aralık 60’ta orta hat 30 metreye kayar ve kalabalık oraya denk gelir. Kararsızlık bir kapsama ölçüsü değil, bir yerleşim ölçüsüdür.

Devrin Kendi İki Hatası

İkinci tablo devir kararını kendi niyetine karşı ölçüyor: devir ancak hız kademesini yükseltiyorsa doğrudur.

Aralık 30’da niyet 27 devir istiyor, düzenek 30 devir yapıyor ve 3’ü gereksiz — kademeyi değiştirmeyen devirler. Aralık 45’te aynı yön sürüyor: 2 gereksiz devir. Örtüşme bol olduğunda devir payı çok sayıda istemci için aşılıyor, ama aşılan pay kademeyi yükseltmeye yetmiyor. Bu, denetim düzleminde boşa harcanan bir işlemdir: rapor, bağlam aktarımı ve komut, hiçbir kazanç getirmeden.

Aralık 60’ta işaret ters dönüyor: gereksiz devir 0, kaçırılan devir 1. Örtüşme daraldıkça devir payını aşan istemci azalıyor ve pay, kademeyi yükseltecek bir devri engelleyebiliyor. Aynı sabit pay, bol örtüşmede fazla geçen, dar örtüşmede fazla duran üretiyor. Payı hiç değiştirmeden hatanın yönü değişti; değişen tek şey hücrelerin uzaklığıydı.

İki tabloyu yan yana koymak dersin sonucunu veriyor. Hizmet tablosunda en iyi görünen yapılandırmalar — aralık 30 ve 45 — devir tablosunda en çok gereksiz devri üreten yapılandırmalardır. Tek bir tabloya bakan bir denetim, ikisinden hangisine baktığına göre zıt yanıtlar verir.

Özet

  • Hücresel mimari radyo erişim tarafı ile çekirdek tarafa ayrılır; devir bir denetim düzlemi işidir ve veri düzlemi bu sırada eski hücreden yeni hücreye taşınır.
  • Kararı istemci değil ağ verir: istemci ölçüm raporunu gönderir, hizmet veren hücre hedefle bağlamı anlaşır ve devir komutunu gönderir; bu, kararı tek elde toplar ve bir gidiş–dönüş borcu getirir.
  • Hücre arası uzaklık 90’dan 30’a çekildikçe hizmetin iki hatası 5/1’den 0/0’a iner, ama örtüşen istemci 0’dan 31’e çıkar; sıfır hata, kapsamanın ikinci kez harcanmasıyla ödenir.
  • Aralık 75’te fazla geçen 7 olur — tek hücrenin 5’inden yüksek — ve aynı satırda 7 istemci boşlukta kalır; hücre eklemek sızıntıyı bölmez, çoğaltır.
  • Sabit devir payı, bol örtüşmede 3 gereksiz devir, dar örtüşmede 1 kaçırılan devir üretir; hatanın yönünü payın değeri değil hücrelerin uzaklığı belirler.

Sonraki Adım

Bu kursun kablosuz yarısı boyunca sınırı çizen şey hep aynı cinstendi: uzaklık, girişim, güç bütçesi, kuşak tavanı, hücre yerleşimi. Hepsi ortamın özellikleridir. Kimse oturup “şu geçsin, bu geçmesin” diye bir kural yazmadı; sınır, fiziğin ve yerleşimin bir yan ürünü olarak ortaya çıktı ve niyetten iki yönde birden ayrıldı.

Sonraki konu sınırı ortamın elinden alır. Sınır bir kez yazıldığında — kim geçecek, kim duracak, sıralı bir dizi olarak açıkça bildirildiğinde — niyetten sapma ortadan kalkar mı, yoksa yalnız yer mi değiştirir? Sonraki ders bu soruyu açar ve sayılan iki yön aynı kalır: fazla geçen ve fazla duran.

İ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