SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
BitTorrent-like P2P Network


  “Studying the average download times with
respect to different piece selection algorithms.”
Understanding Concepts

   BitTorrent
    ◦ A protocol that supports P2P file sharing

    ◦ Used to distribute large amount of data over the internet.

    ◦ Uses the tracker once to get the list of peers
Understanding Concepts
   Understanding basic terms of BitTorrent
    ◦ A BitTorrent portal
       A central server where the .torrent files are made available.
    ◦ A BitTorrent swarm
       Set of peers that all download a particular content.
    ◦ A BitTorrent tracker
       Server that keeps track of all the clients that form a swarm for a
        file
    ◦ A BitTorrent Client
       Seeder – Has the complete file.
       Leecher – Doesn’t have the complete file, but instead it may
        have some pieces of the file
Understanding Concepts
   A .torrent file contains:-
    ◦ Content name
    ◦ File Size
    ◦ Chunks
       Number of chunks & Size of a chunk
    ◦ Torrent infohash
       Unique identifer of the swarm associated with a .torrent file
    ◦ IP addresses of the trackers managing the swarm
   Pieces
    ◦ Made of blocks – Block might also be divided into sub-
      blocks
    ◦ Two or more blocks make up a whole piece
Peer joining and leaving a swarm
   User gets a .torrent file and runs it in a BitTorrent
    client software
    ◦ software picks one or more tracker
   Tracker is contacted using the IP address
    ◦ Use of “announce started” request.
   Response Received(Peer neighbourhood)
    ◦ Some random seeds and peers(typically between 40 - 200)
    ◦ The IP address associated with each seed and peer returned.
   Leave the swarm
    ◦ Use of “announce stopped” request to tracker.
File exchange in BitTorrent
                Protocol
   Peer Wire Protocol
    ◦ The two communicating peers do a handshake
    ◦ Understanding bitfields
       Current download information of the file concerned
       Specifically the pieces of the file, that is, which piece is
        complete and which is not
    ◦ BITFIELD message
       Exchanged before having any kind of file transfer
       Content exchanged are bitfields
       Every peer knows about the file download information of all its
        neighbors.
File exchange in BitTorrent
                Protocol
   Peer Wire Protocol(contd.)
    ◦ HAVE Message
       When a new piece is completely downloaded by a peer, the
        peer has to notify everybody in the peer neighborhood about
        the same.
       This notification does not involve the whole bitfields exchange
        again as only the change in bitfields has to be notified.
Our hypothesis
   Weighty piece selection algorithm reduces the
    average download time of a particular file with
    respect to the rarest first piece selection algorithm.

   What is Average Download Time

   Rarest First Piece Algorithm

   Weighty Piece Selection Algorithm
     Source: Chi-Jen Wu; Cheng-Ying Li; Jan-Ming Ho; , "Improving the Download Time of BitTorrent-
       Like Systems," Communications, 2007. ICC '07. IEEE International Conference on 24-28 June
                           2007,page 1125-1129, doi: 10.1109/ICC.2007.191
Average Download Time
 The average download time of all the peers in a
  particular trial
 The average download time for individual peer
  averaged over the number of trials.
Understanding the Algorithms
   Rarest First Piece Algorithm
    ◦ It favors the download of pieces that are rare in the current
      peer neighborhood.

    ◦ Purpose:-
        Overcomes the last piece problem by increasing the piece
         availability of rare pieces.




     Source: Chi-Jen Wu; Cheng-Ying Li; Jan-Ming Ho; , "Improving the Download Time of BitTorrent-
       Like Systems," Communications, 2007. ICC '07. IEEE International Conference on 24-28 June
                           2007,page 1125-1129, doi: 10.1109/ICC.2007.191
Understanding the Algorithms
   Rarest First Piece Algorithm(contd.)
    ◦ Rarest First Piece calculation
        Every peer maintains the count of copies of all the pieces
         available in the peer neighborhood
        The peer having a missing piece, also knows that how low is
         the availability of the piece in the network
        Peer chooses a particular missing piece for download - that is
         available with some other peer(s), but its total availability is
         relatively very low with respect to other missing pieces.


     Source: Chi-Jen Wu; Cheng-Ying Li; Jan-Ming Ho; , "Improving the Download Time of BitTorrent-
       Like Systems," Communications, 2007. ICC '07. IEEE International Conference on 24-28 June
                           2007,page 1125-1129, doi: 10.1109/ICC.2007.191
Understanding the Algorithms
   Weighty Piece Selection Algorithm
    ◦ Purpose
        It is designed for the purpose of reducing the average
         download time.
    ◦ Weight assignment of each missing piece
        It takes into consideration - all the peers that miss the same
         piece that a particular peer wants to request.
        Sum of downloaded pieces of all the peers, selected above, is
         calculated individually.
        Sum of individual sums, calculated above, is calculated.
        The added sum is the weight of the missing piece.

     Source: Chi-Jen Wu; Cheng-Ying Li; Jan-Ming Ho; , "Improving the Download Time of BitTorrent-
       Like Systems," Communications, 2007. ICC '07. IEEE International Conference on 24-28 June
                           2007,page 1125-1129, doi: 10.1109/ICC.2007.191
Approach taken to
     Prove/disprove the hypothesis
   Simulation of BitTorrent-like peer to peer protocol.
    ◦ First the simulation runs using the rarest first piece selection
      algorithm.
    ◦ Subsequently the simulation runs using the weighty piece
      selection algorithm.
    ◦ All other things are kept the same except the piece selection
      algorithm.
Measurements

   Time starts at the beginning of the simulation.

   Time is measured again when every client has the all
    the pieces of the file.
Software Design
   Tracker Design
Software Design(contd)
   Peer Design
Software Design(contd)
   Peer File Design
Software Design(contd)
   Piece Design
Software Design(contd)
   Main Program - Tracker
    ◦ Hold all the peer objects.


   Simulation of the seeds and leechers
    ◦ The peer objects hold the file object for maintaining the
      state of the file being downloaded.
    ◦ We simulate only one file to study the download rates.
    ◦ The peer object hold the information of peer neighborhood.


   Simulation of the Bandwidth
    ◦ Download and upload rates of each peer are assigned.
Software Design(contd)
   Use of RIT’s Parallel Java Library
    ◦ Usage of package “edu.rit.sim” for simulating the download
      of a piece of a file.
    ◦ Achieving the simulation of downloading a piece by the use
      of simulated time.
       Future events are set for denoting the completion of the
        download of a particular piece.
       During the download, the available bandwidth and number of
        slots are being affected.
       No actual file piece transfer is happening.
Software Design(contd)
   Implementation of achieving the effect of Tit-for-Tat
    Policy
    ◦ The tit-for-tat policy aims at matching the peers according to
      similar bandwidths.
    ◦ Similar bandwidth means the download speed of the peer
      requesting a piece and the upload speed of the peer that
      provides the piece should be nearly the same.
Software Design(contd)
   Implementation of strategic peer
    ◦ Strategic peer means that the peer leaves the system as soon
      as the peer completes downloading its missing pieces.

    ◦ As soon as the peer has no missing piece, it stops
      contributing anything to the simulation and no calculations
      are hampered:-
       For Rarest Piece First Algorithm – Relatively, it doesn't matter if
        every piece count is one extra for calculation.
       For Weighty Piece First Algorithm – If no pieces are missing
        within a peer’s file, the weight calculation is independent of this
        peer.
Software Design(contd)
   Assumptions
    ◦ No Last piece problem.
       The reason for the above is that we have provided with one
        seed in every peer neighborhood.
    ◦ A peer downloads one piece at a time.
    ◦ Control messages bandwidth is separate and thus does not
      interfere with the download and upload bandwidth of the
      pieces.
Software Design(contd)
   Assumptions(contd.)
    ◦ Download time calculation starts from a snapshot of the
      system
       Understanding a snapshot of a system:-
        ◦ All the peers and one seed is available before the download
          measurements start.
        ◦ This will be a random situation in a real environment where some
          peers would be running and at any instant the calculation can begin.
       No more peers are added or removed once the simulation starts
        running.
       Peer have some random pieces of the file initially(same pieces
        for both the versions)
Developer’s Manual
   How to compile our source code
    ◦ Download and extract:-
       RIT's Parallel Java Library
        ◦ http://www.cs.rit.edu/~ark/pj.shtml
       RIT's Computer Science Course Library
        ◦ http://www.cs.rit.edu/~ark/cscl.shtml
    ◦ Extract the zip file containing all the programs to a
      directory of your choice
    ◦ Set the class path first to the current directory then to the
      parallel java library and then to the computer science course
      library.
    ◦ Compile all the programs then by
    ◦ javac *.java
Usage of the Software
   Usage: java Tracker <No Of Peers> <Neighborhood
    Size> <No of chunks> <Piece Size> <Seed Upload
    Rate> <Peer Download Rate> <Peer Upload Rate>
    <Peer Download Slots> <Peer Upload Slots>
    <Number of Trials> <Master Seed>
Live Demo
   Any Questions before the demo
Parameters used in collecting
    measurement data
      Knob                  Value

      Number of peers       30
      Neighborhood size     10
      Number of chunks      100
      Piece size            10
      Seed Upload rate      300
      Peer download rate    250
      Peer upload rate      200
      Peer download slots   10
      Peer upload slots     10
      Number of trials      30
      Master seed           123456
Measurement Data 1
   Rarest Piece First Selection Algorithm:
   Total average download time of all the peers in a trial
          Trial        Total   Average Trial        Total   Average
          Number       Download Time Number         Download Time
          1            5.11              16         5.66
          2            4.93              17         7.07
          3            5.26              18         6.94
          4            5.76              19         5.28
          5            6.29              20         4.44
          6            5.44              21         6.85
          7            7.31              22         5.80
          8            5.15              23         5.14
          9            6.76              24         6.16
          10           4.76              25         6.39
          11           6.44              26         5.16
          12           6.24              27         5.80
          13           5.06              28         4.87
          14           5.97              29         6.56
          15           6.64              30         5.32
Measurement Data 1
   Weighty Piece First Selection Algorithm:
   Total average download time of all the peers in a trial
          Trial        Total   Average Trial        Total   Average
          Number       Download Time Number         Download Time
          1            5.25              16         5.60
          2            4.69              17         7.43
          3            5.36              18         6.69
          4            5.25              19         5.12
          5            6.21              20         4.23
          6            5.27              21         6.91
          7            7.54              22         5.63
          8            5.01              23         5.06
          9            7.09              24         6.43
          10           5.21              25         6.05
          11           6.15              26         5.43
          12           6.18              27         6.06
          13           4.98              28         4.57
          14           5.54              29         6.35
          15           6.75              30         5.35
Measurement Data 1
Analysis 1
   Total average download time of all the peers in a trial
    ◦ The data collected reveals that:-
       regardless of the number of nodes, the number of trials and that
        of the neighbors, the individual average download time in both
        cases (rarest first piece and weighty piece selection algorithm)
        follow a same, quasi-periodic pattern; the average time values
        alternately go up and down.

       We can observe that the tit-for-tat policy increases the upload
        capacity of the network in a scalable manner. We can also
        observe that when the tit-for-tat rule is enforced, the piece
        selection algorithm matters less.
Measurement Data 2
   Rarest Piece First Selection Algorithm:
   Average download time of Individual Peer Over Number of Trials
         Peer Number Average         Peer       Average
                     Download Time   Number     Download Time
         0           -               15         0.20
         1           0.20            16         0.17
         2           0.15            17         0.18
         3           0.19            18         0.26
         4           0.18            19         0.18
         5           0.18            20         0.19
         6           0.18            21         0.23
         7           0.25            22         0.26
         8           0.22            23         0.19
         9           0.14            24         0.22
         10          0.21            25         0.19
         11          0.18            26         0.21
         12          0.17            27         0.20
         13          0.19            28         0.19
         14          0.19            29         0.18
Measurement Data 2
   Weighty Piece First Selection Algorithm:
   Average download time of Individual Peer Over Number of Trials
         Peer Number Average         Peer       Average
                     Download Time   Number     Download Time
         0           -               15         0.19
         1           0.22            16         0.16
         2           0.15            17         0.19
         3           0.19            18         0.25
         4           0.18            19         0.16
         5           0.18            20         0.20
         6           0.17            21         0.21
         7           0.24            22         0.27
         8           0.21            23         0.18
         9           0.15            24         0.24
         10          0.22            25         0.20
         11          0.17            26         0.19
         12          0.17            27         0.19
         13          0.18            28         0.20
         14          0.19            29         0.19
Measurement Data 2
Analysis 2
   Average download time of Individual Peer Over
    Number of Trials
    ◦ Almost similar pattern; the average time values alternately
      go up and down.
    ◦ This implies two things
       First, the tit-for-tat policy applies in a scalable manner (for any
        number of peers).
       The average download time is not a function of the piece
        selection strategy.
         ◦ Weighty piece selection algorithm could possibly reduce the average
          download time of all the peers. However, that would require to not
          implement the tit-for-tat policy, which would then decrease the upload
          capacity of the overall network.
Result
   We have disproved our hypothesis.
    ◦ It is necessary that Tit-for-Tat policy is implemented in a
      Bit-Torrent like network.
    ◦ The average download time is not a function of piece
      selection strategy.
Future Work
   The possible future work includes the following:-
    ◦ Currently one piece is being downloaded at a time. It has to
      be extended to multiple pieces at a time. So the download
      slots don't matter for the current version of the program.

    ◦ Full piece download to block by block download.
       Provision for storing metadata for piece download block by
        block has been provided so that extending the project is easy.

    ◦ Control messages bandwidth is assumed to be separate and
      thus not interfering with the download and upload
      bandwidth of the file transfer. That bandwidth can also be
      merged and simulated.
Learning from our investigation
   This team research investigation has allowed us to
    gain a deep insight of BitTorrent-like networks.

   Understanding the concepts like why BitTorrent is
    used to distribute large scale data over internet.

   In addition, we’ve gained experience on how to read
    and analyze scientific articles, draw hypothesis and
    verify them using simulation programs.
References
   Chi-Jen Wu; Cheng-Ying Li; Jan-Ming Ho; , "Improving the Download Time of
    BitTorrent- Like Systems," Communications, 2007. ICC '07. IEEE International
    Conference on 24-28 June 2007,page 1125-1129, doi: 10.1109/ICC.2007.191
    ◦ http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=4288862
   Amir H. Rasti; Reza Rejaie; , "Understanding Peer-level Performance in
    BitTorrent: A Measurement Study," Computer Communications and Networks,
    2007. ICCCN 2007. Proceedings of 16th International Conference on 13-16 Aug.
    2007,page 109 – 114
    ◦ http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=4317805
   Bharambe, A. R.;Herley, C.; Padmanabhan, V. N.; , "Analyzing and Improving a
    BitTorrent Networks Performance Mechanisms," INFOCOM 2006. 25th IEEE
    International Conference on Computer Communications. Proceedings, April 2006,
    page 1-12
    ◦ http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=4146981
   RIT's Parallel Java Library – Developed by Prof. Alan Kaminsky
    ◦ http://www.cs.rit.edu/~ark/pj.shtml
   RIT's Computer Science Course Library – Developed by Prof. Alan Kaminsky
    ◦ http://www.cs.rit.edu/~ark/cscl.shtml
BitTorrent-like P2P Networks

Más contenido relacionado

La actualidad más candente

Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)Ahmed El-Arabawy
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm Chandler Huang
 
UNRAVEILING BIT-TORRENT
UNRAVEILING BIT-TORRENTUNRAVEILING BIT-TORRENT
UNRAVEILING BIT-TORRENTSudhansu Dash
 
Distributed computing
Distributed computingDistributed computing
Distributed computingDeepak John
 
Operating System Chapter 4 Multithreaded programming
Operating System Chapter 4 Multithreaded programmingOperating System Chapter 4 Multithreaded programming
Operating System Chapter 4 Multithreaded programmingguesta40f80
 
Final jaypaper linux
Final jaypaper linuxFinal jaypaper linux
Final jaypaper linuxjaya380
 
Google: Cluster computing and MapReduce: Introduction to Distributed System D...
Google: Cluster computing and MapReduce: Introduction to Distributed System D...Google: Cluster computing and MapReduce: Introduction to Distributed System D...
Google: Cluster computing and MapReduce: Introduction to Distributed System D...tugrulh
 
Operating System-Threads-Galvin
Operating System-Threads-GalvinOperating System-Threads-Galvin
Operating System-Threads-GalvinSonali Chauhan
 
Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems Ahmed El-Arabawy
 
Networking Architecture of Warframe
Networking Architecture of WarframeNetworking Architecture of Warframe
Networking Architecture of WarframeMaciej Siniło
 
OpenStack Summit Tokyo - Know-how of Challlenging Deploy/Operation NTT DOCOMO...
OpenStack Summit Tokyo - Know-how of Challlenging Deploy/Operation NTT DOCOMO...OpenStack Summit Tokyo - Know-how of Challlenging Deploy/Operation NTT DOCOMO...
OpenStack Summit Tokyo - Know-how of Challlenging Deploy/Operation NTT DOCOMO...Masaaki Nakagawa
 
Correct and efficient synchronization of java thread
Correct and efficient synchronization of java threadCorrect and efficient synchronization of java thread
Correct and efficient synchronization of java threadoutofmemoryerror
 
Distributed file systems (from Google)
Distributed file systems (from Google)Distributed file systems (from Google)
Distributed file systems (from Google)Sri Prasanna
 
Bit torrent protocol by milan varia
Bit torrent protocol by milan variaBit torrent protocol by milan varia
Bit torrent protocol by milan variaMilan Varia
 

La actualidad más candente (20)

Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
Embedded Systems: Lecture 14: Introduction to GNU Toolchain (Binary Utilities)
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm
 
mmWeb
mmWebmmWeb
mmWeb
 
UNRAVEILING BIT-TORRENT
UNRAVEILING BIT-TORRENTUNRAVEILING BIT-TORRENT
UNRAVEILING BIT-TORRENT
 
Distributed computing
Distributed computingDistributed computing
Distributed computing
 
Operating System Chapter 4 Multithreaded programming
Operating System Chapter 4 Multithreaded programmingOperating System Chapter 4 Multithreaded programming
Operating System Chapter 4 Multithreaded programming
 
Final jaypaper linux
Final jaypaper linuxFinal jaypaper linux
Final jaypaper linux
 
Google: Cluster computing and MapReduce: Introduction to Distributed System D...
Google: Cluster computing and MapReduce: Introduction to Distributed System D...Google: Cluster computing and MapReduce: Introduction to Distributed System D...
Google: Cluster computing and MapReduce: Introduction to Distributed System D...
 
Apache Storm
Apache StormApache Storm
Apache Storm
 
Operating System-Threads-Galvin
Operating System-Threads-GalvinOperating System-Threads-Galvin
Operating System-Threads-Galvin
 
Hack the whale
Hack the whaleHack the whale
Hack the whale
 
Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems Course 101: Lecture 2: Introduction to Operating Systems
Course 101: Lecture 2: Introduction to Operating Systems
 
Networking Architecture of Warframe
Networking Architecture of WarframeNetworking Architecture of Warframe
Networking Architecture of Warframe
 
OpenStack Summit Tokyo - Know-how of Challlenging Deploy/Operation NTT DOCOMO...
OpenStack Summit Tokyo - Know-how of Challlenging Deploy/Operation NTT DOCOMO...OpenStack Summit Tokyo - Know-how of Challlenging Deploy/Operation NTT DOCOMO...
OpenStack Summit Tokyo - Know-how of Challlenging Deploy/Operation NTT DOCOMO...
 
4 threads
4 threads4 threads
4 threads
 
Correct and efficient synchronization of java thread
Correct and efficient synchronization of java threadCorrect and efficient synchronization of java thread
Correct and efficient synchronization of java thread
 
