Ders 10 / 15
İnternet ve Adres Dönüştürme Geçitleri
Özel alt ağdaki örneklerin dışarıyla ilişkisi dört düzende sayılır: geçitsiz düzende hangi beş iş adıyla duruyor, tek geçit kaç örneğin trafiğini tek noktadan geçirip hangi dönemde bağlantı sınırını aşıyor, alan başına geçit arıza yarıçapını kaça bölüp bedeli kaç birime çıkarıyor ve örnek başına genel adres kaç kalem ile kaç dış kayıt açıyor.
İçindekiler
Önceki iki derste geçit hem çözüm hem fatura olarak geçti: dışarı çıkan her akış oradan çıktı, yanlış yola düşen her akış oraya düştü ve her yeni alan bir tane daha istedi. Geçidin kendisi hiç sayılmadı. Alt ağların hepsi özel yapıldığında dışarıdan erişilebilir kalem bire indi — geriye ters yöndeki soru kaldı: içeriden dışarıya çıkmak.
Bu soru bir güvenlik sorusu gibi durmuyor ve öyle. Dışarıya çıkan yol, dışarıdan gelen yolu açmadan da bir bağımlılık yaratır: geçidin dışa görünen adresi karşı taraflarca kaydedilir ve o kayıtlar geri alınması en zor kalemi oluşturur. Dört düzen aynı iş yükünde karşılaştırılıyor.
- BA19. Dört düzen, iş listesi ve bedeller kurgusal bölgesel ölçüm ağına aittir. Gerçek bir
geçit kurulmuyor; ölçülen şey
nodeile kurulan modeldir. - BA20. Geçidin eşanlı bağlantı sınırı 55.000, tepe anda örnek başına giden bağlantı 90 olarak elle yazıldı. Gerçekte ikisi de sağlayıcıya ve iş yüküne göre değişir; doyma dönemini kaydırır, darboğazın varlığını değiştirmez.
- BA21. Bedeller kurgu birim cinsindendir, para birimi değildir. Sabit bileşen geçit ve adres başına, akış bileşeni yüz hacim birimi başına yazıldı.
- BA22. Üç dış hizmetin çıkış adresini kendi kayıtlarına yazdığı varsayıldı. Gerçekte bu sayı bağımlılık sayısıyla büyür; geri dönüş bedelini büyütür, yönünü değiştirmez.
- BA23. Tek geçit düzeninde üç alanın trafiği alan sınırını geçtiği için ayrıca ücretlendirildi.
- BA24. Geçidin kendi yedekliliği sağlayıcıda sayıldı. “Geçit düşerse” ile kastedilen alan düzeyindeki kayıptır; arıza yarıçapının nasıl hesaplandığını değiştirmez.
Dört Düzenin Modeli
Model bir düzeni üç sayıyla tanımlıyor: kaç geçit var, her örneğe genel adres verilmiş mi ve
bunlardan hangi sonuçlar doğuyor. olc işlevi altı ayrı kalemi birden döndürüyor — dışarı
çıkabilen örnek, dışarıdan erişilebilir kalem, duran iş, tepe bağlantı, arıza yarıçapı ve dış
kayıt. Bedel sabit ve akış olarak ikiye ayrılıyor, çünkü ikisi dönemle farklı hızda büyüyor.
// gecit.mjs — ozel alt agin disariyla iliskisi; gercek gecit kurulmuyor, model sayilir export const ORNEK = 616, ALAN = 4, KAPI = 4; // onceki dersin ucuncu duzeni: hepsi ozel alt agda export const SINIR = 55000; // gecidin esanli baglanti siniri (kurgu, BA20) export const BAGLANTI = 90; // tepe anda ornek basina giden baglanti (BA20) export const HACIM = 1960; // donemlik dis cikis hacmi (onceki dersten) export const DIS_TARAF = 3; // gecidin adresini kaydeden dis hizmet sayisi (BA22) // Bedeller kurgu birim (BA21); 100 hacim birimi basina yazilanlar oran tasir, para birimi degil. export const GECIT_SABIT = 40, ADRES_KIRA = 0.5, CIKIS = 2, ISLEME = 1, ALAN_DISI = 1; export const IS = ['yama ve paket alma', 'dis olcum hizmetine cagri', 'zaman kaynagi', 'sertifika yenileme', 'gunluk aktarimi']; // [ad, gecit sayisi, her ornege genel adres mi] export const DUZEN = [['gecit yok', 0, false], ['tek donusturme gecidi', 1, false], ['alan basina gecit', ALAN, false], ['ornek basina genel adres', 0, true]]; export const olc = ([ad, gecit, adresli], ornek = ORNEK, hacim = HACIM) => { const adres = adresli ? ornek : 0; // ornek basina bir genel adres const cikabilir = gecit > 0 || adres > 0; const alanDisi = gecit === 1 ? hacim * (ALAN - 1) / ALAN : 0; // tek gecit uc alanin trafigini cekiyor const akis = cikabilir ? (hacim * CIKIS + (gecit ? hacim * ISLEME + alanDisi * ALAN_DISI : 0)) / 100 : 0; const sabit = gecit * GECIT_SABIT + adres * ADRES_KIRA; return { ad, gecit, adres, cikabilir: cikabilir ? ornek : 0, kalem: adres * KAPI, duran: cikabilir ? 0 : IS.length, tepe: gecit ? Math.round(ornek * BAGLANTI / gecit) : 0, yaricap: gecit ? Math.round(ornek / gecit) : 0, kayit: (gecit || adres) * DIS_TARAF, akis: Math.round(akis * 10) / 10, sabit, toplam: Math.round((akis + sabit) * 10) / 10 }; };
Aynı İş Yükünde Dört Düzen
// kosum1.mjs — dort duzen ayni is yukunde: yuzey, darbogaz, ariza yaricapi ve bedel import { DUZEN, IS, SINIR, ORNEK, HACIM, olc } from './gecit.mjs'; console.log(`${ORNEK} ozel ornek, donemlik dis hacim ${HACIM}, gecit esanli baglanti siniri ${SINIR}`); console.log(`${'duzen'.padEnd(25)} ${'cikan'.padStart(6)} ${'acik kalem'.padStart(11)} ${'duran is'.padStart(9)} ` + `${'tepe baglanti'.padStart(14)} ${'ariza yaricapi'.padStart(15)} ${'dis kayit'.padStart(10)} ${'toplam bedel'.padStart(13)}`); for (const d of DUZEN) { const m = olc(d); const tepe = m.gecit ? `${m.tepe} (%${Math.round(m.tepe * 100 / SINIR)})` : '-'; console.log(`${m.ad.padEnd(25)} ${String(m.cikabilir).padStart(6)} ${String(m.kalem).padStart(11)} ` + `${String(m.duran).padStart(9)} ${tepe.padStart(14)} ${String(m.yaricap ? `${m.yaricap} ornek` : '-').padStart(15)} ` + `${String(m.kayit).padStart(10)} ${String(m.toplam).padStart(13)}`); } console.log(`\ngecit yok duzeninde duran is (${IS.length} kalem): ${IS.join(', ')}`); const [tek, alanBasi] = [olc(DUZEN[1]), olc(DUZEN[2])]; console.log(`bedelin dagilimi tek gecit: sabit ${tek.sabit} + akis ${tek.akis} ` + `alan basina: sabit ${alanBasi.sabit} + akis ${alanBasi.akis}`); console.log(`tek gecitten alan basina gecmek: ${alanBasi.kayit - tek.kayit} yeni dis kayit, geri donus ayni sayida`);
616 ozel ornek, donemlik dis hacim 1960, gecit esanli baglanti siniri 55000 duzen cikan acik kalem duran is tepe baglanti ariza yaricapi dis kayit toplam bedel gecit yok 0 0 5 - - 0 0 tek donusturme gecidi 616 0 0 55440 (%101) 616 ornek 3 113.5 alan basina gecit 616 0 0 13860 (%25) 154 ornek 12 218.8 ornek basina genel adres 616 2464 0 - - 1848 347.2 gecit yok duzeninde duran is (5 kalem): yama ve paket alma, dis olcum hizmetine cagri, zaman kaynagi, sertifika yenileme, gunluk aktarimi bedelin dagilimi tek gecit: sabit 40 + akis 73.5 alan basina: sabit 160 + akis 58.8 tek gecitten alan basina gecmek: 9 yeni dis kayit, geri donus ayni sayida
İlk satır sıfırlarla dolu ve bu onu iyi göstermiyor. Geçitsiz düzende açık kalem yok, dış kayıt yok, bedel yok — ve dışarı çıkabilen örnek de yok. Duran iş sütunundaki beş kalem adıyla yazılı: yama ve paket alma, dış ölçüm hizmetine çağrı, zaman kaynağı, sertifika yenileme, günlük aktarımı. İlki makinelerin yamasız kalması demektir, üçüncüsü saatin kayması, dördüncüsü sertifikaların süresinin dolması. Sıfır bedelli düzen, birkaç dönem sonra makine düzeyindeki bütün kazanımları geri veren düzendir.
Tek geçit satırı üç sayıyı birden taşıyor. Bedel en düşük olan odur: yüz on üç virgül beş birim, alan başına geçidin yarısından az. Tepe bağlantı sütunu birinci sınırı gösteriyor — elli beş bin dört yüz kırk, sınırın yüzde yüz biri. Bu dönemde geçit doldu ve dolduğunda ne olacağı bir arıza değil, yavaşlama olarak görünür: yeni bağlantılar sıraya girer. Arıza yarıçapı ikinci sınırdır: geçidin bulunduğu alan kaybedilirse altı yüz on altı örneğin tamamı dışarı çıkamaz hâle gelir, çünkü üç alandaki dört yüz altmış iki örnek de trafiğini oradan geçiriyordu.
Alan başına geçit ikisini birden çözüyor ve faturayı ters çeviriyor. Sabit bedel kırktan yüz altmışa çıkıyor, akış bedeli yetmiş üç virgül beşten elli sekiz virgül sekize iniyor — çünkü alan sınırını geçen trafik kalmıyor. Toplam yüz on üç virgül beşten iki yüz on sekiz virgül sekize, yaklaşık iki katına çıkıyor. Karşılığında tepe doluluk yüzde yüz birden yüzde yirmi beşe, arıza yarıçapı altı yüz on altı örnekten yüz elli dörde iniyor.
Akış bedelindeki on dört virgül yedi birimlik fark tek başına küçük ve nereden geldiği önemli. Tek geçit dört alandan üçünün trafiğini kendi alanına çekiyor; o trafik alan sınırını iki kez geçiyor ve her geçiş ayrıca ücretleniyor. Bu kalem yönlendirme tablosunda görünmüyor, geçit sayısında görünmüyor, yalnız faturada görünüyor — ve geçidi hangi alana koyduğuna bağlı olduğu için tek satırlık bir kararın sonucudur.
Son satır dördüncü düzendir ve tek başına bir uyarıdır. Örnek başına genel adres vermek geçit sorununu ortadan kaldırıyor: darboğaz yok, arıza yarıçapı yok, akış bedeli en düşük. Karşılığında iki yüzey açılıyor. Birincisi iki bin dört yüz altmış dört açık kalem — önceki dersin bire indirdiği sayı geri geliyor ve fazlasıyla. İkincisi bin sekiz yüz kırk sekiz dış kayıt: her örneğin adresi üç dış hizmetin kayıtlarında duruyor.
Sekiz Dönem Boyunca
// kosum2.mjs — sekiz donem boyunca: tek gecit ne zaman doluyor, hangi duzen ne zaman pahalilasiyor import { DUZEN, SINIR, HACIM, ORNEK, olc } from './gecit.mjs'; // Onceki derslerin buyume dizisi; donem-8 alan basina yuvarlanmis sayidir const SERI = [[1, 18], [2, 26], [3, 44], [4, 71], [5, 118], [6, 196], [7, 340], [8, 616]]; console.log(`${'donem'.padEnd(6)} ${'ornek'.padStart(6)} ${'tek gecit doluluk'.padStart(18)} ${'alan basina'.padStart(12)} ` + `${'tek gecit'.padStart(10)} ${'alan basina'.padStart(12)} ${'ornek basina'.padStart(13)} ${'acik kalem'.padStart(11)}`); for (const [d, n] of SERI) { const h = Math.round(HACIM * n / ORNEK); const [tek, dort, adres] = [1, 2, 3].map((i) => olc(DUZEN[i], n, h)); const yuzde = (m) => `%${Math.round(m.tepe * 100 / SINIR)}`; console.log(`${String(d).padEnd(6)} ${String(n).padStart(6)} ` + `${`${tek.tepe} ${yuzde(tek)}${tek.tepe > SINIR ? ' asti' : ''}`.padStart(18)} ${yuzde(dort).padStart(12)} ` + `${String(tek.toplam).padStart(10)} ${String(dort.toplam).padStart(12)} ${String(adres.toplam).padStart(13)} ` + `${String(adres.kalem).padStart(11)}`); } const ucuz = SERI.map(([d, n]) => { const h = Math.round(HACIM * n / ORNEK); const m = [1, 2, 3].map((i) => olc(DUZEN[i], n, h)); return [d, m.reduce((a, b) => (b.toplam < a.toplam ? b : a)).ad]; }); const kayit = (n) => olc(DUZEN[3], n).kayit; console.log(`\nornek basina adres duzeninden geri donus: donem 4'te ${kayit(71)} dis kayit, donem 8'de ${kayit(616)}`); console.log('donem donem en ucuz duzen:'); for (const [ad, gecen] of Object.entries(ucuz.reduce((a, [d, ad]) => ({ ...a, [ad]: [...(a[ad] || []), d] }), {}))) console.log(` ${ad.padEnd(25)} donem ${gecen.join(', ')}`);
donem ornek tek gecit doluluk alan basina tek gecit alan basina ornek basina acik kalem 1 18 1620 %3 %1 42.1 161.7 10.1 72 2 26 2340 %4 %1 43.1 162.5 14.7 104 3 44 3960 %7 %2 45.3 164.2 24.8 176 4 71 6390 %12 %3 48.5 166.8 40 284 5 118 10620 %19 %5 54.1 171.3 66.5 472 6 196 17640 %32 %8 63.4 178.7 110.5 784 7 340 30600 %56 %14 80.6 192.5 191.6 1360 8 616 55440 %101 asti %25 113.5 218.8 347.2 2464 ornek basina adres duzeninden geri donus: donem 4'te 213 dis kayit, donem 8'de 1848 donem donem en ucuz duzen: ornek basina genel adres donem 1, 2, 3, 4 tek donusturme gecidi donem 5, 6, 7, 8
Tarama iki eğri gösteriyor. Geçitli düzenlerin bedeli sabit bir tabanla başlıyor ve yavaş büyüyor; örnek başına adres düzeninin bedeli sıfırdan başlayıp örnek sayısıyla doğrusal artıyor. Kesişme beşinci dönemde. İlk dört dönem boyunca en ucuz düzen, açık kalemi en yüksek olan düzendir ve o dönemlerde açık kalem yetmiş iki ile iki yüz seksen dört arasında — geçitli düzenlerin sıfırına karşı büyük, ama bir alarm üretecek kadar değil.
Tek geçit sütununun doluluk değeri asıl uyarıdır. Yedinci dönemde yüzde elli altı, sekizinci dönemde yüzde yüz bir. İki dönem arasında örnek sayısı seksen bir yüzde arttı ve doluluk yüzde kırk beş puan sıçradı; doğrusal bir eğride sürprizin yeri, eğrinin kendisi değil sınırın nerede durduğudur. Alan başına geçit aynı dönemde yüzde yirmi beşte kalıyor, yani üç dönem daha payı var. Tek geçitten alan başına geçmek dokuz yeni dış kayıt istiyor ve bu, yapılması gereken anda yapılamayacak bir iştir: dış tarafların takvimine bağlıdır.
Doluluğun yüzde yüzü aşması ayrıca bir arıza kaydı üretmiyor ve aranan yerde de görünmüyor. Sınıra dayanan geçit bağlantıyı reddetmiyor, bekletiyor; içeriden bakan taraf bunu yavaşlayan bir dış çağrı olarak görüyor. Beş işten üçü — dış ölçüm hizmetine çağrı, sertifika yenileme ve günlük aktarımı — zaman aşımına düşmeye başlıyor ve üçü de kendi bileşenlerinin arızası gibi okunuyor. Ölçülen sayı geçitte, belirti başka beş yerde.
Geri alınamayan kalem bu derste geçidin kendisi değil, çıkış adresinin dışarıda bıraktığı izdir. Geçit silinir, yeniden kurulur, sayısı artırılır — ama adres bir kez üç dış hizmetin kayıtlarına yazıldıktan sonra o kayıtlar elde değildir. Örnek başına adres düzeninin geri dönüş bedeli tam olarak budur ve dönemle büyüyor: dördüncü dönemde iki yüz on üç kayıt, sekizinci dönemde bin sekiz yüz kırk sekiz. İlk dört dönem en ucuz olan düzen, beşinci dönemde terk edilmesi en pahalı olan düzendir.
Elde kalan karar dört kalemdir: geçit sayısı, geçidin hangi alanda duracağı, hangi örneklerin genel adres alacağı ve çıkışın hangi adresten görüneceği. Devredilen kalem üçtür — geçidin eşanlı bağlantı sınırı, kendi yedekliliği ve dönüştürme işleminin gecikmesi. Devredilen üçünden birincisi sekizinci dönemin bütün tablosunu belirliyor ve hiçbir yerde sorulmuyor.
Özet
- Geçitsiz düzen 0 açık kalem, 0 dış kayıt ve 0 bedel üretiyor; karşılığında 616 örneğin hiçbiri dışarı çıkamıyor ve 5 iş adıyla duruyor: yama ve paket alma, dış ölçüm hizmetine çağrı, zaman kaynağı, sertifika yenileme, günlük aktarımı.
- Tek dönüştürme geçidi en ucuz geçitli düzen — 113,5 birim — ve iki sınırı birden taşıyor: tepe bağlantı 55.440 ile sınırın yüzde 101’i, arıza yarıçapı 616 örnek. Üç alandaki 462 örnek trafiğini başka bir alandan geçiriyor.
- Alan başına geçit doluluğu yüzde 25’e, arıza yarıçapını 154 örneğe indiriyor. Sabit bedel 40’tan 160’a çıkıyor, akış bedeli alan sınırı aşılmadığı için 73,5’ten 58,8’e iniyor; toplam 113,5’ten 218,8’e, yaklaşık iki katına.
- Örnek başına genel adres darboğazı ve arıza yarıçapını sıfırlıyor, karşılığında 2.464 açık kalem ve 1.848 dış kayıt açıyor. İlk 4 dönem en ucuz düzen budur; 5. dönemde tek geçide geçiyor.
- Geri alınamayan kalem çıkış adresinin dışarıda bıraktığı izdir. Tek geçitten alan başına geçmek 9 yeni dış kayıt, örnek başına adres düzeninden çıkmak 4. dönemde 213, 8. dönemde 1.848 kayıt istiyor ve bunların hiçbiri kendi takvimimize bağlı değil.
Sonraki Adım
Dört düzenin dördünde de dışarı çıkan trafik sayıldı, dışarıdan gelen bağlantı sayıldı — ama hiçbir yerde hangi bağlantıya izin verildiği yazılmadı. Açık kalem sütunu bir örneğin dört kapı dinlediğini varsayıyordu ve o kapıların kaçının gerçekten açık olması gerektiği sorulmadı. Sonraki dersin sorusu aynı politikayı iki ayrı mekanizmada yazar ve bilinen bir akış kümesinde koşturur: dönüş trafiğini kendiliğinden tanıyan bir filtre kaç kural istiyor, tanımayan bir filtre aynı politika için kaç kural istiyor, hangi akışlar yakalanıyor, hangileri kaçıyor ve hangileri yanlışlıkla kapanıyor — ve iki mekanizma birlikte kullanıldığında hangisi önce değerlendiriliyor, bu sıra hangi durumda yazılana bakıp da anlaşılamayan bir sonuç üretiyor.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.