İçeriğe geç
academia.sh

Ders 11 / 20

Vekil Sunucular ve Sıçrama Sunucusu

On bağlantı sınıfı dört yerleşimde koşturulur: denetim noktası kurulunca dönemin kaç bağlantısı tek noktadan geçiyor, kaçı noktayı atlıyor, atlama yolları kural değişikliğiyle kapatılınca kaç sınıf kalıyor, noktanın kendi yükü ve düşmesinin kestiği yol ne kadar, hangi iddia noktada kanıtlanabilir hâle geliyor.

İçindekiler

Önceki ders yönetim bölgesini çözülmemiş bir kalem olarak bıraktı: altı bölgeye doğrudan yazılmış, bölütlemenin hiçbir yol kapatmadığı tek bölge. Bu dersin hamlesi o bölgeyi kaldırmak değil, oradan çıkan bağlantıları tek bir noktadan geçirmektir. Aynı hamlenin ters yönü de var: içeriden dışarıya giden bağlantılar da tek bir noktaya toplanabilir.

İkisi ayrı şeyler yapar. İçeriden dışarıya çıkanı toplayan nokta ileri vekildir; dışarıdan ya da yönetim bölgesinden içeriye girenleri toplayan nokta sıçrama sunucusudur. Ortak yanları ölçülebilir: her ikisi de bir bağlantıyı ikiye böler, ortada bir kayıt bırakır ve kendisi yeni bir kalem olur. Ters vekilin yapılandırması ve uygulamaya iletirken kaybettiği bilgi başka bir kursta ölçüldü; buradaki eksen tek bir soru üzerindedir — kaç bağlantı gerçekten o noktadan geçiyor.

  • CS13. On bağlantı sınıfı ve dönem sayıları kurgusal bölgesel ölçüm ağına aittir. Gerçek bağlantı kurulmuyor; ölçülen şey node ile kurulan modeldir.
  • CS14. Atlama nedenleri elle yazıldı ve ikisi kural değişikliğiyle kapatılamaz işaretlendi. Gerçekte hangi atlamanın kapatılabildiği ağın fiziksel düzenine bağlıdır.
  • CS15. Nokta yükü, geçen bağlantının iki katı sayıldı: nokta ön ve arka olmak üzere iki bağlantı taşır. Eşzamanlılık ve süre modellenmedi.
  • CS16. Noktanın kanıtladığı iddia, önceki derslerin iddia listesinden alındı. Kanıtın neye dayandığı bu kursun dışındadır.
  • CS17. Sıçrama sunucusunun eriştiği bölge sayısı, önceki dersteki yönetim bölgesi kural sayısından okundu.

Bağlantı Sınıfları ve Yerleşimler

Model her bağlantı sınıfı için dört şey tutuyor: kaynağı, dönemdeki bağlantı sayısı, doğal olarak hangi denetim noktasına ait olduğu ve varsa noktayı atlama nedeni. Atlama nedeninin boş olmaması o sınıfın nokta kurulsa bile hedefe başka bir yoldan vardığı demektir.

// nokta.mjs — baglanti siniflari ve denetim noktasi yerlesimleri; model, gercek baglanti degil
// [ad, kaynak, hedef, donem baglantisi, dogal denetim noktasi, atlama nedeni ('' ise atlamiyor)]
export const BAGLANTI = [
  ['sube -> dis arayuz', 'sube', 'dis', 184000, 'vekil', ''],
  ['uygulama -> paket deposu', 'uygulama', 'dis', 90, 'vekil', ''],
  ['uygulama -> dis olcum servisi', 'uygulama', 'dis', 26400, 'vekil', ''],
  ['saha terminali -> dis harita', 'saha', 'dis', 5100, 'vekil', 'ucler hucresel baglantidan cikiyor'],
  ['yedek -> dis depo', 'yedek', 'dis', 12, 'vekil', 'aktarim hacmi icin dogrudan yazildi'],
  ['her makine -> zaman kaynagi', 'hepsi', 'dis', 43200, 'vekil', 'vekil bu protokolu tasimiyor'],
  ['yonetim -> makine kabugu', 'yonetim', 'ic', 372, 'sicrama', ''],
  ['yonetim -> yonetim arayuzu', 'yonetim', 'ic', 860, 'sicrama', ''],
  ['dagitim otomasyonu -> kabuk', 'yonetim', 'ic', 1860, 'sicrama', 'otomasyon kendi anahtariyla dogrudan baglaniyor'],
  ['sube -> kabuk (acil yol)', 'sube', 'ic', 26, 'sicrama', 'acil durum kurali kaldirilmadi'],
];
export const YERLESIM = {                    // hangi denetim noktasi kurulu ve atlama yollari kapali mi
  yok: { nokta: [], kapali: false },
  sicrama: { nokta: ['sicrama'], kapali: false },
  ikisi: { nokta: ['vekil', 'sicrama'], kapali: false },
  'ikisi+kapali': { nokta: ['vekil', 'sicrama'], kapali: true },
};
// Kapatilamayan iki atlama: hucresel cikis ile tasinamayan protokol ag kuraliyla kapanmiyor
const KAPANMAZ = ['ucler hucresel baglantidan cikiyor', 'vekil bu protokolu tasimiyor'];
export const gecer = (b, y) => y.nokta.includes(b[4]) &&
  (b[5] === '' || (y.kapali && !KAPANMAZ.includes(b[5])));
