Title: CSSE%20593%20Internet%20Applications%20
1CSSE 593 Internet Applications Services
2What are Internet Services?
- What is an internet?
- Network of networks
- What is the Internet?
- A global internet based on the IP protocol
- To what does Internet technology refer?
- Architecture, protocols and services
- Services accessed over the net
3Internet Players
- Users, people who use the applications
- Everyone (mom and pop, kids)
- get something done (hopefully useful)
- Service Designers
- You protocol design and implementation
- Scale, performance, cost, incremental deployment
- Service Providers/middleware
- Administrators and ISPs
- Management, revenue, deployment
- Market/business models for the Internet
- Consumer to consumer (ebay), Business to
consumer(amazon, Orbitz), Business to business
(IBM, ARIBA),Consumer to business (hotjobs,
monster)
4Internet Service
- Simple client/server abstraction
- Client sends a request, and server sends a
response - Informational, transactional in nature
5Evolution of Web Services
- Web 1.0
- Users as readers of content (read-only)
- Web 2.0
- Users create content (group communication)
- Read-write
- E.g. social network sites, blogs, wikis, Youtube
- Web 3.0 ?
- Read, write, execute (in context,
personalization), programs - using semantic web, microformats, natural
language search, data mining, machine learning,
recommendation agents, and artificial
intelligence technologies to improve user
experience - Web 4.0 ?
- Every living/non-living object connected?
6App. Preferences Change over Time
7Internet Users
1. China 179.7 million2. United States 163.3
million3. Japan 60.0 million4. Germany 37.0
million5. United Kingdom 36.7 million6.
France 34.0 million7. India 32.1 million8.
Russia 29.0 million9. Brazil 27.7 million10.
South Korea 27.3 million11. Canada 21.8
million12. Italy 20.8 million13. Spain 17.9
million14. Mexico 12.5 million15. Netherlands
11.8 million
top 15 countries by internet population from
comScore as of Dec. 2008, one billion in total
8Online gaming explodes
9Some interesting statistics
- 46 of Internet users watch an online video once
a week (as of Sept06) - 8 of Internet users downloaded a movie during
the 3Q06 using P2P apps - 60 adult content, 20 TV content, rest is
movies, clips, etc - YouTube stats (March06)
- 50 users are younger than 20 years old
- 60 all videos watched online
- 65,000 new videos uploaded daily
- Total viewing time about 10,000 years!
- YouTube consumed as much bandwidth in 2006 as the
whole Internet did in 2000
10How do (USA) people use the Web?
- Almost all users do the basics (email, Web
browsing) - 50 of users pay bills online
- 25 online job hunting
- 8 upload videos
- 5 publish blogs
- 4 date online
11(No Transcript)
12Some statistics
- The explosive growth in video apps downloads
strains the networks capacity - YouTube today (January 2007) consumes as much
bandwidth as the entire Internet consumed in the
year 2000 - P2P video accounts for 30-40 total traffic in
2007 - Predicted Internet video could soon consume 10
times the Internet current yearly traffic - BitTorrent accounts for as much as 40 of all
worldwide internet traffic (Dec. 2006)
13Whats the Internet nuts and bolts view
- millions of connected computing devices hosts,
end-systems - pcs workstations, servers
- PDAs phones, toasters
- running network apps
- communication links
- fiber, copper, radio, satellite
- routers forward packets (chunks) of data thru
network
14Whats the Internet nuts and bolts view
- protocols control sending, receiving of msgs
- e.g., TCP, IP, HTTP, FTP, PPP
- Internet network of networks
- loosely hierarchical
- public Internet versus private intranet
- Internet standards
- RFC Request for comments
- IETF Internet Engineering Task Force
router
workstation
server
mobile
local ISP
regional ISP
company network
15Whats the Internet a service view
- communication infrastructure enables distributed
applications - WWW, email, games, e-commerce, database., voting,
- more?
- communication services provided
- connectionless
- connection-oriented
16Perspective
- Network users Does the network support the
users applications - Reliability
- Error free service
- Speed of data transfer
- Network designers Cost efficient network design
- Good utilization of network resources
- Cost of building the network
- Types of services to be supported
17Perspective
- Network providers Network administration and
customer service - Maximize Revenue
- Minimize Operations Expenses
- Survivability and Resiliency (Why)
18Whats a protocol?
- human protocols
- whats the time?
- I have a question
- introductions
- specific msgs sent
- specific actions taken when msgs received, or
other events
- network protocols
- machines rather than humans
- all communication activity in Internet governed
by protocols
protocols define format, order of msgs sent and
received among network entities, and actions
taken on msg transmission, receipt
19Whats a protocol?
- a human protocol and a computer network protocol
Hi
TCP connection req.
Hi
20Protocols
- Building blocks of a network architecture
- Each protocol object has two different interfaces
- service interface defines operations on this
protocol - peer-to-peer interface defines messages
exchanged with peer - Term protocol is overloaded
- specification of peer-to-peer interface
- module that implements this interface
21The network edge
- end systems (hosts)
- run application programs
- e.g., WWW, email
- at edge of network
- client/server model
- client host requests, receives service from
server - e.g., WWW client (browser)/ server email
client/server - peer-peer model
- host interaction symmetric
- e.g. teleconferencing, Gnutella, Kazza
22Network edge connection-oriented service
- Goal data transfer between end sys.
- handshaking setup (prepare for) data transfer
ahead of time - Hello, hello back human protocol
- set up state in two communicating hosts
- TCP - Transmission Control Protocol
- Internets connection-oriented service
- TCP service RFC 793
- reliable, in-order byte-stream data transfer
- loss acknowledgements and retransmissions
- flow control
- sender wont overwhelm receiver
- congestion control
- senders slow down sending rate when network
congested
23Network edge connectionless service
- Goal data transfer between end systems
- same as before!
- UDP - User Datagram Protocol RFC 768
Internets connectionless service - unreliable data transfer
- no flow control
- no congestion control
- Apps using TCP
- HTTP (WWW), FTP (file transfer), Telnet (remote
login), SMTP (email) - Apps using UDP
- streaming media, teleconferencing, Internet
telephony
24The Network Core
- mesh of interconnected routers
- the fundamental question how is data transferred
through net? - circuit switching dedicated circuit per call
telephone net - packet-switching data sent thru net in discrete
chunks
25Network Core Circuit Switching
- End-end resources reserved for call
- link bandwidth, switch capacity
- dedicated resources no sharing
- circuit-like (guaranteed) performance
- call setup required
26Cost-Effective Resource Sharing
- Must share (multiplex) network resources among
multiple users. - Common Multiplexing Strategies
- Time-Division Multiplexing (TDM)
- Frequency-Division Multiplexing (FDM) Frequency
band ? bandwidth - Multiplexing multiple logical flows over a single
physical link.
27Network Core Circuit Switching
- network resources (e.g., bandwidth) divided into
pieces - pieces allocated to calls
- resource piece idle if not used by owning call
(no sharing) - dividing link bandwidth into pieces
- frequency division
- time division
28Network Core Packet Switching
- each end-end data stream divided into packets
- user A, B packets share network resources
- each packet uses full link bandwidth
- resources used as needed,
- resource contention
- aggregate resource demand can exceed amount
available - congestion packets queue, wait for link use
- store and forward packets move one hop at a time
- transmit over link
- wait turn at next link
29Network Core Packet Switching
On-demand sharing
10 Mbs Ethernet
C
A
statistical multiplexing
1.5 Mbs
B
queue of packets waiting for output link
45 Mbs
30Network Core Packet Switching
- Packet-switching
- store and forward behavior
31Packet switching versus circuit switching
- Packet switching allows more users to use network!
- 1 Mbit link
- each user
- 100Kbps when active
- active 10 of time
- circuit-switching
- 10 users
- packet switching
- with 35 users, probability gt 10 active less than
.004
N users
1 Mbps link
32Packet switching versus circuit switching
- Is packet switching a slam dunk winner?
- Great for bursty data
- resource sharing
- no call setup
- Excessive congestion packet delay and loss
- protocols needed for reliable data transfer,
congestion control - Q How to provide circuit-like behavior?
- bandwidth guarantees needed for audio/video apps
- still an unsolved problem!
33Packet-switched networks routing
- Goal move packets among routers from source to
destination - well study several path selection algorithms
- datagram network
- destination address determines next hop
- routes may change during session
- analogy driving, asking directions
- virtual circuit network
- each packet carries tag (virtual circuit ID),
tag determines next hop - fixed path determined at call setup time, remains
fixed thru call - routers maintain per-call state
- ATM
34Access networks and physical media
- Q How to connect end systems to edge router?
- residential access nets
- institutional access networks (school, company)
- mobile access networks
- Keep in mind
- bandwidth (bits per second) of access network?
- shared or dedicated?
35Residential access point to point access
- Dialup via modem
- up to 56Kbps direct access to router
(conceptually) - ISDN intergrated services digital network
128Kbps all-digital connect to router - ADSL asymmetric digital subscriber line
- up to 1 Mbps home-to-router
- up to 8 Mbps router-to-home
36Residential access cable modems
- HFC hybrid fiber coax
- asymmetric up to 10Mbps upstream, 1 Mbps
downstream - network of cable and fiber attaches homes to ISP
router - shared access to router among home
- issues congestion, dimensioning
- deployment available via cable companies, e.g.,
MediaOne, Comcast
37Institutional access local area networks
- company/univ local area network (LAN) connects
end system to edge router - Ethernet
- shared or dedicated cable connects end system and
router - 10 Mbs, 100Mbps, Gigabit Ethernet
- deployment institutions, home LANs soon
38Wireless access networks
- shared wireless access network connects end
system to router - wireless LANs
- radio spectrum replaces wire
- e.g., Lucent Wavelan 10 Mbps
- wider-area wireless access
- CDPD wireless access to ISP router via cellular
network (base stations)
39Delay in packet-switched networks
- nodal processing
- check bit errors
- determine output link
- queueing
- time waiting at output link for transmission
- depends on congestion level of router
- packets experience delay on end-to-end path
- four sources of delay at each hop
40Delay in packet-switched networks
- Propagation delay
- d length of physical link
- s propagation speed in medium (2x108 m/sec)
- propagation delay d/s
- Transmission delay
- Rlink bandwidth (bps)
- Lpacket length (bits)
- time to send bits into link L/R
Note s and R are very different quantities!
41- Latency (delay)
- Time it takes to send message from point A to
point B - Example 24 milliseconds (ms)
- Sometimes interested in in round-trip time (RTT)
- Components of latency
- Latency Propagation Transmit Queue Proc.
- Propagation Distance / SpeedOfLight
- Transmit Size / Bandwidth
42Transmission and Propagation Delays
- Propagation delay
- The propagation delay over a link is the time it
takes a bit to travel from on end of the link to
the other - d/s
- Transmission delay
- It is the amount of time it takes to push the
packet onto the link - L/B
- Total latency over the link
- transmission delay propagation delay
43- Delay x Bandwidth Product
- e.g., 100ms RTT and 45Mbps Bandwidth 560KB of
data - We have to view the network as a buffer. This
may have interesting consequences - How much data did the sender transmit before a
response can be received?
Delay
Bandwidth
44Internet protocol stack
- application supporting network applications
- ftp, smtp, http
- transport host-host data transfer
- tcp, udp
- network routing of datagrams from source to
destination - ip, routing protocols
- link data transfer between neighboring network
elements - ppp, ethernet
- physical bits on the wire
45Why layering?
- Dealing with complex systems
- explicit structure allows identification,
relationship of complex systems pieces - layered reference model for discussion
- modularization eases maintenance, updating of
system - change of implementation of layers service
transparent to rest of system - e.g., change in gate procedure doesnt affect
rest of system - layering considered harmful?
46Layering logical communication
- Each layer
- distributed
- entities implement layer functions at each node
- entities perform actions, exchange messages with
peers
47Layering logical communication
- E.g. transport
- take data from app
- add addressing, reliability check info to form
datagram - send datagram to peer
- wait for peer to ack receipt
- analogy post office
transport
transport
48Layering physical communication
49Protocol layering and data
- Each layer takes data from above
- adds header information to create new data unit
- passes new data unit to layer below
source
destination
message
segment
datagram
frame
50Protocol Data Units
- The combination of data from the next higher
layer and control information is referred to as
PDU. - Control Information in the Transport Layer may
include - Destination Service Access Point (DSAP)
- Sequence number
- Error-detection code
51Internet structure network of networks
- roughly hierarchical
- national/international backbone providers (NBPs)
- e.g. BBN/GTE, Sprint, ATT, IBM, UUNet
- interconnect (peer) with each other privately, or
at public Network Access Point (NAPs) - regional ISPs
- connect into NBPs
- local ISP, company
- connect into regional ISPs
regional ISP
NBP B
NBP A
regional ISP
52National Backbone Provider
e.g. BBN/GTE US backbone network
53Applications and application-layer protocols
- Application communicating, distributed processes
- running in network hosts in user space
- exchange messages to implement app
- e.g., email, file transfer, the Web
- Application-layer protocols
- one piece of an app
- define messages exchanged by apps and actions
taken - user services provided by lower layer protocols
54Client-server paradigm
- Typical network app has two pieces client and
server
- Client
- initiates contact with server (speaks first)
- typically requests service from server,
- for Web, client is implemented in browser for
e-mail, in mail reader, e.g., outlook - Server
- provides requested service to client
- e.g., Web server sends requested Web page, mail
server delivers e-mail
55What transport service does an app need?
- Data loss
- some apps (e.g., audio) can tolerate some loss
- other apps (e.g., file transfer, telnet) require
100 reliable data transfer
- Timing
- some apps (e.g., Internet telephony, interactive
games) require low delay to be effective
- Bandwidth
- some apps (e.g., multimedia) require minimum
amount of bandwidth to be effective - other apps (elastic apps) make use of whatever
bandwidth they get
56Transport service requirements of common apps
Time Sensitive no no no yes, 100s msec yes,
few secs yes, 100s msec yes and no
Application file transfer e-mail Web
documents real-time audio/video stored
audio/video interactive games financial apps
Data loss no loss no loss loss-tolerant loss-tole
rant loss-tolerant loss-tolerant no loss
Bandwidth elastic elastic elastic audio
5Kb-1Mb video10Kb-5Mb same as above few Kbps
up elastic
57Services provided by Internet transport protocols
- UDP service
- unreliable data transfer between sending and
receiving process - does not provide connection setup, reliability,
flow control, congestion control, timing, or
bandwidth guarantee - Q why bother? Why is there a UDP?
- TCP service
- connection-oriented setup required between
client, server - reliable transport between sending and receiving
process - flow control sender wont overwhelm receiver
- congestion control throttle sender when network
overloaded - does not providing timing, minimum bandwidth
guarantees
58Internet apps their protocols and transport
protocols
Application layer protocol smtp RFC 821 telnet
RFC 854 http RFC 2068 ftp RFC
959 proprietary (e.g. RealNetworks) NSF proprieta
ry (e.g., Vocaltec)
Underlying transport protocol TCP TCP TCP TCP TCP
or UDP TCP or UDP typically UDP
Application e-mail remote terminal access Web
file transfer streaming multimedia remote file
server Internet telephony
59The Web the http protocol
- http hypertext transfer protocol
- Webs application layer protocol
- client/server model
- client browser that requests, receives,
displays Web objects - server Web server sends objects in response to
requests - http1.0 RFC 1945
- http1.1 RFC 2068
http request
PC running Explorer
http response
http request
Server running NCSA Web server
http response
Mac running Navigator
60The http protocol more
- http is stateless
- server maintains no information about past client
requests
- http TCP transport service
- client initiates TCP connection (creates socket)
to server, port 80 - server accepts TCP connection from client
- http messages (application-layer protocol
messages) exchanged between browser (http client)
and Web server (http server) - TCP connection closed
aside
- Protocols that maintain state are complex!
- past history (state) must be maintained
- if server/client crashes, their views of state
may be inconsistent, must be reconciled
61HTTP Usage
- HTTP is the protocol that supports communication
between web browsers and web servers. - A Web Server is a HTTP server
- Most clients/servers today speak version 1.1, but
1.0 is also in use.
62http 1.0 example
- Suppose user enters URL www.someSchool.edu/someDep
artment/home.index
(contains text, references to 10 jpeg images)
- 1a. http client initiates TCP connection to http
server (process) at www.someSchool.edu. Port 80
is default for http server.
1b. http server at host www.someSchool.edu
waiting for TCP connection at port 80. accepts
connection, notifying client
2. http client sends http request message
(containing URL) into TCP connection socket
3. http server receives request message, forms
response message containing requested object
(someDepartment/home.index), sends message into
socket
time
63http example (cont.)
4. http server closes TCP connection.
- 5. http client receives response message
containing html file, displays html. Parsing
html file, finds 10 referenced jpeg objects
6. Steps 1-5 repeated for each of 10 jpeg objects
time
64Non-persistent and persistent connections
- Persistent
- default for HTTP/1.1
- on same TCP connection server, parses request,
responds, parses new request,.. - Client sends requests for all referenced objects
as soon as it receives base HTML. - Fewer RTTs and less slow start.
- Non-persistent
- HTTP/1.0
- server parses request, responds, and closes TCP
connection - 2 RTTs to fetch each object
- Each object transfer suffers from slow start
But most 1.0 browsers use parallel TCP
connections.
65http request message general format
Entity body is empty for GET, but not for POST
66Web Caches (proxy server)
Goal satisfy client request without involving
origin server
- user sets browser Web accesses via web cache
- client sends all http requests to web cache
- if object at web cache, web cache immediately
returns object in http response - else requests object from origin server, then
returns http response to client
origin server
Proxy server
http request
http request
client
http response
http response
http request
http request
http response
http response
client
origin server
67Why Web Caching?
origin servers
- Assume cache is close to client (e.g., in same
network) - smaller response time cache closer to client
- decrease traffic to distant servers
- link out of institutional/local ISP network often
bottleneck
public Internet
1.5 Mbps access link
institutional network
10 Mbps LAN
institutional cache
68Web Caching Hierarchy
- Hierarchy of caches to serve more population
- ICP (Internet cache protocol) to coordinate web
caches
69DNS Domain Name System
- People many identifiers
- SSN, name, Passport
- Internet hosts, routers
- IP address (32 bit) - used for addressing
datagrams - name, e.g., gaia.cs.umass.edu - used by humans
- Q map between IP addresses and name ?
- Domain Name System
- distributed database implemented in hierarchy of
many name servers - application-layer protocol host, routers, name
servers to communicate to resolve names
(address/name translation) - note core Internet function implemented as
application-layer protocol - complexity at networks edge
70DNS name servers
- no server has all name-to-IP address mappings
- local name servers
- each ISP, company has local (default) name server
- host DNS query first goes to local name server
- authoritative name server
- for a host stores that hosts IP address, name
- can perform name/address translation for that
hosts name
- Why not centralize DNS?
- single point of failure
- traffic volume
- distant centralized database
- Maintenance
- DoS attacks?
- doesnt scale!
71DNS Root name servers
- contacted by local name server that can not
resolve name - root name server
- contacts authoritative name server if name
mapping not known - gets mapping
- returns mapping to local name server
- dozen root name servers worldwide
- 13 root DNS servers replication for security and
reliability - Top-level DNS server org, edu, com, jp,cn, fr, uk
72Simple DNS example
root name server
- host surf.eurecom.fr wants IP address of
gaia.cs.umass.edu - 1. Contacts its local DNS server, dns.eurecom.fr
- 2. dns.eurecom.fr contacts root name server, if
necessary - 3. root name server contacts authoritative name
server, dns.umass.edu, if necessary
2
4
3
5
authorititive name server dns.umass.edu
1
6
requesting host surf.eurecom.fr
gaia.cs.umass.edu
73DNS example
root name server
- Root name server
- may not know authoratiative name server
- may know intermediate name server who to contact
to find authoritative name server
6
2
3
7
5
4
1
8
authoritative name server dns.cs.umass.edu
requesting host surf.eurecom.fr
gaia.cs.umass.edu
74DNS iterated queries
root name server
- recursive query
- puts burden of name resolution on contacted name
server - heavy load?
- iterated query
- contacted server replies with name of server to
contact - I dont know this name, but ask this server
iterated query
2
3
4
7
5
6
1
8
authoritative name server dns.cs.umass.edu
requesting host surf.eurecom.fr
gaia.cs.umass.edu
75DNS caching and updating records
- once (any) name server learns mapping, it caches
mapping - cache entries timeout (disappear) after some time
- update/notify mechanisms under design by IETF
- RFC 2136
- http//www.ietf.org/html.charters/dnsind-charter.h
tml
76DNS records
- DNS distributed db storing resource records (RR)
- TypeCNAME
- name is an alias name for some cannonical (the
real) name - value is cannonical name
- TypeA
- name is hostname
- value is IP address
- TypeNS
- name is domain (e.g. foo.com)
- value is IP address of authoritative name server
for this domain
- TypeMX
- value is hostname of mailserver associated with
name
77DNS records
- For a particular hostname
- If a DNS server is authoritative, it contains
- a Type A record for the hostname
- Otherwise
- Maybe a Type A record for the hostname in cache
- a Type NS record for the domain of the hostname
- a Type A record for the DNS server for that
domain - Host gaia.cs.umass.edu
- (umass.edu, dns.umass.edu, NS)
- (dns.umass.edu, 128.119.40.111, A)
78DNS protocol, messages
- DNS protocol query and repy messages, both with
same message format
- msg header
- identification 16 bit for query, repy to query
uses same - flags
- query or reply
- recursion desired
- recursion available
- reply is authoritative
79DNS protocol, messages
Name, type fields for a query
RRs in reponse to query
records for authoritative servers
additional helpful info that may be used
Try nslookup?
80Mystery How to set up your DNS server?
- You setup a company mynet.com
- Step 1 register your domain name with a
registrar - Provide name and IP address mapping
- Primary authoritative DNS server dns1.mynet.com,
212.212.212.1 - Optional secondary DNS server dns.mynet.com,
212.212.212.2 - Registrar will insert type NS and A records for
you - (mynet.com, dns1.mynet.com, NS)
- (dn1.mynet.com, 212.212.212.1, A)
- Step 2 insert records into your DNS server
- For web server (www.mynet.com, 212.212.212.3,A)
- For mail sever (mail.mynet.com, 212.212.212.4,
MX) - Then, others can access your web server and send
emails