Title: Application Layer
1Application Layer
2Internet Architecture
Application layer HTTP, SMTP etc
W3C
Transport layer TCP, UDP
IETF
Network layer - IP
Data link Physical layers the territory of
the LANs/Telcos/ISPs
ITU IEEE
3Variables in Internet service
- Bandwidth
- Latency delay sensitivity
- Error free loss tolerance
4Application requirements
Application Loss Tolerant Delay Sensitive Band- Width
Web No No Medium
E-Mail No No Low
Video streaming Some Some High
Telephone calls Some Yes Low
Video conferencing Some Yes Medium/high
5Quality of Service
- One drawback with the Internet is that it is
democratic, and all packets are treated as
important as any other. - It provides best effort service
- IPv4 has no mechanism to provide priority
- This is needed for time critical applications
such as telephony, real time conferencing and
high performance transaction processing - QoS aims for a predictable and specifiable
bandwidth and latency
6QoS the key to one network
- When packet switched networks can offer the QoS
of switched circuits, then all major users will
stop having two networks - Service providers are aware of this
- The network must be able to differentiate between
delay sensitive and delay insensitive applications
7QoS approaches
- The ability to request and receive resource
reservation (Buffers Bandwidth) - Prioritisation where network traffic is
classified and priority given according to
bandwidth management policy - These features could be applied to
- An individual data stream
- In aggregate, to flows of a particular type
8(No Transcript)
9IETF is working on
- Developing QoS protocols
- Integrated Services IntServ - Resource
Reservation Protocol (RSVP) - Guaranteed Quality of Service
- Controlled load network service
- Differentiated Services (DiffServ) Coarse grained
and simple way to prioritise services - Defining classes of service similar to ATM
traffic classes
10World Wide WEB
11Application Layer The Web HTTP The
Application layer HTML The document mark-up
language Browser Netscape Navigator, Internet
Explorer Web server Apache, Microsoft
Internet Information server Netscape server
Transport and Network layers TCP/IP
Data link and Physical layers Ethernet, Frame
Relay, ATM, PPP
12The Web is an application
- To many people The Internet and The Web are
synonymous - The Web is an application that sits at the
application level of the Internet - But is is the biggest, and therefore the most
important to most people - But theoretically it could run over different
Transport Network protocols
13A little History
- Tim Berners-Lees from CERN in Switzerland is
credited with the invention of the Web in 1989 - He and his colleagues developed the first
versions of a Browser, Web server, HTML and HTTP - Using Hyper-Text work done by Ted Neilson
- Marc Andreeson at the National Center for
Supercomputing Applications at the University of
Illinois developed the first GUI browser, known
as Mosaic. If you look at the about Internet
Explorer you will see that this work is still
acknowledged - Andreeson and a colleague then started Netscape
in 1994
14Some definitions
- HTML HyperText Mark-up Language describes how the
document is structured with tags or meta-data
imbedded in the document. The Browser then uses
that meta-data to format the document - HTTP is the application level protocol or
service, for establishing connections and
transmitting messages, between the Browser client
and the Web server
15HTTP message contains
- Request or Response statement
- Header containing information about the client or
server - Data
16Data formats
- The header contains a field specifying the MIME
type (Multipurpose Internet Mail Extension). This
was a mail standard that has been adopted by the
Web. - Browsers can interpret some MIME types natively
HTML, ASCII, GIF, JPEG etc - For others a plug-in or helper application is
required - The browser checks the registry to find the
application registered for that type
17HTTP Version
- HTTP Version 1.0 had been used until 1999
- The problem was that if a document contained 10
embedded graphics then a separate connection and
exchange was required for each. - Version 1.1 introduced in 1999 allowed the
connection to remain open until all were sent - This version has been implemented in current
versions of IE and Netscape browsers. - There are still problems in 1.1 but little active
work is underway
18TCP Connections
- HTTP/1.0 uses non-persistent connections but
objects can be requested in parallel - Each connection has a cost handshaking,
allocation of buffers and variable, slow start - HTTP/1.1 uses persistent connections with
pipelining as the default - Persistent connections are dropped on a time out
19Statelessness in HTTP
- HTTP is a stateless protocol designed to be
quick - When a resource has been sent, the server keeps
no record of the exchange, so that if a second
request is made by the same client, it is as if
this was first contact with that client - This is not satisfactory for
- complex transactions, say completing a multi-page
form - Access requiring identification authentication
20Approaches to keeping track of state in HTTP
- Cookies small strings of text held in the
clients memory or on disk and communicated
invisibly between the client and the server - Hidden fields in an HTML form which are not
visible but move back and forward with the form
and enabling the server to know the state of the
transaction - Writing complex URLs containing various
parameters used by search engines, allowing the
user to request the nest block of data
21Cookies some concerns
- Look in the cookies directory under windows and
you will find hundreds of them - They are associated with a particular version of
a browser so will be of no use when the browser
is upgraded - Some security privacy concerns
- You do not know what is being stored
- Can be used to track your behaviour over a number
of sites and then be associated with your identity
22Application Programming Interfaces
- Programming can be invoked at both the server and
client side. - Servers can invoke programs and pass the results
back in an HTML page - They can be simple scripts or complex programs.
23Server APIs
- Server side APIs include
- CGI Common Gateway Interface) often in UNIX
- Microsofts Internet Server API (ISAPI)
- Netscapes Netscape Server API (NSAPI)
- Server side languages include
- Java
- Perl
- Active Server Pages
- Microsofts Visual Basic Scripting Language
- Oracles Request Broker
24(No Transcript)
25Client side languages
- In addition to browsers using plug-ins or helper
applications, Web browsers can also execute
interpreted programs usually called scripts - These scripts are theoretically platform
independent but the browser must have a virtual
machine with which to run the language. Together
they provide Dynamic HTML - Examples of scripting languages are
- JavaScript
- Microsofts Jscript
- Java Applets
- Active X objects
26Techniques for improving Web performance
- Caching
- Load balancing
- Content Distribution Networks
27Caching
- Initially implemented near the client in a proxy
server operated by the organisation all
requests are first directed at the proxy server.
If it cannot supply, then the request is passed
on to the target server. - Works on the basis that similar users frequently
access the same pages between 20-70 of
requests can be satisfied this way, reducing
bandwidth on the WAN
28Caching Cont.
- Dynamically created pages cannot be cached
- The risk of out-of-date information is reduced by
time stamping the page with an expiry time when
it must be refreshed
29Caching Services
- Caching now provided by service providers that
maintain an array of cache servers - Akamii has 2000 servers in 40 countries. The site
owners decide which pages to be cached - NLANR is another with a hierachy of backbone and
regional caches - One cache can obtain an object from another cache
using ICP (Internet Caching Protocol) - Large ISPs serving low bandwidth clients provide
this service - Caches are being developed to handle streaming
video and audio eventually supplying on demand
music, TV and movies over the Internet
30Load Balancing
- This enables groups of servers to service
incoming requests - The request is sent to the server with the lowest
load - Cookies can be used to identify high priority
clients and route their request accordingly - We saw earlier how DNS can be used to provide
simple load balancing
31Content Distribution Networks
- This takes load balancing one stage further by
distributing the servers geographically closer to
the users. - This
- Reduces network hops
- Increases overall resilience
- Increases scalability