Nowadays the significance of the extension of services with huge amount of data transfer is increasing. One part of this is characterized by an information source and more clients, for example internet televisions, file sharing systems. Users have more and more serious expectations of the system being quick, reliable, flexible and in addition having the lowest cost possible.
Solutions based on various architectures are available for this challenge. Against the client-server layout following the traditional design patterns constitutions based on the so-called peer-to-peer set-up can show numerous advantages. A system structured by a distributed hash table (DHT), called Kademlia, is built on the latter. It has the strength of being robust and has low usage of resources which makes it good for being the ground of a system providing a multicast function.
In my thesis I aimed to build a distributed system that is capable of spreading data between nodes. I designed the multicast service using the structure built on Kademlia’s binary tree, and then confirmed the correctness of the operation with analitical reasoning. The system, that I had verified theoretically, was realized by expanding the Entangled Kademlia-implementation in Python language. During the implementation I used asynchron programming techniques to achieve better running speed.
I have applied the complete program on a network of 100 virtual machines. In the course of testing, I paid special attention on monitoring system reliability. Moreover, I compared my solution to data forwarding methods that use different approaches. I have performed measurements and evaluated their results with the help of automatized techniques, based on package traffic and logs.
By analyzing the results I discovered that the tested system did not meet the expectations of reliability because of the located incompletions of the received implementation. On the other hand further analysis showed that it is more scalable than its rivals, and it produced better performance during relaying large quantity of data compared to other sending strategies. I used the results and conclusions to draw up the directions of further development of the method.