From 5ce5464a8722be5c3714040a572d6dc2dab5e1d5 Mon Sep 17 00:00:00 2001 From: Adriana Draghici Date: Mon, 8 Feb 2010 13:18:38 +0200 Subject: [PATCH] report - added DB diagram --- report/clients.tex | 10 ---------- report/img/DB.png | Bin 0 -> 38887 bytes report/logarch.tex | 2 +- report/logarch/clients.tex | 15 +++++++++++++++ report/report.bib | 10 +++++++++- 5 files changed, 25 insertions(+), 12 deletions(-) delete mode 100644 report/clients.tex create mode 100644 report/img/DB.png create mode 100644 report/logarch/clients.tex diff --git a/report/clients.tex b/report/clients.tex deleted file mode 100644 index f8968d3..0000000 --- a/report/clients.tex +++ /dev/null @@ -1,10 +0,0 @@ -The log files analysis takes into consideration two open-source implementations of the BitTorrent protocol. -The experiments prior to our research evaluated the performances of several BitTorrent clients, -as described in \cite{rdeval}. Based on these results we have chosen \textbf{rasterbar libtorrent}, -which in the comparison proved to be the fastest solution, and \textbf{Tribler}. -While libtorrent provided large amounts of output that could be directly used as an example for our parsing system, -Tribler did not offer any logging information. Therefore, we dedicated part of our research time to -modifing Tribler source code in order to obtain the necessary logs. - - - diff --git a/report/img/DB.png b/report/img/DB.png new file mode 100644 index 0000000000000000000000000000000000000000..23bc002316798672a312841123e5566eac40f3eb GIT binary patch literal 38887 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 literal 0 HcmV?d00001 diff --git a/report/logarch.tex b/report/logarch.tex index afd31ce..fab0a19 100644 --- a/report/logarch.tex +++ b/report/logarch.tex @@ -8,7 +8,7 @@ \subsection{BitTorrent Messages} \subsection{BitTorrent Clients Instrumentation} -\input{clients.tex} +\input{logarch/clients.tex} \subsection{Parser} \subsection{Database} \subsection{GUI} \ No newline at end of file diff --git a/report/logarch/clients.tex b/report/logarch/clients.tex new file mode 100644 index 0000000..021c1ac --- /dev/null +++ b/report/logarch/clients.tex @@ -0,0 +1,15 @@ +The log files analysis takes into consideration two open-source implementations of the BitTorrent protocol. +The experiments prior to our research evaluated the performances of several BitTorrent clients that offered a command line interface (CLI), as described in \cite{rdeval}. Based on these results we have chosen \textbf{rasterbar libtorrent}, +which in the comparison proved to be the fastest solution, and \textbf{Tribler}. + +Libtorrent, developed by Rasterbar \cite{libt2} \cite{libt1}, is a C++ library that implements BitTorrent protocol and +its extensions. It aims to be cpu and memory efficient, easy to use and suitable for many enivornments and platforms. +Due to its high performance it is used by many BitTorrent applications, like FireTorrent, Deluge, qBitTorrent, SharkTorrent, +Miro and Hrktorrent \cite{hrk}, the one we chosed to work with. Hrktorrent is a lightweight torrent client written in C++ and it was appropriate for our testing infrastructure because it offered a command line interface. + +%[todo : ce versiuni de libtorrent si hrktorrent folosim?] +%[todo : sa spun ca folosim CLI interface] + +While libtorrent provided large amounts of output that could be directly used as an example for our parsing system, +Tribler did not offer any logging information. Therefore, we dedicated part of our research time to +modifing Tribler source code in order to obtain the necessary logs. \ No newline at end of file diff --git a/report/report.bib b/report/report.bib index f09ed58..832838e 100644 --- a/report/report.bib +++ b/report/report.bib @@ -3,4 +3,12 @@ author = {Razvan Deaconescu and Razvan Rughinis and Nicolae Tapus}, year = {2009} } - +@misc{libt1, + title = {http://www.rasterbar.com/products/libtorrent/} + } +@misc{libt2, + title = {http://libtorrent.rakshasa.no/} +} +@misc{hrk, + title = {http://50hz.ws/hrktorrent/} +} -- 2.20.1