Title: TODO
1TODO
- Intro to Application Level Protocols
- Two specific application level protocols
- 1 that uses TCP - HTTP
- 1 that uses UDP - DNS
- HTTP, 1.0 vs 1.1, telnet examples
- DNS, Bind
- IP addresses
- RIPE, APNIC, ARIN
- US Govt, Network solutions
- Needs of different applications
2Internet protocol stack
users
network
Application
HTTP, SMTP, FTP, TELNET, DNS,
Transport
TCP, UDP.
Network
IP
Physical
Point-to-point links, LANs, radios, ...
3Protocol stack
user X
user Y
English
e-mail client
e-mail server
SMTP
TCP server
TCP server
TCP
IP server
IP
IP server
IEEE 802.3 standard
ethernet driver/card
ethernet driver/card
electric signals
4Network Applications Drive Network Design
- Important to remember that network applications
are the reason we care about building a network
infrasturucture - Applications range from text based command line
ones popular in the 1980s (like telnet, ftp,
news, chat, etc) to multimedia applications (Web
browsers, audio and video streaming, realtime
videoconferencing, etc.)
5Applications 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
6Client-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 - Server
- Running first (always?)
- provides requested service to client e.g., Web
server sends requested Web page, mail server
delivers e-mail
7How do clients and servers communicate?
- API application programming interface
- defines interface between application and
transport layer - socket Internet API
- two processes communicate by sending data into
socket, reading data out of socket
- Q how does a process identify the other
process with which it wants to communicate? - IP address of host running other process
- port number - allows receiving host to
determine to which local process the message
should be delivered
more on this later.
8Sockets Specify Transport Services
- Sockets define the interfaces between an
application and the transport layer - Applications choose the type of transport layer
by choosing the type of socket - UDP Sockets called DatagramSocket in Java,
SOCK_DGRAM in C - TCP Sockets called Socket/ServerSocket in Java,
SOCK_STREAM in C - Client and server agree on the type of socket,
the server port number and the protocol
9Roadmap
- We will look at two application level protocols
- HTTP runs on TCP
- DNS usually runs on UDP (sometimes on TCP)
10Services 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 nework
overloaded - does not providing timing, minimum bandwidth
guarantees
11The 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 has access to storage
containing a set of Web documents sends copies
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
12Uniform Resource Locator (URL)
- protocol//authorityport/p/a/th/item_name?query
- protocol http
- authority server machine
- Port 80 by default
- /p/a/th/item_name specifies a file to be
returned or possibly a program to be executed to
produce the file to be returned
13The 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
14http 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
15http 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
16http message format request
- two types of http messages request, response
- http request message
- ASCII (human-readable format)
request line (GET, POST, HEAD commands)
GET /somedir/page.html HTTP/1.0 User-agent
Mozilla/4.0 Accept text/html,
image/gif,image/jpeg Accept-languagefr (extra
carriage return, line feed)
header lines
Carriage return, line feed indicates end of
message
17http request message general format
18http message format response
status line (protocol status code status phrase)
HTTP/1.0 200 OK Date Thu, 06 Aug 1998 120015
GMT Server Apache/1.3.0 (Unix) Last-Modified
Mon, 22 Jun 1998 ... Content-Length 6821
Content-Type text/html data data data data
data ...
header lines
data, e.g., requested html file
19http response status codes
In first line in server-gtclient response
message. A few sample codes
- 200 OK
- request succeeded, requested object later in this
message - 301 Moved Permanently
- requested object moved, new location specified
later in this message (Location) - 400 Bad Request
- request message not understood by server
- 404 Not Found
- requested document not found on this server
- 505 HTTP Version Not Supported
20HTML overview
- Markup language give general layout guidelines -
not exact placement or format- so browsers may
display the same document differently - Free form (i.e. Spaces dont matter)
- Embedded tags give guidelines
- Tags often appear in pairs
- beginning ltTAGNAMEgt
- ending lt/TAGNAMEgt
21HTTP vs HTML
- HTML format is highly specified but is just
considered the data or body of an HTTP message - HTML is not part of the HTTP protocol
- Example of layering each layer speaks to a peer
layer in an agreed upon language or protocol - In this case, both are processed by the web
browser. The web broswer is both an HTTP client
and an HTML parser.
22Static vs Dynamic vs Active Web Pages
- Static Stored in a file and unchanging
- Dynamic Formed by server on demand in response
to a request - Output from a program (e.g. Common Gateway
Interface (CGI) ) - Active Executed at the client!
- Computer program (not just output) that can
interact with user (e.g. Java applet)
23Non-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. Do 1.1 browsers do this? ?
24Features in HTTP 1.1
- Persistent Connections
- Hostname Identification
- Allows one physical web server to serve content
for multiple logical servers - Content Negotiation
- Allows client to request a specific version of a
resource - Chunked Transfers
- For dynamic content, server neednt specify all
characteristics like size ahead of time - Byte Ranges
- Clients can ask for small pieces of documents
- Support for Proxies and Caches
25Trying out http (client side) for yourself
- 1. Telnet to your favorite Web server
Opens TCP connection to port 80 (default http
server port) at www.eurecom.fr. Anything typed in
sent to port 80 at www.eurecom.fr
telnet www.eurecom.fr 80
- 2. Type in a GET http request
By typing this in (hit carriage return twice),
you send this minimal (but complete) GET request
to http server
GET /ross/index.html HTTP/1.0
3. Look at response message sent by http server!
26User-server interaction authentication
server
client
- Authentication goal control access to server
documents - stateless client must present authorization in
each request - authorization typically name, password
- authorization header line in request
- if no authorization presented, server refuses
access, sends - WWW authenticate
- header line in response
usual http request msg
401 authorization req. WWW authenticate
Browser caches name password so that user does
not have to repeatedly enter it.
27User-server interaction cookies
server
client
- server sends cookie to client in response mst
- Set-cookie 1678453
- client presents cookie in later requests
- cookie 1678453
- server matches presented-cookie with
server-stored info - authentication
- remembering user preferences, previous choices
usual http request msg
usual http response Set-cookie
cookie- spectific action
cookie- spectific action
28User-server interaction conditional GET
server
client
- Goal dont send object if client has up-to-date
stored (cached) version - client specify date of cached copy in http
request - If-modified-since ltdategt
- server response contains no object if cached
copy up-to-date - HTTP/1.0 304 Not Modified
http request msg If-modified-since ltdategt
object not modified
http request msg If-modified-since ltdategt
object modified
http response HTTP/1.1 200 OK ltdatagt
29Web 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
30Why 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
100 Mbps LAN
institutional cache
31DNS 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
32Names and addresseswhy both?
- Name www.cs.cornell.edu
- IP address 128.84.154.132
- (Also Ethernet or other link-layer addresses.)
- IP addresses are fixed-size numbers.
- 32 bits. 128.153.4.24 10000000.100011
11.00000100.00001110 - Names are memorizable, flexible
- Variable-length
- Many names for a single IP address.
- Change address doesnt imply change name.
- iPv6 addresses are 128 bit even harder to
memorize!
33Mapping Not 1 to 1
- One name may map to more than one IP address
- IP addresses are per network interface
- Multihomed machines have more than one network
interface - each with its own IP address - Example routers must be like this
- One IP address may map to more than one name
- One server machine may be the web server
(www.foo,com), mail server (mail.foo.com)etc.
34How to get names and numbers?
- Acquistion of Names and numbers are both
regulated - Why?
35How to get a name?
- First, get a domain name then you are free to
assign sub names in that domain - How to get a domain name coming up
- Before you ask for a domain name though
- Should understand domain name structure
- Know that you are responsible for providing
authoritative DNS server (actually a primary and
one or more secondary DNS servers) for that
domain and registration information through
whois
36Domain name structure
root (unnamed)
...
...
com
mil
gov
edu
gr
org
net
fr
uk
us
ccTLDs
gTLDs
cornell
ustreas
second level (sub-)domains
lucent
gTLDs Generic Top Level Domains ccTLDs
Country Code Top Level Domains
37Top-level Domains (TLDs)
- Generic Top Level Domains (gTLDs)
- .com - commercial organizations
- .org - not-for-profit organizations
- .edu - educational organizations
- .mil - military organizations
- .gov - governmental organizations
- .net - network service providers
- New .biz, .info, .name,
- Country code Top Level Domains (ccTLDs)
- One for each country
38How to get a domain name?
- In 1998, non-profit corporation, Internet
Corporation for Assigned Names and Numbers
(ICANN), was formed to assume responsibility from
the US Government - ICANN authorizes other companies to register
domains in com, org and net and new gTLDs - Network Solutions is largest and in transitional
period between US Govt and ICANN had sole
authority to register domains in com, org and net
39How to get an IP Address?
- Answer 1 Normally, answer is get an IP address
from your upstream provider - This is essential to maintain efficient routing!
- Answer 2 If you need lots of IP addresses then
you can acquire your own block of them. - IP address space is a scarce resource - must
prove you have fully utilized a small block
before can ask for a larger one and pay (Jan
2002 - 2250/year for /20 and 18000/year for a
/14)
40How to get lots of IP Addresses? Internet
Registries
- RIPE NCC (Riseaux IP Europiens Network
Coordination Centre) for Europe, Middle-East,
Africa - APNIC (Asia Pacific Network Information Centre
)for Asia and Pacific - ARIN (American Registry for Internet Numbers) for
the Americas, the Caribbean, sub-saharan Africa - Note Once again regional distribution is
important for efficient routing! - Can also get Autonomous System Numnbers (ASNs
from these registries
41Checkpoint
- Now you know both how to get a machine name and
how to get an IP address - Now back to DNS how to map from one to the
other!
42DNS 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
43DNS name servers
- Name server process running on a host that
processes DNS requests - local name servers
- each ISP, company has local (default) name server
- host DNS query first goes to local name server
- authoritative name server
- can perform name/address translation for a
specific domain or zone
- How could we provide this service? Why not
centralize DNS? - single point of failure
- traffic volume
- distant centralized database
- maintenance
- doesnt scale!
- no server has all name-to-IP address mappings
44Name Server Zone Structure
root
com
mil
edu
gov
gr
org
net
fr
uk
us
Structure based on administrative issues.
lucent
ustreas
45Name Servers (NS)
root
com
...
edu
gov
cornell
lucent
46Name Servers (NS)
- NSs are duplicated for reliability.
- Each domain must have a primary and secondary.
- Anonymous ftp from
- ftp.rs.internic.net, netinfo/root-server.txt
- gives the current root NSs (about 10).
- Each host knows the IP address of the local NS.
- Each NS knows the IP addresses of all root NSs.
47DNS Root name servers
- contacted by local name server that can not
resolve name - root name server
- Knows the authoritative name server for main
domain - dozen root name servers worldwide
48Simple 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 (what might
be wrong with this?)
2
4
3
5
authorititive name server dns.umass.edu
1
6
requesting host surf.eurecom.fr
gaia.cs.umass.edu
49DNS example
root name server
- Root name server
- may not know authoritative 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
50DNS 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
- Takes burden off root servers
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
51DNS 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
- Proposed Standard RFC 2136
52DNS records More than Name to IP Address
- 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
- One weve been discussing most common
- 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
53PTR Records
- Do reverse mapping from IP address to name
- Why is that hard? Which name server is
responsible for that mapping? How do you find
them? - Answer special root domain, arpa, for reverse
lookups
54Arpa top level domain
Want to know machine name for 128.30.33.1? Issue
a PTR request for 1.33.30.128.in-addr.arpa
root
arpa
com
mil
edu
gov
gr
org
net
fr
uk
us
In-addr
ietf
www.ietf.org.
www
128
30
33
1
1.33.30.128.in-addr.arpa.
55Why is it backwards?
- Notice that 1.30.33.128.in-addr.arpa is written
in order of increasing scope of authority just
like www.cs.foo.edu - Edu largest scope of authority foo.edu less,
down to single machine www.cs.foo.edu - Arpa largest scope of authority in-addr.arpa
less, down to single machine 1.30.33.128.in-addr.a
rpa (or 128.33.30.1)
56In-addr.arpa domain
- When an organization acquires a domain name, they
receive authority over the corresponding part of
the domain name space. - When an organization acquires a block of IP
address space, they receive authority over the
corresponding part of the in-addr.arpa space. - Example Acquire domain berkeley.edu and acquire
a class B IP Network ID 128.143
57DNS 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
- reply was truncated
58DNS protocol, messages
Name, type fields for a query
RRs in reponse to query
records for authoritative servers
additional helpful info that may be used
59nslookup
- Use to query DNS servers (not telnet like with
http why?) - Interactive and Non-interactive modes
- Examples
- nslookup www.yahoo.com
- nslookup querymx cs.cornell.edu
- nslookup
- Enter interactive shell
- Type a host name get its IP address info
- ls d ltdomain.namegt
- set debug, set recurse, set norecurse,
60HTTP vs DNS
- Why does HTTP use TCP? Error control?
- Doesnt DNS need error control? Why is UDP
usually ok? - Each object small enough to go in one datagram
no need for reorder - Retransmission? Just instrument client to resend
request if doesnt get a response - When does DNS use TCP?
- Truncation bit if reply too long, set truncate
bit as signal to request using TCP - Also for zone transfers from primary to secondary
servers - TCP has high overhead
- Many apps that use UDP implement only the subset
of TCP functionality they really need
61HTTP vs DNS (cont)
- Why is HTTP human readable and DNS not?
- Easier to think of human readable protocol with a
TCP connection and telnet - Harder when sending requests that might not go
through - Better answer??