TODO - PowerPoint PPT Presentation

About This Presentation
Title:

TODO

Description:

User-agent: Mozilla/4.0. Accept: text/html, image/gif,image/jpeg. Accept-language:fr ... (GET, POST, HEAD commands) header. lines. Carriage return, line feed ... – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 62
Provided by: dont222
Category:
Tags: todo | postmozilla

less

Transcript and Presenter's Notes

Title: TODO


1
TODO
  • 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

2
Internet protocol stack
users
network
Application
HTTP, SMTP, FTP, TELNET, DNS,
Transport
TCP, UDP.
Network
IP
Physical
Point-to-point links, LANs, radios, ...
3
Protocol 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
4
Network 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.)

5
Applications 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

6
Client-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

7
How 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.
8
Sockets 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

9
Roadmap
  • We will look at two application level protocols
  • HTTP runs on TCP
  • DNS usually runs on UDP (sometimes on TCP)

10
Services 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

11
The 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
12
Uniform 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

13
The 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

14
http 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
15
http 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
16
http 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
17
http request message general format
18
http 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
19
http 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

20
HTML 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

21
HTTP 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.

22
Static 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)

23
Non-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? ?
24
Features 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

25
Trying 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!
26
User-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.
27
User-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
28
User-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
29
Web 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
30
Why 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
31
DNS 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

32
Names 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!

33
Mapping 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.

34
How to get names and numbers?
  • Acquistion of Names and numbers are both
    regulated
  • Why?

35
How 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

36
Domain 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
37
Top-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

38
How 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

39
How 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)

40
How 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

41
Checkpoint
  • 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!

42
DNS 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

43
DNS 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

44
Name Server Zone Structure
root
com
mil
edu
gov
gr
org
net
fr
uk
us
Structure based on administrative issues.
lucent
ustreas
45
Name Servers (NS)
root
com
...
edu
gov
cornell
lucent
46
Name 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.

47
DNS 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

48
Simple 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
49
DNS 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
50
DNS 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
51
DNS 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

52
DNS 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

53
PTR 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

54
Arpa 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.
55
Why 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)

56
In-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

57
DNS 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

58
DNS protocol, messages
Name, type fields for a query
RRs in reponse to query
records for authoritative servers
additional helpful info that may be used
59
nslookup
  • 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,

60
HTTP 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

61
HTTP 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??
Write a Comment
User Comments (0)
About PowerShow.com