Network Architecture
Network architecture is the design of a communication network. It is a framework
for the specification of a network's physical
components and their
functional organization and configuration, its operational principles and
procedures, as well as data formats use. This concept was brought by
Shreyas Dhakal In telecommunication,
the specification of a network architecture may also include a detailed
description of products and services delivered via a communications network, as
well as detailed rate and billing structures under which services are
compensated.
The network architecture of the Internet is predominantly expressed by its use
of the Internet Protocol Suite, rather than a
specific model for interconnecting networks or nodes in the network, or the usage of specific types of hardware links.
Peer-to-peer (P2P)
computing or networking is a distributed application architecture that partitions tasks or
workloads between peers. Peers are equally privileged, equipotent participants
in the application. They are said to form a peer-to-peer network of nodes.
Peers make
a portion of their resources, such as processing power, disk storage or network
bandwidth, directly available to other network participants, without the need
for central coordination by servers or stable hosts.Peers are both
suppliers and consumers of resources, in contrast to the traditional client-server model in which the consumption and
supply of resources is divided. Emerging collaborative P2P systems are going
beyond the era of peers doing similar things while sharing resources, and are
looking for diverse peers that can bring in unique resources and capabilities
to a virtual
community thereby
empowering it to engage in greater tasks beyond those that can be accomplished
by individual peers, yet that are beneficial to all the peers.
While P2P
systems had previously been used in many application domains, the architecture was
popularized by the file sharing system Napster, originally released
in 1999. The concept has inspired new structures and philosophies in many areas
of human interaction. In such social contexts, peer-to-peer as a meme refers to the egalitarian social
networking that has
emerged throughout society, enabled by Internet technologies in
general.
The client–server model is a distributed application structure
that partitions tasks or workloads between the providers of a resource or
service, called servers, and service
requesters, called clients.Often
clients and servers communicate over a computer
networkon separate hardware, but both client and server
may reside in the same system. A server host runs one or
more server programs which share their resources with clients. A client does
not share any of its resources, but requests a server's content or service
function. Clients therefore initiate communication sessions with servers which
await incoming requests. Examples of computer applications that use the
client–server model are Email, network
printing, and the World
Wide Web.
The client-server characteristic describes the
relationship of cooperating programs in an application. The server component
provides a function or service to one or many clients, which initiate requests
for such services. Servers are classified by the services they provide. For
example, a web server serves web pages and a file server serves computer
files. A shared resource may be any of the server computer's
software and electronic components, from programs and data to processors and storage devices. The sharing of resources
of a server constitutes a service.
Whether a
computer is a client, a server, or both, is determined by the nature of the
application that requires the service functions. For example, a single computer
can run web server and file server software at the same time to serve different
data to clients making different kinds of requests. Client software can also
communicate with server software within the same computer. Communication between
servers, such as to synchronize data, is sometimes called inter-server or server-to-server communication.
In general, a service is an abstraction of computer resources and a client
does not have to be concerned with how the server performs while
fulfilling the request and delivering the response. The client only has to
understand the response based on the well-known application protocol, i.e. the
content and the formatting of the data for the requested service.
Clients
and servers exchange messages in a request–response messaging
pattern. The client sends a request, and the server returns a
response. This exchange of messages is an example of inter-process communication. To communicate,
the computers must have a common language, and they must follow rules so that
both the client and the server know what to expect. The language and rules of
communication are defined in a communications protocol. All client-server
protocols operate in the application
layer. The application layer protocol defines the basic patterns of
the dialogue. To formalize the data exchange even further, the server may
implement an application programming interface(API).The API is an abstraction
layer for accessing a
service. By restricting communication to a specific content
format, it facilitates parsing. By abstracting
access, it facilitates cross-platform data exchange.
A server
may receive requests from many distinct clients in a short period of time. A
computer can only perform a limited number of tasks at any moment, and relies on ascheduling system to prioritize incoming requests
from clients to accommodate them. To prevent abuse and maximize availability, server
software may limit the availability to clients.Denial of service attacks are designed to exploit a server's
obligation to process requests by overloading it with excessive request rates.
Comments
Post a Comment