İçeriğe geç
academia.sh

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.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat