Combining Coding and Block Schemes for P2P Transmission

Size: px
Start display at page:

Download "Combining Coding and Block Schemes for P2P Transmission"

Transcription

1 Combining Coding and Block Schemes for P2P Transmission Ben Dodson Dr. Zach Ives Doug Petkanics Dr. Sanjeev Khanna April 14, 2006 Abstract We introduce a new method for the distribution of large files in a peer to peer network based upon a combination of rateless codes, network coding, and block transmission. Each of these schemes can contribute in a different way towards the collaborative transfer of a file. We believe a combination of the above schemes will improve the download rate, as each scheme creates a unique bottleneck at some point during the transmission. By using randomization and rateless codes to generate encodings of information during a file transfer, the receiver will always receive useful information. As peers containing large amounts of information drop out of the network, there is generally a problem gaining information about certain rare pieces of a file. Due to the fact that we use randomized encodings, we attempt to eliminate this problem by ensuring that there is information to be gained about every piece of a file. We develop a protocol, perform analysis on its properties, and implement it such that we can run tests in a real network environment. The network coding and rateless codes will ensure that the file transfers will progress even if people frequently leave or join the network during transmission. By using encodings we attain a far more robust network in which rare pieces fail to exist. We modify the protocol of an existing p2p client in order to perform these measurements. 1 Current Approaches In recent years peer-to-peer file transfer has gained immense popularity. From programs such as Napster which were originally intended to share music files, to programs such as Kazaa and Gnutella which were more varied in content, users have willingly transfered increasingly large files to one another. Only recently have these collaborative methods of file transfer started to compete with the simple server-client method for many types of files, such as Linux CD images. 1

2 Today the uses for large scale file transfers over networks are more prevalent than ever, and range from software patch distribution to video on demand. In p2p environments, files were originally transfered from one user to another, but now schemes have evolved in which many users with the same file, or pieces of it, can all actively aid in the transmission to another user, such that his download speed becomes the only bottleneck. 1.1 BitTorrent: A Block Transfer Scheme Recently, the system known as BitTorrent [1] has emerged as one of the most commonly used p2p programs on the internet. BitTorrent has many advantages, such as the fact that the central server does not need to communicate with the end downloaders at all after the original handshaking process. Also, BitTorrent uses as tit-for-tat trading mechanism which specifies that the downloader can not get access to new pieces of the file he is downloading unless he is also contributing to the network as an uploader. This virtually eliminates freeriding. Another advantage is that even if the initial server goes offline, the file transfers to other users can still continue as long as one user which has the entire file continues to act as a seed to the system. BitTorrent has become so popular, in fact, that it made up over 50% of p2p traffic on the internet in June 2004 [2]. Although BitTorrent works extremely well in practice, it is possible to do better. The problem with BitTorrent is that it utilizes block transfer, meaning that it breaks the file into k blocks, and transfers these individually. Thus, there are only k useful transmissions in this network. As users receive these blocks they may then transfer them on to other users per their request. Often, a set of blocks can become exceedingly rare in the network, especially when the peer group lacks seeds. These rare blocks then become the bottleneck causing the end of a file transfer to take an unnecessarily long time. BitTorrent attempts to handle this with a rarest first block transfer policy. Furthermore, BitTorrent also has an endgame mode built in to the software, specifically designed to aid in the download of the last few pieces. According to Cohen, this is needed because of the tendency for the last few blocks to be downloaded from a single hosed modem line The rarest first policy is hindered by the fact that the rareness of blocks changes over time. We introduce a method of removing the idea of a rare block. By incorporating coding techniques, there can be many more than k blocks, of which only k are required. This helps reduce the need for both the rarest first policy and the explicit endgame transfer mode. 1.2 Avalanche: A Random Coding Based Scheme A good solution to this problem is to introduce a randomized encoding scheme and transfer encoded pieces of data based upon the original file rather than transferring the original blocks themselves. In this approach, the original data is still broken down into blocks. A rateless encoding is then used to generate 2

3 as many encoding symbols as are required (a nearly infinite amount are available). A common scheme which is used to encode packets is to simply take the exclusive-or of any number of the original blocks of data. These XORed encoding symbols can then be thought of as a system of linear equations, of which the user only needs to receive enough encoding symbols to solve the system in order to recover the original file. A very powerful, and efficient scheme is the Digital Fountain [3] approach, in which it is proven that with high probability, a downloader only needs to receive k (1 + δ) encoding symbols to decode the original data of size k, where δ is small. Taking Digital Fountain one step further, a new system has been proposed called Avalanche [4] which appears to be the first use of rateless codes in a p2p setting in which a downloader receives data from many different users on the network. Avalanche uses the Digital Fountain approach combined with network coding techniques to achieve a significant improvement over BitTorrent in simulation. The fact that users can now receive encoded information, from which they can find out a little bit about multiple blocks at once, leads to much faster file transfers. Unfortunately, the network coding techniques which are used in the Avalanche system can lead to redundant data being sent to the downloader time and time again. After a while, the data which he is receiving becomes less and less unique. However, due to the fact that blocks to be included in the encoding were selected randomly, this leads to a much better chance that the specific block that a user needs will not be as rare as it was in the block transfer approach. Also, the simulations on Avalanche do not seem to realistically mimic real network conditions. 2 Our Strategy 2.1 A Compromise We feel that a compromise between the BitTorrent and the Avalanche approach leads to the best performance. We attempt to introduce encoding techniques into the BitTorrent protocol to eliminate the rare block. By using encodings rather than straight block transfer the robustness of the network is greatly increased, as the chance that information about a particular block is somewhere in the network is far greater due to the fact that it could be included in any encoding. When straight block transfer is used the individual rare block itself needs to have been disseminated from the seed, otherwise it will not exist in the network should the seed drop out. One major goal of our project is to determine how best to combine the block transmission and encoding transmission methods. There is much to consider for how this will technically be achieved; the two schemes work well under different conditions, and we seek to create peers that can determine when to use the appropriate scheme, preferably based only on local information. For example, as explored by [5], BitTorrent works exceedingly well when there are a sizable amount of seeds (here, 20 percent of the network.), but may not when 3

4 this number is far fewer. Furthermore, we can remove the need for a rarest block first policy by using an encoding scheme; there are many encodings that can give enough information about a block to decipher it. Avalanche works well when nodes are continuously receiving new information, as their encodings are generated by combining all blocks known to them. One of Avalanche s shortcomings is that it suffers from slow decoding times. We utilize the strengths of both schemes while minimizing their weaknesses. The Avalanche scheme alleviates the need for seeds in a network in the BitTorrent scheme. Restricting our field to order two rather than order 2 16 will reduce decoding times, as will transmitting some known blocks per request. A more dynamic encoding process than that of Avalanche will yield a wider variety of useful packets between peers. Furthermore, we explore the possibility of downloading these files in a heterogeneous environment of both standard BitTorrent clients and the new clients using an encoding scheme. In order to achieve our desired results, we require a handful of tools, mainly drawn from graph theory, linear algebra, and probability theory. The coding theory used is largely based on the principles of linear algebra, but we gain insight by thinking of it in the context of graph theory. Our scheme for selecting blocks for an encoding will require a combination of graph theory and randomization. We begin by motivating our scheme with analysis about randomization in encodings. This is covered in section 3.1. We then select an appropriate encoding scheme which offers fast, simple, decode times, yet still gives us all the advantages which have previously been discussed (section 3.2). We perform analysis on this scheme to show cover times for all blocks in the network, and to prove that this creates a far more robust network than BitTorrent. After the protocol has been developed and analyzed, we implement it by modifying an existing BitTorrent client. Our implementation is described in detail in section 3.3. The client we chose was the original BitTorrent implementation. By modifying the existing client, we have a working program which could easily be used in practice. We run tests using our modified client, and report our results in section 4. 3 A Hybrid P2P Scheme As planned, first semester was spent motivating a hybrid p2p scheme and performing research and analysis. Basic theory has been worked out to show that there is indeed a benefit for implementing this new protocol, and that improvements can be made to both the BitTorrent and the Avalanche protocol. We have developed an implementation of this new protocol by modifying an existing BitTorrent client, and have run simulations and tests to verify that we achieve performance gain. 4

