Network Services - Ece.eng.wayne.edu

Download Report

Transcript Network Services - Ece.eng.wayne.edu

ECE5650:
Network Services
Network Services
1
Examples of Network Services
 E-mail
 Internet telephone
 Web
 Real-time video
 Instant messaging
 Remote login
conference
 Social networking
 P2P file sharing
 Multi-user network
games
 Streaming stored
video clips
Network Services
2
Creating a network app
Write programs that



run on different end
systems and
communicate over a
network.
e.g., Web: Web server
software communicates
with browser software
little software written for
devices in network core


network core devices do
not run user application
code
application on end systems
allows for rapid app
development, propagation
application
transport
network
data link
physical
application
transport
network
data link
physical
application
transport
network
data link
physical
Network Services
3
Goal
 define services offered by the application
layer
 define the architecture of network
applications
 examine basic application-level protocols:

HTTP, FTP, EMAIL, DNS
 programming network applications
 socket API
Network Services
4
Outline
 2.1 Principles of
network applications
 2.2 Web and HTTP
 2.3 FTP
 2.4 Electronic Mail

SMTP, POP3, IMAP
 2.7 Socket programming
with TCP
 2.8 Socket programming
with UDP
 2.9 Building a Web
server
 2.5 DNS
Goal:
define services offered by the application layer
define the architecture of network applications
programming network applications: socket API
Network Services
5
Application architectures
 Appl arch is designed by appl developers
and dictates how the appl is organized over
various end-systems
 Types of organizations:
Client-server (thin vs thick client)
 Peer-to-peer (P2P)
 Hybrid of client-server and P2P

Network Services
6
Client-server architecture
Client/Server
server:




waits to be contacted
always-on
have permanent IP
address
server farms for scaling
clients:

Client/Client/Server

Web Server
(e.g. IIS,Apache)
Database Server
(e.g. DB2, Oracle)
Application Server
(e.g. WebSphere)



initiates communication
can be thin (browser-only)
or thick (need more than a
browser)
not always-on
may have dynamic IP
addresses
do not communicate
directly with each other
Network Services
7
Pure P2P architecture
 server is not always-on
 arbitrary end systems
directly communicate,
without passing through
special servers
 peers are intermittently
connected and change IP
addresses
 examples: Gnutella, KaZaa,
Bitorrent
Highly scalable
But difficult to manage
P2P file sharing accounts for
a major portion of all traffic
Network Services
8
Hybrid of client-server and P2P
Napster  Bitorrent
File transfer P2P
 File search centralized:

• Peers register content at central server
• Peers query same central server to locate content
Instant messaging
Chatting between two users is P2P
 Presence detection/location centralized:

• User registers its IP address with central server
when it comes online
• User contacts central server to find IP addresses of
buddies
Network Services
9
Processes communicating
Process: program running within a host.
 within same host, two processes communicate
using inter-process communication (IPC) (defined
by OS).
 processes in different hosts communicate by
exchanging messages
 A network appl consists of pairs of processes
that send messages to each other over a network

The process initiating the comm is labeled as client, and
the other waiting to be connected as server
 Applications with P2P architectures have client
processes & server processes

A process assumes client and server roles in diff time
Network Services
10
Sockets
 process sends/receives
messages to/from its socket
 socket analogous to door



sending process shoves msg out
door
sending process relies on
transport infrastructure on
other side of door which brings
message to socket at receiving
process
Interface between the appl and
transport layer within a host
host or
server
host or
server
process
controlled by
app developer
process
socket
socket
TCP with
buffers,
variables
Internet
TCP with
buffers,
variables
controlled
by OS
 Socket API available for developers: (1) choice of transport
protocol; (2) ability to fix a few parameters. Everything else
handled by the OS
 Process naming: host IP addr + port number.
Network Services
11
Application layer protocol defines
 Types of messages
exchanged, e.g., request
& response messages
 Syntax of message
types: what fields in
messages & how fields
are delineated
 Semantics of the
fields, i.e., meaning of
information in fields
 Rules for when and how
processes send &
respond to messages
Public-domain protocols:
 defined in RFCs
 allows for
interoperability
 e.g., HTTP, SMTP
Proprietary protocols:
 e.g., KaZaA
Appl-layer protocol is one piece
of a network appl.
Network Services
12
What services does an application need?
Data loss (Reliable transfer)
 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” (hard realtime)
 Examples: no real-time
