Keresni próbálnék valami gyakorlatorientált leírást / videót a DHT (routing) működéséről.
Amikbe eddig belebotlottam, nagyon egyetemi-akadémikus úton próbálják taglalni a témát. Nem akarom magamnak leprogramozni az implementációt, szigorúan enduser v. sysadmin szempontból szeretném csak megérteni, h. ki - kivel mit kommunikál a gyakorlatban.
A feladat "egyszerű" (szerintem rohadtul nem triviális): windows / linux környezetben 2 tetszőlegesen távol levő gép között hogyan lehet megoldani fájlcserét, pl. köztes torrent tracker nélkül, qbittorrent kliens használata esetén?
Az egy elfogadható kompromisszum, h. ha A meg akar osztani egy fájlt B-vel, akkor a torrent fájlt A elküldi B-nek (pl. emailben). De publikus tracker ne kelljen hozzá. Privát az lehet, ha a self-hosted qbittorrent beépített tracker-e elégséges ehhez. Vajon B-n (és A-n) kívül másnak lesz fogalma róla h. az a konkrét fájl létezik A-nál? Illetve csak az tudja letölteni a fájlt, akinek a torrent fájl a birtokában van? Ha B nem osztja meg senki mással, akkor képes bárhogyan 3. fél megszerezni ezt a fájlt? Azaz van rá valami discovery metódus tetszőleges fájlok felkutatására hash alapján?
A peer discovery hogyan működik, 1-1 szoftveres implementáció meghatározza a felderíthető node-ok körét? Azaz ahány DHT implementáció van, annyi különálló DHT sziget létezik az internet fölött? Vagy aki DHT-t beszél (azon belül is adott reviziót, nem tudom ennél is vannak-e generációk mint pl. IPv4, IPv6 stb) azok mind elérik egymást, kliens/szerver szoftver különbözőség ellenére is?
Na kb ilyesmik érdekelnének.
- 646 megtekintés
Hozzászólások
Párhuzamos szálban már letárgyaltuk hogy az egyetem és az elmélet ahogy van baromság.
Szakközepes tudással ezt kéne vágnod, legrosszabb esetben elmész tanfolyamra.
Gábriel Ákos
- A hozzászóláshoz be kell jelentkezni
Nem értek hozzá, de DHT alatt jelen esetben a Bittorrent Mainline DHT-járól van szó, a legtöbb Bittorrent-kliens ezt használja. Itt a specifikációja: http://www.bittorrent.org/beps/bep_0005.html
- A hozzászóláshoz be kell jelentkezni
Itt a specifikációja: http://www.bittorrent.org/beps/bep_0005.html
Na erre gondoltam. Nem a specifikációja érdekelne, hanem a halandóknak megemésztett, gyakorlati tutorial.
- A hozzászóláshoz be kell jelentkezni
2 gép esetén semmivel sem leszel előrébb egy scp-nél...
A torrent, mint technológia ott jöhet képbe, amikor egy adathalmazzal sokan rendelkeznek, és egy új belépő egyszerre több forrásból tudja letölteni (darabonként), így gyorsítva a hozzájutást. Kettő gép esetén semmiféle gyorsítás nem lesz.
A Resilio Sync és a Synthing is torrent technológiát, DHT-t használ a háttérben, annyi a különbség, hogy nem kell torrent állományt előállítanod és átküldened. A DHT-hez csatlakozást meg a telepített kliens oldja meg, legalább egy előre beállított peer-en keresztül.
Ezen felül, ha egy DHT csoport összeáll, akkor addig érhetőek el a rajtuk lévő információk, amíg az utolsó is le nem kapcsolódik. Mert olyankor elveszik az osztott adatbázis (ez a lényege, hogy ideiglenes). Újrakapcsolódásnál tiszta lappal indul az egész. Persze ha torrent kliensekről beszélünk, ők be tudják dobni a közösbe, mijük van éppen, így gyorsabban összeáll egy újabb osztott adatbázis róla, de valaminek ki kell váltani az összekapcsolódás, nincs olyan, hogy peer discovery a szó hagyományos értelmében. Persze egy-egy kliens implementációjában lehet olyan, hogy a szokásos local discovery módszerek valamelyikével, nyitott porton megtalálják egymást, de az nem valami "szabvány" alapján működik. Erre épülhet még peer exchange, amikor is egy újonnan bekapcsolódot peer a partnerétől értesül a többi peer-ről, további discovery nélkül.
- A hozzászóláshoz be kell jelentkezni
2 gép esetén semmivel sem leszel előrébb egy scp-nél...
Értem ezt, de nem teljesen tartom igaznak. Pl. SCP esetén a másik félnek tudnia kellene hova csatlakozzon, ha le akar tölteni. DHT-nél meg "megtalálja" a másik felet. Automatikusan. Nem kell FQDN-t, v. IP címet beírnia.
A torrent, mint technológia ott jöhet képbe, amikor egy adathalmazzal sokan rendelkeznek, és egy új belépő egyszerre több forrásból tudja letölteni (darabonként), így gyorsítva a hozzájutást. Kettő gép esetén semmiféle gyorsítás nem lesz.
Ez teljesen tiszta sor.
A Resilio Sync és a Synthing is torrent technológiát, DHT-t használ a háttérben, annyi a különbség, hogy nem kell torrent állományt előállítanod és átküldened. A DHT-hez csatlakozást meg a telepített kliens oldja meg, legalább egy előre beállított peer-en keresztül.
DHT-hez csatlakozáshoz mindenképp kell egy előre beállított (a terminológia: "bootstrap node") peer lista? Qbittorrent-nél én ilyet nem állítottam be, de lehet h. van benne hardkódolva ilyen lista, csak titkolja a készítője.
Az utolsó bekezdés már kicsit homályos nekem, illetve nem tudom az melyik fentebb feltett kérdéseimre milyen választ ad.
Ezen felül, ha egy DHT csoport összeáll...
tehát DHT az nem olyan univerzális valami, mint Az Internet, hanem szigetszerűen létezik egyszerre párhuzamosan több, egymással semmilyen kapcsolatban nem levő DHT group is? Akkor a közös DHT protokoll ami meghatározza, az én gépem melyik DHT group tagja lesz, ergo melyik többi DHT group-pal nem fog tudni kommunikálni?
- A hozzászóláshoz be kell jelentkezni
Az automatikus megtalálás a kliensen múlik. A protokollnak nem része semmilyen felfedezés. A qBittorrent kliensben pont van local discovery is (nyitott, konfigurálható UDP port kell hozzá), és peer exchange is (amikor is egy megtalált peer átadja az általa ismert többi peer listáját, local és nem local egyaránt).
A DHT csoport az egymást ismerő peer-ek össszessége. Nem különülnek el készakarva a csoportok, de ha nem látják egymást, akkor az két csoport lesz. Az egymást valami/bármi módon megtaláló peer-ek alkotnak egy DHT csoportot, és mivel központi irányító szerver nincs, ezért amelyik peer nem talál meg egy csoportot, ahhoz csatlakozni sem tud. Így a technológiából adódóan lehet sok, független csoport. Akár egy LAN-on is, ha az egyik csoport kliensei tudnak local discovery-t és megtalálják egymás, más kliensek meg nem tudnak ilyent, és mondjuk torrent állomány cserével találnak egymásra, akkor az két DHT csoport lesz.
- A hozzászóláshoz be kell jelentkezni
"bootstrap node" ... Qbittorrent-nél én ilyet nem állítottam be, de lehet h. van benne hardkódolva ilyen lista, csak titkolja a készítője.
A libtorrent beállításainál van ilyen, dht_bootstrap_nodes néven. A qBittorrent felületére ez nincs "kivezetve" (mi itt a jó szó?), az 5.0-ban tervezetik bevezetni a kivezetést (: eszerint a beszélgetés szerint.
A kürtőskalács egy nagy lyuk, tésztával faszán körbetekerve.
- A hozzászóláshoz be kell jelentkezni