Application layer Protocols (M1.4)

 Needs/Principles of Application layer Protocols

#2.1.1 Network Application Architectures

The application architecture is designed by the application developer and dictates how the application is structured over the various end systems. In choosing the application architecture, an application developer will likely draw on one of the two predominant architectural paradigms used in modern network applications: the client-server architecture or the peer-to-peer (P2P) architecture 


In a client-server architecture

  • there is a host, called the server,which services requests from many other hosts, called clients
  • A classic example is the Web application for which an Web server services the requests from browsers running on client hosts. When a Web server receives a request for an object from a client host, it responds by sending the requested object to the client host. 
  • Note that with the client-server architecture, clients do not directly communicate with each other.
  • Another characteristic of the client-server architecture is that the server has a fixed, well-known address, called an IP address.  
  • Some of the better-known applications with a client-server architecture include the Web, FTP, Telnet, and e-mail.  
  • Often in a client-server application, a single-server host is incapable of keeping up with all the requests from clients. 

For example, a popular social-networking site can quickly become overwhelmed if it has only one server handling all of its requests. For this reason, a data center, housing a large number of hosts, is often used to create a powerful virtual server. 

The most popular Internet services—such as search engines (e.g., Google and Bing), Internet commerce (e.g., Amazon and e-Bay), Web-based email (e.g., Gmail and Yahoo Mail), social networking (e.g., Facebook and Twitter)— employ one or more data centers.  

Google has 30 to 50 data centers distributed around the world, which collectively handle search, YouTube, Gmail, and other services.

Client-server and P2P network models | Download Scientific Diagram

Peer to peer architecture is a 

  • type of computer networking architecture in which there is no division or distinction of abilities amidst the various workstations or nodes of a network. 
  • Every section has the exact same responsibilities and can perform the same set of actions. 
  • In P2P each computer can act as both the server and the client as the need demands. 
  • Although P2P has a wide array of applications, its most important one is the ability to distribute content efficiently. 
  • Things that facilitate on-demand delivery of content such as software publication and distribution, streaming and peer casting for multicasting streams, and content delivery networks, all come under this. 
  • Many of today’s most popular and traffic-intensive applications are based on P2P
    architectures. 

These applications include file sharing (e.g., BitTorrent), peer-assisted. download acceleration (e.g., Xunlei), Internet Telephony (e.g., Skype), and IPTV (e.g.,
Kankan and PPstream). 

 We mention that some applications have hybrid architectures, combining both client-server
and P2P elements. For example, for many instant messaging applications, servers are used to track the IP addresses of users, but user-to-user messages are sent directly between user hosts (without passing through intermediate servers).


One of the most compelling features of P2P architectures is their self-scalability.

Challenges 

ISP Friendly. Most residential ISPs (including DSL and cable ISPs) have been dimensioned for “asymmetrical” bandwidth usage, that is, for much mor downstream than upstream traffic. But P2P video streaming and file distribution applications shift upstream traffic from servers to residential ISPs, thereby putting significant stress on the ISPs. Future P2P applications need to be designed so that they are friendly to ISPs.

Security. Because of their highly distributed and open nature, P2P applications can be a challenge to secure.

Incentives. The success of future P2P applications also depends on convincing
users to volunteer bandwidth, storage, and computation resources to the applications, which is the challenge of incentive design.


Difference Between Peer to Peer and Client Server Network - Pediaa.Com

Processes Communicating

Process can be thought of as a program that is running within an  end system. When processes are running on the same end system, they can communicate with each other with interprocess communication, using rules that are governed by the end system’s operating system.  

Processes on two different end systems communicate with each other by exchanging messages across the computer network. A sending process creates and sends messages into the network; a receiving process receives these messages and possibly responds by sending messages back. 

#Client and Server Processes

  • A network application consists of pairs of processes that send messages to each other over a network.  
  • In a P2P file-sharing system, a file is transferred from a process in one peer to a process in another peer, For each pair of communicating processes, we typically label one of the two processes as the client and the other process as the server. 
  • With P2P file sharing, the peer that is downloading the file is labeled as the client, and the peer
    that is uploading the file is labeled as the server.
     
  • You may have observed that in some applications, such as in P2P file sharing, a process can be both a client and a server. Indeed, a process in a P2P file-sharing system can both upload and download files.  

In the context of a communication session between a pair of processes, the process that initiates the communication (that is, initially contacts the other
process at the beginning of the session) is labeled as the client. The process that waits to be contacted to begin the session is the server.
 
 

#The Interface Between the Process and the Computer Network 

A process sends messages into, and receives messages from, the network through a software interface called a socket. A socket is the interface between the application layer and the transport layer within a host. It is also referred to as the Application Programming Interface (API) between the application and the network, since the socket is the programming interface with which network applications are built.  

#Addressing Processes 

In order for a process running on one host to send packets to a process running on another host, the receiving process needs to have an address. To identify the receiving process, two pieces of information need to be specified:
(1) the address of the host
(2) an identifier that specifies the receiving process in the destination host.
In the Internet, the host is identified by its IP address.
IP address is a 32-bit quantity that we can think of as uniquely identifying the host.
In addition to knowing the address of the host to which a message is destined, the
sending process must also identify the receiving process (more specifically, the
receiving socket) running in the host.  A destination port number serves this purpose. Popular applications have been assigned specific port numbers. For example, a Web server is identified by port number 80. A mail server process (using the SMTP protocol) is identified by port number 25.
 

Transport Services Available to Applications

#Reliable Data Transfer- A protocol that provides a guaranteed data delivery service, it is said to provide reliable data transfer. 

#Throughput

#Timing

#Security 

Transport Services Provided by the Internet    

#TCP Services

 Connection-oriented service

Reliable data transfer service

#UDP Services

Application-Layer Protocols

An application-layer protocol defines how an application’s processes, running on different end systems, pass messages to each other. 

In particular, an application-layer protocol defines:
The types of messages exchanged, for example, request messages and response messages
The syntax of the various message types, such as the fields in the message and how the fields are delineated.

The semantics of the fields, that is, the meaning of the information in the fields
Rules for determining when and how a process sends messages and responds to messages.
 

No comments:

Post a Comment

Monk and Inversions

using System; public class Solution { public static void Main () { int T = Convert . ToInt32 ( Console . ReadLine...