E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
1
EE 586 Communication andSwitching Networks
Lecture 8
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-2
Chapter 2: outline
Syllabus for this chapter
2.1 Principles
2.2 Web and HTTP
2.5. DNS
2.5 Socket Programming
2.6 P2P applications
underline_base
(modified by Cheung for EE586; based on K&R original)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-3
User-server state: cookies
Many Web sites use cookies
four components:
1) cookie header line ofHTTP response message
2) cookie header line in nextHTTP request message
3) cookie file kept on usershost, managed by usersbrowser
4) back-end database at Website
example:
Susan always access Internetfrom PC
visits specific e-commercesite for first time
when initial HTTP requestsarrives at site, site creates:
unique ID
entry in backenddatabase for ID
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
underline_base
Cookies: keeping state (cont.)
client
server
usual http response msg
usual http response msg
cookie file
one week later:
usual http request msg
cookie: 1678
cookie-
specific
action
access
ebay 8734
usual http request msg
Amazon server
creates ID
1678 for user
create
    entry
usual http response
set-cookie: 1678
ebay 8734
amazon 1678
usual http request msg
cookie: 1678
cookie-
specific
action
access
ebay 8734
amazon 1678
backend
database
desktop_computer_stylized_medium
2-4
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-5
underline_base
Cookies (continued)
how cookies are used:
authorization
shopping carts
recommendations
user session state (Webe-mail)
cookies and privacy:
cookies permit sites tolearn a lot about you
you may supply name ande-mail to sites
aside
how to keep state:
protocol endpoints: maintain state atsender/receiver over multipletransactions
cookies: http messages carry state
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Web caches (proxy server)
2-6
desktop_computer_stylized_medium
desktop_computer_stylized_medium
underline_base
user sets browser: Webaccesses via  cache
browser sends all HTTPrequests to cache
object in cache: cachereturns object
else cache requestsobject from originserver, then returnsobject to client
goal: satisfy client request without involving origin server
client
proxy
server
client
HTTP request
HTTP response
HTTP request
HTTP request
origin
server
origin
server
HTTP response
HTTP response
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-7
underline_base
More about Web caching
cache acts as bothclient and server
server for originalrequesting client
client to origin server
typically cache isinstalled by ISP(university, company,residential ISP)
why Web caching?
reduce response timefor client request
reduce traffic on aninstitutions access link
Internet dense withcaches: enables poorcontent providers toeffectively delivercontent (so too doesP2P file sharing)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-8
underline_base
Caching example:
origin
servers
public
 Internet
institutional
network
1 Gbps LAN
1.54 Mbps
access link
assumptions:
LAN: 1 Gbps
access link rate: 1.54 Mbps
RTT from institutional routerto any origin server: 2 sec
avg object size: 100K bits
avg request rate :15/sec
avg data rate : 1.50 Mbps
consequences:
LAN utilization: 0.15%
access link utilization = 97%
total delay   = Internet delay +access delay + LAN delay
     =  2 sec + minutes + usecs
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
assumptions:
LAN: 1 Gbps
access link rate: 1.54 Mbps
RTT from institutional routerto any origin server: 2 sec
avg object size: 100K bits
avg request rate :15/sec
avg data rate : 1.50 Mbps
consequences:
LAN utilization: 0.15%
access link utilization = 97%
total delay   = Internet delay +access delay + LAN delay
     =  2 sec + minutes + usecs
2-9
underline_base
Caching example: fatter access link
origin
servers
1.54 Mbps
access link
154 Mbps
154 Mbps
msecs
Cost: increased access linkspeed (not cheap!)
public
 Internet
institutional
network
1 Gbps LAN
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
<1%
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
institutional
network
1 Gbps LAN
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
2-10
underline_base
Caching example: install local cache
origin
servers
1.54 Mbps
access link
local web
cache
?
?
How to compute link
utilization, delay?
Cost: web cache (cheap!)
public
 Internet
assumptions:
LAN: 1 Gbps
access link rate: 1.54 Mbps
RTT from institutional routerto any origin server: 2 sec
avg object size: 100K bits
avg request rate :15/sec
avg data rate : 1.50 Mbps
consequences:
LAN utilization =
access link utilization =
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-11
underline_base
Caching example: install local cache
Calculating access linkutilization, delay with cache:
suppose cache hit rate is 0.4
40% requests satisfied at cache,60% requests satisfied at origin
 
origin
servers
1.54 Mbps
access link
access link utilization:
60% of requests use access link
data rate to browsers over accesslink = 0.6*1.50 Mbps = .9 Mbps
utilization = 0.9/1.54 = .58
total delay
= 0.6 * (delay from origin servers) +0.4* (delay when satisfied at cache)
= 0.6 (2.01) + 0.4 (~msecs)
= ~ 1.2 secs
less than with 154 Mbps link (andcheaper too!)
 
public
 Internet
