Ders 02 / 20
Yaygın Bağlantı Noktaları ve Servisler
Açık servisin iddia cinsinden ölçülmesi: 20 servisin 6 konakta 49 kabul noktası açması, 21 kabul noktasının hiçbir kanıta dayanmaması, dış ağdan erişilebilen 4 servisin 30 günde tek meşru istek almaması, kullanılmayanı kapatıp erişimi daraltmanın kabul noktasını 27'ye indirmesi ama 4 dönemsel akışı kesmesi ve son 7 kabul noktasının doğrulanmasının 240 aygıtı dışarıda bırakması.
İçindekiler
Önceki ders iddiaları ağın konuştuğu anda saydı: bir okuma sahadan merkeze giderken on sekiz iddia taşıyor ve savunma yokken hiçbirinin kanıtı bulunmuyordu. Oysa bir uç, kendisine hiçbir mesaj gelmeden önce de bir şey yapar. Dinler.
Dinlemek edilgen bir davranış değildir. Açık bir bağlantı noktası, üzerinden hiçbir mesaj geçmese bile bir bildirimdir: o noktadaki servisin belirli bir iddia sınıfını kabul etmeye hazır olduğunu söyler. Bir uzak kabuk servisi “ben şu kullanıcıyım” iddiasını, bir ölçüm alım ucu “bu okuma şu sayaçtan geldi” iddiasını almaya hazırdır. Bu ders bir servis envanterini o gözle sayar.
Açık Nokta Bir Kabul Bildirimidir
PG4: açık bir bağlantı noktası, üzerinden hiçbir mesaj geçmese bile o noktadaki servisin belirli bir iddia sınıfını kabul etmeye hazır olduğunu bildirir. PG5: yüzeyin sayısı servis sayısı değil kabul noktası (accept point) sayısıdır; kabul noktası, bir servis ile o servise erişebilen bir bölge çiftidir. PG6: bir servisin kullanılıp kullanılmadığı yalnız bir gözlem penceresi içinde bilinir; pencerenin dışında kalan dönemsel kullanım “hiç kullanılmıyor” diye okunur.
PG5 bu dersin ölçüyü servis sayımından ayıran maddesidir. İki konakta açık duran aynı servis iki kalemdir, ama biri yalnız merkezden, öteki dört bölgenin dördünden erişilebiliyorsa yüzeye katkıları eşit değildir. Bağlantı noktalarının numaralandırılması, dinleyen soket ile bağlantı soketi ayrımı ve numara aralıkları Ağ Modelleri ve Protokoller kursunda ölçüldü; burada tekrarlanmaz. Buradaki tek soru, açık her noktanın hangi iddiayı hangi kanıta dayanarak kabul ettiğidir.
Aşağıdaki envanter bir modeldir: kurgu bölgesel ölçüm ağının servisleri sayılır, gerçek bir ana bilgisayar adı ya da gerçek bir genel adres yoktur. Böyle bir envanterin kendi ağının dışında çıkarılması — hangi noktanın açık olduğunun uzaktan sınanması — yazılı yetki ve tanımlı kapsam olmadan hem yasadışı hem meslek dışıdır.
// aglar/envanter.mjs — kurgu bolgesel olcum aginin servis envanteri (model): gercek bir ag, // gercek bir ana bilgisayar adi ya da gercek bir genel adres yok. Rastgelelik yok. // PG4: acik bir baglanti noktasi, uzerinden hicbir mesaj gecmese bile bir bildirimdir; o // noktadaki servisin belirli bir iddia sinifini kabul etmeye hazir oldugunu soyler. // PG5: kabul noktasi = (servis, servise erisebilen bolge) ciftidir; yuzeyin sayisi // servis sayisi degil, kabul noktasi sayisidir. // Sutunlar: konak, baglanti noktasi, servis sinifi, dogrulama, 30 gunluk mesru istek, // erisebilen bolgeler, son 30 gunde istek gonderen bolgeler, donemsel kullanan bolgeler, // servise istek gonderen ve dogrulama yapamayacak eski aygit sayisi (bu aygitlar // disarida kalirsa servisin 30 gunluk istek hacminin tamami durur). // Bolgeler: d = dis ag, s = saha, b = sube, m = merkez. export const SERVIS = ` sube-gecidi 22 uzak-kabuk istemci-kaniti 268 b,m m b 0 sube-gecidi 23 eski-uzak-kabuk parola 0 b,m - - 0 sube-gecidi 161 aygit-izleme topluluk-adi 9240 b,m m - 8 sube-gecidi 8080 yonetim-arayuzu parola 140 b,m m - 0 toplayici 22 uzak-kabuk istemci-kaniti 412 s,b,m b,m s 0 toplayici 1883 olcum-alim-ucu yok 89400 d,s,b,m s,b - 220 toplayici 9100 olcum-disa-aktarim yok 8640 b,m m - 0 toplayici 514 gunluk-toplama yok 43200 s,b,m b,m - 14 dogrulayici 22 uzak-kabuk istemci-kaniti 190 b,m m - 0 dogrulayici 443 ic-servis-ucu belirtec 61300 b,m b,m - 0 dogrulayici 5432 veritabani-dinleyici parola 0 b,m - m 0 faturalama 443 ic-servis-ucu belirtec 22800 b,m b,m - 0 faturalama 80 sifresiz-web-ucu yok 1150 d,b,m b - 0 faturalama 5432 veritabani-dinleyici parola 47600 b,m m - 0 faturalama 21 eski-dosya-aktarimi parola 36 d,b,m m - 0 ad-sunucusu 53 ad-cozumleme yok 128400 d,s,b,m s,b,m - 0 ad-sunucusu 123 zaman-esitleme yok 34600 s,b,m s,b,m - 6 dizin-ucu 389 dizin-sorgulama parola 19700 b,m b,m - 0 dizin-ucu 445 dosya-paylasimi parola 3300 b,m b m 0 dizin-ucu 631 yazici-hizmeti yok 0 b,m - - 0` .trim().split("\n").map((r) => { const p = r.trim().split(/\s+/); const kume = (x) => (x === "-" ? [] : x.split(",")); return { konak: p[0], nokta: +p[1], servis: p[2], dog: p[3], istek: +p[4], eris: kume(p[5]), kullan: kume(p[6]), donem: kume(p[7]), eski: +p[8] }; }); export const KONAK = [...new Set(SERVIS.map((s) => s.konak))]; export const nokta = (l) => l.reduce((t, s) => t + s.eris.length, 0); export const acikNokta = (l) => l.filter((s) => s.dog === "yok").reduce((t, s) => t + s.eris.length, 0);
// aglar/yuzey.mjs — acik servis kac iddia kabul noktasi acar, kaci hic kullanilmiyor, // daraltmanin ve dogrulama eklemenin bedeli ne. import { SERVIS, KONAK, nokta, acikNokta } from "./envanter.mjs"; const yaz = (g, ...s) => console.log(s.map((v, i) => (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join("")); const BOLGE = ["d", "s", "b", "m"]; const bos = SERVIS.filter((s) => s.istek === 0); console.log(`${SERVIS.length} servis, ${KONAK.length} konak, ${BOLGE.length} bolge; ` + `kabul noktasi ${nokta(SERVIS)}, dogrulamasiz kabul noktasi ${acikNokta(SERVIS)}, ` + `30 gunde hic istek almayan servis ${bos.length}`); const A = [-14, 8, 15, 14, 10, 12]; console.log("\n1. konak basina"); yaz(A, "konak", "servis", "dogrulamasiz", "kullanilmayan", "kabul", "30g istek"); for (const k of KONAK) { const l = SERVIS.filter((s) => s.konak === k); yaz(A, k, l.length, l.filter((s) => s.dog === "yok").length, l.filter((s) => s.istek === 0).length, nokta(l), l.reduce((t, s) => t + s.istek, 0)); } const B = [-16, 8, 9, 12]; console.log("\n2. kabul edilen iddianin dayandigi kanit"); yaz(B, "dogrulama", "servis", "kabul", "30g istek"); for (const d of [...new Set(SERVIS.map((s) => s.dog))]) { const l = SERVIS.filter((s) => s.dog === d); yaz(B, d, l.length, nokta(l), l.reduce((t, s) => t + s.istek, 0)); } const C = [-34, 8, 14, 13, 14, 10]; console.log("\n3. yuzeyi daraltma adimlari (birikimli)"); yaz(C, "adim", "kabul", "dogrulamasiz", "duran istek", "kesilen akis", "disarida"); let kalan = SERVIS, kesik = 0, duran = 0, disarida = 0; const satir = (ad) => yaz(C, ad, nokta(kalan), acikNokta(kalan), duran, kesik, disarida); satir("hicbiri"); kesik += bos.reduce((t, s) => t + s.donem.length, 0); kalan = kalan.filter((s) => s.istek > 0); satir("hic kullanilmayan servisi kapat"); kesik += kalan.reduce((t, s) => t + s.donem.filter((z) => !s.kullan.includes(z)).length, 0); kalan = kalan.map((s) => ({ ...s, eris: s.kullan })); satir("erisimi kullanan bolgeye daralt"); const dogrula = (sec) => { const l = kalan.filter((s) => s.dog === "yok" && sec(s)); disarida += l.reduce((t, s) => t + s.eski, 0); duran += l.filter((s) => s.eski > 0).reduce((t, s) => t + s.istek, 0); kalan = kalan.map((s) => (l.includes(s) ? { ...s, dog: "eklendi" } : s)); }; dogrula((s) => s.eski === 0); satir("eski aygiti olmayana dogrulama"); dogrula(() => true); satir("kalanlara da dogrulama"); const D = [-14, -20, 8, 11, 12]; console.log("\n4. daraltmadan sonra dogrulamasiz kalan servisler"); yaz(D, "konak", "servis", "kabul", "30g istek", "eski aygit"); for (const s of SERVIS.filter((x) => x.dog === "yok" && x.istek > 0 && x.eski > 0)) yaz(D, s.konak, s.servis, s.kullan.length, s.istek, s.eski); const E = [-8, 10, 12, 14, 14]; console.log("\n5. bolge basina erisilen ve kullanilan servis"); yaz(E, "bolge", "erisilen", "kullanilan", "kullanilmayan", "dogrulamasiz"); for (const z of BOLGE) { const e = SERVIS.filter((s) => s.eris.includes(z)); const k = SERVIS.filter((s) => s.kullan.includes(z)); yaz(E, z, e.length, k.length, e.length - k.length, e.filter((s) => s.dog === "yok").length); }
20 servis, 6 konak, 4 bolge; kabul noktasi 49, dogrulamasiz kabul noktasi 21, 30 gunde hic istek almayan servis 3 1. konak basina konak servis dogrulamasiz kullanilmayan kabul 30g istek sube-gecidi 4 0 1 8 9648 toplayici 4 3 0 12 141652 dogrulayici 3 0 1 6 61490 faturalama 4 1 0 10 71586 ad-sunucusu 2 2 0 7 163000 dizin-ucu 3 1 1 6 23000 2. kabul edilen iddianin dayandigi kanit dogrulama servis kabul 30g istek istemci-kaniti 3 7 870 parola 7 15 70776 topluluk-adi 1 2 9240 yok 7 21 305390 belirtec 2 4 84100 3. yuzeyi daraltma adimlari (birikimli) adim kabul dogrulamasiz duran istek kesilen akis disarida hicbiri 49 21 0 0 0 hic kullanilmayan servisi kapat 43 19 0 1 0 erisimi kullanan bolgeye daralt 27 12 0 4 0 eski aygiti olmayana dogrulama 27 7 0 4 0 kalanlara da dogrulama 27 0 167200 4 240 4. daraltmadan sonra dogrulamasiz kalan servisler konak servis kabul 30g istek eski aygit toplayici olcum-alim-ucu 2 89400 220 toplayici gunluk-toplama 2 43200 14 ad-sunucusu zaman-esitleme 3 34600 6 5. bolge basina erisilen ve kullanilan servis bolge erisilen kullanilan kullanilmayan dogrulamasiz d 4 0 4 3 s 5 3 2 4 b 20 10 10 7 m 20 14 6 7
Sayılar ölçüm sınıfındadır; girdileri PG4–PG6’dır.
Kırk Dokuz Kabul Noktası
Yirmi servis altı konakta 49 kabul noktası açar. Bu, servis sayısının iki buçuk katıdır ve farkın nedeni erişim genişliğidir: envanterdeki servislerin çoğu iki bölgeden, bazıları dördünden birden erişilebilir durumdadır. Kırk dokuz noktanın yirmi biri hiçbir kanıta dayanmaz.
İkinci tablo kanıtın dayanağına göre ayırır. Yedi servis hiçbir doğrulama yapmaz ve bunlar 21 kabul noktası ile envanterin en geniş grubudur; aynı yedi servis otuz günlük istek hacminin 305.390’ını, yani en büyük payını taşır. Yedi servis parola ile 15 kabul noktası açar. Üç servis istemci kanıtı ister ve yalnız 7 kabul noktası açar; taşıdıkları istek hacmi 870’tir. En sıkı doğrulanan servisler en az iş taşıyan servislerdir; doğrulamanın hiç bulunmadığı yerde işin tamamı akmaktadır. Bu ters orantı bir tesadüf değildir: doğrulama eklemek, o servisi kullanan her istemciyi değiştirmeyi gerektirir ve en çok kullanılan servis en pahalı değişikliktir.
Birinci tablo yükün nerede toplandığını gösterir. Toplayıcı dört servisin üçünde doğrulama yapmaz ve tek başına 12 kabul noktası açar. Ad sunucusu iki servisin ikisinde de doğrulama yapmaz ve 163.000 istekle envanterin en yoğun konağıdır. Buna karşılık şube geçidi dört servisin dördünde de bir kanıt ister.
Konak başına servis sayısı da yüzeyin yerine geçmez. Şube geçidi ile faturalama dörder servis taşır, ama biri 8 kabul noktası açar öteki 10; dizin ucu üç servisle 6 nokta açarken doğrulayıcı da üç servisle 6 nokta açar ve ikisinin doğrulamasız nokta sayısı farklıdır. Konak sayısı, servis sayısı ve kabul noktası sayısı üç ayrı büyüklüktür ve yalnız üçüncüsü daraltma kararına girdi verir.
Otuz Gün Neyi Göstermez
Beşinci tablo bölge başına okur ve bu dersin en dikkat çekici satırını üretir: dış ağdan dört servise erişilebilirken bu dört servisin hiçbiri otuz günde dış ağdan tek bir meşru istek almamıştır. Dördünün üçünde doğrulama yoktur. Bu dört kalem, karşılığında hiçbir iş görülmeyen, ama tam olarak dış ağa açık duran bir kabul yüzeyidir.
Saha bölgesinde de benzer bir aralık vardır: beş servise erişilebilir, üçü kullanılır. Şube bölgesi yirmi servisin onunu, merkez on dördünü kullanır. Erişilebilen ile kullanılan arasındaki fark her bölgede vardır ve toplamı yüzeyin yarısına yakındır.
Üç servis otuz günde hiç istek almamıştır. Burada PG6 devreye girer ve pencerenin yalanını ölçer: bu üç servisten biri — doğrulayıcı üzerindeki veritabanı dinleyicisi — merkez tarafından dönemsel olarak kullanılır ve otuz günlük pencereye düşmemiştir. Kullanım verisine bakıp kapatmak, bu kalemde çalışan bir akışı keser.
Daraltmanın Dört Adımı
Üçüncü tablo yüzeyi adım adım daraltır ve her adımın bedelini yazar. Hiç kullanılmayan üç servisi kapatmak kabul noktasını 49’dan 43’e indirir, hiçbir isteği durdurmaz ve bir dönemsel akışı keser. Erişimi gerçekten kullanan bölgeye daraltmak en büyük kazancı verir: 43’ten 27’ye iner, yine hiçbir isteği durdurmaz, ama kesilen dönemsel akış sayısı dörde çıkar. İlk iki adım birlikte yüzeyin %44,9’unu, otuz günlük istek hacminin sıfırını harcayarak kapatır.
Kesilen dört akışın ortak özelliği, hiçbirinin otuz günlük pencerede görünmemesidir: şube geçidine şubeden bağlanan uzak kabuk, toplayıcıya sahadan bağlanan uzak kabuk, dizin ucundaki dosya paylaşımına merkezden gelen erişim ve kapatılan veritabanı dinleyicisi. Dördü de meşrudur ve dördü de gözlem penceresi uzatılsaydı görünürdü. Kullanım verisine dayanan her daraltmanın bedeli, pencere uzunluğunun bir işlevidir. Otuz günlük bir pencere aylık işleri görür, üç aylık kapanış işlerini görmez; pencereyi uzatmak kesilen akışı azaltır ama kapatılabilecek kalem sayısını da azaltır.
Doğrulanamayan Yedi Nokta
Son iki adım kalan doğrulamasız kabul noktalarını kapatmayı dener ve kabul noktası sayısını hiç değiştirmez — 27’de kalır. Değişen şey doğrulamasız noktaların 12’den önce 7’ye, sonra 0’a inmesidir. Kabul noktası ile doğrulamasız kabul noktası ayrı iki sayıdır: bir servis kapalı değilse yüzeydedir, doğrulanıyorsa yalnız kanıtsız değildir.
Dördüncü tablo son adımın bedelini gösterir. Doğrulamasız kalan üç servisin üçüne de doğrulama yapamayan aygıtlar istek göndermektedir: ölçüm alım ucuna 220, günlük toplamaya 14, zaman eşitlemeye 6 aygıt. Doğrulama eklemek bu 240 aygıtı dışarıda bırakır ve üç servisin otuz günlük 167.200 isteğinin tamamını durdurur. Ölçüm alım ucu ağın asıl işidir ve doğrulanamayan tek en büyük kalemdir.
Burada savunma yetmemektedir. İlk üç adım bedelsiz ya da neredeyse bedelsizdir; son adım envanterin en çok iş taşıyan servisini kapatmakla eşdeğerdir. Doğrulamasız yedi kabul noktası, yanlış bir yapılandırma kararının değil, uçlardaki aygıtların kanıt üretememesinin sonucudur.
Özet
- Açık bir bağlantı noktası, bir iddia sınıfını kabul etmeye hazır olunduğunun bildirimidir; yüzeyin sayısı servis sayısı değil, servis ile erişebilen bölge çiftlerinin sayısıdır.
- Envanterdeki 20 servis 6 konakta 49 kabul noktası açar; bunların 21’i hiçbir kanıta dayanmaz ve aynı 21 nokta otuz günlük istek hacminin en büyük payını taşır.
- Dış ağdan 4 servise erişilebilir ve dördü de otuz günde dış ağdan tek meşru istek almamıştır; üçünde doğrulama yoktur.
- Kullanılmayanı kapatmak ve erişimi kullanan bölgeye daraltmak kabul noktasını 49’dan 27’ye indirir, hiçbir isteği durdurmaz, ama pencereye düşmeyen 4 dönemsel akışı keser.
- Kalan 7 doğrulamasız kabul noktasına doğrulama eklemek 240 aygıtı dışarıda bırakır ve 167.200 isteği durdurur; bu servisler yanlış yapılandırıldığı için değil, uçları kanıt üretemediği için doğrulanamaz.
Sonraki Adım
Bu ders bir servise erişilebildiğini varsaydı: envanterdeki her satır, bir bölgeden bir konağa paketin ulaşabildiğini kabul ederek yazıldı. Oysa aynı bölütteki iki makinenin birbirine ulaşması bile bir iddiaya dayanır. Bir uç, hedefin ağ adresini bilir ama çerçeveyi hangi donanım adresine göndereceğini bilmez; bunu sorar ve gelen ilk yanıtı hiçbir kanıt istemeden önbelleğine yazar. Sonraki ders o önbelleği bir veri yapısı olarak kurar ve sayar: doğrulanmayan bir yanıt kaç kaydı bozuyor, tutarlılık denetimi kaçını yakalıyor, sabit kayıt kaçını kurtarıyor ve bunun elle yönetim bedeli ne oluyor.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.