5 3.1 Motivation and Analysis We now consider why our proposed transmission scheme will be beneficial in a p2p environment. The intuition behind it is as follows: with a simple block transmission scheme over n blocks, a user completes the download precisely when these n distinct symbols have been downloaded. With a coding scheme, the size of our universe of available blocks expands, call it N, and only a subset of encodings (optimally still n) is required. It is known that BitTorrent s block transmission protocol functions well in a stable environment in which many users possessing the entire file remain available for future downloaders. [5] We consider an environment in which we expect BitTorrent to not function optimally. We consider a network in which nodes are frequently being added and removed. In the worst case, we add and remove nodes in such a way that the BitTorrent method for handling rare blocks fails. We then inject randomly selected blocks from a single seed into this network. The cover time is of interest to us; how long do we expect to wait before the network contains all n blocks? Assume there are k distinct blocks in the network. Define a 0-1 random variable X k to be 1 when we receive a distinct block in the network, given k distinct blocks are already present. Define T k to be the expected wait time for a distinct block given k exist in the network. We have: (n k) P r[x k ] = n E[T k ] = n n k Thus: n 1 T = T i n 1 E[T ] = E[T i ] = n 1 n n k n 1 1 E[T ] = n n k = O(nlog(n)) Now, consider a scheme using encodings. With an XOR encoding scheme, a single encoding is the XOR of d symbols chosen from our original n. We allow all possible encodings for a universe size of 2 n 1. An encoding is now useful if it is not the linear combination of any of our previous k blocks. Thus: ) ( k i P r[x k ] = 1 k n ( n i ) = 1 2k 1 2 n 1 E[T k ] = ( ) 1 1 2k 1 2 n = 2n n 2 k 5

6 Thus: n 1 E[T ] = E[T i ] = n 1 n 1 T = T i 2 n ( 1 2 n 2 n 2 i n 1 2 n 2 n 1 ) ( 2 n ) 1 = n 2n Hence, with this block encoding scheme, we have a linear cover time. Now, we examine a new encoding scheme. Here, a user receives packets in such a way that the degree (deg) of the encoding is a function of the number of encodings the user has already received (k). Here, our expected cover time is as follows: (n k) P r[x k ] = n E[T k ] = n n k Letting k = pn gives us: Now, let deg(k) = E[T k ] = 1 1 p b 1 p for a small constant b. Then E[T k] = O(1), and thus: n 1 T = T i = O(n) In the collaborative download environment, we would not be able to allow for all encodings in the network because of the need for data verification via hashcodes. Rather, we would like to predefine c n encodings, for a reasonable constant c, that will be transmittable. Furthermore, we require efficient, onthe-fly decodings of our encoded blocks. These two restrictions lead us to the Twisted Tree encoding scheme. 3.2 Twisted-Tree Encoding Scheme While the Digital Fountains encoding scheme is ideal for a single-server, manyclient transmission model, the requirements are too restrictive for a collaborative download environment like BitTorrent. For example, we cannot have any guarantee on the randomness of transmitted blocks, since a client will certainly have a large degree of redundant data available to its peers. Furthermore, we would like to be able to perform our encoding and decoding on the fly to maximize the availability of blocks that can be distributed between peers at any given time. Lastly, we can only allow for certain encodings in our network, since the data must be verifiable by hashcodes sent before the file is downloaded. Thus, we introduce the Twisted Tree encoding scheme. Consider a file split into n blocks. We begin by constructing an encoded block in which all n pieces are XOR-ed together. This will be the root of our 2 n 2 6

7 encoding tree. For a given node of degree k, we recursively construct a binary tree by encoding the leftmost k 2 blocks in the left child, and the remaining k 2 blocks in the right child. We continue until we have the leaves of our tree, corresponding to our original n blocks. In total, there are no more than 2n nodes in our tree, of which n are our basic blocks. This encoding scheme thus restricts the size of the universe of allowable encodings, as we require for the data verification in our download environment. Furthermore, encoding and decoding can be done on-the-fly based only on the local properties of a node in our tree. The runtime of a single decode is no worse than O(log(n)). However this scheme alone does not give much improvement to our random cover time. But we can construct multiple trees in a similar way to achieve our O(n) cover time. Now, we randomly permute our original blocks before constructing our tree. We now have T trees of equivalent structure, but with mostly distinct internal nodes. The leaves are equivalent in all trees, and thus their hash values need only be computed and transmitted once. For T trees, we now have no more than (T +1)n allowable encodings and decode times of O(T n). Note that an internal node of equivalent encoding can appear in multiple trees, as is always the case of our root nodes, but this lookup can be made constant and so our decode time is not affected. In general, we may receive more than n useful blocks before our file can be decoded. That is, our encoding scheme is not rateless when treated as an erasure code in which purely random blocks are received. However, for cases where T 3, this overhead is less than 1% of the overall file size. In our experiments, the worst we saw was 10% of overhead (189 blocks more than the required 2048). 3.3 Implementation In considering the different approaches to take towards an implementation, there were a number of options which we had to choose from. One choice was to implement a simple version of the BitTorrent protocol, implement a simple version of Avalanche, and then implement our protocol to combine the two approaches. We could then run the three protocols in a simulated environment under the same conditions and vary a number of different factors including number of seeds, resiliency, nodes leaving and entering the network at random, varying upload speeds and download speeds, amongst other variables. There are many drawbacks to this approach, the most important being that our simple implementations would not model the complex protocol aspects that BitTorrent has taken on recently, and therefore would not accurately gage real world BitTorrent performance. Other drawbacks included the fact that in a simulated environment it is very difficult to model real life users. Another choice to consider was to modify a BitTorrent client to work in a simulated environment. In this case, we would create clients which would not actually communicate with one another, but instead would communicate with a central server which would keep track of all the simulation details and results. 7

8 Figure 1: A Twisted-Tree encoding with T = 2. In blue, blocks that have not yet been decoded. In green, pieces previously known to the peer. In yellow, a block that has just been received by the peer. In orange, pieces that can now be decoded. 8

9 While these clients would still implement the protocol which we defined, they would only work in simulation and would not transfer real data amongst one another. The advantages of this approach would be that we could run various simulations, modeling different network factors. This would produce the most valuable theoretical data, however it would not be at all useful in the real world. Also, we decided that the data produced may not hold much weight due to the fact that BitTorrent already works very well in practice, and if we model network behavior incorrectly, then we would getting contrived results that may not accurately reflect real world performance. A third choice considered was to take an existing BitTorrent client and modify it such that it would implement our file transfer protocol, yet also be backwards compatible with the existing BitTorrent protocol. This approach would give us the most practical application with the best chance of spreading quickly throughout the p2p community. Should this approach give us a more robust network and achieve a gain in performance, then there is no reason that end users would not be willing to adapt this protocol very quickly, and then see a speedup in their file transfer rates. The main drawback of this approach is that it is difficult to run simulations because it is hard to set up a distributed network consisting of many different clients all running with different properties. This is a trade off for real world usefulness. Originally we thought it would be best to chose the simulation based approach so that we could vary different factors of the network easily and measure when our protocol would be most effective. It would then be possible to run file transfers during which the number of peers, number of seeds, and peer volatility all varied. We soon realized however that since BitTorrent worked very well when there were a large number of seeds, we needed to attack the situation in which it did not work well. This was the case when there were few seeds, a large number of leeching peers, and certain blocks were rare in the network. In order to attack this problem we chose to use the third option, which was to take an existing BitTorrent protocol and modify it to actually work in the real world using our protocol. Therefore we gain the advantage of having a real world implementation, plus it s easy to simulate a network in which there are limited seeds but multiple peers. At the end of last semester, our plan was to modify the BitTorrent implementation called Azureus. We chose this for a number of reasons including the fact that it was open source, it was written in Java (a language which we were both very familiar and comfortable with), and it provided a great front end which included performance analysis and measurements. After working with Azureus for a couple of weeks, we decided that it was too bulky and extremely complicated. Much of the protocol functionality was obscured by large amounts of front end code, and working with it was more effort than it was worth. Instead we decided to settle on modifying the original, and much more widely used, BitTorrent client. Originally we avoided it because it was written in Python, which none of us had experience with, but after spending a few days with Python we found this implementation to be much more lightweight, efficient, and easier to work with. The protocol was well defined and easily observed 9

10 in the code, and it was not long before we were comfortable making changes without breaking anything. The first, and most important step in our implementation was to write an encoding/decoding class. The bulk of our protocol (section 3.2) would be implemented here. This class sits completely outside of the current BitTorrent code, because the current implementation had nothing to do with encodings and decodings. We defined a fairly straightforward interface for this class so that the original code could request random encodings and request the hash values of these new encodings which would later be used for data verification. The specific encoding trees themselves would be generated here as well based solely on the number of original blocks and number of trees desired. When a client receives a new encoding from one of its peers, it also passes the encoding into this class, and the class then computes the closure of what can be decoded based upon this new information. Sometimes nothing new can be decoded, but other times there is a trickle effect down the tree and multiple pieces of data can then be recovered. Furthermore, when a peer notifies another peer of a piece that has been recently obtained, the second peer can compute the closure to know all pieces that are available to that user while keeping overhead low. After the interface to this class had been defined and implemented, it was necessary to modify the rest of the BitTorrent code in order to operate on encodings rather than just straight blocks. There are very few places in the code where the data received is actually handled. It basically just gets stored until the end of the transfer at which point it is pieced back together. However, there are many places where things are kept track of, and the code stores which pieces it has, and which pieces its peers have. This is used to make requests and to answer requests from peers. All of this code needed to be modified such that each client could keep track of what encodings they had (and could generate based on other information), and which encodings its peers had available. Now, when requests were made, they could be made for a single piece, or for an encoding. The protocol itself did not need to be modified. Instead, we defined an ordering for the new encoded blocks, determined by a list of permutations of basic blocks within the.torrent file. Notifications and piece requests are thus carried out as before, with indices beyond the original number of blocks. In order to support this, changes had to be made to many different sections of the code. One of the first stages of the BitTorrent process, is that a.torrent file needs to be created at the tracker (or machine responsible for distributing the list of peers and metadata about a file transfer). Every peer in the network needs to have the same.torrent file which contains info about the file being transfered, including hash values for each piece so that peers can verify that they received correct data. We modified the creation of this.torrent file so that it now included hash values for all allowable encodings. This is the largest overhead that we have over the original protocol because a.torrent file is now about T + 1 times as large as the original.torrent file, where T is the number of trees used, a good value for T being between 2 and 4. This is acceptable, however, because the.torrent file is small to begin with. Other sections of 10

11 the code which we had to make changes in included the section of the code responsible for picking pieces to request, determining how to respond to piece requests, storing received data, and piecing together data upon completion. There are multiple versions of the client which can be run, which all implement our code. There is a GUI which runs on the X-Windows system, a console version, and a console-curses version. We modified the output which is generated on the curses version in order to give a display of the piece by piece transfer progress so that we can accurately monitor what is going on with the decoding process in real time. Currently we output all blocks, and the ones which have been received at the current peer are marked. When an encoding is received, the closure of what can be decoded is computed, and anything that gets decoded also gets marked. The percentage of the original file which has been recovered is then updated on the curses-display. Sometimes when an encoding is received no new original data is recovered, but when there is a trickle down decoding effect, we sometimes recover multiple pieces after getting only one new encoding. As the implementation currently stands, we are satisfied, as it works well on a real network and effectively transfers files from peer to peer. The encoding class seemingly works very well, though due to the well defined interface if any changes needed to be made, or if we wanted to test a new scheme, it would not be difficult to do. As always, there were a few obstacles with the implementation which we had to overcome, and they are addressed in section Obstacles In trying to design a working protocol there were multiple obstacles which we came upon. We realized fairly early on that data verification would be a significant problem if we were to allow any random encoding to be used. BitTorrent only transfers original blocks of the file, so in that scheme any piece of data can be verified with a SHA1 hash and the receiver will know right away whether he received a valid block. In the Digital Fountain scheme in one-to-many transmissions, the sender is assumed to be trusted, so the data verification is not necessary. In our scheme however, if we allow any random encoding to be transfered from anybody in a peer group, to anybody else in a peer group, then the receiver would need to have access to 2 n hash values in order to be sure that what he received was a valid piece of data and would not corrupt the file. In order to solve this problem, we have decided to limit the number of valid encodings to a constant times the number of blocks. The seed will determine these cn allowable encodings upon setting up a tracker based upon the number of trees being used and the random permutations of the original tree, and he will generate hash codes for all cn encodings. This will increase the initial handshaking process between the tracker and a peer by a factor of c, but will also increase the amount of useful data that a peer can receive. After a peer receives a new encoding, we need to be able to quickly determine whether or not this is a useful piece of information. Has this peer already recovered all the information that this new block contains? If it turns out that 11

12 this block is not useful, we want the user to be able to discard it quickly without wasting time trying to decode information from it. The other large obstacle which we were fighting with after first semester was the idea of recoding. We would like to allow intermediate nodes to recode new symbols on the fly based upon blocks which they were able to recover during intermediate steps in the file transfer. This will introduce new nodes into the network thereby making it far more robust. While we decided not to allow random recoding because these new encodings would not correspond to a node in our decoding tree, do we allow peers to create encodings from the tree that they did not actually receive the original data for. This has a positive effect in a network where there are very few seeds and peers may have disparate data. In this case, they can then generate encodings which previously were not floating around the network. The technical obstacles which we had to overcome included learning Python, learning a new (rather large) system, and of course debugging. While the code which was already in place was fairly easy to follow in the overall sense, the details were often very hard to grasp due to the lack of explicit type declarations in Python and lack of comments. While running simulations and debugging, it was also difficult to know whether things were sometimes failing due to our protocol, or due to network issues which were handled in completely different aspects of the BitTorrent code which we never had to touch. 4 Results We largely focused on the idea of the random cover time as a criteria for a successful encoding scheme. Given a heavily dynamic network in which peers are coming and going at random while few seeds remain in the network, we would like to maintain a good spread of useful information in the network as a whole, thus creating a robust environment despite unstable conditions. The random cover time approximates this by focusing on a single peer and seeing how well that peer can piece together the original file given completely random information. For our experiments, we simulated the effects of a single client blindly requesting random information from the network. We used a constant number of n = 2048 blocks throughout our tests, which would correspond to a BitTorrent download of a 512 MB file, using a block size of 256 KB. The peer and the network were not allowed to communicate which pieces one another could decode at a given time. We ran 10 simulations for values of T ranging from 0 to 8. There were two main criteria of interest for us. The first was the number of useful, or nonredundant, blocks that remain in the network at a given time. Here, time is measured by the number of useful blocks the client has received. For the case where T = 0, this is a decreasing, linear function with slope -1. The second and most important is the number of redundant blocks the network has transmitted to the client. There is a clear relationship between these variables, since the 12

13 more useful blocks exist in the network, the more likely we are to retrieve one. Figure 2(a) depicts a single simulated run for the unencoded case. In figure 3(a), we depict the number of useful blocks that remain in the network when we require only one more useful encoding. However, since having T trees adds O(T n) allowable encodings to the network, we scale the result by T so that it becomes a fraction out of n. Each datapoint is an average over 10 runs. Clearly, for T = 0, we have a constant 1, since there is only one block that will allow us to complete the file. Finally, in figure 3(b) we graph the number of redundant blocks received for various values of T. In between T = 2 and T = 3 we see that less than half of the blocks received were redundant. With respect to BitTorrent, adding robustness to the network adds some overhead as well. First, we must transmit the permutations of each tree, for T > 1 (since tree 1 can be left unpermuted). This can be represented as n integers. We must also transmit the hashcodes of these encodings, each of which is 20 bytes. There are O(T n) such hashcodes. Finally, we add O(log(T )) bits to the index during a piece request or a have notification. A value of T = 2 or T = 3 represents a good trade of with the required overhead and the added network robustness. Furthermore, with this relatively low number of trees, the possible overhead due to an increasing rate of the encoding scheme remains very low, and the improvements to the network s robustness make the trade off worthwhile. Moreover, by a more clever inspection of the tree, it is possible to determine what blocks can be used to decode our basic blocks, thus avoiding this overhead all together, at the cost of a slower decode time. 5 Future Direction While this was merely a year long project, and it is now complete, there are a couple directions that this project could go if it were to be continued. The most interesting area of research would be to look into different techniques for choosing how the piece picker decides which piece to request from a peer. Currently, we use randomization to select an encoding from a list of possible encodings. The peer then decides immediately if this random encoding provides useful information, and if it does, it then requests this. There are other interesting things that could be done here, such as closure analysis to determine which piece would be most useful to you at that given time. If any peer of yours has this piece then it would be most beneficial to request it as soon as possible. Another goal which could be accomplished in the near future would be to make this program 100% interoperable with existing BitTorrent clients. Using our implementation with a current implementation would not yield any performance gain for the moment, so we neglected to spend time on interoperability as it was not what we were researching. Nonetheless, interoperability would be a very important feature for real world adoption of our program. Minimal changes would have to be made in order to interact with the original protocol, and this could probably be accomplished with a few hours worth of programming to en- 13

14 (a) Cover time for the unencoded case. Random pieces are requested until a file of 2048 blocks can be reconstructed. In pink, the number of useful (nonredundant) blocks in the universe of allowable transmissions. In blue, the number of redundant blocks transmitted, as a function of the number of nonredundant blocks received. (b) Cover time for the 2-Tree encoding scheme (T = 2). (c) T = 5 (d) T = 8 Figure 2: Cover time samplings for various values of T 14

15 (a) The fraction (out of n = 2048) of useful blocks remaining in the network preceding the final block transmission. An average was taken over 10 trials for each value of T. (b) The average number of redundant blocks received while requesting random blocks of a file with 2048 total blocks. 10 trials were used for various values of T. Figure 3: Trends over varying values of T 15

16 Figure 4: The rate of the Twisted Tree encoding scheme with various values of T. The average was taken over 10 trials. Here, the rate is measured by the percentage of non-redundant blocks received beyond 2048, the size of the file in question. sure that a peer running our implementation never requested an encoded piece from a peer running the original implementation. 6 Conclusion When we began we knew that there was room for improvement in the current peer to peer protocols, but we were not certain which aspect of performance would be best to tackle. After the first semester of research and analysis it became evident that robustness in a network in which many peers are coming and going, and there are not many seeds which contain the entire file, would be the best area to improve on. Our system certainly improves on this from the current BitTorrent protocol by ensuring that information about every block in a file is dispersed through the network as quickly as possible. Given more time and more resources to test, we would have liked to run in depth tests consisting of many peers, but we feel that our project was successful. We completed most of the work which we set out to accomplish in September, stuck with our timeline, and are happy with our implementation. References [1] Bram Cohen. Incentives build robustness in bittorrent, [2] Pouwelse Garbacki Epema. The bittorrent p2p file-sharing system: Measurements and analysis. 16

17 [3] John W. Byers, Michael Luby, Michael Mitzenmacher, and Ashutosh Rege. A digital fountain approach to reliable distribution of bulk data. In SIG- COMM, pages 56 67, [4] Content Distribution Ieee. Network coding for large scale. [5] M. Izal, G. Urvoy-Keller, E. Biersack, P. Felber, A. Hamra, and L. Garces- Erice. Dissecting bittorrent: Five months in a torrent s lifetime,

BitTorrent. Masood Khosroshahy. July Tech. Report. Copyright 2009 Masood Khosroshahy, All rights reserved.

BitTorrent. Masood Khosroshahy. July Tech. Report. Copyright 2009 Masood Khosroshahy, All rights reserved. BitTorrent Masood Khosroshahy July 2009 Tech. Report Copyright 2009 Masood Khosroshahy, All rights reserved. www.masoodkh.com Contents Contents 1 Basic Concepts 1 2 Mechanics 3 2.1 Protocols: Tracker and

More information

Extreme Computing. BitTorrent and incentive-based overlay networks.

Extreme Computing. BitTorrent and incentive-based overlay networks. Extreme Computing BitTorrent and incentive-based overlay networks BitTorrent Today we will focus on BitTorrent The technology really has three aspects A standard that BitTorrent client systems follow Some

More information

Efficiency of Data Distribution in BitTorrent-Like Systems

Efficiency of Data Distribution in BitTorrent-Like Systems Efficiency of Data Distribution in BitTorrent-Like Systems Ho-Leung Chan 1,, Tak-Wah Lam 2, and Prudence W.H. Wong 3 1 Department of Computer Science, University of Pittsburgh hlchan@cs.pitt.edu 2 Department

More information

P2P Applications. Reti di Elaboratori Corso di Laurea in Informatica Università degli Studi di Roma La Sapienza Canale A-L Prof.ssa Chiara Petrioli

P2P Applications. Reti di Elaboratori Corso di Laurea in Informatica Università degli Studi di Roma La Sapienza Canale A-L Prof.ssa Chiara Petrioli P2P Applications Reti di Elaboratori Corso di Laurea in Informatica Università degli Studi di Roma La Sapienza Canale A-L Prof.ssa Chiara Petrioli Server-based Network Peer-to-peer networks A type of network

More information

P2P. 1 Introduction. 2 Napster. Alex S. 2.1 Client/Server. 2.2 Problems

P2P. 1 Introduction. 2 Napster. Alex S. 2.1 Client/Server. 2.2 Problems P2P Alex S. 1 Introduction The systems we will examine are known as Peer-To-Peer, or P2P systems, meaning that in the network, the primary mode of communication is between equally capable peers. Basically

More information

Content Overlays (continued) Nick Feamster CS 7260 March 26, 2007

Content Overlays (continued) Nick Feamster CS 7260 March 26, 2007 Content Overlays (continued) Nick Feamster CS 7260 March 26, 2007 Administrivia Quiz date Remaining lectures Interim report PS 3 Out Friday, 1-2 problems 2 Structured vs. Unstructured Overlays Structured

More information

Game Theory. Presented by Hakim Weatherspoon

Game Theory. Presented by Hakim Weatherspoon Game Theory Presented by Hakim Weatherspoon Game Theory Main Question: Can we cheat (and get away with it)? BitTorrent P2P file distribution tool designed with incentives for contribution Users contribute

More information

Department of Computer Science Institute for System Architecture, Chair for Computer Networks. File Sharing

Department of Computer Science Institute for System Architecture, Chair for Computer Networks. File Sharing Department of Computer Science Institute for System Architecture, Chair for Computer Networks File Sharing What is file sharing? File sharing is the practice of making files available for other users to

More information

A Simulation: Improving Throughput and Reducing PCI Bus Traffic by. Caching Server Requests using a Network Processor with Memory

A Simulation: Improving Throughput and Reducing PCI Bus Traffic by. Caching Server Requests using a Network Processor with Memory Shawn Koch Mark Doughty ELEC 525 4/23/02 A Simulation: Improving Throughput and Reducing PCI Bus Traffic by Caching Server Requests using a Network Processor with Memory 1 Motivation and Concept The goal

More information

1 Achieving IND-CPA security

1 Achieving IND-CPA security ISA 562: Information Security, Theory and Practice Lecture 2 1 Achieving IND-CPA security 1.1 Pseudorandom numbers, and stateful encryption As we saw last time, the OTP is perfectly secure, but it forces

More information

Lecture 21 P2P. Napster. Centralized Index. Napster. Gnutella. Peer-to-Peer Model March 16, Overview:

Lecture 21 P2P. Napster. Centralized Index. Napster. Gnutella. Peer-to-Peer Model March 16, Overview: PP Lecture 1 Peer-to-Peer Model March 16, 005 Overview: centralized database: Napster query flooding: Gnutella intelligent query flooding: KaZaA swarming: BitTorrent unstructured overlay routing: Freenet

More information

Lecture 17: Peer-to-Peer System and BitTorrent

Lecture 17: Peer-to-Peer System and BitTorrent CSCI-351 Data communication and Networks Lecture 17: Peer-to-Peer System and BitTorrent (I swear I only use it for Linux ISOs) The slide is built with the help of Prof. Alan Mislove, Christo Wilson, and

More information

Content Distribution and BitTorrent [Based on slides by Cosmin Arad]

Content Distribution and BitTorrent [Based on slides by Cosmin Arad] ID2210 - Distributed Computing, Peer-to-Peer and GRIDS Content Distribution and BitTorrent [Based on slides by Cosmin Arad] Today The problem of content distribution A popular solution: BitTorrent Underlying

More information

Software. CPU implements "machine code" instructions. --Each machine code instruction is extremely simple. --To run, expanded to about 10 machine code

Software. CPU implements machine code instructions. --Each machine code instruction is extremely simple. --To run, expanded to about 10 machine code Software Software - code that runs on the hardware I'm going to simplify things a bit here CPU implements "machine code" instructions --Each machine code instruction is extremely simple --e.g. add 2 numbers

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK PEER-TO-PEER FILE SHARING WITH THE BITTORRENT PROTOCOL APURWA D. PALIWAL 1, PROF.

More information

RAID SEMINAR REPORT /09/2004 Asha.P.M NO: 612 S7 ECE

RAID SEMINAR REPORT /09/2004 Asha.P.M NO: 612 S7 ECE RAID SEMINAR REPORT 2004 Submitted on: Submitted by: 24/09/2004 Asha.P.M NO: 612 S7 ECE CONTENTS 1. Introduction 1 2. The array and RAID controller concept 2 2.1. Mirroring 3 2.2. Parity 5 2.3. Error correcting

More information

Optimizing Parallel Access to the BaBar Database System Using CORBA Servers

Optimizing Parallel Access to the BaBar Database System Using CORBA Servers SLAC-PUB-9176 September 2001 Optimizing Parallel Access to the BaBar Database System Using CORBA Servers Jacek Becla 1, Igor Gaponenko 2 1 Stanford Linear Accelerator Center Stanford University, Stanford,

More information

Peer-to-Peer Networks 12 Fast Download

Peer-to-Peer Networks 12 Fast Download Peer-to-Peer Networks 12 Fast Download Arne Vater Technical Faculty Computer Networks and Telematics University of Freiburg IP Multicast Motivation - Transmission of a data stream to many receivers Unicast

More information

A Survey of Software Packages for Teaching Linear and Integer Programming

A Survey of Software Packages for Teaching Linear and Integer Programming A Survey of Software Packages for Teaching Linear and Integer Programming By Sergio Toledo Spring 2018 In Partial Fulfillment of Math (or Stat) 4395-Senior Project Department of Mathematics and Statistics

More information

CSC310 Information Theory. Lecture 22: Erasure (Deletion) Channels & Digital Fountain Codes. November 30, 2005 see

CSC310 Information Theory. Lecture 22: Erasure (Deletion) Channels & Digital Fountain Codes. November 30, 2005 see CSC310 Information Theory Lecture 22: Erasure (Deletion) Channels & Digital Fountain Codes Sam Roweis Recovering From Erasures 2 How can we recover from erasures? For the BEC, we saw that low-density parity

More information

Key Separation in Twofish

Key Separation in Twofish Twofish Technical Report #7 Key Separation in Twofish John Kelsey April 7, 2000 Abstract In [Mur00], Murphy raises questions about key separation in Twofish. We discuss this property of the Twofish key

More information

Peer to Peer Systems and Probabilistic Protocols

Peer to Peer Systems and Probabilistic Protocols Distributed Systems 600.437 Peer to Peer Systems & Probabilistic Protocols Department of Computer Science The Johns Hopkins University 1 Peer to Peer Systems and Probabilistic Protocols Lecture 11 Good

More information

1 Reception efficiency

1 Reception efficiency Bipartite Graph Bipartite Graph n/4 Standard Loss resilient Code n/ n Figure 1: Encoding structure of tornado code CS 493: Algorithms for Massive Data Sets Tornado Codes and Error-Correcting Codes 3/7/0

More information

Hashing. Hashing Procedures

Hashing. Hashing Procedures Hashing Hashing Procedures Let us denote the set of all possible key values (i.e., the universe of keys) used in a dictionary application by U. Suppose an application requires a dictionary in which elements

More information

CSC310 Information Theory. Lecture 21: Erasure (Deletion) Channels & Digital Fountain Codes. November 22, 2006 see

CSC310 Information Theory. Lecture 21: Erasure (Deletion) Channels & Digital Fountain Codes. November 22, 2006 see CSC310 Information Theory Lecture 21: Erasure (Deletion) Channels & Digital Fountain Codes Sam Roweis Recovering From Erasures 2 How can we recover from erasures? For the BEC, we saw that low-density parity

More information

BitTorrent. Internet Technologies and Applications

BitTorrent. Internet Technologies and Applications BitTorrent Internet Technologies and Applications Aims and Contents Aims Show benefits of P2P for file downloads Explain concepts of BitTorrent as a P2P file sharing application Show how BitTorrent protocol

More information

Comparing Implementations of Optimal Binary Search Trees

Comparing Implementations of Optimal Binary Search Trees Introduction Comparing Implementations of Optimal Binary Search Trees Corianna Jacoby and Alex King Tufts University May 2017 In this paper we sought to put together a practical comparison of the optimality

More information

Input/Output Management

Input/Output Management Chapter 11 Input/Output Management This could be the messiest aspect of an operating system. There are just too much stuff involved, it is difficult to develop a uniform and consistent theory to cover

More information

Page 1. How Did it Start?" Model" Main Challenge" CS162 Operating Systems and Systems Programming Lecture 24. Peer-to-Peer Networks"

Page 1. How Did it Start? Model Main Challenge CS162 Operating Systems and Systems Programming Lecture 24. Peer-to-Peer Networks How Did it Start?" CS162 Operating Systems and Systems Programming Lecture 24 Peer-to-Peer Networks" A killer application: Napster (1999) Free music over the Internet Key idea: share the storage and bandwidth

More information

Graph Structure Over Time

Graph Structure Over Time Graph Structure Over Time Observing how time alters the structure of the IEEE data set Priti Kumar Computer Science Rensselaer Polytechnic Institute Troy, NY Kumarp3@rpi.edu Abstract This paper examines

More information

Tail Latency in ZooKeeper and a Simple Reimplementation

Tail Latency in ZooKeeper and a Simple Reimplementation Tail Latency in ZooKeeper and a Simple Reimplementation Michael Graczyk Abstract ZooKeeper [1] is a commonly used service for coordinating distributed applications. ZooKeeper uses leader-based atomic broadcast

More information

Azureus Plugin for Facebook Integration

Azureus Plugin for Facebook Integration Azureus Plugin for Facebook Integration Mike House-Vording, 100300955 mhvordin@connect.carleton.ca 1. Introduction This project seeks to integrate two major trends currently taking place on the internet:

More information

All About Erasure Codes: - Reed-Solomon Coding - LDPC Coding. James S. Plank. ICL - August 20, 2004

All About Erasure Codes: - Reed-Solomon Coding - LDPC Coding. James S. Plank. ICL - August 20, 2004 All About Erasure Codes: - Reed-Solomon Coding - LDPC Coding James S. Plank Logistical Computing and Internetworking Laboratory Department of Computer Science University of Tennessee ICL - August 2, 24

More information

DISTRIBUTED SYSTEMS CSCI 4963/ /4/2015

DISTRIBUTED SYSTEMS CSCI 4963/ /4/2015 1 DISTRIBUTED SYSTEMS CSCI 4963/6963 12/4/2015 2 Info Quiz 7 on Tuesday. Project 2 submission URL is posted on the web site Submit your source code and project report (PDF!!!) in a single zip file. If

More information

CSE 486/586 Distributed Systems Peer-to-Peer Architectures

CSE 486/586 Distributed Systems Peer-to-Peer Architectures CSE 486/586 Distributed Systems eer-to-eer Architectures Steve Ko Computer Sciences and Engineering University at Buffalo CSE 486/586 Last Time Gossiping Multicast Failure detection Today s Question How

More information

Telematics Chapter 9: Peer-to-Peer Networks

Telematics Chapter 9: Peer-to-Peer Networks Telematics Chapter 9: Peer-to-Peer Networks Beispielbild User watching video clip Server with video clips Application Layer Presentation Layer Application Layer Presentation Layer Session Layer Session

More information

Implementing a Statically Adaptive Software RAID System

Implementing a Statically Adaptive Software RAID System Implementing a Statically Adaptive Software RAID System Matt McCormick mattmcc@cs.wisc.edu Master s Project Report Computer Sciences Department University of Wisconsin Madison Abstract Current RAID systems

More information

Blizzard: A Distributed Queue

Blizzard: A Distributed Queue Blizzard: A Distributed Queue Amit Levy (levya@cs), Daniel Suskin (dsuskin@u), Josh Goodwin (dravir@cs) December 14th 2009 CSE 551 Project Report 1 Motivation Distributed systems have received much attention

More information

Metaheuristic Development Methodology. Fall 2009 Instructor: Dr. Masoud Yaghini

Metaheuristic Development Methodology. Fall 2009 Instructor: Dr. Masoud Yaghini Metaheuristic Development Methodology Fall 2009 Instructor: Dr. Masoud Yaghini Phases and Steps Phases and Steps Phase 1: Understanding Problem Step 1: State the Problem Step 2: Review of Existing Solution

More information

Performance Analysis of Peer-to-Peer Networks for File Distribution

Performance Analysis of Peer-to-Peer Networks for File Distribution Performance Analysis of Peer-to-Peer Networks for File Distribution Ernst W. Biersack, Pablo Rodriguez, and Pascal Felber Institut EURECOM, France {erbi,felber}@eurecom.fr Microsoft Research, UK pablo@microsoft.com

More information

Peer-to-Peer Systems. Chapter General Characteristics

Peer-to-Peer Systems. Chapter General Characteristics Chapter 2 Peer-to-Peer Systems Abstract In this chapter, a basic overview is given of P2P systems, architectures, and search strategies in P2P systems. More specific concepts that are outlined include

More information

P2P Applications. Reti di Elaboratori Corso di Laurea in Informatica Università degli Studi di Roma La Sapienza

P2P Applications. Reti di Elaboratori Corso di Laurea in Informatica Università degli Studi di Roma La Sapienza P2P Applications Reti di Elaboratori Corso di Laurea in Informatica Università degli Studi di Roma La Sapienza Versione originale delle slides fornita da Dora Spenza e Marco Barbera P2P Paradigm Late 80

More information

Automatic Creation of Digital Fast Adder Circuits by Means of Genetic Programming

Automatic Creation of Digital Fast Adder Circuits by Means of Genetic Programming 1 Automatic Creation of Digital Fast Adder Circuits by Means of Genetic Programming Karim Nassar Lockheed Martin Missiles and Space 1111 Lockheed Martin Way Sunnyvale, CA 94089 Karim.Nassar@lmco.com 408-742-9915

More information

Problems of Network Coding in P2P - and how to overcome it. Christian Schindelhauer. joint work with Christian Ortolf & Arne Vater

Problems of Network Coding in P2P - and how to overcome it. Christian Schindelhauer. joint work with Christian Ortolf & Arne Vater Problems of Network Coding in P2P - and how to overcome it Christian Schindelhauer joint work with Christian Ortolf & Arne Vater presented in SPAA 09 & 10 Albert-Ludwig University Freiburg Department of

More information

CompSci 356: Computer Network Architectures Lecture 21: Overlay Networks Chap 9.4. Xiaowei Yang

CompSci 356: Computer Network Architectures Lecture 21: Overlay Networks Chap 9.4. Xiaowei Yang CompSci 356: Computer Network Architectures Lecture 21: Overlay Networks Chap 9.4 Xiaowei Yang xwy@cs.duke.edu Overview Problem Evolving solutions IP multicast Proxy caching Content distribution networks

More information

Some Applications of Graph Bandwidth to Constraint Satisfaction Problems

Some Applications of Graph Bandwidth to Constraint Satisfaction Problems Some Applications of Graph Bandwidth to Constraint Satisfaction Problems Ramin Zabih Computer Science Department Stanford University Stanford, California 94305 Abstract Bandwidth is a fundamental concept

More information

6.338 Final Paper: Parallel Huffman Encoding and Move to Front Encoding in Julia

6.338 Final Paper: Parallel Huffman Encoding and Move to Front Encoding in Julia 6.338 Final Paper: Parallel Huffman Encoding and Move to Front Encoding in Julia Gil Goldshlager December 2015 1 Introduction 1.1 Background The Burrows-Wheeler transform (BWT) is a string transform used

More information

CPSC 536N: Randomized Algorithms Term 2. Lecture 5

CPSC 536N: Randomized Algorithms Term 2. Lecture 5 CPSC 536N: Randomized Algorithms 2011-12 Term 2 Prof. Nick Harvey Lecture 5 University of British Columbia In this lecture we continue to discuss applications of randomized algorithms in computer networking.

More information

Codes, Bloom Filters, and Overlay Networks. Michael Mitzenmacher

Codes, Bloom Filters, and Overlay Networks. Michael Mitzenmacher Codes, Bloom Filters, and Overlay Networks Michael Mitzenmacher 1 Today... Erasure codes Digital Fountain Bloom Filters Summary Cache, Compressed Bloom Filters Informed Content Delivery Combining the two

More information

Secure and Robust Overlay Content Distribution

Secure and Robust Overlay Content Distribution Secure and Robust Overlay Content Distribution A THESIS SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL OF THE UNIVERSITY OF MINNESOTA BY Hun Jeong Kang IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE

More information

Do incentives build robustness in BitTorrent?

Do incentives build robustness in BitTorrent? Do incentives build robustness in BitTorrent? ronghui.gu@yale.edu Agenda 2 Introduction BitTorrent Overview Modeling Altruism in BitTorrent Building BitTyrant Evaluation Conclusion Introduction 3 MAIN

More information

AVALANCHE: A NETWORK CODING ANALYSIS

AVALANCHE: A NETWORK CODING ANALYSIS COMMUNICATIONS IN INFORMATION AND SYSTEMS c 2007 International Press Vol. 7, No. 4, pp. 353-358, 2007 003 AVALANCHE: A NETWORK CODING ANALYSIS RAYMOND W. YEUNG Abstract. In this paper, we study the application

More information

improving the performance and robustness of P2P live streaming with Contracts

improving the performance and robustness of P2P live streaming with Contracts MICHAEL PIATEK AND ARVIND KRISHNAMURTHY improving the performance and robustness of P2P live streaming with Contracts Michael Piatek is a graduate student at the University of Washington. After spending

More information

Adam Hodges CPSC481/CyberTiger Project Proposal 1/31/12. Motivations

Adam Hodges CPSC481/CyberTiger Project Proposal 1/31/12. Motivations Adam Hodges CPSC481/CyberTiger Project Proposal 1/31/12 Motivations It is my goal to continue my work from the summer and fall semesters in order to learn more about wireless networks and their characteristics

More information

Client Level Framework for Parallel Downloading of Large File Systems

Client Level Framework for Parallel Downloading of Large File Systems Client Level Framework for Parallel Downloading of Large File Systems G.Narasinga Rao Asst.Professor Dept.of CSE GMR Institute of Technology RAJAM-532127, A.P, India. Srikakulam Dist Srinivasan Nagaraj

More information

Practical Anonymity for the Masses with MorphMix

Practical Anonymity for the Masses with MorphMix Practical Anonymity for the Masses with MorphMix Marc Rennhard, Bernhard Plattner () Financial Cryptography 2004 12 th February 2004 http://www.tik.ee.ethz.ch/~morphmix Overview Circuit-based mix networks

More information

Is IPv4 Sufficient for Another 30 Years?

Is IPv4 Sufficient for Another 30 Years? Is IPv4 Sufficient for Another 30 Years? October 7, 2004 Abstract TCP/IP was developed 30 years ago. It has been successful over the past 30 years, until recently when its limitation started emerging.

More information

Chapter 1 - Introduction

Chapter 1 - Introduction Chapter 1-lntroduction Chapter 1 - Introduction The aim of this chapter is to provide a background to topics which are relevant to the subject of this thesis. The motivation for writing a thesis regarding

More information

COMMVAULT. Enabling high-speed WAN backups with PORTrockIT

COMMVAULT. Enabling high-speed WAN backups with PORTrockIT COMMVAULT Enabling high-speed WAN backups with PORTrockIT EXECUTIVE SUMMARY Commvault offers one of the most advanced and full-featured data protection solutions on the market, with built-in functionalities

More information

Performance Analysis of BitTorrent Protocol

Performance Analysis of BitTorrent Protocol Performance Analysis of BitTorrent Protocol Parul Sharma Department of Computer Science Engineering sharma.parul111@gmail.com Anuja Bhakuni Department of Computer Science Engineering anuja.bhakuni13@gmail.com

More information

White Paper: Delivering Enterprise Web Applications on the Curl Platform

White Paper: Delivering Enterprise Web Applications on the Curl Platform White Paper: Delivering Enterprise Web Applications on the Curl Platform Table of Contents Table of Contents Executive Summary... 1 Introduction... 2 Background... 2 Challenges... 2 The Curl Solution...

More information

Core Membership Computation for Succinct Representations of Coalitional Games

Core Membership Computation for Succinct Representations of Coalitional Games Core Membership Computation for Succinct Representations of Coalitional Games Xi Alice Gao May 11, 2009 Abstract In this paper, I compare and contrast two formal results on the computational complexity

More information

A Case For OneSwarm. Tom Anderson University of Washington.

A Case For OneSwarm. Tom Anderson University of Washington. A Case For OneSwarm Tom Anderson University of Washington http://oneswarm.cs.washington.edu/ With: Jarret Falkner, Tomas Isdal, Alex Jaffe, John P. John, Arvind Krishnamurthy, Harsha Madhyastha and Mike

More information

CTW in Dasher: Summary and results.

CTW in Dasher: Summary and results. CTW in Dasher: Summary and results. After finishing my graduation thesis Using CTW as a language modeler in Dasher, I have visited the Inference group of the Physics department of the University of Cambridge,

More information

ENSC 427 SPRING 2011 FINAL PROJECT EXPLORING TRAFFIC FOR P2P FILE SHARING PROTOCOL USING OPNET GROUP 01

ENSC 427 SPRING 2011 FINAL PROJECT EXPLORING TRAFFIC FOR P2P FILE SHARING PROTOCOL USING OPNET GROUP 01 SFU Communication Networks ENSC 427 SPRING 2011 FINAL PROJECT EXPLORING TRAFFIC FOR P2P FILE SHARING PROTOCOL USING OPNET GROUP 01 Abhishek Dubey ada4@sfu.ca Ashkan Mirnabavvi amirnaba@sfu.ca Vikas Yadav

More information

Lecture 19. Lecturer: Aleksander Mądry Scribes: Chidambaram Annamalai and Carsten Moldenhauer

Lecture 19. Lecturer: Aleksander Mądry Scribes: Chidambaram Annamalai and Carsten Moldenhauer CS-621 Theory Gems November 21, 2012 Lecture 19 Lecturer: Aleksander Mądry Scribes: Chidambaram Annamalai and Carsten Moldenhauer 1 Introduction We continue our exploration of streaming algorithms. First,

More information

Principles of Algorithm Design

Principles of Algorithm Design Principles of Algorithm Design When you are trying to design an algorithm or a data structure, it s often hard to see how to accomplish the task. The following techniques can often be useful: 1. Experiment

More information

inria , version 1-6 Sep 2006

inria , version 1-6 Sep 2006 Rarest First and Choke Algorithms Are Enough Arnaud Legout I.N.R.I.A. Sophia Antipolis France arnaud.legout@sophia.inria.fr G. Urvoy-Keller and P. Michiardi Institut Eurecom Sophia Antipolis France {Guillaume.Urvoy,Pietro.Michiardi}@eurecom.fr

More information

P2P content distribution

P2P content distribution P2P content distribution T-110.7100 Applications and Services in Internet, Fall 2010 Jukka K. Nurminen 1 V1-Filename.ppt / yyyy-mm-dd / Initials Steps of content sharing Share content Find content Transfer

More information

Peer-to-Peer Applications Reading: 9.4

Peer-to-Peer Applications Reading: 9.4 Peer-to-Peer Applications Reading: 9.4 Acknowledgments: Lecture slides are from Computer networks course thought by Jennifer Rexford at Princeton University. When slides are obtained from other sources,

More information

Improving BitTorrent: A Simple Approach

Improving BitTorrent: A Simple Approach Improving BitTorrent: A Simple Approach Alix L.H. Chow Univ. of Southern California Leana Golubchik Univ. of Southern California Vishal Misra Columbia University Abstract Measurement studies have shown

More information

4640 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 53, NO. 12, DECEMBER Gossiping With Multiple Messages

4640 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 53, NO. 12, DECEMBER Gossiping With Multiple Messages 4640 IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 53, NO. 12, DECEMBER 2007 Gossiping With Multiple Messages Sujay Sanghavi, Member, IEEE, Bruce Hajek, Fellow, IEEE, and Laurent Massoulie Abstract This

More information

EE 122: Peer-to-Peer Networks

EE 122: Peer-to-Peer Networks EE 122: Peer-to-Peer Networks Ion Stoica (and Brighten Godfrey) TAs: Lucian Popa, David Zats and Ganesh Ananthanarayanan http://inst.eecs.berkeley.edu/~ee122/ (Materials with thanks to Vern Paxson, Jennifer

More information

CSE200 Lecture 6: RECURSION

CSE200 Lecture 6: RECURSION Table of Contents Review of functions (using factorial example)... 1 Recursion... 1 Step by step run through of recursive factorial... 2 Recursion vs. iteration (for and while loops)... 3 Helper functions:...

More information

Lecture 4 September 17

Lecture 4 September 17 CS 559: Algorithmic Aspects of Computer Networks Fall 2007 Lecture 4 September 17 Lecturer: John Byers BOSTON UNIVERSITY Scribe: Sowmya Manjanatha In today s lecture, we discussed and characterized the

More information

Network Working Group Request for Comments: 1046 ISI February A Queuing Algorithm to Provide Type-of-Service for IP Links

Network Working Group Request for Comments: 1046 ISI February A Queuing Algorithm to Provide Type-of-Service for IP Links Network Working Group Request for Comments: 1046 W. Prue J. Postel ISI February 1988 A Queuing Algorithm to Provide Type-of-Service for IP Links Status of this Memo This memo is intended to explore how

More information

Introduction to P P Networks

Introduction to P P Networks Introduction to P P Networks B Sc Florian Adamsky florianadamsky@iemthmde http://florianadamskyit/ cbd Internet Protocols and Applications SS B Sc Florian Adamsky IPA / Outline Introduction What is P P?

More information

Lab 4. 1 Comments. 2 Design. 2.1 Recursion vs Iteration. 2.2 Enhancements. Justin Ely

Lab 4. 1 Comments. 2 Design. 2.1 Recursion vs Iteration. 2.2 Enhancements. Justin Ely Lab 4 Justin Ely 615.202.81.FA15 Data Structures 06 December, 2015 1 Comments Sorting algorithms are a key component to computer science, not simply because sorting is a commonlyperformed task, but because

More information

6.001 Notes: Section 31.1

6.001 Notes: Section 31.1 6.001 Notes: Section 31.1 Slide 31.1.1 In previous lectures we have seen a number of important themes, which relate to designing code for complex systems. One was the idea of proof by induction, meaning

More information

Using Simulation to Understand Bottlenecks, Delay Accumulation, and Rail Network Flow

Using Simulation to Understand Bottlenecks, Delay Accumulation, and Rail Network Flow Using Simulation to Understand Bottlenecks, Delay Accumulation, and Rail Network Flow Michael K. Williams, PE, MBA Manager Industrial Engineering Norfolk Southern Corporation, 1200 Peachtree St., NE, Atlanta,

More information

Imperva Incapsula Survey: What DDoS Attacks Really Cost Businesses

Imperva Incapsula Survey: What DDoS Attacks Really Cost Businesses Survey Imperva Incapsula Survey: What DDoS Attacks Really Cost Businesses BY: TIM MATTHEWS 2016, Imperva, Inc. All rights reserved. Imperva and the Imperva logo are trademarks of Imperva, Inc. Contents

More information

ENSC 427: COMMUNICATION NETWORKS

ENSC 427: COMMUNICATION NETWORKS ENSC 427: COMMUNICATION NETWORKS Comparison of TCP with "utp" for BitTorrent transfers Spring 2009 FINAL PROJECT Adam Ciapponi Robert Hueber Robert Szolomicki aciappon@sfu.ca rhueber@sfu.ca rms6@sfu.ca

More information

CAPACITY PLANNING FOR THE DATA WAREHOUSE BY W. H. Inmon

CAPACITY PLANNING FOR THE DATA WAREHOUSE BY W. H. Inmon CAPACITY PLANNING FOR THE DATA WAREHOUSE BY W. H. Inmon The data warehouse environment - like all other computer environments - requires hardware resources. Given the volume of data and the type of processing

More information

Massively Parallel Non- Convex Optimization on the GPU Through the Graphics Pipeline

Massively Parallel Non- Convex Optimization on the GPU Through the Graphics Pipeline Massively Parallel Non- Convex Optimization on the GPU Through the Graphics Pipeline By Peter Cottle Department of Mechanical Engineering, 6195 Etcheverry Hall, University of California, Berkeley, CA 94720-1740,

More information

Raptor Codes for P2P Streaming

Raptor Codes for P2P Streaming Raptor Codes for P2P Streaming Philipp Eittenberger 1, Todor Mladenov 2, Udo Krieger 1 1 Faculty of Information Systems and Applied Computer Science Otto-Friedrich University Bamberg, Germany 2 Department

More information

Random Oracles - OAEP

Random Oracles - OAEP Random Oracles - OAEP Anatoliy Gliberman, Dmitry Zontov, Patrick Nordahl September 23, 2004 Reading Overview There are two papers presented this week. The first paper, Random Oracles are Practical: A Paradigm

More information

Model-Based Design for Large High Integrity Systems: A Discussion Regarding Model Architecture

Model-Based Design for Large High Integrity Systems: A Discussion Regarding Model Architecture Model-Based Design for Large High Integrity Systems: A Discussion Regarding Model Architecture By Mike Anthony and Jon Friedman MathWorks Inc, Natick, MA, 01760 INTRODUCTION From complex controls problems

More information

IMPLEMENTATION AND EVALUATION OF THE MULTICAST FILE TRANSFER PROTOCOL (MCFTP)

IMPLEMENTATION AND EVALUATION OF THE MULTICAST FILE TRANSFER PROTOCOL (MCFTP) IMPLEMENTATION AND EVALUATION OF THE MULTICAST FILE TRANSFER PROTOCOL (MCFTP) Masterarbeit der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Alican Gecyasar Dezember,

More information

Further extensions to the Wigan architecture are discussed in this thesis, including possible means of handling data updates.

Further extensions to the Wigan architecture are discussed in this thesis, including possible means of handling data updates. COMPUTING SCIENCE A BitTorrent-based Peer-to-Peer Database Server J. Colquhoun TECHNICAL REPORT SERIES No. CS-TR-1135 January, 2009 TECHNICAL REPORT SERIES No. CS-TR-1135 January, 2009 A BitTorrent-based

More information

Efficient Content Delivery and Low Complexity Codes. Amin Shokrollahi

Efficient Content Delivery and Low Complexity Codes. Amin Shokrollahi Efficient Content Delivery and Low Complexity Codes Amin Shokrollahi Content Goals and Problems TCP/IP, Unicast, and Multicast Solutions based on codes Applications Goal Want to transport data from a transmitter

More information

Best Practice for Creation and Maintenance of a SAS Infrastructure

Best Practice for Creation and Maintenance of a SAS Infrastructure Paper 2501-2015 Best Practice for Creation and Maintenance of a SAS Infrastructure Paul Thomas, ASUP Ltd. ABSTRACT The advantage of using metadata to control and maintain data and access to data on databases,

More information

Applied Algorithm Design Lecture 3

Applied Algorithm Design Lecture 3 Applied Algorithm Design Lecture 3 Pietro Michiardi Eurecom Pietro Michiardi (Eurecom) Applied Algorithm Design Lecture 3 1 / 75 PART I : GREEDY ALGORITHMS Pietro Michiardi (Eurecom) Applied Algorithm

More information

shortcut Tap into learning NOW! Visit for a complete list of Short Cuts. Your Short Cut to Knowledge

shortcut Tap into learning NOW! Visit  for a complete list of Short Cuts. Your Short Cut to Knowledge shortcut Your Short Cut to Knowledge The following is an excerpt from a Short Cut published by one of the Pearson Education imprints. Short Cuts are short, concise, PDF documents designed specifically

More information

ITERATIVE COLLISION RESOLUTION IN WIRELESS NETWORKS

ITERATIVE COLLISION RESOLUTION IN WIRELESS NETWORKS ITERATIVE COLLISION RESOLUTION IN WIRELESS NETWORKS An Undergraduate Research Scholars Thesis by KATHERINE CHRISTINE STUCKMAN Submitted to Honors and Undergraduate Research Texas A&M University in partial

More information

Real-time grid computing for financial applications

Real-time grid computing for financial applications CNR-INFM Democritos and EGRID project E-mail: cozzini@democritos.it Riccardo di Meo, Ezio Corso EGRID project ICTP E-mail: {dimeo,ecorso}@egrid.it We describe the porting of a test case financial application

More information

Nygren, E., Sitaraman, R.K., and Sun, J., "The Akamai Network: A Platform for

Nygren, E., Sitaraman, R.K., and Sun, J., The Akamai Network: A Platform for Akamai Paper Review By Taeju Park and Andrew Quinn Paper Reference Nygren, E., Sitaraman, R.K., and Sun, J., "The Akamai Network: A Platform for High-Performance Internet Applications," Proc. of ACM SIGOPS

More information

Equations of planes in

Equations of planes in Roberto s Notes on Linear Algebra Chapter 6: Lines, planes and other straight objects Section Equations of planes in What you need to know already: What vectors and vector operations are. What linear systems

More information

BitTorrent for Really Selfish Peers T4T Trading over Cycles

BitTorrent for Really Selfish Peers T4T Trading over Cycles Semester Thesis BitTorrent for Really Selfish Peers T4T Trading over Cycles Roger Odermatt oroger@student.ethz.ch Professor: Dr. Roger Wattenhofer Advisor: Raphael Eidenbenz Department of Information Technology

More information

Peer to Peer Networks

Peer to Peer Networks Sungkyunkwan University Peer to Peer Networks Prepared by T. Le-Duc and H. Choo Copyright 2000-2018 Networking Laboratory P2P Applications Traditional P2P applications: for file sharing BitTorrent, Emule

More information

RACS: Extended Version in Java Gary Zibrat gdz4

RACS: Extended Version in Java Gary Zibrat gdz4 RACS: Extended Version in Java Gary Zibrat gdz4 Abstract Cloud storage is becoming increasingly popular and cheap. It is convenient for companies to simply store their data online so that they don t have

More information