» Poradna » Programy

Jak se program spojí s programy v "neznámé síti" (bitcoin, botnet a podobně)?

avatar
 | Microsoft Windows 8.1 Firefox 25.0

Dejme tomu, že mám program (například Bitcoin-Qt) a ten chci připojit do neznámé sítě (síť bitcoin). Jak to ten program svede, když ta síť je decentralizovaná a ten program netuší, na jakých ip adresách ta síť má servery, se kterými ten program může navázat spojení klient server? Se musí spojit přes nějakého špehovacího prostředníka, kde je udržován seznam aktuálně dostupných ip serverů té sítě, ne?

Mohlo by vás také zajímat

Odpovědi na otázku

 | Microsoft Windows 7 Chrome 32.0.1700.19

Myslím že tam musí být nějaký "seznam" stabilních serverů, které jsou součástí sítě. Na tyhle se to poprvé připojí. Pak z těchto serverů může stáhnout seznam dalších "serverů" co jsou v té síti. Ne všechny servery ale jen lokální seznam toho co ten server zná. A pak z těchto dalších serverů si zase můžeš stáhnout další seznamy atd.Ta aplikace asi nějak projde nějakou část této sítě a najde si seznam serverů které si bude pamatovat a při dalším spuštění se připojí na tyto zapamatované servery.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 25.0

A ten seznam je uveden kde? Ten si stáhne klient nebo je už v klientu? A kdo ho vytváří? A jak se vytváří? Někde o tom informace na netu nejsou? A co by se stalo, kdyby se to vytváření seznamu zatrhlo? Mi to připadá nějaké divné. Divné by mi nepřišlo stav takový, kdyby bylo na světě třeba milion stránek s aktivníma serverama, na které by se člověk musel nejdřív kouknout, najít si nějakou stránku, našel si online server a poté se na něj připojil.A další věc co nechápu, jak můžou všichni vidět všechny? Co když část sítě ztratí spojení s druhou? To se stát nemůže? Tomu je zabráněno jak?

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 25.0

Teda to by mi přišlo divné taky.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Linux Firefox 22.0

Decentralizovane prvky niesu nezname. Sytem DNS je tiez decentralizovany a predza kazdy program vie kde ma co hladat.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 25.0

Nějak nechápu poznámku.Síť se snad identifikuje pomocí ip. DNS je jen překlad jmen na ip. A je tam jasně určeno, kde se má hledat, nejdřív v hosts, poté v dns serveru nastaveném v pc (např poskytovatele) a podobně až na ty nahoře, kterým myslím je pár. Pokud člověk chce, tak může použít např něco jako opendns... Takže ten požadavek třeba na překlad jmen je určen, kam odeslat. A ty seznamy jsou vytvářeny, je to něčím řízeno.Třeba u bitcoinu musí být něco, co tě navede k připojení se do bitcoin sítě. Bez toho by ses do ní nedostal.Spustíš klienta bitcoinu a jak pozná, na jakou ip/hostname, kde běží server sítě bitcoin, se má připojit? No?

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Linux Opera 9.80

Ten počáteční seznam je natvrdo uvedený v klientu, konkrétně u Bitcoinu je tady:https://github.com/bitcoin/bitcoin/blob/mast... (Jsou to IPv4 adresy jakožto 4bajtové inty.) Jak je vidět, teď je tam nějakých 600 adres z různých rozsahů. Tyhle počáteční servery tam dali vývojáři Bitcoinu. Obecně se klient snaží navázat spojení s různými podsítěmi (dává přednost IP adrese z podsítě, kde ještě není připojený, před místem, které je „hned vedle“). Tím se i zabrání tomu, že kdyby náhodou část sítě vypadla, tak je slušná šance, že budeš připojen alespoň jednou konexí k té druhé skupině.Kdyby s tím byl problém a všechny tyhle servery byly vypnuté (armageddon), pořád můžeš vygooglit aktuální adresu a podstrčit ji klientovi přímo. Případně řekneš „tady běží moje instance Bitcoinu, připoj se jen k ní a nikam jinam“.Všichni všechny samozřejmě nevidí, ale každý klient si udržuje několik spojení (desktopová verze má tuším výchozích spojení 8, serverová mnohem víc, lze konfigurovat) a občas se těch připojených serverů zeptá, jaké jiné servery vidí. To si pak ukládá k sobě a příště se zkusí připojit třeba k nim.Tím se tedy databáze serverů rozšiřuje a dá se říct, že po nějakém provozu by muselo chcípnout úplně všechno, aby se klient neměl kam připojit

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 25.0