Apache Storm
Apache StormApache Storm
Apache Storm
 
Distributed file systems (from Google)
Distributed file systems (from Google)Distributed file systems (from Google)
Distributed file systems (from Google)
 
Bit torrent protocol by milan varia
Bit torrent protocol by milan variaBit torrent protocol by milan varia
Bit torrent protocol by milan varia
 
Apache Storm Internals
Apache Storm InternalsApache Storm Internals
Apache Storm Internals
 

Similar a BitTorrent-like P2P Networks

Insights on On-demand Media Streaming Progress
Insights on On-demand Media Streaming ProgressInsights on On-demand Media Streaming Progress
Insights on On-demand Media Streaming ProgressSovan Kundu
 
Bit torrent protocol
Bit torrent protocolBit torrent protocol
Bit torrent protocolD bipul lomga
 
Bittorrent final seminar
Bittorrent final seminarBittorrent final seminar
Bittorrent final seminarChirodeep Das
 
Bit torrent protocol seminar by Sanjay R
Bit torrent protocol seminar by Sanjay RBit torrent protocol seminar by Sanjay R
Bit torrent protocol seminar by Sanjay RSanjay Ravishankar
 
Bit torrent-technology
Bit torrent-technologyBit torrent-technology
Bit torrent-technologyabhipesit
 
Torrent Protocol
Torrent ProtocolTorrent Protocol
Torrent ProtocolHarsht2888
 
Bit Torrent Technology
Bit Torrent TechnologyBit Torrent Technology
Bit Torrent Technologyguestc67adeb
 
Project_report_BitTorrent
Project_report_BitTorrentProject_report_BitTorrent
Project_report_BitTorrentSrikanth Vanama
 
Bit torrent seminar
Bit torrent seminarBit torrent seminar
Bit torrent seminarbalu0503
 
Design and analysis of a mobile file sharing system for opportunistic networks
Design and analysis of a mobile file sharing system for opportunistic networksDesign and analysis of a mobile file sharing system for opportunistic networks
Design and analysis of a mobile file sharing system for opportunistic networkssadique_ghitm
 
Bit torrent by SANDA SOLUTIONS
Bit torrent by SANDA SOLUTIONSBit torrent by SANDA SOLUTIONS
Bit torrent by SANDA SOLUTIONSssanda3
 
Filesharing using bittorrent protocol
Filesharing using bittorrent protocolFilesharing using bittorrent protocol
Filesharing using bittorrent protocolNishan Shetty
 
(130316) #fitalk bit torrent protocol
(130316) #fitalk   bit torrent protocol(130316) #fitalk   bit torrent protocol
(130316) #fitalk bit torrent protocolINSIGHT FORENSIC
 

Similar a BitTorrent-like P2P Networks (20)

Insights on On-demand Media Streaming Progress
Insights on On-demand Media Streaming ProgressInsights on On-demand Media Streaming Progress
Insights on On-demand Media Streaming Progress
 
Bit torrent protocol
Bit torrent protocolBit torrent protocol
Bit torrent protocol
 
Bittorrent final seminar
Bittorrent final seminarBittorrent final seminar
Bittorrent final seminar
 
Peer to peer(p2 p)
Peer to peer(p2 p)Peer to peer(p2 p)
Peer to peer(p2 p)
 
Bit Torrent
Bit Torrent Bit Torrent
Bit Torrent
 
Bit torrent protocol seminar by Sanjay R
Bit torrent protocol seminar by Sanjay RBit torrent protocol seminar by Sanjay R
Bit torrent protocol seminar by Sanjay R
 
Bit torrent-technology
Bit torrent-technologyBit torrent-technology
Bit torrent-technology
 
Torrent Protocol
Torrent ProtocolTorrent Protocol
Torrent Protocol
 
Bittorrent in a P2P social network
Bittorrent in a P2P social networkBittorrent in a P2P social network
Bittorrent in a P2P social network
 
Bit Torrent Technology
Bit Torrent TechnologyBit Torrent Technology
Bit Torrent Technology
 
BitTorrent
BitTorrent BitTorrent
BitTorrent
 
Project_report_BitTorrent
Project_report_BitTorrentProject_report_BitTorrent
Project_report_BitTorrent
 
Bittorrent
BittorrentBittorrent
Bittorrent
 
Bit torrent seminar
Bit torrent seminarBit torrent seminar
Bit torrent seminar
 
Design and analysis of a mobile file sharing system for opportunistic networks
Design and analysis of a mobile file sharing system for opportunistic networksDesign and analysis of a mobile file sharing system for opportunistic networks
Design and analysis of a mobile file sharing system for opportunistic networks
 
Bit torrent by SANDA SOLUTIONS
Bit torrent by SANDA SOLUTIONSBit torrent by SANDA SOLUTIONS
Bit torrent by SANDA SOLUTIONS
 
Filesharing using bittorrent protocol
Filesharing using bittorrent protocolFilesharing using bittorrent protocol
Filesharing using bittorrent protocol
 
