#LyX 2.3 created this file. For more info see http://www.lyx.org/ \lyxformat 544 \begin_document \begin_header \save_transient_properties true \origin unavailable \textclass scrbook \begin_preamble % in case somebody want to have the label "Equation" %\renewcommand{\eqref}[1]{Equation~(\negthinspace\autoref{#1})} % that links to image floats jumps to the beginning % of the float and not to its caption \usepackage[figure]{hypcap} % the pages of the TOC is numbered roman % and a pdf-bookmark for the TOC is added \let\myTOC\tableofcontents \renewcommand\tableofcontents{% \frontmatter \pdfbookmark[1]{\contentsname}{} \myTOC \mainmatter } % makes caption labels bold % for more info about these settings, see % https://ctan.org/tex-archive/macros/latex/contrib/koma-script/doc/scrguien.pdf \setkomafont{captionlabel}{\bfseries} \setcapindent{1em} % enables calculations \usepackage{calc} % fancy page header/footer settings % for more information see section 9 of % ftp://www.ctan.org/pub/tex-archive/macros/latex2e/contrib/fancyhdr/fancyhdr.pdf \renewcommand{\chaptermark}[1]{\markboth{#1}{#1}} \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} % increases the bottom float placement fraction \renewcommand{\bottomfraction}{0.5} % avoids that floats are placed above its sections \let\mySection\section\renewcommand{\section}{\suppressfloats[t]\mySection} % increases link area for cross-references and autoname them % if you change the document language to e.g. French % you must change "extrasenglish" to "extrasfrench" % if you uncomment the following lines, you cannot use the reference version Ref+Text in LyX %\AtBeginDocument{% % \renewcommand{\ref}[1]{\autoref{#1}} %} %\def\refnamechanges{% % \renewcommand*{\equationautorefname}[1]{} % \renewcommand{\sectionautorefname}{sec.\negthinspace} % \renewcommand{\subsectionautorefname}{sec.\negthinspace} % \renewcommand{\subsubsectionautorefname}{sec.\negthinspace} % \renewcommand{\figureautorefname}{Fig.\negthinspace} % \renewcommand{\tableautorefname}{Tab.\negthinspace} %} %\@ifpackageloaded{babel}{\addto\extrasenglish{\refnamechanges}}{\refnamechanges} \end_preamble \options intoc,bibliography=totoc,index=totoc,BCOR10mm,captions=tableheading,titlepage \use_default_options true \master /usr/share/lyx/examples/thesis/thesis.lyx \begin_modules customHeadersFooters \end_modules \maintain_unincluded_children false \language slovene \language_package default \inputencoding utf8 \fontencoding global \font_roman "lmodern" "default" \font_sans "lmss" "default" \font_typewriter "lmtt" "default" \font_math "auto" "auto" \font_default_family default \use_non_tex_fonts false \font_sc false \font_osf false \font_sf_scale 100 100 \font_tt_scale 100 100 \use_microtype false \use_dash_ligatures false \graphics default \default_output_format default \output_sync 0 \bibtex_command bibtex \index_command default \float_placement h \paperfontsize 12 \spacing single \use_hyperref true \pdf_title "Your title" \pdf_author "Your name" \pdf_bookmarks true \pdf_bookmarksnumbered true \pdf_bookmarksopen true \pdf_bookmarksopenlevel 1 \pdf_breaklinks false \pdf_pdfborder true \pdf_colorlinks false \pdf_backref false \pdf_pdfusetitle false \pdf_quoted_options "pdfpagelayout=OneColumn, pdfnewwindow=true, pdfstartview=XYZ, plainpages=false" \papersize a4paper \use_geometry false \use_package amsmath 2 \use_package amssymb 2 \use_package cancel 1 \use_package esint 1 \use_package mathdots 1 \use_package mathtools 1 \use_package mhchem 1 \use_package stackrel 1 \use_package stmaryrd 1 \use_package undertilde 1 \cite_engine biblatex \cite_engine_type authoryear \biblio_style plain \biblatex_bibstyle authoryear \biblatex_citestyle authoryear \use_bibtopic false \use_indices false \paperorientation portrait \suppress_date false \justification true \use_refstyle 0 \use_minted 0 \branch Standalone \selected 1 \filename_suffix 0 \color #ff0000 \end_branch \index Index \shortcut idx \color #008000 \end_index \secnumdepth 3 \tocdepth 2 \paragraph_separation skip \defskip medskip \is_math_indent 1 \math_indentation default \math_numbering_side default \quotes_style german \dynamic_quotes 0 \papercolumns 1 \papersides 2 \paperpagestyle fancy \tracking_changes false \output_changes false \html_math_output 0 \html_css_as_file 0 \html_be_strict false \end_header \begin_body \begin_layout Left Header \begin_inset Argument 1 status open \begin_layout Plain Layout \begin_inset ERT status collapsed \begin_layout Plain Layout \backslash chaptername \end_layout \end_inset \begin_inset space ~ \end_inset \begin_inset ERT status collapsed \begin_layout Plain Layout \backslash thechapter \end_layout \end_inset \end_layout \end_inset \begin_inset ERT status collapsed \begin_layout Plain Layout \backslash rightmark \end_layout \end_inset \begin_inset Note Note status collapsed \begin_layout Plain Layout Enable page headers and add the chapter to the header line. \end_layout \end_inset \end_layout \begin_layout Right Header \begin_inset Argument 1 status open \begin_layout Plain Layout \begin_inset ERT status collapsed \begin_layout Plain Layout \backslash leftmark \end_layout \end_inset \end_layout \end_inset \end_layout \begin_layout Left Footer \begin_inset Argument 1 status open \begin_layout Plain Layout \begin_inset ERT status collapsed \begin_layout Plain Layout \backslash thepage \end_layout \end_inset \end_layout \end_inset \end_layout \begin_layout Center Footer \end_layout \begin_layout Right Footer \begin_inset Argument 1 status open \begin_layout Plain Layout \end_layout \end_inset \begin_inset ERT status collapsed \begin_layout Plain Layout \backslash thepage \end_layout \end_inset \end_layout \begin_layout Chapter Uvod \end_layout \begin_layout Section Peer-to-peer omrežja za distribucijo datotek \end_layout \begin_layout Standard Izmenjava in distribucija velikih datotek na internetnih omrežjih veliki količini odjemalcev predstavlja težavo, saj je potrebno isto datoteko poslati tolikokrat, kolikor imamo odjemalcev. Distributorji večjih količin podatkov na internetu se morajo zaradi centralizir anega modela infrastrukture strežnikov, kjer centraliziran strežnik posreduje identične informacije večkrat večim odjemalcem, ki med seboj ne komunicirajo, posluževati dragih mrež za izmenjavo vsebine (angl. \shape italic CDN \shape default ). \end_layout \begin_layout Standard Koncept P2P (angl. \shape italic peer-to-peer \shape default ) predstavlja alternativen način distribucije identičnih datotek večim odjemalce m. Namesto enega strežnika, ki iste podatke odjemalcem pošlje vsakič znova, v omrežjih P2P za distribucijo datotek ni razlike med strežnikom in odjemalcem. Vsak odjemalec podatke tako prejema kot tudi pošilja. Takoj ko odjemalec prejme vsebino od drugega odjemalca, jo bo tudi sam začel deliti naprej drugim odjemalcem, ki to vsebino tudi sami iščejo. S svojim sodelovanjem v distribuciji vsebine razbremeni ostale odjemalce, ki datoteke distribuirajo prosilcem, saj so P2P omrežja izdelana tako, da lahko odjemalci vsebino prejemajo od večih odjemalcev hkrati. Čim več odjemalcev razpolaga z neko vsebino, tem manj podatkov mora poslati posamezen odjemalec novemu odjemalcu, ki si to vsebino želi prenesti. Tako se zmanjša obremenitev omrežja, saj je količina prenesenih podatkov po omrežni topologiji čedalje bolj razporejena. \end_layout \begin_layout Standard Sistem pa ni povsem brezhiben, saj je še vedno potrebno na nek zunanji način med seboj povezati odjemalce, ki so zainteresirani za določeno temo (recimo za določeno datoteko). Druga očitna slabost pa je, da je možno ugotoviti, kdo prenaša kakšno vsebino, ker odjemalci (neke datoteke) vedo za internetne naslove drugih odjemalcev, saj lahko le tako neposredno čim bolj učinkovito komunicirajo z njimi. \end_layout \begin_layout Standard Koncept P2P ni namenjen le distribuciji datotek, temveč se zaradi svoje prednosti razbremenitve strežnikov dandanes uporablja vse pogosteje, na primer pri spletnih videokonferencah, anonimizacijskih omrežjih, kriptovalutah, internetu stvari in drugod. \end_layout \begin_layout Section Protokol BitTorrent \end_layout \begin_layout Standard Za distribucijo datotek morajo odjemalci za medsebojno komunikacijo uporabljati standardiziran protokol za signalizacijo prenosov. Eden izmed najbolj razvitih in uporabljenih protokolov je BitTorrent. Prvo implementacijo je idejni avtor protokola izdelal leta 2001 \begin_inset CommandInset citation LatexCommand cite key "cohen01" literal "false" \end_inset , s popularizacijo pa od leta 2008 z objavo dodatkov v repozitorij standardov pri razvoju sodeluje širša javnost \begin_inset CommandInset citation LatexCommand cite key "harrison07" literal "false" \end_inset . Zaradi razširljive zasnove je protokol namreč moč dopolnjevati in mu s tem dodajati nove funkcije. Pred uvedbo protokola DHT je BitTorrent še vedno temeljil na centralnih strežnikih, ki koordinirajo skupek odjemalcev, leta 2005 pa so implementacije začele implementirati od centraliziranih strežnikov povsem neodvisno delovanje. \begin_inset CommandInset citation LatexCommand cite key "jones15" literal "false" \end_inset \end_layout \begin_layout Standard Za nadaljnji opis je potrebno poznavanje pojmov, ki jih uvede BitTorrent: \end_layout \begin_layout Standard \begin_inset Float table wide false sideways false status open \begin_layout Plain Layout \noindent \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout Pojem \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout Izvirno angleško ime \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout Razlaga \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout soležnik \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout peer \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout odjemni program na računalniku ali računalnik, za povezavo nanj potrebujemo njegov IP naslov in vrata \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout roj \begin_inset CommandInset citation LatexCommand cite key "dis" literal "false" \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout swarm \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout več soležnikov, ki prenašajo datoteke torrenta \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout torrent/metainfo (ni ustaljenega prevoda, neposredni prevod bi bil \shape italic hudournik \shape default ) \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout torrent ali metainfo \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout strukturirana datoteka v obliki bencoding, ki vsebuje metapodatke o datotekah, torej imena datotek, njihove velikosti, razporeditev po imenikih, zgoščene vrednosti za preverjanje istovetnosti ob prenosu in drugo \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout sledilnik \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout tracker \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout centraliziran strežnik, ki hrani podatke o tem, kateri soležniki so v roju določenega torrenta \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout košček \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout piece \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout del vsebine torrenta konstantne dolžine \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout infohash (ni ustaljenega prevoda) \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout infohash \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout zgoščena vrednost serializiranih podatkov pod ključem \family typewriter info \family default v torrentu, ki unikatno opišejo ključne metapodatke o torrentu \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout announce (ni ustaljenega prevoda, neposredni prevod bi bil \shape italic obvestilo \shape default ) \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout announce ali ~ment \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout obvestilo ali obveščanje o obstoju soležnika za torrent, ki ga pošlje soležnik bodisi sledilniku bodisi v DHT in s tem zagotovi, da bodo ostali soležniki izvedeli za njegov obstoj in se potencialno povezali nanj \end_layout \end_inset \end_inset \begin_inset Caption Standard \begin_layout Plain Layout Nepopoln seznam pojmov BitTorrenta, potrebnih za razumevanje naloge \end_layout \end_inset \end_layout \end_inset \end_layout \begin_layout Standard BitTorrent protokol ne omogoča iskanja po datotekah, ki se prenašajo po omrežju. Za prenos datoteke je najprej treba poznati metapodatke o obstoječih datotekah. Ti metapodatki so shranjeni v t. i. obliki torrent, strojno berljivi datoteki, serializirani s preprosto serializac ijsko metodo bencoding. Vsebujejo imena in poti datotek ter njihove zgoščene vrednosti, ime torrenta, lastnosti prenosa, velikost koščka, zasebnost (angl. private torrent) in podobne metapodatke. \end_layout \begin_layout Standard V nalogi se ne osredotočam na klasičen način iskanja soležnikov s sledilniki, prav tako ne govorim o prenosu datotek od soležnikov ter o signalizaciji za omejevanje pasovne širine prenosa (choking), temveč samo o prenosu metapodat kov. \end_layout \begin_layout Section Protokol BitTorrent DHT \end_layout \begin_layout Standard DHT (angl. \shape italic distributed hash table \shape default ) je kot koncept definiran zelo splošno, za BitTorrent je uporabljen sistem DHT, imenovan Kademlia. Uporablja se odpravo odvisnosti od sledilnika, saj lahko v tej distribuirani tabeli hranimo seznam soležnikov v roju. \end_layout \begin_layout Standard \begin_inset Float table wide false sideways false status open \begin_layout Plain Layout \noindent \align center \begin_inset Tabular \begin_inset Text \begin_layout Plain Layout Pojem \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout Izvirno angleško ime \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout Razlaga \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout vozlišče \begin_inset CommandInset citation LatexCommand cite key "dis" literal "false" \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout node \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout odjemni program na računalniku ali računalnik \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout usmerjevalna tabela \begin_inset CommandInset citation LatexCommand cite key "dis" literal "false" \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout routing table \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout seznam vozlišč, ki ga hrani posamezno vozlišče \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout ID vozlišča \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout node ID \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout 160 bitov dolga naključno generirana številka, ki pripada vsakemu vozlišču \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout merilo za razdaljo \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout distance metric \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout funkcija (XOR), ki izrazi konceptualno razdaljo kot 160 bitov dolgo številko med dvema vozliščema \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout koš \begin_inset CommandInset citation LatexCommand cite key "dis" literal "false" \end_inset \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout bucket \end_layout \end_inset \begin_inset Text \begin_layout Plain Layout na posamezno vozlišče relativna množica drugih vozlišč, ki so si glede na merilo za razdaljo blizu, shranjena v usmerjevalni tabeli \end_layout \end_inset \end_inset \begin_inset Caption Standard \begin_layout Plain Layout Nepopoln seznam pojmov Kademile, potrebnih za razumevanje naloge. Slovenski prevodi niso ustaljeni. \end_layout \end_inset \end_layout \end_inset \end_layout \begin_layout Standard Kademlio, kot se uporablja v BitTorrentu, si lahko za začetek predstavljamo kot abstraktno razpršilno tabelo, ki je shranjena porazdeljeno na velikem omrežju vozlišč/računalnikov in podpira naslednji operaciji \begin_inset CommandInset citation LatexCommand cite key "norberg08" literal "false" \end_inset : \end_layout \begin_layout Paragraph Pridobi soležnike \end_layout \begin_layout Standard Vrne seznam soležnikov (IP naslov in vrata) za torrent, opisan z njegovim infohashom. \end_layout \begin_layout Paragraph Announce \end_layout \begin_layout Standard V seznam soležnikov za torrent, opisan z njegovim infohashom, vstavi IP naslov in vrata pošiljatelja zahteve. \end_layout \begin_layout Standard Cilj \begin_inset Branch seminarska inverted 1 status open \begin_layout Standard raziskovalne \end_layout \end_inset \begin_inset Branch seminarska inverted 0 status open \begin_layout Standard seminarske \end_layout \end_inset naloge je s sodelovanjem v DHT omrežju pridobiti čim več obstoječih ključev v razpršilni tabeli, da lahko z operacijo \series bold pridobi soležnike \series default pridobimo sezname soležnikov, na katere se lahko povežemo in od njih prenesemo metapodatke o torrentih, da lahko te podatke kot izvleček celotnega omrežja kasneje uporabimo za analiziranje. \end_layout \begin_layout Section Obstoječe implementacije \end_layout \begin_layout Standard Da je to pridobivanje mogoče, se ve že od vpeljave protokola DHT, saj obstaja mnogo implementacij koncepta pridobivanja podatkov iz omrežja DHT za prenos metapodatkov torrentov: \end_layout \begin_layout Itemize Spletna stran \series bold Btdigg \begin_inset CommandInset citation LatexCommand cite key "evseenko11" literal "false" \end_inset \series default in program \series bold dhtcrawler2 — \series default prvi iskalnik po DHT omrežju \begin_inset CommandInset citation LatexCommand cite key "muo11" literal "false" \end_inset . \end_layout \begin_layout Itemize Spletna stran v kitajščini pod več imeni: \series bold clzhizhu \series default .com, cilizhizhu, clzz1020.buzz, clzz1025.buzz, clzz1026.buzz idr. Za obstoj te strani sem ugotovil med implementacijo programa, saj je njeno iskanje invazivno in moti obstoječe delovanje DHT. \end_layout \begin_layout Itemize Spletna stran \series bold I know what you download \series default \begin_inset CommandInset citation LatexCommand cite key "ikwyd" literal "false" \end_inset , ki hrani najdene podatke o rojih in s tem razkrije identiteto prenašalcev. \begin_inset CommandInset citation LatexCommand cite key "griffin17" literal "false" \end_inset \end_layout \begin_layout Standard \begin_inset Branch Standalone inverted 0 status open \begin_layout Standard \begin_inset Note Note status open \begin_layout Plain Layout The contents of this branch is only output if this chapter is processed on its own, i. \begin_inset space \thinspace{} \end_inset e., not from the master. This allows you to have a bibliography and a nomenclature if you only want to output this chapter. \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset CommandInset include LatexCommand include filename "Bibliography.lyx" \end_inset \end_layout \end_inset \end_layout \end_body \end_document