Vertaisverkko kuvaa, miten sovellusten paketit kulkevat, eikä mitään muuta. Vertaisten piti yhä löytää toisensa, todistaa keitä he ovat ja joskus turvautua releeseen, kun suoraa polkua ei voitu rakentaa. Nämä ovat kolme erillistä palvelua, ja käyttöönotto voi olla datan osalta vertaisverkko, vaikka se olisi kaiken muun osalta täysin keskitetty. Suunnitelmien vertaaminen tarkoittaa näiden tehtävien vertaamista, ei kaavion nuolta.

Kaavio ilman keskitettyä välitysnuolta voi piilottaa rekisteröintiviranomaisen, löytöpalvelun ja releen, jotka kaikki ovat toiminnallisia riippuvuuksia.

Suora polku, yhteinen ohjaustaso

Kaksi konetta, jotka vaihtavat paketteja suoraan, voivat yhä riippua yhteisestä viranomaisesta, joka myönsi niiden sertifikaatit, ja palvelusta, joka kertoi kummallekin, missä toinen on. Kumpikaan rooli ei välitä sovellusliikennettä, minkä vuoksi topologiakaavio jättää ne pois. Kun tämä viranomainen tai palvelu on alhaalla, olemassa olevat istunnot voivat jatkua, kun taas uusi vertainen ei voi liittyä. Ero istunnon aloittamisen ja sen jatkamisen välillä on ensimmäinen kysymys, joka mistä tahansa suunnitelmasta pitää kysyä.

Piirrä jokainen tehtävä erikseen, vaikka yksi isäntä hoitaisi ne kaikki. Muuten kaavio näyttää hajautetun datatason ja piilottaa toiminnallisen todellisuuden, että jokainen uusi vertainen tarvitsee samat kaksi palvelua.

Löytäminen, luottamus ja rele ovat kolme tehtävää

Nebulan suunnittelu on hyödyllinen esimerkki, koska sen dokumentaatio pitää ne erillään. Isännät kantavat identiteetin sertifikaatteja, majakat vastaavat missä-kysymykseen ja auttavat NAT:n läpäisyssä, ja releet välittävät liikennettä, kun suoraa polkua ei voida muodostaa. Releen rooli on tarkoituksella erillään majakan roolista, joten tavoitettavissa oleva majakka ei takaa, että tietty pari voi puhua. Muut tuotteet vetävät rajat muualla, minkä vuoksi tämä on esimerkki eikä mallipohja.

Kirjoita ehdotetulle käyttöönotolle tuettu varareitti parille, joka ei voi yhdistää suoraan. Epäonnistunut reiän puhkaisu on yksi datapiste yhdestä verkosta, ei todiste siitä, että kaksi NAT:n takana olevaa vertaista ei voisi koskaan kohdata; vastakkainen väite, että suora yhteys toimii millä tahansa käytännöllä, on yhtä perusteeton.

Mihin kukin riippuvuus kaatuu

Arvioi neljä tapausta erikseen, kun testattava riippuvuus ei ole käytettävissä: olemassa oleva vertaisliikenne, täysin uusi vertaisyhteys, vertainen jonka päätepiste on muuttunut, ja juuri peruutettu pääsy. Kukin nojaa eri palveluihin ja kaatuu eri tavalla. Olemassa olevat istunnot voivat kestää löytökatkoksen, kun taas peruutettu avain hylätään yhä, ja uusi vertainen voi epäonnistua syistä, joilla ei ole mitään tekemistä välityksen kanssa. Testaa niitä erikseen sen sijaan, että päättelisit yhdestä.

Yhden katkoksen kestävä yhteys ei osoita rajatonta riippumattomuutta. Se osoittaa, että aiheuttamasi katkos ei ollut se, joka katkaisee tuon polun, mikä on yhä hyödyllistä tietoa, jos vain kirjasit ylös, mitä aiheutit.

Kysy, minkä katkoksen kestät

Samalta kuulostavat vaatimukset johtavat erilaisiin suunnitelmiin. Yhden välityskapeikon välttäminen ei ole sama kuin toimittajan ylläpitämän ohjaustason välttäminen, eikä kumpikaan vastaa toiminnan jatkamista koordinaattorin ollessa alhaalla. Nimeä, minkä näistä kolmesta käyttöönoton on täytettävä, ja tarkista sitten vastaavuus. Suunnitelma, joka täyttää ensimmäisen ja epäonnistuu toisessa, on yleinen eikä epärehellinen, kunhan kukaan ei kutsu sitä täysin hajautetuksi.

Kirjaa ylös, kuka ylläpitää löytämistä, luottamusta ja releitä, ja miten kukin niistä korvataan. Se kirjaus antaa seuraavalle henkilölle mahdollisuuden vastata todelliseen kysymykseen: mitkä viat tämä verkko kestää, ja kuka ylläpitää tilaa, joka jää jaetuksi?

Sana hajautettu ansaitsee paikkansa, kun se nimeää ne viat. Ilman tuota luetteloa se kuvaa kaaviota eikä järjestelmää.

Aiheeseen liittyvät artikkelit