Peer-to-peer
(P2P) is an alternative network model to that provided by traditional client-server
architecture. P2P networks use a decentralized model in which each machine,
referred to as a peer, functions as a client with its own layer of server
functionality. A peer plays the role of a client and a server at the same time.
That is, the peer can initiate requests to other peers, and at the same time
respond to incoming requests from other peers on the network. It differs from
the traditional client-server model where a client can only send requests to a
server and then wait for the server’s response.
With a
client-server approach, the performance of the server will deteriorate as the
number of clients requesting services from the server increase. However, in P2P
networks overall network performance actually improves as an increasing number
of peers are added to the network. These peers can organize themselves into groups as they communicate, collaborate and share bandwidth with each
other to complete the tasks at hand. Each peer can upload and download at the
same time, and in a process like this, new peers can join the group while old
peers leave at any time. This dynamic re-organization of group peer members is
transparent to end-users.
Another characteristic of a P2P network is its
capability in terms of fault-tolerance. When a peer goes down or is
disconnected from the network, the P2P application will continue by using other
peers. For example, in a Bit Torrent system, any clients downloading a certain
file are also serving as servers. When a client finds one of the peers is not
responding, it searches for other peers, picks up parts of the file where the
old peer was, and continues the download process. Compared to a client-server
model, where all communication will stop if the server is down, a P2P network
is more fault-tolerant.
No comments:
Post a Comment