institutional
network
1 Gbps LAN
desktop_computer_stylized_medium
desktop_computer_stylized_medium
desktop_computer_stylized_medium
local web
cache
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
12
DNS: Domain Name System
Implementations
distributed databaseimplemented in hierarchy ofmany name servers
application-layer protocol host,routers, name servers tocommunicate to resolvenames (address/nametranslation)
complexity at network’s“edge”
(modified by Cheung for EE586; based on K&R original)
DNS services
hostname to IP addresstranslation
host aliasing
canonical, alias names
mail server aliasing
load distribution
replicated Webservers: many IPaddresses correspondto one name
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-13
Root DNS Servers
com DNS servers
org DNS servers
edu DNS servers
poly.edu
DNS servers
umass.edu
DNS servers
yahoo.com
DNS servers
amazon.com
DNS servers
pbs.org
DNS servers
DNS: a distributed, hierarchical database
client wants IP for www.amazon.com; 1st approx:
client queries root server to find com DNS server
client queries .com DNS server to get amazon.com DNS server
client queries amazon.com DNS server to get  IP address forwww.amazon.com
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-14
DNS: root name servers
contacted by local name server that can not resolve name
root name server:
contacts TLD/authoritative name server if name mapping notknown
gets mapping
returns mapping to local name server
    13 root nameserversworldwide
worldf
a. Verisign, Los Angeles CA
    (5 other sites)
b. USC-ISI Marina del Rey, CA
l. ICANN Los Angeles, CA
   (41 other sites)
e. NASA Mt View, CA
f. Internet Software C.
Palo Alto, CA (and 48 othersites)
i. Netnod, Stockholm (37 other sites)
k. RIPE London (17 other sites)
m. WIDE Tokyo
(5 other sites)
c. Cogent, Herndon, VA (5 other sites)
d. U Maryland College Park, MD
h. ARL Aberdeen, MD
j. Verisign, Dulles VA (69 other sites )
underline_base
g. US DoD Columbus,OH (5 other sites)
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-15
TLD, authoritative servers
top-level domain (TLD) servers:
responsible for com, org, net, edu, aero, jobs, museums,and all top-level country domains, e.g.: uk, fr, ca, jp
Network Solutions maintains servers for .com TLD
Educause for .edu TLD
authoritative DNS servers:
organizations own DNS server(s), providingauthoritative hostname to IP mappings for organizationsnamed hosts
can be maintained by organization or service provider
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-16
Local DNS name server
does not strictly belong to hierarchy
each ISP (residential ISP, company, university) hasone
also called default name server
when host makes DNS query, query is sent to itslocal DNS server
has local cache of recent name-to-address translationpairs (but may be out of date!)
acts as proxy, forwards query into hierarchy
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-17
underline_base
DNS: caching, updating records
once (any) name server learns mapping, it cachesmapping
cache entries timeout (disappear) after some time (TTL)
TLD servers typically cached in local name servers
thus root name servers not often visited
cached entries may be out-of-date (best effortname-to-address translation!)
if name host changes IP address, may not be knownInternet-wide until all TTLs expire
update/notify mechanisms proposed IETF standard
RFC 2136
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-18
underline_base
requesting host
cis.poly.edu
gaia.cs.umass.edu
root DNS server
local DNS server
dns.poly.edu
1
2
3
4
5
6
authoritative DNS server
dns.cs.umass.edu
7
8
TLD DNS server
DNS nameresolution example
host at cis.poly.eduwants IP address forgaia.cs.umass.edu
iterated query:
contacted serverreplies with name ofserver to contact
I dont know thisname, but ask thisserver
desktop_computer_stylized_medium
desktop_computer_stylized_medium
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-19
4
5
6
3
recursive query:
puts burden of nameresolution oncontacted nameserver
heavy load at upperlevels of hierarchy?
requesting host
cis.poly.edu
gaia.cs.umass.edu
root DNS server
local DNS server
dns.poly.edu
1
2
7
authoritative DNS server
dns.cs.umass.edu
8
underline_base
DNS nameresolution example
TLD DNS
server
desktop_computer_stylized_medium
desktop_computer_stylized_medium
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-20
DNS records
DNS: distributed db storing resource records (RR)
type=NS
name is domain (e.g.,foo.com)
value is hostname ofauthoritative nameserver for this domain
RR format: (name, value, type, ttl)
type=A
name is hostname
value is IP address
type=CNAME
name is alias name for somecanonical (the real) name
www.ibm.com is reallyservereast.backup2.ibm.com
value is canonical name
type=MX
value is name of mailserverassociated with name
underline_base
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-21
underline_base
DNS protocol, messages
query and reply messages, both with same messageformat
msg header
identification: 16 bit #for query, reply to queryuses same #
flags:
query or reply
recursion desired
recursion available
reply is authoritative
identification
flags
# questions
questions (variable # of questions)
# additional RRs
# authority RRs
# answer RRs
answers (variable # of RRs)
authority (variable # of RRs)
additional info (variable # of RRs)
2 bytes
2 bytes
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-22
name, type fields
 for a query
RRs in response
to query
records for
authoritative servers
additional helpful
info that may be used
identification
flags
# questions
questions (variable # of questions)
# additional RRs
# authority RRs
# answer RRs
answers (variable # of RRs)
authority (variable # of RRs)
additional info (variable # of RRs)
underline_base
DNS protocol, messages
2 bytes
2 bytes
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
Application Layer
2-23
underline_base
Inserting records into DNS
example: new startup Network Utopia
register name networkuptopia.com at DNS registrar(e.g., Network Solutions)
provide names, IP addresses of authoritative name server(primary and secondary)
registrar inserts two RRs into .com TLD server:(networkutopia.com, dns1.networkutopia.com, NS)
  (dns1.networkutopia.com, 212.212.212.1, A)
create authoritative server type A record forwww.networkuptopia.com; type MX record fornetworkutopia.com