export const atlar = (b, y) => y.nokta.includes(b[4]) && !gecer(b, y);
export const TOPLAM = BAGLANTI.reduce((a, b) => a + b[3], 0);
export const topla = (l) => l.reduce((a, b) => a + b[3], 0);
// Denetim noktasi baglantiyi kayda geciriyor ve ozneyi kendi dogruluyor
export const KANITLANAN = ['ozne-kimligi', 'istek-yolu'];
export const NOKTA_ERISIMI = { vekil: 1, sicrama: 6 };   // noktanin dogrudan erisebildigi bolge sayisi

Dört yerleşim iki eksende ayrılıyor: hangi noktalar kurulu ve atlama yolları kural değişikliğiyle kapatıldı mı. Kapatma her atlamayı çözmüyor; iki neden kapatılamaz olarak işaretlendi. Saha uçları kurumun ağına hiç girmeden hücresel bağlantı üzerinden dışarıya çıkıyor, dolayısıyla ağ üzerinde yazılacak bir kuralın onlara ulaşacağı bir nokta yok. Zaman kaynağı sorgusu ise vekilin taşıyabildiği bir protokol değil; kural yazılsa bağlantı kurulmaz, iş durur. Bu iki neden bir eksiklik değil, ölçüm girdisidir.

Kaç Bağlantı Gerçekten Geçiyor

// kosum1.mjs — dort yerlesimde noktadan gecen, atlayan ve hic denetlenmeyen baglanti
import { BAGLANTI, YERLESIM, TOPLAM, topla, gecer, atlar } from './nokta.mjs';

console.log(`on baglanti sinifi, donemde ${TOPLAM} baglanti\n`);
const yuzde = (n) => `%${(n * 100 / TOPLAM).toFixed(1)}`;
console.log(`${'yerlesim'.padEnd(13)} ${'gecen sinif'.padStart(11)} ${'gecen baglanti'.padStart(14)} ${'pay'.padStart(6)} ` +
  `${'atlayan sinif'.padStart(13)} ${'atlayan baglanti'.padStart(16)} ${'denetimsiz'.padStart(10)}`);
for (const [ad, y] of Object.entries(YERLESIM)) {
  const g = BAGLANTI.filter((b) => gecer(b, y)), a = BAGLANTI.filter((b) => atlar(b, y));
  const d = BAGLANTI.filter((b) => !gecer(b, y));
  console.log(`${ad.padEnd(13)} ${String(g.length).padStart(11)} ${String(topla(g)).padStart(14)} ${yuzde(topla(g)).padStart(6)} ` +
    `${String(a.length).padStart(13)} ${String(topla(a)).padStart(16)} ${String(topla(d)).padStart(10)}`);
}
const son = YERLESIM['ikisi+kapali'];
console.log('\niki nokta kurulu ve atlama yollari kapatilmisken hala atlayan siniflar:');
for (const b of BAGLANTI.filter((x) => atlar(x, son)))
  console.log(`  ${b[0].padEnd(30)} ${String(b[3]).padStart(6)}  ${b[5]}`);
console.log('\nkapatma bir kural degisikligiyle cozdugu siniflar:');
for (const b of BAGLANTI.filter((x) => atlar(x, YERLESIM.ikisi) && gecer(x, son)))
  console.log(`  ${b[0].padEnd(30)} ${String(b[3]).padStart(6)}  ${b[5]}`);
on baglanti sinifi, donemde 261920 baglanti

yerlesim      gecen sinif gecen baglanti    pay atlayan sinif atlayan baglanti denetimsiz
yok                     0              0   %0.0             0                0     261920
sicrama                 2           1232   %0.5             2             1886     260688
ikisi                   5         211722  %80.8             5            50198      50198
ikisi+kapali            8         213620  %81.6             2            48300      48300