(soft real-time)?
Bandwidth
 some apps (e.g.,
multimedia, bwsensitive appl) require
minimum amount of
bandwidth to be
“effective”
 other apps (“elastic
apps”) make use of
whatever bandwidth
they get. Exampes ??
Network Services
13
Service requirements of common apps
Data loss
Bandwidth
Time Sensitive
file transfer
e-mail
Web documents
real-time audio/video
no loss
no loss
no loss
loss-tolerant
no
no
no
yes, 100’s msec
stored audio/video
interactive games
instant messaging
loss-tolerant
loss-tolerant
no loss
elastic
elastic
elastic
audio: 5kbps-1Mbps
video:10kbps-5Mbps
same as above
few kbps up
elastic
Application
yes, few secs
yes, 100’s msec
yes and no
Network Services
14
Network Applications Summary
 Network applications architecture:

client/server, P2P, hyprid of both
 Sockets (IP+port):
 socket API offered by OS and used by
processes to communicate
 Application Layer services:
 specify syntax and type of msgs, rules of
send/receive
 have data loss, timing and bandwidth
Network Services
15
Internet transport protocols services
TCP service:
 connection-oriented: setup




required between client and
server processes
reliable transport between
sending and receiving process
flow control: sender won’t
overwhelm receiver
congestion control: throttle
sender when network
overloaded
does not providing: timing,
minimum bandwidth
guarantees
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?
Network Services
16
Internet apps: application, transport protocols
Application
e-mail
remote terminal access
Web
file transfer
streaming multimedia
Internet telephony
Application
layer protocol
Underlying
transport protocol
SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
proprietary
(e.g. RealNetworks)
proprietary
(e.g., Dialpad)
TCP
TCP
TCP
TCP
TCP or UDP
typically UDP
Real-time applications are often run in UDP:
they can tolerate some loss, but
require a minimal rate
Network Services
17
Network Services
 2.1 Principles of
network applications
 2.2 Web and HTTP
 2.3 FTP
 2.4 Electronic Mail

SMTP, POP3, IMAP
 2.7 Socket programming
with TCP
 2.8 Socket programming
with UDP
 2.9 Building a Web
server
 2.5 DNS
Network Services
18
Web and HTTP
 Web Application
Client-server appl that allows clients to obtain
documents from web servers on demand
 Components:

•
•
•
•
HTML document format
Web browsers: e.g. IE, firefox
Web servers: e.g Apache,
Appl-layer protocol: HTTP
 HTTP protocol
Network Services
19
Web and HTTP (hyper-text transfer protocol)
 Web page consists of objects
 Object can be HTML file, JPEG image, Java
applet, audio file,…
 Web page consists of base HTML-file which
includes several referenced objects
 Each object is addressable by a URL (Uniform
Resource Locator)
 Example URL:
http://www.someschool.edu/someDept/pic.gif
protocol
host name
path name
Network Services
20
HTTP overview
HTTP: hypertext transfer
protocol
PC running
Explorer
 Web’s application layer protocol
 Stateless Protocol
 client/server model
client: browser that requests,
receives, “displays” Web objects
 server: Web server sends
objects in response to requests Mac running
Navigator
 HTTP 1.0: RFC 1945
 HTTP 1.1: RFC 2616 (draft in
RFC2068)


Server
running
Apache Web
server
RFC2617: http authentication
 RFC2616 revision started in Oct 06

W3.org/protocols/
Network Services
21
HTTP overview (continued)
Uses TCP (transport layer
protocol):
 client initiates TCP
connection (creates socket)
to server, port 80
 server accepts TCP
connection from client
 HTTP messages (applicationlayer protocol messages)
exchanged between browser
(HTTP client) and Web
server (HTTP server)
 TCP connection closed
HTTP is “stateless”
 server maintains no
information about
past client requests
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
Network Services
22
HTTP connections
Nonpersistent HTTP
 At most one object is sent over a TCP connection.
 HTTP/1.0 uses nonpersistent HTTP
Persistent HTTP
 Multiple objects can be sent over single TCP connection
between client and server.
 HTTP/1.1 uses persistent connections in default mode
 Connection established when the 1st web page is requested
and used for all subsequent pages/objects requests until a web
server timeout value is reached.
 Either the client or server can close the persistent connection
by including the connection-token "close" in the Connectionheader field of the http request/reply.
Network Services
23
Nonpersistent HTTP
(contains text,
Suppose user enters URL
references to 10
www.someSchool.edu/someDepartment/home.index
jpeg images)
1a. HTTP client initiates TCP
connection to HTTP server
(process) at
www.someSchool.edu on port 80
2. HTTP client sends HTTP
request message (containing
URL) into TCP connection
socket. Message indicates
that client wants object
someDepartment/home.index
1b. HTTP server at host
www.someSchool.edu waiting
for TCP connection at port 80.
“accepts” connection, notifying
client
3. HTTP server receives request
message, forms response
message containing requested
object, and sends message
into its socket
time
Network Services
24
Nonpersistent HTTP (cont.)
4. HTTP server closes TCP
5. HTTP client receives response
connection.
message containing html file,
displays html. Parsing html
file, finds 10 referenced jpeg
objects
time 6. Steps 1-5 repeated for each
of 10 jpeg objects
Network Services
25
Response time modeling
Definition of RTT (Round Trip
Time): time to send a small
packet to travel from
client to server and back. initiate TCP
connection
Response time:
RTT
request
 one RTT to initiate TCP
