diff options
Diffstat (limited to 'inf/rn/dok/lyx/eksperimentalni.lyx')
-rw-r--r-- | inf/rn/dok/lyx/eksperimentalni.lyx | 105 |
1 files changed, 54 insertions, 51 deletions
diff --git a/inf/rn/dok/lyx/eksperimentalni.lyx b/inf/rn/dok/lyx/eksperimentalni.lyx index a547c81..4fd6797 100644 --- a/inf/rn/dok/lyx/eksperimentalni.lyx +++ b/inf/rn/dok/lyx/eksperimentalni.lyx @@ -306,8 +306,11 @@ Eksperimentalni del \end_layout \begin_layout Standard -Namen raziskovalne naloge je prenesti čim več info slovarjev iz metainfo - slovarjev/torrent datotek. +Namen raziskovalne naloge je prenesti čim več +\family typewriter +info +\family default + slovarjev iz metainfo slovarjev/torrent datotek. V ta namen sem po standardih implementiral odjemalec BitTorrent, vendar nepopolno, le do te mere, da zna sodelovati v DHT in prenašati metapodatke. \end_layout @@ -333,7 +336,7 @@ get_peers . Najdene infohashe doda v seznam torrentov, za katere bo poizkušal prejeti soležnike, ko soležnike prejme, pa enega za drugim sprašuje za metapodatke. - Ko metapodatke enkrat prenese, jih ne za torrent ne bo več prenašal. + Ko metapodatke enkrat prenese, jih za ta torrent ne bo več prenašal. \end_layout \begin_layout Standard @@ -342,16 +345,7 @@ Izdelani program ne implementira možnosti oddajanja metapodatkov, omogoča \end_layout \begin_layout Standard -Izvorna koda programa je dostopna na -\begin_inset CommandInset href -LatexCommand href -name "http://ni.šijanec.eu./sijanec/travnik/" -target "http://ni.sijanec.eu./sijanec/travnik/" -literal "false" - -\end_inset - -. +Povezava za prenos izvorne kode programa je navedena v prilogi. \end_layout \begin_layout Subsection @@ -367,7 +361,7 @@ Za dekodiranje in enkodiranje bkodiranih objektov sem spisal v C spisal knjižnico, ki bencoding objekte dekodira v objektno strukturo, na kateri omogoči osnovne operacije, kot so iskanje ključev, zanka preko celotnega seznama ali slovarja, vstavljanje novih elementov, brisanje elementov ter - dupliciranje elementov. + podvojevanje elementov. Deserializirana oblika je drevo elementov strukture bencoding: \end_layout @@ -494,8 +488,8 @@ char * b2json (char * dest, struct bencding * b) \end_inset JSON sicer ne more popolnoma reprezentirati podatkov, ki jih reprezentira - bkodiranje, saj morajo biti vsi nizi v obliki UTF-8, česar bencoding ne - zagotavlja (tam so lahko v nizih poljubni bajti). + bkodiranje, saj bi morali biti vsi nizi v obliki UTF-8, česar bencoding + ne zagotavlja (tam so lahko v nizih poljubni bajti). Kljub temu pa obstajajo JSON bralniki, ki podpirajo poljubne bajte v nizih. \end_layout @@ -562,7 +556,7 @@ ja \family typewriter struct bencoding * bval (struct bencoding * benc, struct bencoding * val) \family default -, ki najde vrednost v slovarju/seznamu glede na njeno vrednost +, ki najde element v slovarju/seznamu glede na njegovo vrednost \end_layout \begin_layout Itemize @@ -587,7 +581,7 @@ Celotno povezovanje z vozlišči je spisano v knjižnici za DHT. Ureja povezovanje na DHT vozlišča in tudi TCP za prenos metapodatkov. Vzpostavi eno UDP vtičnico, preko katere komunicira s svetom. Z bkodiranim seznamom, ki ga uporabnik knjižnice shrani na disk, je omogočena - tudi obstojna shramba podatkov, da lahko od zagona do zagona DHT ohranja + tudi obstojna shramba podatkov, da lahko od izklopa do zagona DHT ohranja usmerjevalno tabelo, številko vrat in ID vozlišča. \end_layout @@ -825,7 +819,7 @@ end{lstlisting} \end_layout \begin_layout Standard -Torrent je reprezentiran v strukturi +Torrent je predstavljen s strukturo \family typewriter torrent \family default @@ -998,7 +992,11 @@ Uporabniku knjižnice so med drugim namenjene slednje funkcije: struct torrent * add_torrent (struct dht * d, struct torrent * t) \family default , ki doda torrent v shrambo torrentov. - Praviloma uporabnik torrentu nastavi type na + Praviloma uporabnik torrentu nastavi +\family typewriter +type +\family default + na \family typewriter peers|info. \end_layout @@ -1046,7 +1044,8 @@ void periodic (struct dht * d) \end_layout \begin_layout Standard -Poleg tega mora uporabnik skrbeti še za povratne klice (angl +Poleg tega mora uporabnik skrbeti še za povratne klice (angl. + \shape italic callback \shape default @@ -1128,8 +1127,8 @@ utils/bencoding.c \family typewriter utils/info.c \family default - pa omogoča prenos metapodatkov torrenta s podanim infohashom iz specifičnega - naslova IP in vrat. + pa omogoča prenos metapodatkov torrenta s podanim infohashom, specifičnim + naslovom IP in vrati. \end_layout \begin_layout Section @@ -1137,8 +1136,8 @@ Algoritem prestrezanja podatkov \end_layout \begin_layout Standard -Vedno, ko program zazna novo infohash, ga doda med torrente, katerih metapodatke - želi prenesti. +Vedno, ko program zazna novo infohash, izdela nov torrent ter ga doda med + torrente, katerih metapodatke želi prenesti. Vsak cikel desetih sekund (klic funkcije \family typewriter periodic @@ -1177,9 +1176,8 @@ infohash.torrent \end_layout \begin_layout Standard -Da program prvič začne sodelovati z omrežjem, torej da ga sosednja vozlišča - vpišejo v svoje usmerjevalne tabele, prenese metapodatke vgrajenega torrenta - +Da program prvič začne sodelovati z omrežjem — da ga sosednja vozlišča vpišejo + v svoje usmerjevalne tabele — prenese metapodatke vgrajenega torrenta \family typewriter Big Buck Bunny \family default @@ -1193,8 +1191,15 @@ Obdelava podatkov \begin_layout Standard Podatke sem sprva mislil obdelati tako, da bi jih shranjeval v relacijski podatkovni zbirki tipa MySQL, zato sem spisal PHP program, ki s knjižnico - (citiraj Rhilip/Bencode) za razčlenjevanje metainfo datotek odpre vsako - datoteko in jo vstavi v podatkovno zbirko s tabelama +\begin_inset CommandInset citation +LatexCommand cite +key "rhilip20" +literal "false" + +\end_inset + + za razčlenjevanje metainfo datotek odpre vsako datoteko in jo vstavi v + podatkovno zbirko s tabelama \family typewriter torrenti \family default @@ -1207,15 +1212,16 @@ datoteke \family typewriter JOIN \family default - operacije med tabelo s torrenti in tabelo z datotekami prepočasno. - Relacijske podatkovne zbirke namreč niso narejene za ta namen. + operacije med tabelo s torrenti in tabelo z datotekami prepočasne. + Relacijske podatkovne zbirke namreč taki uporabi niso namenjene. Alternativa njim so podatkovne zbirke, ki delajo na nivoju t. - i dokumentov. + i. + dokumentov. \end_layout \begin_layout Standard -Sprva sem mislil uporabiti podatkovno orodje MongoDB (citiraj), vendar mi - je zaradi restriktivne licence in komercialno orientirane narave neprivlačen. +Sprva sem mislil uporabiti podatkovno orodje MongoDB, vendar mi je zaradi + restriktivne licence in komercialno orientirane narave neprivlačno. \end_layout \begin_layout Standard @@ -1235,15 +1241,22 @@ O(n) \end_inset - kompleksnost, je v mojem primeru dovolj, če vse torrente hranim kot pythonski - + kompleksnost, je v mojem primeru dovolj, če vse torrente hranim kot \family typewriter dict \family default - (slovar). + (slovar) v programskem jeziku Python. Za ohranitev tega slovarja v delovnem spominu za daljše časovno obdobje in za uporaben uporabniški vmesnik sem izbral programsko orodje Jupyter - Notebook (citiraj), ki uporablja + Notebook +\begin_inset CommandInset citation +LatexCommand cite +key "Kluyver2016jupyter" +literal "false" + +\end_inset + +, ki uporablja \family typewriter ipython \family default @@ -1251,19 +1264,9 @@ ipython \end_layout \begin_layout Standard -Python uporabne knjižnice, ki podpira obe obliki torrent datotek, nima, +Python ustrezne knjižnice, ki podpira obe obliki torrent datotek, nima, zato sem preprost vmesnik za razčlenjevanje datotek v objektne strukture - spisal sam (Priloga: -\begin_inset CommandInset ref -LatexCommand ref -reference "sec:travnik.py-razčlenjevalnik-.torr" -plural "false" -caps "false" -noprefix "false" - -\end_inset - -). + spisal sam. \end_layout \begin_layout Standard |