iki nokta kurulu ve atlama yollari kapatilmisken hala atlayan siniflar:
  saha terminali -> dis harita     5100  ucler hucresel baglantidan cikiyor
  her makine -> zaman kaynagi     43200  vekil bu protokolu tasimiyor

kapatma bir kural degisikligiyle cozdugu siniflar:
  yedek -> dis depo                  12  aktarim hacmi icin dogrudan yazildi
  dagitim otomasyonu -> kabuk      1860  otomasyon kendi anahtariyla dogrudan baglaniyor
  sube -> kabuk (acil yol)           26  acil durum kurali kaldirilmadi

İlk satır çıkış noktasıdır: hiçbir nokta kurulmadığında dönemin iki yüz altmış bir bin dokuz yüz yirmi bağlantısının tamamı denetimsizdir. Bu satırda atlayan sınıf sıfır yazıyor, çünkü atlanacak bir şey yok — denetim noktası olmayan bir ağda her yol doğrudan yoldur. Sonraki üç satırın hepsi bu sayıdan ne kadarını geri aldığını gösteriyor.

İkinci satır tek başına kurulan sıçrama sunucusunun ölçüsüdür ve şaşırtıcıdır: dönemin binde beşi geçiyor. Sınıf sayısına bakıldığında dördün ikisi geçiyor, hacme bakıldığında bin iki yüz otuz iki bağlantı. Atlayan iki sınıfın biri dağıtım otomasyonudur ve tek başına bin sekiz yüz altmış bağlantı taşır; sıçrama sunucusundan geçen bütün insan oturumlarından fazladır. Sıçrama sunucusu kurulduğunda kimse yalan söylemiyor — yönetim ekibi gerçekten oradan geçiyor. Geçmeyen şey otomasyondur ve otomasyon işin çoğunu yapar.

Üçüncü satır ileri vekili ekliyor ve pay yüzde seksen bire çıkıyor. Buradaki sıçrama, bir sınıfın tek başına dönemin yüzde yetmişini taşımasındandır: şube ağının dışarıya çıkan bağlantısı. Yüzde seksen bir kulağa yüksek geliyor; kalan yüzde on dokuz elli bin bağlantı demektir ve bunların hiçbiri hiçbir yerde kaydedilmiyor.

Bu satırın bir başka okuması daha var. Sınıf sayısına göre beşin beşi geçiyor, beşi atlıyor: yarı yarıya. Hacme göre yüzde seksen bir geçiyor. İki oran aynı kümeden çıkıyor ve birbirini yalanlamıyor; ölçünün hangi birimle alındığı sonucu belirliyor. Denetim kapsamı sınıf sayısıyla raporlandığında düşük, hacimle raporlandığında yüksek görünür. Karar için ikisi de tek başına yetmez: kapsamın dışında kalan sınıflardan biri seyrek çalışıp yönetim kabuğuna bağlanıyorsa, hacimdeki payı küçüklüğü onu önemsiz yapmaz.

Dördüncü satır atlama yollarını kural değişikliğiyle kapatıyor ve pay yüzde seksen bir buçuğa çıkıyor. Bütün emeğin karşılığı yarım puandır. Alttaki iki liste nedeni ayırıyor. Kapatılan üç sınıfın hacmi bin dokuz yüz bağlantıdır ve ikisi tek satırlık düzeltmedir — aylar önce açılmış bir acil durum kuralı, hacim gerekçesiyle doğrudan yazılmış bir yedek akışı. Kapatılamayan iki sınıf kırk sekiz bin üç yüz bağlantı taşıyor ve ikisi de bir kural sorunu değildir: saha uçları ağın üzerinden hiç geçmiyor, zaman kaynağı sorgusunu vekil taşıyamıyor. Denetim noktasının kapsamı, noktanın kendisiyle değil, ağın fiziksel düzeniyle ve protokolün taşınabilirliğiyle sınırlıdır.

Atlayan sınıfların ortak bir özelliği daha var: hiçbiri bir yanlış yapılandırma değildir. Beşi de bir gerekçeyle ve çoğu zaman yazılı bir onayla doğdu — aktarım hacmi, acil erişim ihtiyacı, otomasyonun kendi kimlik bilgisi, uçların bulunduğu yer, protokolün taşınamaması. Denetim noktasının kapsamı bu yüzden kurulum kararıyla belirlenmez; kurulumdan sonra biriken istisnalarla belirlenir ve her istisnanın kendi gerekçesi olduğu için tek tek bakıldığında hiçbiri fazla görünmez. Ölçülebilen tek şey toplamdır.

Noktanın Kendi Yükü