(130316) #fitalk bit torrent protocol
(130316) #fitalk   bit torrent protocol(130316) #fitalk   bit torrent protocol
(130316) #fitalk bit torrent protocol
 
BitTorrent Protocol
BitTorrent ProtocolBitTorrent Protocol
BitTorrent Protocol
 
Bittorrent
BittorrentBittorrent
Bittorrent
 

Último

Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpinRaunakKeshri1
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 

Último (20)

Student login on Anyboli platform.helpin
Student login on Anyboli platform.helpinStudent login on Anyboli platform.helpin
Student login on Anyboli platform.helpin
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 

BitTorrent-like P2P Networks

  • 1. BitTorrent-like P2P Network “Studying the average download times with respect to different piece selection algorithms.”
  • 2. Understanding Concepts  BitTorrent ◦ A protocol that supports P2P file sharing ◦ Used to distribute large amount of data over the internet. ◦ Uses the tracker once to get the list of peers
  • 3. Understanding Concepts  Understanding basic terms of BitTorrent ◦ A BitTorrent portal  A central server where the .torrent files are made available. ◦ A BitTorrent swarm  Set of peers that all download a particular content. ◦ A BitTorrent tracker  Server that keeps track of all the clients that form a swarm for a file ◦ A BitTorrent Client  Seeder – Has the complete file.  Leecher – Doesn’t have the complete file, but instead it may have some pieces of the file
  • 4. Understanding Concepts  A .torrent file contains:- ◦ Content name ◦ File Size ◦ Chunks  Number of chunks & Size of a chunk ◦ Torrent infohash  Unique identifer of the swarm associated with a .torrent file ◦ IP addresses of the trackers managing the swarm  Pieces ◦ Made of blocks – Block might also be divided into sub- blocks ◦ Two or more blocks make up a whole piece
  • 5. Peer joining and leaving a swarm  User gets a .torrent file and runs it in a BitTorrent client software ◦ software picks one or more tracker  Tracker is contacted using the IP address ◦ Use of “announce started” request.  Response Received(Peer neighbourhood) ◦ Some random seeds and peers(typically between 40 - 200) ◦ The IP address associated with each seed and peer returned.  Leave the swarm ◦ Use of “announce stopped” request to tracker.
  • 6. File exchange in BitTorrent Protocol  Peer Wire Protocol ◦ The two communicating peers do a handshake ◦ Understanding bitfields  Current download information of the file concerned  Specifically the pieces of the file, that is, which piece is complete and which is not ◦ BITFIELD message  Exchanged before having any kind of file transfer  Content exchanged are bitfields  Every peer knows about the file download information of all its neighbors.
  • 7. File exchange in BitTorrent Protocol  Peer Wire Protocol(contd.) ◦ HAVE Message  When a new piece is completely downloaded by a peer, the peer has to notify everybody in the peer neighborhood about the same.  This notification does not involve the whole bitfields exchange again as only the change in bitfields has to be notified.
  • 8. Our hypothesis  Weighty piece selection algorithm reduces the average download time of a particular file with respect to the rarest first piece selection algorithm.  What is Average Download Time  Rarest First Piece Algorithm  Weighty Piece Selection Algorithm Source: Chi-Jen Wu; Cheng-Ying Li; Jan-Ming Ho; , "Improving the Download Time of BitTorrent- Like Systems," Communications, 2007. ICC '07. IEEE International Conference on 24-28 June 2007,page 1125-1129, doi: 10.1109/ICC.2007.191
  • 9. Average Download Time  The average download time of all the peers in a particular trial  The average download time for individual peer averaged over the number of trials.
  • 10. Understanding the Algorithms  Rarest First Piece Algorithm ◦ It favors the download of pieces that are rare in the current peer neighborhood. ◦ Purpose:-  Overcomes the last piece problem by increasing the piece availability of rare pieces. Source: Chi-Jen Wu; Cheng-Ying Li; Jan-Ming Ho; , "Improving the Download Time of BitTorrent- Like Systems," Communications, 2007. ICC '07. IEEE International Conference on 24-28 June 2007,page 1125-1129, doi: 10.1109/ICC.2007.191
  • 11. Understanding the Algorithms  Rarest First Piece Algorithm(contd.) ◦ Rarest First Piece calculation  Every peer maintains the count of copies of all the pieces available in the peer neighborhood  The peer having a missing piece, also knows that how low is the availability of the piece in the network  Peer chooses a particular missing piece for download - that is available with some other peer(s), but its total availability is relatively very low with respect to other missing pieces. Source: Chi-Jen Wu; Cheng-Ying Li; Jan-Ming Ho; , "Improving the Download Time of BitTorrent- Like Systems," Communications, 2007. ICC '07. IEEE International Conference on 24-28 June 2007,page 1125-1129, doi: 10.1109/ICC.2007.191
  • 12. Understanding the Algorithms  Weighty Piece Selection Algorithm ◦ Purpose  It is designed for the purpose of reducing the average download time. ◦ Weight assignment of each missing piece  It takes into consideration - all the peers that miss the same piece that a particular peer wants to request.  Sum of downloaded pieces of all the peers, selected above, is calculated individually.  Sum of individual sums, calculated above, is calculated.  The added sum is the weight of the missing piece. Source: Chi-Jen Wu; Cheng-Ying Li; Jan-Ming Ho; , "Improving the Download Time of BitTorrent- Like Systems," Communications, 2007. ICC '07. IEEE International Conference on 24-28 June 2007,page 1125-1129, doi: 10.1109/ICC.2007.191
  • 13. Approach taken to Prove/disprove the hypothesis  Simulation of BitTorrent-like peer to peer protocol. ◦ First the simulation runs using the rarest first piece selection algorithm. ◦ Subsequently the simulation runs using the weighty piece selection algorithm. ◦ All other things are kept the same except the piece selection algorithm.
  • 14. Measurements  Time starts at the beginning of the simulation.  Time is measured again when every client has the all the pieces of the file.
  • 15. Software Design  Tracker Design
  • 17. Software Design(contd)  Peer File Design
  • 19. Software Design(contd)  Main Program - Tracker ◦ Hold all the peer objects.  Simulation of the seeds and leechers ◦ The peer objects hold the file object for maintaining the state of the file being downloaded. ◦ We simulate only one file to study the download rates. ◦ The peer object hold the information of peer neighborhood.  Simulation of the Bandwidth ◦ Download and upload rates of each peer are assigned.
  • 20. Software Design(contd)  Use of RIT’s Parallel Java Library ◦ Usage of package “edu.rit.sim” for simulating the download of a piece of a file. ◦ Achieving the simulation of downloading a piece by the use of simulated time.  Future events are set for denoting the completion of the download of a particular piece.  During the download, the available bandwidth and number of slots are being affected.  No actual file piece transfer is happening.
  • 21. Software Design(contd)  Implementation of achieving the effect of Tit-for-Tat Policy ◦ The tit-for-tat policy aims at matching the peers according to similar bandwidths. ◦ Similar bandwidth means the download speed of the peer requesting a piece and the upload speed of the peer that provides the piece should be nearly the same.
  • 22. Software Design(contd)  Implementation of strategic peer ◦ Strategic peer means that the peer leaves the system as soon as the peer completes downloading its missing pieces. ◦ As soon as the peer has no missing piece, it stops contributing anything to the simulation and no calculations are hampered:-  For Rarest Piece First Algorithm – Relatively, it doesn't matter if every piece count is one extra for calculation.  For Weighty Piece First Algorithm – If no pieces are missing within a peer’s file, the weight calculation is independent of this peer.
  • 23. Software Design(contd)  Assumptions ◦ No Last piece problem.  The reason for the above is that we have provided with one seed in every peer neighborhood. ◦ A peer downloads one piece at a time. ◦ Control messages bandwidth is separate and thus does not interfere with the download and upload bandwidth of the pieces.
  • 24. Software Design(contd)  Assumptions(contd.) ◦ Download time calculation starts from a snapshot of the system  Understanding a snapshot of a system:- ◦ All the peers and one seed is available before the download measurements start. ◦ This will be a random situation in a real environment where some peers would be running and at any instant the calculation can begin.  No more peers are added or removed once the simulation starts running.  Peer have some random pieces of the file initially(same pieces for both the versions)
  • 25. Developer’s Manual  How to compile our source code ◦ Download and extract:-  RIT's Parallel Java Library ◦ http://www.cs.rit.edu/~ark/pj.shtml  RIT's Computer Science Course Library ◦ http://www.cs.rit.edu/~ark/cscl.shtml ◦ Extract the zip file containing all the programs to a directory of your choice ◦ Set the class path first to the current directory then to the parallel java library and then to the computer science course library. ◦ Compile all the programs then by ◦ javac *.java
  • 26. Usage of the Software  Usage: java Tracker <No Of Peers> <Neighborhood Size> <No of chunks> <Piece Size> <Seed Upload Rate> <Peer Download Rate> <Peer Upload Rate> <Peer Download Slots> <Peer Upload Slots> <Number of Trials> <Master Seed>
  • 27. Live Demo  Any Questions before the demo
  • 28. Parameters used in collecting measurement data Knob Value Number of peers 30 Neighborhood size 10 Number of chunks 100 Piece size 10 Seed Upload rate 300 Peer download rate 250 Peer upload rate 200 Peer download slots 10 Peer upload slots 10 Number of trials 30 Master seed 123456
  • 29. Measurement Data 1  Rarest Piece First Selection Algorithm:  Total average download time of all the peers in a trial Trial Total Average Trial Total Average Number Download Time Number Download Time 1 5.11 16 5.66 2 4.93 17 7.07 3 5.26 18 6.94 4 5.76 19 5.28 5 6.29 20 4.44 6 5.44 21 6.85 7 7.31 22 5.80 8 5.15 23 5.14 9 6.76 24 6.16 10 4.76 25 6.39 11 6.44 26 5.16 12 6.24 27 5.80 13 5.06 28 4.87 14 5.97 29 6.56 15 6.64 30 5.32
  • 30. Measurement Data 1  Weighty Piece First Selection Algorithm:  Total average download time of all the peers in a trial Trial Total Average Trial Total Average Number Download Time Number Download Time 1 5.25 16 5.60 2 4.69 17 7.43 3 5.36 18 6.69 4 5.25 19 5.12 5 6.21 20 4.23 6 5.27 21 6.91 7 7.54 22 5.63 8 5.01 23 5.06 9 7.09 24 6.43 10 5.21 25 6.05 11 6.15 26 5.43 12 6.18 27 6.06 13 4.98 28 4.57 14 5.54 29 6.35 15 6.75 30 5.35
  • 32. Analysis 1  Total average download time of all the peers in a trial ◦ The data collected reveals that:-  regardless of the number of nodes, the number of trials and that of the neighbors, the individual average download time in both cases (rarest first piece and weighty piece selection algorithm) follow a same, quasi-periodic pattern; the average time values alternately go up and down.  We can observe that the tit-for-tat policy increases the upload capacity of the network in a scalable manner. We can also observe that when the tit-for-tat rule is enforced, the piece selection algorithm matters less.
  • 33. Measurement Data 2  Rarest Piece First Selection Algorithm:  Average download time of Individual Peer Over Number of Trials Peer Number Average Peer Average Download Time Number Download Time 0 - 15 0.20 1 0.20 16 0.17 2 0.15 17 0.18 3 0.19 18 0.26 4 0.18 19 0.18 5 0.18 20 0.19 6 0.18 21 0.23 7 0.25 22 0.26 8 0.22 23 0.19 9 0.14 24 0.22 10 0.21 25 0.19 11 0.18 26 0.21 12 0.17 27 0.20 13 0.19 28 0.19 14 0.19 29 0.18
  • 34. Measurement Data 2  Weighty Piece First Selection Algorithm:  Average download time of Individual Peer Over Number of Trials Peer Number Average Peer Average Download Time Number Download Time 0 - 15 0.19 1 0.22 16 0.16 2 0.15 17 0.19 3 0.19 18 0.25 4 0.18 19 0.16 5 0.18 20 0.20 6 0.17 21 0.21 7 0.24 22 0.27 8 0.21 23 0.18 9 0.15 24 0.24 10 0.22 25 0.20 11 0.17 26 0.19 12 0.17 27 0.19 13 0.18 28 0.20 14 0.19 29 0.19
  • 36. Analysis 2  Average download time of Individual Peer Over Number of Trials ◦ Almost similar pattern; the average time values alternately go up and down. ◦ This implies two things  First, the tit-for-tat policy applies in a scalable manner (for any number of peers).  The average download time is not a function of the piece selection strategy. ◦ Weighty piece selection algorithm could possibly reduce the average download time of all the peers. However, that would require to not implement the tit-for-tat policy, which would then decrease the upload capacity of the overall network.
  • 37. Result  We have disproved our hypothesis. ◦ It is necessary that Tit-for-Tat policy is implemented in a Bit-Torrent like network. ◦ The average download time is not a function of piece selection strategy.
  • 38. Future Work  The possible future work includes the following:- ◦ Currently one piece is being downloaded at a time. It has to be extended to multiple pieces at a time. So the download slots don't matter for the current version of the program. ◦ Full piece download to block by block download.  Provision for storing metadata for piece download block by block has been provided so that extending the project is easy. ◦ Control messages bandwidth is assumed to be separate and thus not interfering with the download and upload bandwidth of the file transfer. That bandwidth can also be merged and simulated.
  • 39. Learning from our investigation  This team research investigation has allowed us to gain a deep insight of BitTorrent-like networks.  Understanding the concepts like why BitTorrent is used to distribute large scale data over internet.  In addition, we’ve gained experience on how to read and analyze scientific articles, draw hypothesis and verify them using simulation programs.
  • 40. References  Chi-Jen Wu; Cheng-Ying Li; Jan-Ming Ho; , "Improving the Download Time of BitTorrent- Like Systems," Communications, 2007. ICC '07. IEEE International Conference on 24-28 June 2007,page 1125-1129, doi: 10.1109/ICC.2007.191 ◦ http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=4288862  Amir H. Rasti; Reza Rejaie; , "Understanding Peer-level Performance in BitTorrent: A Measurement Study," Computer Communications and Networks, 2007. ICCCN 2007. Proceedings of 16th International Conference on 13-16 Aug. 2007,page 109 – 114 ◦ http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=4317805  Bharambe, A. R.;Herley, C.; Padmanabhan, V. N.; , "Analyzing and Improving a BitTorrent Networks Performance Mechanisms," INFOCOM 2006. 25th IEEE International Conference on Computer Communications. Proceedings, April 2006, page 1-12 ◦ http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=4146981  RIT's Parallel Java Library – Developed by Prof. Alan Kaminsky ◦ http://www.cs.rit.edu/~ark/pj.shtml  RIT's Computer Science Course Library – Developed by Prof. Alan Kaminsky ◦ http://www.cs.rit.edu/~ark/cscl.shtml