Lec 1 - The University of Sydney

Download Report

Transcript Lec 1 - The University of Sydney

Application Layer
Week 4 – Lecture 1
Internet 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
Variables in Internet service
• Bandwidth
• Latency – delay sensitivity
• Error free – loss tolerance
Application requirements
Application
Loss
Tolerant
Delay
Sensitive
BandWidth
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
Quality 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
QoS 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
QoS 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
IETF 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
World Wide WEB
Application 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
The 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
A 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
Some definitions
• HTML HyperText Mark-up Language describes
how the document is structured with tags or metadata 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
HTTP message contains
• Request or Response statement
• Header containing information about the
client or server
• Data
Data 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
HTTP 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
TCP 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
Statelessness 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
Approaches 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
Cookies – 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
Application 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.
Server APIs
• Server side APIs include:
• CGI Common Gateway Interface) often in UNIX
• Microsoft’s Internet Server API (ISAPI)
• Netscape’s Netscape Server API (NSAPI)
• Server side languages include:
•
•
•
•
•
Java
Perl
Active Server Pages
Microsoft’s Visual Basic Scripting Language
Oracle’s Request Broker
Client 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
• Microsoft’s Jscript
• Java Applets
• Active X objects
Techniques for improving Web
performance
• Caching
• Load balancing
• Content Distribution Networks
Caching
• 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
Caching 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
Caching 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
Load 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
Content 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