// kosum2.mjs — noktanin kendi yuku, dusmesinin kestigi yol ve kanitlanir hale gelen iddia
import { BAGLANTI, YERLESIM, TOPLAM, topla, gecer, atlar, KANITLANAN, NOKTA_ERISIMI } from './nokta.mjs';

const son = YERLESIM['ikisi+kapali'];
console.log(`${'nokta'.padEnd(8)} ${'gecen sinif'.padStart(11)} ${'gecen baglanti'.padStart(14)} ${'nokta yuku'.padStart(10)} ` +
  `${'dusunce kesilen'.padStart(15)} ${'eristigi bolge'.padStart(14)}  kanitladigi iddia`);
for (const n of ['vekil', 'sicrama']) {
  const g = BAGLANTI.filter((b) => b[4] === n && gecer(b, son));
  console.log(`${n.padEnd(8)} ${String(g.length).padStart(11)} ${String(topla(g)).padStart(14)} ${String(topla(g) * 2).padStart(10)} ` +
    `${`${g.length} sinif`.padStart(15)} ${String(NOKTA_ERISIMI[n]).padStart(14)}  ${KANITLANAN[n === 'vekil' ? 1 : 0]}`);
}
const kayitli = BAGLANTI.filter((b) => gecer(b, son)), disi = BAGLANTI.filter((b) => !gecer(b, son));
console.log(`\n${'olcu'.padEnd(34)} ${'nokta yokken'.padStart(12)} ${'iki nokta kuruluyken'.padStart(20)}`);
for (const [ad, once, sonra] of [
  ['kayda gecen baglanti', 0, topla(kayitli)],
  ['kayitsiz baglanti', TOPLAM, topla(disi)],
  ['ozne kimligi kanitlanan baglanti', 0, topla(kayitli.filter((b) => b[4] === 'sicrama'))],
  ['yonetimin dogrudan eristigi bolge', 6, 1],
  ['tek dususle kesilen baglanti', 0, Math.max(...['vekil', 'sicrama'].map((n) => topla(BAGLANTI.filter((b) => b[4] === n && gecer(b, son)))))],
]) console.log(`${ad.padEnd(34)} ${String(once).padStart(12)} ${String(sonra).padStart(20)}`);
console.log(`\natlayan ${topla(BAGLANTI.filter((b) => atlar(b, son)))} baglantinin hicbiri kayda girmiyor; ` +
  `bu, donemin %${(topla(disi) * 100 / TOPLAM).toFixed(1)} payi`);
nokta    gecen sinif gecen baglanti nokta yuku dusunce kesilen eristigi bolge  kanitladigi iddia
vekil              4         210502     421004         4 sinif              1  istek-yolu
sicrama            4           3118       6236         4 sinif              6  ozne-kimligi

olcu                               nokta yokken iki nokta kuruluyken
kayda gecen baglanti                          0               213620
kayitsiz baglanti                        261920                48300
ozne kimligi kanitlanan baglanti              0                 3118
yonetimin dogrudan eristigi bolge             6                    1
tek dususle kesilen baglanti                  0               210502

atlayan 48300 baglantinin hicbiri kayda girmiyor; bu, donemin %18.4 payi

Üst tablo iki noktayı yan yana koyuyor ve ikisinin ölçüsü zıt yönlerde büyük. Vekil iki yüz on bin bağlantı taşıyor ve dört yüz yirmi bir bin bağlantılık bir yük altındadır, ama eriştiği bölge birdir: dış bölge. Sıçrama sunucusu üç bin bağlantı taşıyor, yükü altı bin ikidir ve altı bölgeye erişir. Yük ile değer aynı yerde durmuyor. Bir önceki dersin yönetim bölgesi satırı şimdi tek bir makineye indi; o makine düştüğünde dört sınıf kesilir, ele geçtiğinde altı bölgeye ulaşılır. Yönetimin doğrudan eriştiği bölge altıdan bire indi — kazanç budur ve aynı hamle iki yüz beş kalemi tek bir makinenin arkasına dizdi.

Kanıtlanan iddia sütunu önceki iki dersi kapatıyor. Güvenlik duvarının hiçbir nesli özne kimliğini kanıtlayamıyordu; sıçrama sunucusu kanıtlıyor, çünkü oturumu kendisi açıyor ve özneyi kendi doğruluyor. Karşılığında kanıtın kapsamı üç bin yüz on sekiz bağlantıdır. Dönemin geri kalanında özne kimliği hâlâ kanıtsızdır.

