Ders 09 / 16
Alan Adı Politika Kaydı
Uyumsuz iletiler için politika bildirimini aşamalı sıkılaştırmak: her aşamada düşen meşru ileti ve engellenen sahte ileti sayısı, rapor akışının yetkilendirilmemiş gönderen bulma oranı ve doğrudan reddetmenin bedeli.
İçindekiler
Önceki ders iki denetimi koşturdu ve her ileti için iki sonuç üretti. Orada açıkta kalan soru, sonucun ne işe yaradığıydı: bir ileti denetimden düştüğünde alıcı taraf onu teslim mi eder, ayırır mı, yoksa hiç almaz mı? Varsayılan durumda bu kararı ad sahibi vermez. Her alıcı kendi ölçütüyle davranır; kimi düşen iletiyi olduğu gibi teslim eder, kimi kendi kestirimini uygular. Sonuç, aynı sahte iletinin bir yerde gelen kutusuna, başka bir yerde hiçbir yere gitmesidir.
Politika bildirimi bu kararı ad sahibine geri taşır. Bölgede yayınlanan bir kayıttır ve şunu söyler: bu adın adına gelen ama denetimlerden geçmeyen iletiye şu işlem uygulansın. Üç aşaması vardır — yalnız raporla, karantina, reddet — ve aralarındaki fark, gönderim altyapısındaki eksiklerin kime fatura edileceğidir.
Aşamalar arasında sıçramak, bu kursta sayılabilen en pahalı hatalardan biridir. Bu ders bir dönem koşturur ve her aşamada iki sayıyı birlikte çıkarır: kaç meşru ileti düşer ve kaç sahte ileti engellenir.
Bildirimin Taşıdığı Alanlar
Kayıt bölgeye bir metin olarak yazılır ve dört şeyi bildirir: uyumsuz iletiye uygulanacak işlem, işlemin iletilerin hangi oranına uygulanacağı, raporların gönderileceği adres ve alt adlar için ayrı bir işlem tanımlanıp tanımlanmadığı. İlk ikisi bu dersin ölçtüğü iki eksendir; üçüncüsü ölçümün kaynağıdır.
Bildirimin kapsamı da bir karardır. İşlem, yalnız gönderen alanında bu ad yazan iletilere uygulanır; denetimlerin geçtiği ad ile gönderen alanındaki adın örtüşmesi aranır. Bu şart olmasa bildirim işlemezdi: kendi adına düzgün imzalanmış bir ileti, gönderen alanında başka bir ad taşıyarak denetimden geçmiş görünürdü. Örtüşme şartı, iki kaydın kapattığı yüzeyi bildirimin kapsamına bağlayan halkadır.
Alt adlar için ayrı işlem tanımlayabilmenin nedeni, alt adların çoğunlukla ileti göndermemesidir. Modeldeki bölgede on dört ad var ve bunlardan yalnız birkaçı gönderim yapıyor; gönderim yapmayan alt adlar için doğrudan en sıkı işlem bildirilebilir, çünkü orada kaybedilecek meşru ileti yoktur. Sıkılaştırmanın ilk ve bedelsiz adımı budur ve aşağıdaki sayımın dışında kalır.
Bir Dönem, Dört Aşama
AK13. Dönem bir aylıktır ve 414 kurgu iletiden oluşur; akış adetleri sabit alınır. AK14. Uyum ölçütü, iki denetimden en az birinin gönderenin adıyla hizalı biçimde geçmesidir. AK15. Karantinaya alınan meşru ileti teslim edilmiş sayılır; okunma olasılığı bu modelde sayılmaz.
// Model: bir dönemlik ileti akışı ve politika bildiriminin aşamaları. Akışlar, // ileti sayıları ve rapor oranı kurgudur; uyum, iki denetimden en az birinin // gönderenin adıyla hizalı biçimde geçmesidir. const TOHUM = 7311; const RAPOR_ORANI = 0.65; // alıcı tarafların rapor gönderme oranı function uretec(tohum) { let x = tohum % 2147483647; return () => { x = (x * 48271) % 2147483647; return (x - 1) / 2147483646; }; } // kaynaklar: [adres, ileti adedi]; politika/imza alanları denetim sonucudur const AKISLAR = [ { ad: 'gecelik-ozet', sinif: 'mesru', politika: true, imza: true, kaynaklar: [['198.51.100.11', 120]] }, { ad: 'sapma-uyarisi', sinif: 'mesru', politika: true, imza: true, kaynaklar: [['198.51.100.12', 60]] }, { ad: 'donem-kapanisi', sinif: 'mesru', politika: true, imza: false, kaynaklar: [['198.51.100.13', 40]] }, { ad: 'toplu-duyuru', sinif: 'mesru', politika: true, imza: true, kaynaklar: [['203.0.113.40', 50], ['203.0.113.41', 40]] }, { ad: 'esik-uyarisi', sinif: 'mesru', politika: false, imza: false, kaynaklar: [['192.0.2.77', 25]] }, { ad: 'yonlendirilen-emir', sinif: 'mesru', politika: false, imza: false, kaynaklar: [['198.51.100.30', 18]] }, { ad: 'taklit-faturalama', sinif: 'sahte', politika: false, imza: false, kaynaklar: [['192.0.2.200', 30], ['198.18.0.5', 2]] }, { ad: 'taklit-isemri', sinif: 'sahte', politika: false, imza: false, kaynaklar: [['192.0.2.201', 15], ['198.18.0.9', 1], ['198.18.0.12', 1]] }, { ad: 'blok-ici-taklit', sinif: 'sahte', politika: true, imza: false, kaynaklar: [['203.0.113.200', 12]] }, ]; const uyumlu = (a) => a.politika || a.imza; const adet = (a) => a.kaynaklar.reduce((t, [, n]) => t + n, 0); const topla = (secim) => AKISLAR.filter(secim).reduce((t, a) => t + adet(a), 0); const mesru = topla((a) => a.sinif === 'mesru'); const sahte = topla((a) => a.sinif === 'sahte'); console.log('donem toplami:', mesru + sahte, '| mesru:', mesru, '| sahte:', sahte); console.log('uyumsuz mesru ileti:', topla((a) => a.sinif === 'mesru' && !uyumlu(a)), '| uyumlu sahte ileti:', topla((a) => a.sinif === 'sahte' && uyumlu(a))); console.log('hazirliksiz mesru akis:', AKISLAR.filter((a) => a.sinif === 'mesru' && !uyumlu(a)).map((a) => `${a.ad}=${adet(a)}`).join(' ')); const ASAMALAR = ['bildirim yok', 'yalniz raporla', 'karantina', 'reddet']; console.log('\nasama gelen kutusu (mesru) ayrilan mesru gelen kutusu (sahte) engellenen sahte'); for (const asama of ASAMALAR) { const ayir = asama === 'karantina' || asama === 'reddet'; const mesruAyrilan = ayir ? topla((a) => a.sinif === 'mesru' && !uyumlu(a)) : 0; const sahteAyrilan = ayir ? topla((a) => a.sinif === 'sahte' && !uyumlu(a)) : 0; console.log(asama.padEnd(15) + String(mesru - mesruAyrilan).padEnd(22) + `${mesruAyrilan}${asama === 'reddet' ? ' (kayip)' : asama === 'karantina' ? ' (karantina)' : ''}`.padEnd(15) + String(sahte - sahteAyrilan).padEnd(22) + String(sahteAyrilan)); } // Rapor akışı: her ileti bağımsız olarak RAPOR_ORANI olasılığıyla rapora girer. // Bir kaynak, en az bir iletisi raporlandıysa bulunmuş sayılır. const rast = uretec(TOHUM); const yetkisiz = []; for (const a of AKISLAR) { if (a.politika) continue; // politika kaydında zaten var for (const [adres, n] of a.kaynaklar) { let raporlanan = 0; for (let i = 0; i < n; i++) if (rast() < RAPOR_ORANI) raporlanan++; yetkisiz.push({ adres, akis: a.ad, sinif: a.sinif, n, bulundu: raporlanan > 0 }); } } const bulunan = yetkisiz.filter((k) => k.bulundu); console.log('\nrapor orani:', RAPOR_ORANI, '| tohum:', TOHUM); console.log('yetkilendirilmemis kaynak:', yetkisiz.length, '| rapordan bulunan:', bulunan.length, `(${Math.round((bulunan.length / yetkisiz.length) * 100)}%)`); for (const k of yetkisiz.filter((x) => !x.bulundu)) { console.log(` kacan kaynak: ${k.adres.padEnd(15)} ${k.akis.padEnd(18)} ileti=${k.n}`); } console.log('bulunan kaynaklarin ileti payi:', `${bulunan.reduce((t, k) => t + k.n, 0)}/${yetkisiz.reduce((t, k) => t + k.n, 0)}`); // Hazırlık: yeni servis politika kaydına eklenir, toplu iş imzalanır. AKISLAR.find((a) => a.ad === 'esik-uyarisi').politika = true; console.log('\nhazirlik sonrasi reddet asamasinda kaybedilen mesru ileti:', topla((a) => a.sinif === 'mesru' && !uyumlu(a)));
donem toplami: 414 | mesru: 353 | sahte: 61 uyumsuz mesru ileti: 43 | uyumlu sahte ileti: 12 hazirliksiz mesru akis: esik-uyarisi=25 yonlendirilen-emir=18 asama gelen kutusu (mesru) ayrilan mesru gelen kutusu (sahte) engellenen sahte bildirim yok 353 0 61 0 yalniz raporla 353 0 61 0 karantina 310 43 (karantina) 12 49 reddet 310 43 (kayip) 12 49 rapor orani: 0.65 | tohum: 7311 yetkilendirilmemis kaynak: 7 | rapordan bulunan: 6 (86%) kacan kaynak: 198.18.0.12 taklit-isemri ileti=1 bulunan kaynaklarin ileti payi: 91/92 hazirlik sonrasi reddet asamasinda kaybedilen mesru ileti: 18
Aşamaların Okunuşu
İlk iki satır aynı sayıları taşıyor ve bu bir hata değil. Yalnız raporla aşaması hiçbir iletiyi engellemez; altmış bir sahte ileti gelen kutusuna ulaşmaya devam eder. Bu aşamanın ürettiği tek şey rapordur ve rapor bir savunma değil, bir ölçüm aracıdır.
Sıkılaştırma karantina satırında başlıyor: kırk dokuz sahte ileti gelen kutusundan ayrılıyor, karşılığında kırk üç meşru ileti de ayrılıyor. Oran neredeyse birebir — bu, açık kalemin kapanmasının yanında yanlış kapatmanın aynı büyüklükte olduğu anlamına gelir. Aradaki tek fark, karantinaya alınan meşru iletinin hâlâ bir yerde durmasıdır; alıcı ararsa bulur.
Reddet satırındaki sayılar karantinayla aynı, ama kolonun anlamı değişiyor: kırk üç meşru ileti artık hiçbir yerde yok. Aynı sıkılıkta iki aşama, meşru ileti tarafında geri dönülebilirlik bakımından ayrılıyor. Bu yüzden sıralama önemlidir: karantina, reddetmenin provasıdır ve kaybı geri alınabilir kılar.
Son sütunda kapanmayan kalem duruyor. On iki sahte ileti her aşamada gelen kutusuna ulaşıyor, çünkü bunlar politika kaydında yetkilendirilmiş ağ bloğunun içinden geliyor ve uyumlu sayılıyorlar. Politika bildirimi uyumsuz iletiye ne yapılacağını söyler; uyumlu görünen taklidi görmez. Önceki dersteki fazla geniş yetkilendirme, burada doğrudan bir kalem olarak geri dönüyor: bloğu daraltmadan bildirim sıkılaştırmak bu on iki iletiye dokunmaz.
Raporun Değeri ve Sınırı
Rapor akışı, alıcı tarafların ad sahibine “bu adın adına şu kaynaktan ileti geldi, denetim şöyle sonuçlandı” diye bildirmesidir. Değeri, önceki derste yalnız koşumda görünen kaymanın işletmede görünür hale gelmesidir.
AK16. Alıcı tarafların bir bölümü rapor gönderir; her ileti bağımsız olarak 0,65 olasılıkla rapora girer. AK17. Rapor kaynağı gösterir, iletinin meşru mu sahte mi olduğunu göstermez.
Sayı iyi: yedi yetkilendirilmemiş kaynağın altısı bulunuyor, bulma oranı %86 ve bulunan kaynaklar iletilerin 91’ini kapsıyor. Kaçan tek kaynak dönem boyunca bir tek ileti göndermiş. Buradaki kural şudur: rapor akışı hacimli kaynağı neredeyse kesin bulur, seyrek kaynağı kaçırır. Bu, hazırlık için doğru araç olduğu anlamına gelir — hazırlıksız düşecek meşru akışlar tanım gereği düzenli ve hacimlidir.
Sınırı ise AK17’dedir. Rapor 192.0.2.77 adresinden 25 uyumsuz ileti geldiğini söyler; bunun
yeni kurulmuş bir eşik uyarısı servisi mi yoksa bir taklit mi olduğunu söylemez. Ayrımı yapan
şey rapor değil, envanterdir: gönderim yapan servislerin listesiyle karşılaştırma. Rapor akışı
soruyu üretir, yanıtı üretmez.
Reddetmenin Bedeli ve Hazırlık
Doğrudan reddetmeye geçmenin bedeli çıktıda adıyla yazılı: esik-uyarisi 25 ileti, yonlendirilen-emir 18 ileti. İlki, kayda eklenmeyi bekleyen yeni bir servistir; kaybı bir hazırlık eksiğidir. İkincisi saha ekiplerinin kendi adreslerine kurduğu yönlendirmedir ve ad sahibinin denetiminde değildir.
Hazırlık adımı bu ayrımı sayıya çeviriyor: yeni servis politika kaydına eklendikten sonra reddet aşamasında kaybedilen meşru ileti 43’ten 18’e iniyor. Kalan 18 ileti ise kayıtla kapatılamaz — yönlendirme iletiyi başka bir makineden çıkarır ve gövdesini değiştirir.
Hazırlığın ne kadar süreceği de rapordan çıkar. Tek dönemlik rapor yalnız o dönemde gönderim yapan kaynakları gösterir; çeyrek başında çalışan bir kapanış işi ya da yılda bir gönderilen bir bildirim, bir dönemlik pencerede hiç görünmez. Kaçan tek kaynağın dönem boyunca bir ileti göndermiş olması bunun küçük örneğidir. Hazırlık penceresi, gönderim yapan en seyrek akışın dönemini kapsamalıdır; kısa tutulduğunda sıkılaştırma o akışı ilk çalıştığı gün düşürür.
Bu, aşamalı sıkılaştırmanın gerekçesidir. Rapor aşamasında kaynaklar bulunur, kayıtlar tamamlanır, geriye kalan kaybın büyüklüğü ölçülür; ancak ondan sonra karantinaya, sonra reddetmeye geçilir. Sıra atlanırsa kayıp aynı büyüklükte olur, ama önce yaşanır, sonra öğrenilir.
Yüzdeyle Sıkılaştırma
Aşama, tek bir anahtar değildir. Bildirim, işlemin iletilerin bir yüzdesine uygulanmasını da söyleyebilir; sıkılaştırma böylece aşama içinde de kademelenir.
// Model: bildirim, uyumsuz iletilerin yalnız bir yüzdesine uygulanabilir. Girdi, // önceki koşumun sayılarıdır: iki hazırlıksız meşru akış ve 49 uyumsuz sahte ileti. const TOHUM = 9013; const MESRU_AKIS = [['esik-uyarisi', 25], ['yonlendirilen-emir', 18]]; const UYUMSUZ_SAHTE = 49; const FARK_ESIGI = 10; // bir akışta dönem başına bu kadar kayıp şikâyet üretir function uretec(tohum) { let x = tohum % 2147483647; return () => { x = (x * 48271) % 2147483647; return (x - 1) / 2147483646; }; } const say = (rast, n, oran) => { let k = 0; for (let i = 0; i < n; i++) if (rast() < oran) k++; return k; }; console.log('tohum:', TOHUM, '| fark edilme esigi:', FARK_ESIGI, 'ileti/donem'); console.log('oran esik-uyarisi yonlendirilen-emir toplam mesru kayip engellenen sahte esigi asan akis'); for (const oran of [0.05, 0.1, 0.25, 0.5, 1.0]) { const rast = uretec(TOHUM); const kayiplar = MESRU_AKIS.map(([, n]) => say(rast, n, oran)); const sahteEngel = say(rast, UYUMSUZ_SAHTE, oran); console.log( `${Math.round(oran * 100)}%`.padEnd(7) + String(kayiplar[0]).padEnd(14) + String(kayiplar[1]).padEnd(20) + String(kayiplar[0] + kayiplar[1]).padEnd(20) + String(sahteEngel).padEnd(18) + String(kayiplar.filter((k) => k >= FARK_ESIGI).length), ); }
tohum: 9013 | fark edilme esigi: 10 ileti/donem oran esik-uyarisi yonlendirilen-emir toplam mesru kayip engellenen sahte esigi asan akis 5% 0 2 2 2 0 10% 4 3 7 4 0 25% 9 6 15 12 0 50% 14 12 26 26 2 100% 25 18 43 49 2
Tabloda iki şey aynı anda okunuyor. Birincisi, düşük oran sahte iletiyi de düşük oranda engelliyor; yüzde onda kırk dokuz sahteden yalnız dördü durduruluyor. Yüzde, savunmayı değil riski kademelendirir.
İkincisi ve asıl kullanışlı olanı son sütundur. Yüzde yirmi beşe kadar hiçbir akış fark edilme eşiğini aşmıyor; kayıp var ama kimse şikâyet etmiyor. Bu, yüzdenin gerçek işlevini gösterir: düşük oran bir savunma ayarı değil, hazırlık eksiğini ucuza bulma aracıdır. On beş iletilik bir kayıp raporlarda görünür, saha ekibinde görünmez; aynı akış yüzde yüzde açıldığında yirmi beş ileti birden kaybolur ve iş durur. Sıkılaştırmayı yüzdeyle yürütmenin bedeli, geçen her dönemde sahte iletinin de aynı oranda geçmesidir.
Kalan Kalem ve Yeni Yüzey
AK18. Bu modelde bildirim tüm alıcılar tarafından aynı biçimde uygulanır.
Bu varsayım gerçeği aşar ve konunun ölçülemeyen kısmını gösterir: bildirim bir istektir, zorlayıcı değildir. Alıcı taraf onu uygulamayabilir, kısmen uygulayabilir ya da kendi ölçütünü üste koyabilir. Ad sahibi burada bir kararın yalnız bildirimini yapar; kararı uygulayan başkasıdır ve uygulanıp uygulanmadığı ancak rapor akışından, o da eksik olarak görünür.
Kapatmanın getirdiği yeni yüzey rapor akışının kendisidir. Bölgeye bir adres yazılır ve o adrese dış taraflardan sürekli veri gelir: hangi kaynaktan kaç ileti çıktığı, hangi denetimin düştüğü. Bu, ölçüm ağının gönderim yapısını dışarıdan okunabilir kılan bir akıştır ve gideceği adres, bölgede herkese açık yazar. Ayrıca bir hacim yüzeyidir: rapor adresi, dışarıdan gelen ve işlenmesi gereken bir veri girişidir.
Özet
- Politika bildirimi, uyumsuz iletiye ne yapılacağı kararını alıcıdan ad sahibine taşır; bildirim yoksa aynı sahte ileti bir alıcıda gelen kutusuna, başkasında hiçbir yere gider.
- Yalnız raporla aşaması hiçbir iletiyi engellemez: 61 sahte ileti ulaşmayı sürdürür; bu aşama bir savunma değil ölçüm aracıdır.
- Karantina ve reddet aynı sayıları verir (49 sahte engellenir, 43 meşru ileti ayrılır); fark meşru iletinin geri döndürülebilirliğindedir.
- Yetkilendirilmiş ağ bloğunun içinden gelen 12 sahte ileti her aşamada gelen kutusuna ulaşır; bildirim uyumsuzu ayırır, uyumlu görünen taklidi görmez.
- Rapor akışı yedi yetkilendirilmemiş kaynağın altısını bulur (%86) ve iletilerin 91’ini kapsar; kaçırdığı kaynak dönem boyunca tek ileti göndermiştir.
- Hazırlık, reddet aşamasındaki meşru kaybı 43’ten 18’e indirir; kalan 18 ileti yönlendirmeden gelir ve hiçbir kayıtla kapatılamaz.
Sonraki Adım
Ad artık kendi adına ileti gönderme iznini de tanımlıyor ve uyumsuz iletinin ne olacağını bildiriyor. Bunların hepsi gönderen tarafın ölçüsüdür. Bir ileti bütün denetimlerden geçse bile ulaşmayabilir: alıcı taraf, gönderenin geçmişine bakarak da karar verir — kaç iletisi geri döndü, kaç kişi şikâyet etti, gönderim hacmi ani mi arttı. Sonraki ders teslim edilebilirliği bir oran olarak modeller, bozan etkenleri ayrı ayrı sayar ve bir dönem koşturur: itibar düştüğünde kaç ileti gecikir, kaçı hiç ulaşmaz ve toparlanma kaç dönem sürer.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.