Distributed Systems - Clock Synchronization
Clock synchronization is a fundamental building block for many distributed applications. As such, the topic has been widely studied for many years, and several algorithms exist which address different scales, ranging from local area networks (LAN), to wide area networks (WAN). For instance, the Network Time Protocol (NTP), has emerged as a standard de facto for external clock synchronization in both LAN and WAN settings.
In this lesson the basic concepts of clock synchronization will be presented: distinguishing between physical and logical clock synchronization. The most known "physical" clock synchronization algorithms will be analyzed and finally we will present a sketch of a novel clock synchronization algorithm able to work well in Peer-to-Peer Systems.
Distributed Systems - Peer-to-Peer Systems
Peer-to-Peer Systems have a growing interest in research and enterprise applications. In a Peer-to-Peer System the notion of clients and servers does not exist but there are only peer nodes that simultaneously function as clients and servers, sharing resource among each other nodes in the network.
In this lesson the basic concept of P2P systems will be presented: proposing a taxonomy of the existing Peer-to-Peer solutions that distinguishes between Structured and Unstructured Peer-to-Peer System. Two examples, respectively of structured and unstructured network, will be showed. Finally we will analyze the problem of realizing a search of informations in a P2P system.