Alt tablonun son iki satırı bedeli veriyor. Denetim noktası kurmadan önce kayıtsız bağlantı sayısı iki yüz altmış bir bindi ve tek düşüşle kesilecek bağlantı sıfırdı; sonra kayıtsız kırk sekiz bine indi ve tek düşüşle kesilecek bağlantı iki yüz on bine çıktı. İki sayı birlikte okunmalıdır: denetim noktası bir görünürlük kazancı ile bir kullanılabilirlik borcunun aynı hamlede alınmasıdır. İkinci bir nokta koymak borcu böler ama kanıtı da böler; artık iki makinede iki ayrı kayıt ve iki ayrı yetkili küme vardır.

Noktanın kendisi de yeni bir yüzeydir ve iki ayrı biçimde. Birincisi kaleme dönüşmesidir: sıçrama sunucusu altı bölgeye erişen bir makinedir ve bu erişimi kural olarak taşır; önceki dersteki yönetim bölgesi satırı şimdi tek bir makinenin yetkili anahtar listesidir. İkincisi bağlantının ikiye bölünmesidir. Nokta yükü sütunundaki dört yüz yirmi bir bin sayısı yalnız bir başarım kalemi değil: her bağlantı için ortada, iki ucu da açık gören bir yer vardır. Şifreli akışın bu noktada sonlandırılması ilk derste ölçülen kazancın koşuludur ve aynı hamle, akışın açık göründüğü tek yeri de yaratır.

Kırk sekiz bin bağlantının kayda hiç girmemesi bu dersin kapanmayan kalemidir. Bunlar hatalı yapılandırmadan değil, ağın kendisinden geçmemekten doğuyor. Denetim noktası ölçülürken sorulacak soru “kuruldu mu” değil, “dönemin yüzde kaçı gerçekten geçti” olmalıdır; ilk sorunun cevabı her iki yerleşimde de aynıdır.

Bu iki dersin kalemleri birlikte okunduğunda bir sıralama çıkıyor. Bölütleme yolu kapatır ve kapattığı yol sayılabilir; denetim noktası yolu kapatmaz, tek bir yere toplar ve topladığı yerde bir kayıt üretir. İkisi birbirinin yerine geçmez. Yönetim bölgesinin altı bölgeye yazılmış kuralı bölütlemeyle kapanmıyordu; sıçrama sunucusu o kuralı kapatmıyor, tek bir makinenin arkasına diziyor. Kapanan yol sayısı değişmedi, kanıtlanan iddia sayısı arttı ve yeni bir tek nokta doğdu. Ölçüm üç sütunu birden yazmadıkça bu hamlenin iyi mi kötü mü olduğu söylenemez.

Özet

  • Tek başına sıçrama sunucusu dönemin yalnız %0,5’ini geçiriyor: 4 sınıfın 2’si geçiyor, atlayan dağıtım otomasyonu tek başına 1.860 bağlantı taşıyor — bütün insan oturumlarından fazla.
  • İleri vekil eklenince pay %80,8’e çıkıyor; kalan %19,2 elli bin bağlantıdır ve hiçbiri kayda girmiyor.
  • Atlama yollarını kural değişikliğiyle kapatmak payı yalnız %81,6’ya taşıyor: kapatılan 3 sınıf 1.898 bağlantı, kapatılamayan 2 sınıf 48.300 bağlantı. Kapatılamayanlar bir kural sorunu değil — saha uçları ağın üzerinden geçmiyor, zaman kaynağı sorgusunu vekil taşımıyor.
  • Yük ile değer aynı yerde durmuyor: vekil 210.502 bağlantı taşıyıp 1 bölgeye erişiyor, sıçrama sunucusu 3.118 bağlantı taşıyıp 6 bölgeye erişiyor.
  • Nokta özne kimliğini kanıtlanabilir kılıyor ama yalnız 3.118 bağlantı için. Bedeli iki sayıdır: yönetimin doğrudan eriştiği bölge 6’dan 1’e inerken tek düşüşle kesilecek bağlantı 0’dan 210.502’ye çıkıyor.

Sonraki Adım

Bu dersin bütün kazancı bir kayıtta toplandı: iki yüz on üç bin bağlantı artık bir yere yazılıyor. Yazılmak görmek değildir. Kayıt tutmak, kaydın içindeki bir bağlantının hangi sınıfa girdiğini söylemez; dönemin iki yüz altmış bin satırında hangisinin bakılmaya değer olduğu hâlâ sorulmadı. Sonraki dersin sorusu aynı olay kümesinde üç sayıyı çıkarır: kaç olay yakalanıyor, yakalananların kaçının aslında bir karşılığı yok ve tespitten önlemeye geçildiğinde — yani kayıt tutmak yerine bağlantı kesilmeye başlandığında — kaç meşru bağlantı kesiliyor.

İ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