Академический Документы
Профессиональный Документы
Культура Документы
Network Design
Important to remember that network
applications are the reason we care about
3: Application Protocols: building a network infrastructure
HTTP and DNS Applications range from text based
command line ones popular in the 1980s
(like telnet, ftp, news, chat, etc) to
Last Modified: multimedia applications (Web browsers,
audio and video streaming, real-time video
2/3/2003 8:13:18 PM
conferencing, etc.)
stack
users
network
Network IP
Point-to-point links,
Physical
LANs, radios, ...
2: Application Layer 3 2: Application Layer 4
user space
e-mail client SMTP e-mail server exchange messages to
implement app
e.g., email, file transfer, the
TCP Web
TCP server TCP server Application-layer protocols
one piece of an app (web
application
browser do more than speak application transport
IP HTTP)
transport network
IP server IP server network
data link
data link
physical
define messages exchanged physical
1
Client-server paradigm HTTP
Typical network app has two application
pieces: client and server transport
network
data link
Client: physical
2
http example http example (cont.)
Suppose user enters URL (contains text, 4. http server closes TCP
www.someSchool.edu/someDepartment/home.index references to 10 connection.
5. http client receives response
jpeg images)
message containing html file,
1a. http client initiates TCP displays html. Parsing html
connection to http server file, finds 10 referenced jpeg
1b. http server at host
(process) at objects
www.someSchool.edu waiting
www.someSchool.edu. Port 80
for TCP connection at port 80. 6. Steps 1-5 repeated for each
is default for http server.
accepts connection, notifying of 10 jpeg objects
client time
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
2: Application Layer 13 2: Application Layer 14
request line
(GET, POST, GET /somedir/page.html HTTP/1.0
HEAD commands) User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
header Accept-language:fr
lines
3
Conditional GET Authentication (and statelessness)
Authentication goal: control
Goal: dont send object if client server access to server documents client server
client has up-to-date stored stateless: client must present
usual http request msg
(cached) version http request msg authorization in each request
If-modified-since: object authorization: typically name, 401: authorization req.
client: specify date of <date>
not WWW authenticate:
password
cached copy in http request http response modified authorization: header
If-modified-since: HTTP/1.0
304 Not Modified
line in request usual http request msg
<date>
if no authorization + Authorization:line
server: response contains presented, server refuses
no object if cached copy up- usual http response msg
access, sends
to-date: http request msg WWW authenticate:
If-modified-since:
HTTP/1.0 304 Not
<date>
object header line in response usual http request msg
Modified modified Authorization will go with + Authorization:line
http response
HTTP/1.0 200 OK each request to server usual http response msg time
<data> Browser caches name & password so
2: Application Layer 19 that user does not have to repeatedly enter it. 2: Application Layer 20
4
Why Web Caching? Why not web caching?
origin
Assume: cache is close to servers
It adds time to a requests that miss in the
client (e.g., in same network) public
smaller response time: cache Internet cache
closer to client Servers dont see accurate number of hits
decrease traffic to distant to their content
servers 1.5 Mbps
access link To collect information on who is requesting
link out of institutional/local
what, extract fees, etc.
institutional
ISP network often bottleneck network
100 Mbps LAN
Other reasons? Anonymity?
Translation for low feature
clients (ex. PDAs)
institutional
cache
Trying out http (client side) for yourself HTTP 1.0 vs 1.1
5
DNS Names and IP addresses
6
Domain name structure Top-level Domains (TLDs)
Generic Top Level Domains (gTLDs)
root (unnamed) .com - commercial organizations
.org - not-for-profit organizations
com edu gov mil net org ... fr gr us uk ...
.edu - educational organizations
gTLDs ccTLDs .mil - military organizations
.gov - governmental organizations
google ustreas second level (sub-)domains
.net - network service providers
New: .biz, .info, .name,
gTLDs= Generic Top Level Domains Country code Top Level Domains (ccTLDs)
ccTLDs = Country Code Top Level Domains One for each country
7
Obtaining a Block of IP
Checkpoint
addresses
Price (ARIN,Jan 2003) Now you know both how to get a machine
http://www.arin.net/registration/fee_schedule.html
name and how to get an IP address
$2500/year for /20 ; $20000/year for a /14
/20 = 20 of the 32 bits in IP address are specified, 12
Now back to DNS how to map from one to
bits free, ~212= 4096 possible hosts the other!
See why a /14 would be more expensive than a /20?
com gov edu mil net org fr gr us uk com gov edu ... Root NS
Structure based on
lucent ustreas lucent ustreas cornell
administrative issues. Lucent NS Ustreas NS
8
Kinds of Name Servers Local Name Servers
Name server: process running on a host that processes
DNS requests Each host knows the IP address of a local
local name servers: NS.
each ISP, company has local (default) name server
host DNS query first goes to local name server
Each local NS knows the IP addresses of
authoritative name server: all root NSs.
can perform name/address translation for a specific domain or
zone
root name server:
Knows the authoritative server for each domain
intermediate name server:
Authoritative servers for a large domain may hand off queries
to lower level name servers that are responsible for a portion
of the domain
9
DNS: iterated queries root name server Intermediate Name Servers
recursive query: iterated query
2 What about big domains? Couldnt the
Contacted server 3
completes translation recursive authoritative name servers for a big domain get
4
itself query overloaded like the root? Or maybe it is
Puts burden on 7 inconvenient administratively for two sub domains
contacted server
local name server intermediate name server to share the same DNS server?
iterated query: dns.eurecom.fr dns.umass.edu
We dont want the root to have to remember
contacted server 5 6
different servers for sub domains.
1 8
replies with name of
server to contact Give the root the name of an intermediate name
authoritative name server
I dont know this dns.cs.umass.edu server
name, but ask this requesting host They arent really the authority for each sub domain but
server surf.eurecom.fr
they can point you to the authority!
Takes burden off
contacted servers gaia.cs.umass.edu
2 6
How often are failures a result of DNS
Root name server 7 3
may not know the
failure?
real authoritative Make notes of IP addresses of common
name server machines you use
local name server intermediate name server
may know dns.eurecom.fr dns.umass.edu If cant access, try instead accessing by IP
intermediate 4 5 address
1 8
name server: who If you can -> DNS failure somewhere
to contact to find authoritative name server
authoritative requesting host
dns.cs.umass.edu
gaia.cs.umass.edu
10
DNS records: More than Name to
PTR Records
IP Address
Type=CNAME Do reverse mapping from IP address to
Type=NS
name is an alias name
name is domain (e.g.
foo.com) for some cannonical
name
value is IP address of (the real) name Why is that hard? Which name server is
authoritative name server value is cannonical
for this domain (why not responsible for that mapping? How do you
name?) name
find them?
Answer: special root domain, arpa, for
Type=MX Type=PTR
name is IP address (in
reverse lookups
value is hostname of
mailserver associated with special format)
name value is name
Reverse of type A
11
DNS protocol, messages UDP or TCP
DNS usually uses UDP
Name, type fields
for a query Doesnt DNS need error control? Why is UDP
usually ok?
Each object small enough to go in one datagram no need
RRs in reponse
for reorder
to query
Retransmission? Just instrument client to resend request
if doesnt get a response
records for
authoritative servers When does DNS use TCP?
Truncation bit; if reply too long, set truncate bit as
additional helpful signal to request using TCP
info that may be used Also for zone transfers from primary to secondary
servers (RFC still says try UDP first)
BIND can be configured to only respond to a TCP
request if a corresponding UDP request was made
2: Application Layer 67 first 2: Application Layer 68
nslookup Summary
Use to query DNS servers (not telnet like with We looked at two application level
http why?)
protocols: HTTP and DNS
Interactive and Non-interactive modes
Examples:
nslookup www.yahoo.com HTTP runs on TCP
Many IP addresses why?
nslookup query=mx gnu.org DNS usually runs on UDP (sometimes on
nslookup TCP)
Enter interactive shell
Type a host name; get its IP address info
ls d <domain.name> (rarely supported)
HTTP is human readable; DNS not
set debug, set recurse, set norecurse,
exit
12
Outtakes Other
DNS forwarding
Way to say if dont find it here look here
instead
Examples
I used to be authoritative for this now Im not look
here
Also useful for reverse lookups when organizations
dont have a full class A/B/C address say where else
to look for possible reverse name lookup
Internal DNS server behind firewall and has full
translations within domain; External has publicly
visible like web and mail servers; Internal is
firewalled off so forwards request for outside world
to external that queries the root servers etc
13
Sockets Specify Transport
QUICK LOOK AHEAD: TCP vs UDP
Services
Sockets define the interfaces between an TCP service: UDP service:
application and the transport layer connection-oriented: setup unreliable data transfer
required between client, between sending and
Applications choose the type of transport server receiving process
layer by choosing the type of socket reliable transport between does not provide:
sending and receiving process
UDP Sockets called DatagramSocket in Java, flow control: sender wont
connection setup,
SOCK_DGRAM in C reliability, flow control,
overwhelm receiver
congestion control, timing,
TCP Sockets called Socket/ServerSocket in congestion control: throttle or bandwidth guarantee
Java, SOCK_STREAM in C sender when nework
overloaded
Client and server agree on the type of does not providing: timing,
socket, the server port number and the minimum bandwidth
protocol guarantees
14