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 7
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
Processes communicating
process: program runningwithin a host
within same host,  processescommunicate using  inter-process communication(defined by OS)
processes in different hostscommunicate by exchangingmessages
client process: process thatinitiates communication
server process: process thatwaits to be contacted
aside: applications with P2Parchitectures have clientprocesses & serverprocesses
underline_base
clients, servers
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-4
underline_base
Addressing processes
to receive messages,process must have identifier
host device has unique 32-bit IP address
Q: does  IP address of hoston which process runssuffice for identifying theprocess?
identifier includes both IPaddress and port numbersassociated with process onhost.
example port numbers:
HTTP server: 80
mail server: 25
to send HTTP message togaia.cs.umass.edu webserver:
IP address: 128.119.245.12
port number: 80
more shortly…
A: no, many processescan be running on samehost
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
What transport service does a process need?
data integrity
some apps (e.g., file transfer,web transactions) require100% reliable data transfer
other apps (e.g., audio) cantolerate some loss
timing
some apps (e.g., Internettelephony, interactivegames) require low delayto be effective
throughput
some apps (e.g.,multimedia) requireminimum amount ofthroughput to beeffective
other apps (elastic apps)make use of whateverthroughput they get
underline_base
security
encryption, data integrity,
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-6
Internet transport protocols services
TCP service:
reliable transport betweensending and receivingprocess
flow control: sender wontoverwhelm receiver
congestion control: throttlesender when networkoverloaded
does not provide: timing,minimum throughputguarantee, security
connection-oriented: setuprequired between client andserver processes
UDP service:
unreliable best-effort datatransfer between sendingand receiving process
Q: why bother?  Why isthere a UDP?
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
2-7
underline_base
Internet apps:  application, transport protocols
application
e-mail
remote terminal access
Web
file transfer
streaming multimedia
Internet telephony
application
layer protocol
SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
HTTP (e.g., YouTube),RTP [RFC 1889]
SIP, RTP, proprietary
(e.g., Skype)
underlying
transport protocol
TCP
TCP
TCP
TCP
TCP or UDP
TCP or UDP
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
Sockets
process sends/receives messages to/from its socket
socket analogous to door
sending process shoves message out door
sending process relies on transport infrastructure onother side of door to deliver message to socket atreceiving process
underline_base
Internet
controlled
by OS
controlled by
app developer
transport
application
physical
link
network
process
transport
application
physical
link
network
process
socket
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
2-9
Web and HTTP
First, a review as if you do not already know …
web page consists of objects
object can be HTML file, JPEG image, Java applet,audio file,…
web page consists of base HTML-file whichincludes several referenced objects
each object is addressable by a URL, e.g.,
www.someschool.edu/someDept/pic.gif
host name
path 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
2-10
HTTP overview
HTTP: hypertexttransfer protocol
Webs application layerprotocol
client/server model
client: browser thatrequests, receives,(using HTTP protocol)and displays Webobjects
server: Web serversends (using HTTPprotocol) objects inresponse to requests
PC running
Firefox browser
server
running
Apache Web
server
iphone running
Safari browser
HTTP request
HTTP response
underline_base
HTTP request
HTTP response
iphone_stylized_small
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
2-11
HTTP overview (continued)
uses TCP:
client initiates TCPconnection (createssocket) to server,  port 80
server accepts TCPconnection from client
HTTP messages(application-layer protocolmessages) exchangedbetween browser (HTTPclient) and Web server(HTTP server)
TCP connection closed
HTTP is stateless
server maintains noinformation aboutpast client requests
protocols that maintainstate are complex!
past history (state) mustbe maintained
if server/client crashes,their views of statemay be inconsistent, mustbe reconciled
aside
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
2-12
HTTP connections
non-persistent HTTP
at most one objectsent over TCPconnection
connection thenclosed
downloading multipleobjects requiredmultiple connections
persistent HTTP
multiple objects canbe sent over singleTCP connectionbetween client, server
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
2-13
underline_base
Non-persistent HTTP: response time
RTT (Round-Trip Time): timefor a small packet to travelfrom client to server and back
HTTP response time:
one RTT to initiate TCPconnection
one RTT for HTTP requestand first few bytes of HTTPresponse to return
file transmission time
non-persistent HTTPresponse time =
   2RTT+ file transmissiontime
time to
transmit
file
initiate TCP
connection
RTT
request
file
RTT
file
received
time
time
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
2-14
Persistent HTTP
non-persistent HTTP issues:
requires 2 RTTs per object
OS overhead for each TCPconnection
browsers often openparallel TCP connectionsto fetch referenced objects– one client may consumemuch of the server’sresource
persistent  HTTP:
server leaves connectionopen after sendingresponse
subsequent HTTPmessages  between sameclient/server sent overopen connection
client sends requests assoon as it encounters areferenced object
as little as one RTT for allthe referenced objects
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
2-15
underline_base
HTTP request message
two types of HTTP messages: requestresponse
HTTP request message:
ASCII or UNICODE (human-readable format)
request line (GET,POST, HEADcommands)
header
 lines
carriage return, line feed atstart of line indicates
end of header lines
GET /index.html HTTP/1.1\r\n
Host: www-net.cs.umass.edu\r\n
User-Agent: Firefox/3.6.10\r\n
Accept: text/html,application/xhtml+xml\r\n
Accept-Language: en-us,en;q=0.5\r\n
Accept-Encoding: gzip,deflate\r\n
Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n
Keep-Alive: 115\r\n
Connection: keep-alive\r\n
\r\n
carriage return character
line-feed character
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-16
underline_base
Method types
HTTP/1.0:
GET
POST
web page oftenincludes form input
input is uploaded toserver in entity body
HEAD
asks server to leaverequested object outof response
HTTP/1.1:
GET, POST, HEAD
PUT
uploads file in entitybody to path specifiedin URL field
DELETE
deletes file specified inthe URL field
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-17
underline_base
HTTP response message
status line
(protocol
status code
status phrase)
header
 lines
data, e.g.,
requested
HTML file
HTTP/1.1 200 OK\r\n
Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n
Server: Apache/2.0.52 (CentOS)\r\n
Last-Modified: Tue, 30 Oct 2007 17:00:02GMT\r\n
ETag: "17dc6-a5c-bf716880"\r\n
Accept-Ranges: bytes\r\n
Content-Length: 2652\r\n
Keep-Alive: timeout=10, max=100\r\n
Connection: Keep-Alive\r\n
Content-Type: text/html; charset=ISO-8859-1\r\n
\r\n
data data data data data ...
E l e c t r i c a l    &   C o m p u t e r
Department of
Electrical & Computer Engineering
2-18
underline_base
HTTP response status codes
200 OK
request succeeded, requested object later in this msg
301 Moved Permanently
requested object moved, new location specified later in this msg(Location:)
400 Bad Request
request msg not understood by server
404 Not Found
requested document not found on this server
505 HTTP Version Not Supported
status code appears in 1st line in server-to-client response message.
some sample codes: