Toto vlákno zakládám jako určitou pomstu všem radioamatérům a profesionálním mikrovlnařům, bastlířům, správcům sítí velkých ISP, apod., a vůbec všem, kteří nepokrytě dávají najevo, že správci jednotlivých nodů a sítí v CZFree jsou úplně blbí a nemohou absolutně pochopit hloubku jejich profese a přiblížit se výšinám jejich umu, a mohou hrát tak maximálně roli dealerů jejich ultrakvalitních služeb.
Co je to GFNP - Global Free Network Protocol:
- je to myšlenkový pokus o přebudování internetu cca od vrstvy 2 výše - tedy především náhrada za TCP/IP v4 a v6, která by mohla od úrovně L2 fungovat nezávisle na existujících protokolech
- smyslem je pokus o definici sítě, která by na rozdíl od Internetu byla nezávislá na centrální autoritě přidělující IP adresy, a ve které by neměly žádnou počáteční výhodu např. firmy ovládající desktopové prostředí (Microsoft), výrobci hardware pro ISP (Cisco), majitelé infrastruktury (telekomunikační firmy) nebo správci TLD domén stávajícího internetového DNS systému
- předpokládá se klasický postup obvyklý v internetu, tedy nejprve přesná definice protokolu (tu navrhuji zveřejnit pod GNU Free Documentation License a napsat v jednoduché anličtině) a potom jeho ukázková implementace (pokud na ní budu spolupracovat, tak navrhnu GNU Public License)
- otázky implementace bych zatím ponechal stranou - dovedu si osobně představit jako userspace aplikaci, tak i ovladače např. do Linuxového kernelu, první by bylo vhodnější pro vývoj, druhé pro produkční nasazení
- uživatelské aplikace postavené na GFNP by se nesly v duchu inkluzivního názvového prostoru (namespace), který používá například IRC; očekává se tedy, že GFNP-aplikace by nerespektovaly autoritu stávajících TLD domén ve stávajícím DNS systému (to by se řešilo tím, že by se uživatelská podoba názvového prostoru zapisovala jinak - např. /arachnelabs)
- tunelování GFNP po IPv4 nebo IPv6 a naopak tunelování IP-based aplikačních protokolů po GFN se předpokládá hlavně za účelem vývoje, ale není konečným smyslem existence GFNP
Některé myšlenky, které bych v GFNP rád uplatnil:
- zcela proměnná a teoreticky neomezená délka "adresy" (null-terminated string - ovšem nikoliv ASCII)
- zrušení rozdílu mezi "adresou" a "portem" (pouzival by se napr. pojem "slot")
- proměnná a teoreticky neomezená délka atributů packetu (atributy by např. měl jen packet otevírající spojení - perzistenci spojení by si už hlídaly koncové stroje pomocí connection trackingu)
- čistě dvoustrané dohody o akceptování maximálního rozsahu alokovaných a směrovaných slotů na nějakém konkrétním spoji
- QoS třídy založené na jiném než finančním základě (např. priority 1-256, pririta 1 smí čerpat maximálně 1 bit z 256 bitů kapacity každého spoje, priorita 256 smí čerpat celé pásmo, ale je směrována až na posledním místě)
- inkluzivní názvový prostor založený na jiném než finančním základě - např. podobně jako u délky adresy by se o povolených počtech registrovaných ID dohadovali operátoři sítě mezi sebou, a minimální délka "root ID" by se stanovila např. na 10-16 znaků (takže "/arachne" bych si registrovat nemohl, resp. mohl ale fungovalo by to na základě dohod vždy jen lokálně, "/arachnelabs" ano, pokud by mě někdo předběhl, zaregistruji si "/arachneprague".) Výhodou minimální délky ID je kompatibilita s tradičním namespace v kořenovém adresáři Unixů, jen tak mimochodem.
- Global Free Web: přímá reimplementace HTTP nad GFNP, s využitím názvového prostoru postaveného nad GFNP - ovšem s tím, že by se předpokládal pouze názvový prostor založený na relativních cestách k souborům - takže by mohl existovat neomezený počet klasických IPv4/HTTP based webserverů zpřístupňující GFNP z normálního Internetu (toto poslední už volně souvisí s diskuzemi o "CZFree for BFU").
- search engine zabudovaný jako aplikace přímo nad GFNP, založený na předávání dotazů dalším nodům v síti. Výsledky hledání by se zobrazovaly postupně, takže lokální výsledky hledání by byly vždy na prvním místě časově i vizuálně a měly největší relevanci; prohledávací aplikace by pak nebyla potavená na HTML GUI, které neumožňuje efektivně zobrazit velké množství výsledů hledání. search engine by byl pravděpodobně postavený přímo nad protokolem názvového systému v GFN - systém identifikace nodů je jen zvláštním případem klíčového slova (unikátní klíč, minimální povolená délka ID - to? vše, netřeba platit 500 Kč ročně + podíl na příspěvku registrátora u CZ-NICu, a když je něco zadarmo, tak není třeba odvádět DPH státu.
- ověřování autenticity jednotlivých nodů v GFN pomocí elektronického podpisu s veřejným klíčem: konzistence sítě by byla založena na úvodní výměně veřejných klíčů po jiném médiu, než po GFNP.
- v souladu s duchem GNU licence a Linuxu by garantovaný přístup ke GFN s danými parametry a technickou podporou bylo samozřejmě možné libovolně zpoplatňovat - rozdíl oproti Internetu je hlavně ten, že by to nebylo nutné
Odkazy jinam:
Největší inspirací pro GFNP jsou DC a IRC - ovšem s tím, že na rozdíl od IRC se předpokládá spojení do jednotné funkční, bezplatné a svobodné globální sítě, a na rozdíl od DC nepůjde o parazitování na starších a k danému účelu nevhodných technologiích (IPv4).
Další velkou inspirací je Wikipedia. GFNP by byl něco jako Wikipedia přenesená přímo na úroveň L2 - jde v podstatě o chybějící článek mezi Linuxem a Wikipedí, jestli lze do jedné škatulky hodit free systém a do druhé free encyklopedii. Zpřístupnění Wikipedie přes GFNP je velkou výzvou - protože ten projekt je fakt super - a tím, že používá dost důsledně relativní odkazy sám dovnitř sebe, je snadno přenositelný i mimo placený internetový názvový prostor a placený IPv4 adresní prostor (popravdě, uvažuju že bych i mimo projekt GFNP do Wikipedie zřídil z CZFree nějakou speciální proxy plnou rychlostí CZFree... :-)
Přesně nevím jak si to představuješ, ale připadá mi jako ne příliš trefné míchat nižší a vyšší vrstvy OSI modelu. Budou z toho Windows ....
Další věcí je, kdo takový protokol použije, resp. jestli bude mít tolik výhod aby se lidi donutili ho používat. Dejme tomu že já ho zkusím, ale já zkouším spoustu věcí.
Nechci tě odrazovat, držím ti i svým způsobem palce, ale nevěřím, že to má velkou šanci na úspěch.
Troufám si říct, že před tím aby z toho byly Windows to zachrání to, že nejprve se celá architektura navhrne, zdokumentuje pod GNU Free Documentation License a předloží k veřejné diskuzi. Teprve ve chvíli, kdy bude jasné, že to je popsané natolik jednoduše, srozumitelně a přístupně, že podstatu rozdílu mezi GFNP a IPv6 pochopí i poslední údržbář WC v Sitelu, tak bych přikročil k implementaci.
Jinak morseovku vymyslel mimochodem malíř - ne nějaký přední matematik té doby... a používá se dodnes. Proměnná délka znaku, která v morseovce existuje, byla samozřejmě pro GFNP velkou inspirací, i když jen v přenesené podobě (proměnná délka adresy), Jen tak mimochodem: Morseova abeceda je trojstavový kód a trojka je bližší eulerovu číslu, a jako taková je optimálnějším základem číselné soustavy než dvojka.... jednotlivé znaky v DNA (další komunikační protokol, který přetrval dokonce ještě o pár miliard let déle než morseovka..) jsou kódované pomocí tripletů - ovšem tam jde o čtyřkovou soustavu, takže tam existuje tam 64 kombinací - některé kombinace jsou ovšem redundantní (asi tam dřív byly aminokyseliny s hačky a čárkami ... :-). Délka "adresy" v DNA je pokud je mi známo proměnná (tzn. jde o určité sekvence DNA, na které přisedají určité enzymy, které by z hlediska programování bylo možné přirovnat k eventům - v DNA se programuje tak trochu jako v Gtk, je to řízené událostmi...) Každopádně náš Matrix není emulovaný na ničem, co by rozumělo ASCII nebo dokonce Unicode :-)
Co se týče míchání OSI vrstev - všimni si, že u inkluzivního namespace, Global Free Webu a u vyhedávací aplikace mluvím o příkladech "aplikací" nebo "aplikačních protokolů" nad GFNP ! Já tohle samozřejmě rozlišuji.
Předpokládám, že na třetí vrstvě (IP) by to byla alternativa k IP packetům (tedy v případě nativní implementace). Mělo by to vlastní ARP tabulku a ARP dotazy packety (v případě nativní implementace nad ethernetem). Taková doba je ovšem vzdálená, a pokud se to předtím dostatečně nerozšíří v experimentální podobě s ovladači nad linuxovými IP interfacy, tak to nemá vůbec cenu řešit.
Na čtvrté vrstvě by se k základnímu packetu přidávaly atribity. Jedním velmi důležitým atributem by byla otevření persistentního spojení (obdoba TCP - vše ostatní by byl datagram), další atributem který mi napadá je specifikace aplikace která ma spojení obsluhovat (obdoba protokolu - porty se ruší ve prospěch slotů, aplikaci obsluhující stream potom stačí specifikovat pouze když spojení otevíráme).
V síti s proměnnou délkou adresy a jejím dynamickým přečíslováním je ovšem velmi speciálním případem aplikace pro udržování namespace, kterou jsem vyhlásil jako identickou se službou vyhledávání - každý node v síti musí respektovat unikátní klíčová slova, ale pro samotné zachování funkčnosti sítě musí předávat všechny dotazy na všechna klíčová slova - i na ta, která také do sítě sám propaguje.
Takže přesto, že namespace protokol by byl až aplikačním protokolem nad GFNP, tak bych o něm rád diskutoval jako o základní součásti "rodiny protokolů" GFNP. Podobně Global Free Web by byl ukázkou "aplikačního" či "prezentačního" protokolu - nebo prostě ukázkové aplikace nad GFMP. Raději bych vycházel z čtyrvrstvého modelu TCP/IP, než ze sedmivrstvého ISO/OSI, který se v praxi vůbec neujal).
Jinak je možné, že první věc která GFNP čeká, je přečíslování. Na doméně GlobalFree.Net je nějaký placený webhosting... :-) Pro všechny: diskuze o vhodném názvu je myslím možné se zúčastnit i bez velkých technických znalostí. G jako Global/GNU bych tam s dovolením nechal, slovo free je ošemetné a mnohoznačné, takže možná GDNP - Global Decentralized Network Protocol ? GANP - Global Autonomous Network Protocol ?
Těžko si tam můžeš přikompilovat něco co neexistuje - můžeš se ale zato podílet na definici celého projektu, pokuď tě zajímá, nebo ho ignorovat, pokud tě nezajímá.
Ale předpokládejme, že to existuje a dá se to jednoduše spustit (třebas i jen jako userspace aplikace a ne jako patch do kernelu).
Pokud jsi koncový uživatel, tak se do GFN budeš chtít zapojit prostě proto, aby si byl připojený do GFN. Proč se připojuješ k Internetu jako takovému, resp. proč spouštíš IRC, ICQ, DC, nebo třebas jen webový prohlížeč? Resp. proč to lidé dělali před nějakými deseti lety ?
Pokud jsi správce routeru nebo celé sítě, tak jedna možnost je, že to uděláš, protože to po tobě budou chtít tvoji klienti. Pokud nebudou vědět oč běží, asi jim to nebudeš vnucovat, ale je možné, že si v síti budeš chtít vytvořit relativně bezpečný kanál např. pro správu serverů, který bude chráněný právě svoji "obskurností" - např. nepovolíš SSH přístup přes IP, ale jen přes GFNP. To budou asi na začátku - postupně by se to mohlo stát určitou náhradou DC pro fajnšmekry.
Těch důvodů je prostě víc. Samotný fakt, že se na to ptáš naznačuje, že to pro tebe asi nebude zajímavé - protože samotný popis vlastností navrhovaného protokolu už lidem kteří vědí o co jde napoví, jaké by byly jeho hlavní výhody. V návrhu Internetu a aplikací využívajících Internet byly už na začátku učiněny závažné chyby. Třeba nikdo asi nečekal, že se na obrazovce KAŽDÉHO počítače objeví okénko, za jehož používání se státu podaří vybírat DPH (mám na mysli Adress bar v browseru, CZ-NIC a registrace domén..). Ok, dnes tu máme DC, což je opačný extrém - ale je to jen přirozená sociální reakce, po sí?ových aplikacích, u kterých závažná chyba v architektuře vedla k nadměrné centralizaci a hromadění moci se objevuje vzpoura uživatelů a aplikace které vracejí úder.
GFNP je pokusem navrhnout protokol, ve kterém bude předem zabudováno jakési očkování proti kumulaci moci a proti centralizaci.
Pro mě na Internetu třeba před desetli lety bylo zajímavé, že ho nepoužíval skoro nikdo. Byla to alternativa. Dnes už používá Internet skoro každý - takže je načase začít vymýšlet alternativu pro příští desetiletí. Něco, co bude na začátku používat jen pár desítek až stovek lidí...
A co takhle trochu kompatibility s ATM pro telefonaky.
Aby sit umela jak internet, tak i treba telefon, video a
jine on-line sluzby. Co jim dat pevnej paket 56b ?