Jo díky za odpověď.Takže toto asi bude to nahoře u sítě bitcoinu Já věděl, že něco nahoře být musí A pokud je to tam napevno v programu, tak je to jasné, tak asi odpojení podsítě nehrozí, to by musela ta podsíť celá mít neaktuální klienty s celým seznamem nefunkčních ip.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Chrome 32.0.1700.19

torrenty na to mají DHT, tzn že každý klient se na některé věci chová jako tracker sám. podivej se na to na wiki, ale to už je vyšší síťařská...

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 25.0

No to je možné, jenže mně jde o první kontakt s neznámou sítí, nevím jak je to u torrentu, ale tam nejdřív stáhneš ten jeden soubor z trackeru a díky tomu to směřuje na ostatní klienty (popř. pak ty dht trackery jiných klientů (jako serverů)).

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Chrome 32.0.1700.19

nenene, stačí magnet link, je to hash daneho souboru a nějakých pár informací dalších. žadný klasicky tracker není nutný.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 25.0

No dobře, ale ten magnet link může klient hledat pouze v případě, pokud je spojen se sítí jíných klientů, třeba na wiky se píše:"Magnet link obsahuje hash hledaného souboru, tedy jeho jednoznačnou identifikaci. Správa hashů přitom není svěřena centrální autoritě (trackeru), ale všem klientům v síti."A do té sítě je potřeba se připojit, např. bitcoin se připojuje diky těm asi 600 ip adresám, které tvoří "main network". Pokud by klient torrentu neměl nějaký udaj, jak se spojit s těmi jinými klienty, musel by projíždět internet a zkoušet jednu ip po druhé jestli náhodou na ni není klient (tedy fungující jako server). A to tak určitě klient torrentu nedělá.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Opera 9.80

Tam to ale funguje stejně. V programu je napevno zabudovaný seznam IP adres, na které se to má snažit komunikovat. A jak se to poprvé připojí, tak se stáhne/vytvoří nějaký lokální seznam IP adres na které to bude komunikovat při příštím spuštění.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 25.0

Jsem rád, že se to ujasnilo i u torrentu Takže i ten má něco jako "main network".

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 7 Opera 9.80

Nenazýval bych to "main network". Spíš je to část sítě, která je zadaná přímo v programu.I bez všech těchto serverů ta síť bude fungovat. Jen "noví" uživatelé budou mít trochu problém, protože se nepřipojí. Budou muset někde získat (třeba na foru, nebo od kamaráda) IP adresu nějakého serveru té sítě, a pak jí zadat do programu a přinutit ho učinit to první spojení na tu IP. A pak už si jejich program bude pamatovat další uzly sítě a bude fungovat jako všem ostatním.

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 25.0

No šak já to chápu, že by to fungovalo i bez těch uvedených ip, ale musel by se hledat nějaký přípojný bod, ale jelikož se tak běžně neděje, tak jsem se ptal jak je to řešený."main network" to nazývám proto, že se to tak nazývá v kódu bitcoinu tedy nad těma ip je://// Main network//

Souhlasím  |  Nesouhlasím  |  Odpovědět
avatar
 | Microsoft Windows 8.1 Firefox 25.0

A mně se ten název Main network líbí. Ono to tak nějak vystihuje podstatu, díky těmto serverům je komunikace v síti rychlejší, počítám že každý klient má navázáno spojení s minimálně jednou ip z toho seznamu main network, takže nehrozí odpojení části sítě a komunikace může vesměs jít jen přes jednu ip.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Bitcoin, Botnet