Akash
Akash
1. Centralized Directory
2. Query Flooding
3. Exploiting Heterogeneity
1. Centralized Directory
A centralized Directory is somewhat like client-server
architecture in the sense that it maintains a huge central server to provide directory
service. All the peers inform this central server of their IP address and the files they
are making available for sharing. The server queries the peers at regular intervals to
make sure if the peers are still connected or not. So basically, this server maintains
a huge database regarding which file is present at which IP addresses. The first
system which made use of this method was Napster, for Mp3 distribution.
1. Now whenever a requesting peer comes in, it sends its query to the server.
2. Since the server has all the information of its peers, so it returns the IP
addresses of all the peers having the requested file to the peer.
3. Now the file transfer takes place between these two peers.
The major problem with such an architecture is that there is a single point of
failure. If the server crashes, the whole Peer -to-Peer network crashes. Also, since
all the processing is to be done by a single server, so a huge amount of the database
must be maintained and regularly updated.
2. Query Flooding
Unlike the centralized approach, this method makes use of
distributed systems. In this, the peers are supposed to be connected to an overlay
network. It means if a connection/path exists from one peer to another, it is a part
of this overlay network. In this overlay network, peers are called nodes, and the
connection between peers is called an edge between the nodes, thus resulting in a
graph-like structure. Gnutella was the first decentralized peer-to-peer network.
Working of Query Flooding
1. Now when one peer requests for some file, this request is sent to all its
neighboring nodes i.e. to all nodes connected to this node. If those nodes
don’t have the required file, they pass on the query to their neighbors and so
on. This is called query flooding.
2. When the peer with the requested file is found (referred to as query hit), the
query flooding stops and it sends back the file name and file size to the client,
thus following the reverse path.
3. If there are multiple query hits, the client selects from one of these peers.
3. Exploiting Heterogeneity
This P2P architecture makes use of both the above-
discussed systems. It resembles a distributed system like Gnutella because there is
no central server for query processing. But unlike Gnutella, it does not treat all its
peers equally. The peers with higher bandwidth and network connectivity are at a
higher priority and are called group leaders/supernodes. The rest of the peers are
assigned to these supernodes. These supernodes are interconnected and the peers
under these supernodes inform their respective leaders about their connectivity, IP
address, and the files available for sharing.
1. These networks do not involve a large number of nodes, usually less than
12. All the computers in the network store their own data but this data is
accessible by the group.
2. Unlike client-server networks, Peer-to-Peer uses resources and provides
them. This results in additional resources if the number of nodes increases.
It requires specialized software. It allows resource sharing among the
networks.
3. Since the nodes act as clients and servers, there is a constant threat of
attack.
4. Almost all OS today support Peer-to-Peer networks.
2. Blockchain:
The Peer-to-Peer architecture is based on the concept of
decentralization. When a peer-to-peer network is enabled on the
blockchain it helps in the maintenance of a complete replica of the
records ensuring the accuracy of the data at the same time. At the same
time, peer-to-peer networks ensure security also.
3. Direct messaging:
Peer-to-Peer network provides a secure, quick, and
efficient way to communicate. This is possible due to the use of
encryption at both the peers and access to easy messaging tools.
4. Collaboration:
The easy file sharing also helps to build collaboration
among other peers in the network.
6. Content distribution:
In a Peer-to-Peer network, unlined the client-server
system so the clients can both provide and use resources. Thus, the
content serving capacity of the Peer-to-Peer networks can increase as
more users begin to access the content.
7. IP Telephony:
Skype is one good example of a Peer-to-Peer application
in VoIP.
1. Easy to maintain:
The network is easy to maintain because each node is
independent of the other.
2. Less costly:
Since each node acts as a server, therefore the cost of the
central server is saved. Thus, there is no need to buy an expensive server.
3. No network manager:
In a Peer-to-Peer network since each node
manages his or her own computer, thus there is no need for a network
manager.
4. Adding nodes is easy:
Adding, deleting, and repairing nodes in this
network is easy.
5. Less network traffic:
In a Peer-to-Peer network, there is less network
traffic than in a client/ server network.
1. Data is vulnerable:
Because of no central server, data is always vulnerable to
getting lost because of no backup.
2. Less secure:
It becomes difficult to secure the complete network because
each node is independent.
3. Slow performance:
In a peer-to-peer network, each computer is accessed by
other computers in the network which slows down the performance of the
user.
4. Files hard to locate:
In a peer-to-peer network, the files are not centrally
stored, rather they are stored on individual computers which makes it
difficult to locate the files.