The document discusses applications and the application layer in computer networks. It provides information on:
- The differences between systems software and applications software, with applications software sitting above systems software.
- The role of the application layer as the top layer of the OSI model, enabling users to access the network and providing services like email and file transfer.
- Common network application architectures including client-server, where clients request services from dedicated servers, and peer-to-peer where nodes directly communicate as peers without servers.
- Transport protocols like TCP and UDP that are available to applications, with TCP providing connection-oriented and reliable data transfer services.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
74 views24 pages
Lecture 5 (Application Layer)
The document discusses applications and the application layer in computer networks. It provides information on:
- The differences between systems software and applications software, with applications software sitting above systems software.
- The role of the application layer as the top layer of the OSI model, enabling users to access the network and providing services like email and file transfer.
- Common network application architectures including client-server, where clients request services from dedicated servers, and peer-to-peer where nodes directly communicate as peers without servers.
- Transport protocols like TCP and UDP that are available to applications, with TCP providing connection-oriented and reliable data transfer services.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24
Computer
Communications and Networks Application Layer week 3 By Hafiz Aamir Hafeez Applications
A program or group of programs designed for end users. Software can
be divided into two general classes: systems software and applications software. Systems software consists of low-level programs that interact with the computer at a very basic level. This includes operating systems, compilers, and utilities for managing computer resources. In contrast, applications software (also called end-user programs) includes database programs, word processors, and spreadsheets for example. Figuratively speaking, applications software sits on top of systems software because it is unable to run without the operating system and system utilities. Application layer The application layer is the seventh level of the seven layer OSI model. It’s the “highest layer” of the OSI model. The application layer enables the user, whether human or software, to access the network. it provides user interfaces and support for services such as electronic mail, remote file access and transfer, shared database management, and other types of distributed information services. This layer is responsible for providing service to the users. Application Layer
This is the layer at which
communication partners are identified, quality of service is identified, user authentication and privacy are considered, and any constraints on data syntax are identified. (This layer is not the application itself, although some applications may perform application layer functions.) Principles of Network Application • Electric Mail • The Web • Instant messaging • Login into a remote computer • P2P file sharing • File transfer between two accounts on two computers • Multi-user networked games • Streaming stored video clips • Internet phone • Real-time video conferencing • At the core of network application development is writing programs that run on different end systems and communicate with each other over the network. In the Web application there are two distinct programs that communicate with each other: the browser program running in the user's host; and the Web server program running in the Web server host. Principles of Network Application
• Communication for a network
application takes place between end systems at the application layer • When developing your new application, you need to write software that will run on multiple machines. Importantly, you do not need ot write software that runs on network- core devices, such as routers or Ethernet switches. Network Application Architectures The application architecture is designed by the application developer and dictates how the application is organized over the various end systems. In choosing the application architecture, an application developer will likely draw on one of the two predominant architectures used in modern network applications, The client-server architecture The P2P architecture Network Application Architectures (client-server architecture) In a client-server architecture, there is an always-on host, called the server, which services requests from many other hosts, called clients. A classic example is the Web application for which an always-on Web server services 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. for example, in the Web application, two browsers do not directly communicate. Network Application Architectures (client-server architecture) Another characteristic of the client-server architecture is that the server has a fixed, well-known address, called an IP address. Because the server has a fixed, well-known address, and because the server is always on, a client can always contact the server by sending a packet to the server’s 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 centre, housing a large number of hosts, is often used to create a powerful virtual server. Network Application Architectures (P2P architecture) In a P2P architecture, there is minimal (or no) reliance on dedicated servers in data centres. Instead the application exploits direct communication between pairs of intermittently connected hosts, called peers. The peers are not owned by the service provider, but are instead desktops and laptops controlled by users, with most of the peers residing in homes, universities, and offices. Because the peers communicate without passing through a dedicated server, the architecture is called peer-to-peer. Many of today’s most popular and traffic-intensive applications are based on P2P architectures. Network Application Architectures (P2P architecture) These applications include file sharing (e.g., BitTorrent), Internet Telephony (e.g., Skype), and IPTV. 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. For example, in a P2P file-sharing application, although each peer generates workload by requesting files, each peer also adds service capacity to the system by distributing files to other peers. P2P architectures are also cost effective, since they normally don’t require significant server infrastructure and server bandwidth (in contrast with clients-server designs with data centres). Network Application Architectures (P2P architecture) future P2P applications face three major challenges: ISP Friendly. Most residential ISPs (including DSL and cable ISPs) have been dimensioned for “asymmetrical” bandwidth usage, that is, for much more 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 Transport Services Available to Applications A socket is the interface between the application process and the transport- layer protocol. The application at the sending side pushes messages through the door. At the other side of the door, the transport-layer protocol has the responsibility of getting the message to the door at the receiving process. Reliable Data Transfer: Some applications require fully reliable data transfer, that is, no data loss. In particular, a loss of file data, or data in a financial transaction, can have devastating consequences. Other loss- tolerant applications, most notably multimedia applications such as real- time audio/video or stored audio/video, can tolerate some amount of data loss. In these multimedia applications, lost data might result in a small glitch in the played-out audio. video-not a crucial impairment. The effects of such loss on application quality, and actual amount of tolerable packet loss, will depend strongly on the application and the coding scheme used. Transport Services Available to Applications Bandwidth: Some applications must be able to transmit data at a certain rate in order to be effective. While bandwidth-sensitive applications require a given amount of bandwidth, elastic applications can make use of as much or as little bandwidth as happens to be available. Timing: The final service requirement is that of timing. Interactive real-time applications require thigt timing constraints on data delivery in order to be effective. For non-real-time applications, lower delay is always preferable to higher delay, but no tight constraint is placed on the end-to-end delays Security: A Transport protocol can provide an application with one or more security services. For example, in the sending host, a transport protocol can encrypt all data transmitted by the sending process, and in the receiving host, the transport-layer protocol can decrypt the data before delivering the data to the receiving process. Transport Services Provided by the Internet
The Internet (and, more generally,
TCP/IP networks) makes two transport protocols available to applications, UDP and TCP. When you (as an application developer) create a new network application for the Internet, one of the first decisions you have to make is whether to use UDP or TCP. Each of these protocols offers a different set of services to the invoking applications. Figure showing the service requirements for some selected applications. TCP Services
The TCP service model includes a connection-oriented service and a reliable
data transfer service. When an application invokes TCP as its transport protocol, the application receives both of these services from TCP. Connection-oriented service. TCP has the client and server exchange transport layer control information with each other before the application- level messages begin to flow. This so-called handshaking procedure alerts the client and server, allowing them to prepare for an onslaught of packets. After the handshaking phase, a TCP connection is said to exist between the sockets of the two processes. The connection is a full-duplex connection in that the two processes can send messages to each other over the connection at the same time. When the application finishes sending messages, it must tear down the connection. TCP Services
Reliable data transfer service. The communicating processes can rely
on TCP to deliver all data sent without error and in the proper order. When one side of the application passes a stream of bytes into a socket, it can count on TCP to deliver the same stream of bytes to the receiving socket, with no missing or duplicate bytes. TCP also includes a congestion-control mechanism, a service for the general welfare of the Internet rather than for the direct benefit of the communicating processes. The TCP congestion-control mechanism throttles a sending process (client or server) when the network is congested between sender and receiver. UDP Services
UDP is a no-frills, lightweight transport protocol, providing minimal services.
UDP is connectionless, so there is no handshaking before the two processes start to communicate. UDP provides an unreliable data transfer service—that is, when a process sends a message into a UDP socket, UDP provides no guarantee that the message will ever reach the receiving process. Furthermore, messages that do arrive at the receiving process may arrive out of order. UDP does not include a congestion-control mechanism, so the sending side of UDP can pump data into the layer below (the network layer) at any rate it pleases. (Note, however, that the actual end-to-end throughput may be less than this rate due to the limited transmission capacity of intervening links or due to congestion). Application-layer Protocol 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 Application-layer Protocol Application-layer Protocol
FTP (File Transfer Protocol) is File Transfer Protocol.
It used to exchange files on the internet. To enable the data transfer FTP uses TCP/IP, FTP is most commonly used to upload and download files from the internet. FTP can be invoked from the command prompt or some graphical user interface. FTP also allows to update (delete, rename, move, and copy) files at a server. Dynamic Host Configuration Protocol (DHCP) is used assigning IP addresses to computers in a network. • The IP addresses are assigned dynamically. Application-layer Protocol Certainly, using DHCP, the computer will have a different IP address every time it is connected to the network. In some cases the IP address may change even when the computer is in network. This means that DHCP leases out the IP address to the computer for sometime. Clear advantage of DHCP is that the software can be used to manage IP address rather than the administrator. HTTP The Hypertext Transfer Protocol (HTTP) is used to access the data on WWW(World Wide Web). The functions of HTTP are the combination of FTP (File Transfer Protocol) and SMTP (Simple Mail Transfer Protocol). Application-layer Protocol HTTP is similar to FTP, because it uses only one TCP connection (data is transferred between Client and Sever). In SMTP, the messages are stored and then forwarded to the destination, but the HTTP messages are delivered immediately. Telnet It is an application layer protocol, which can be used on the internet or LAN(Local Area Network). It provides a bi-directional interactive text oriented communication service by using virtual terminal connection. Telnet is basically a client server protocol, which is based on a reliable connection- oriented transport. SMTP (Simple Mail Transport Protocol) It is an internet standard for e-mail Transmission. SMTP connections are secured with SSL (Secure Socket Layer). In SMTP, the messages are stored and then forwarded to the destination.