Application Layer Week 4 – Lecture 1. Internet Architecture Transport layer – TCP, UDP Network...
-
date post
21-Dec-2015 -
Category
Documents
-
view
226 -
download
3
Transcript of Application Layer Week 4 – Lecture 1. Internet Architecture Transport layer – TCP, UDP Network...
Internet Architecture
Transport layer – TCP, UDP
Network layer - IP
Data link & Physical layers – the territory of the LANs/Telcos/ISPs
IETF
ITUIEEE
Application layer – HTTP, SMTP etcW3C
Variables in Internet service
• Bandwidth
• Latency – delay sensitivity
• Error free – loss tolerance
Application 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
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
Data link and Physical layers – Ethernet, Frame Relay, ATM, PPP
Transport and Network layers – TCP/IP
Application Layer – The Web – HTTP The Application layerHTML The document mark-up languageBrowser – Netscape Navigator, Internet ExplorerWeb server – Apache, Microsoft Internet Information server
Netscape server
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 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
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
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