connection (always needed) file
RTT
 one RTT for HTTP request
file
and first few bytes of
received
HTTP response to return
 file transmission time
time
time to
transmit
file
time
total = 2RTT+transmit time (depends on
file size and bandwidth)
Network Services
26
Persistent HTTP
Nonpersistent HTTP issues:
 requires 2 RTTs per object
 OS overhead for each TCP
connection
 browsers often open parallel
TCP connections to fetch
referenced objects
Persistent HTTP
 server leaves connection
open after sending response
 subsequent HTTP messages
between same client/server
sent over open connection
Persistent without pipelining:
 client issues new request
only when previous
response has been received
 one RTT for each
referenced object
Persistent with pipelining:
 default in HTTP/1.1
 client sends requests as
soon as it encounters a
referenced object
 as little as one RTT for
all the referenced objects
within the requested web
page
Network Services
27
HTTP request message
 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.1
Host: www.someschool.edu
User-agent: Mozilla/4.0
Compare to
header Connection: close
Connection:
lines Accept-language:fr
Carriage return,
line feed
indicates end
of message
Keep-Alive
(extra carriage return, line feed)
Network Services
28
HTTP request message (RFC 2616):
general format
Network Services
29
Uploading form input
Post method:
 Web page often
includes form input
 Input is uploaded to
server in entity body
URL method:
 Uses GET method
 Input is uploaded in
URL field of request
line:
www.somesite.com/animalsearch?monkeys&banana
Network Services
30
Method types
HTTP/1.0
 GET
 POST
 HEAD

asks server to leave
requested object out of
response (used mainly
for debugging)
HTTP/1.1
 GET, POST, HEAD
 PUT

uploads file in entity
body to path specified
in URL field
 DELETE
 deletes file specified in
the URL field
Network Services
31
HTTP response message
status line (protocol
status code and phrase)
date at web server
when file was requested
file last modified date
header
lines
data, e.g.,
requested
HTML file
HTTP/1.1 200 OK
Connection: close
Date: Thu, 06 Aug 1998 12:00:15 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 ...
Network Services
32
HTTP response status codes
In first line in server->client 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
Network Services
33
Trying out HTTP (client side) for yourself
1. Telnet to your favorite Web server:
telnet ece.eng.wayne.edu 80
Opens TCP connection to port 80
(default HTTP server port) at cis.poly.edu.
Anything typed in sent
to port 80 at cis.poly.edu
2. Type in a GET HTTP request:
GET /~czxu/test.html HTTP/1.1
Host: ece.eng.wayne.edu
By typing this in (hit carriage
return twice), you send
this minimal (but complete)
GET request to HTTP server
3. Look at response message sent by HTTP server!
Network Services
34
User-server state: cookies
Example:
Many major Web sites use cookies:
 Susan access
1) Persistent: file stays on users PC after
Internet always
closing the browser.
from same PC
2) Non-Persistent (mostly used in J2EE and
 She visits a specific
.NET platforms): deleted when user
e-commerce site for
closes browser or logs off the web site.
first time
Four components:
 When initial HTTP
1) cookie header line of HTTP response
requests arrives at
message
site, site creates a
2) cookie header line in HTTP request
unique ID and
message
creates an entry in
3) cookie file kept on user’s host,
backend database
managed by user’s browser
for ID
4) back-end database at Web site
Network Services
35
Cookies: keeping “state” (cont.)
client
Cookie file
server
usual http request msg
usual http response +
ebay: 8734
Cookie file
amazon: 1678
ebay: 8734
Set-cookie: 1678
usual http request msg
cookie: 1678
usual http response msg
one week later:
Cookie file
amazon: 1678
ebay: 8734
usual http request msg
cookie: 1678
usual http response msg
server
creates ID
1678 for user
cookiespecific
action
cookiespectific
action
Network Services
36
Cookies (continued)
What cookies can bring:
 authorization
 shopping carts
 recommendations
 user session state
(Web e-mail)
aside
Cookies and privacy:
 cookies permit sites to
learn a lot about you
 you may supply name
and e-mail to sites
 search engines use
redirection & cookies
to learn yet more
 advertising companies
obtain info across
sites
Network Services
37
HTTP Summary
 HTTP request msg format and method
types:

GET, POST, HEAD, PUT, DELATE
 HTTP response msg format and status
codes
 Cookies and their usage:

Persistent vs Non-Persistent cookies
 Web cache or proxy server:
 Conditional GET (If-modified-since:) in HTTP
header
Network Services
44