Download presentation
Presentation is loading. Please wait.
1
Reliable Networking Systems Software Systems Laboratory Presented by : Iliya Golub Galina Sagdeev Supervisor : Yonatan Kaspi
2
Introduction The goals: Implement a reliable network application of a file sharing network. Implement a reliable network application of a file sharing network. Support both TCP and UDP protocols. Support both TCP and UDP protocols. Support concurrency. Support concurrency.
3
TCP- Transmission control protocol Connection based protocol Reliable flow of data Applications on networked hosts can exchange streams of data using stream sockets. Distinguishes data for multiple connections by concurrent applications running on the same host. Also true for UDP.
4
UDP-User Datagram Protocol Sends independent packets of data, datagrams No guarantees about arrival Not connection based Datagrams may arrive out of order, appear duplicated, or go missing Faster and more efficient Good for time-sensitive application
5
Design
6
GUI The Interface for the client. Connects between the client and the system. Sets client configurations. Holds instance of network manager and activates it.
7
Network Manager Managing the whole network system. Responsible to perform the system tasks and inform the client (GUI) about the progress. Holds and activates the following parts of the system: Events queue and events handler Events queue and events handler Local TCP system Local TCP system Local UDP system Local UDP system Remote TCP system Remote TCP system Remote UDP system Remote UDP system
8
Events Handler Synchronizes the events in the system. Using events queue - thread safe data structure. Preventing race hazards - the classes in the system exchange data by putting events in the queue.
9
RX Receives data using a selector. The selector controls the input of data from various sources instead of using many threads. TCP Receives a stream of data. Receives a stream of data.UDP Receives datagram packets. Receives datagram packets. Responsible to organize the packets in the correct order and re-request missing packets using Timer. Responsible to organize the packets in the correct order and re-request missing packets using Timer.
10
TX Transfers data. TCP Sends a stream of data. Sends a stream of data.UDP Sends datagram packets. Sends datagram packets. Simulate lost of some packets. Simulate lost of some packets.
11
Timer Constant timer Activates every T milliseconds Activates every T milliseconds Requests N packets that haven’t been received yet. Requests N packets that haven’t been received yet. Changing timer Both T and N are changing during the run. Both T and N are changing during the run. If requested packets weren’t received, T is increased and N is decreased. If requested packets weren’t received, T is increased and N is decreased. timeout *= timeIncFactornumPacks /= packsDecFactor If requested packets are received, T is decreased and N is increased. If requested packets are received, T is decreased and N is increased. timeout -= timeDecFactornumPacks += packsIncFactor
12
Summary Expansions: Support multiple systems, currently implements two systems (local & remote). Support multiple systems, currently implements two systems (local & remote). Support initial connection between systems (handshakes, exchanging file lists, etc.). Support initial connection between systems (handshakes, exchanging file lists, etc.). Implement more complicated algorithms for the Timer. Implement more complicated algorithms for the Timer.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.