research2: add raw sockets part + abstract
[swifty.git] / doc / research2 / src / testing.tex
1 The  protocol is a generic multiparty transport protocol. Its mission is to disseminate content among a swarm of peers. 
2 Given a hash, the data is received from whatever source available and data integrity is checked cryptographically with
3 Merkle hash trees. 
4
5 Our main focus when modifying the swift implementation is to have an impact on time performance. With a communication
6 protocol the greatest latency is usually generated by waiting for the results from the network. The multiparty
7 communication model already takes care of this, so the next best thing is to enhance the application time. We are doing
8 this by decreasing the time penalties due to context switches between user space and kernel space. The main idea is to
9 reduce the number of system calls made from user space into the kernel. This implicitly reduces the number of preemption
10 moments.
11
12 Firstly, we have implemented a test suite for every socket system call, which test all possible cases.  This unit tests
13 are made to ensure the code quality, and to validate if the system call respond in the same mode as other similar
14 system call. 
15
16 Secondly, we have implemented a functional tests to validate a simple workflow. For this purpose we have a sender that
17 acts as the seeder and a receiver which have the leecher role. We transfer a small file between this entities.  
18
19 Also we will implement performance tests that will validate our design and implementation. This tests will compare the
20 number of system calls for both implementation (original implementation and our implementation).