ELEC ¡/ ¡COMP ¡177 ¡– ¡Fall ¡2012 ¡
Some ¡slides ¡from ¡Kurose ¡and ¡Ross, ¡Computer ¡Networking, ¡5th ¡Edition ¡
ELEC / COMP 177 Fall 2012 Some slides from Kurose - - PowerPoint PPT Presentation
ELEC / COMP 177 Fall 2012 Some slides from Kurose and Ross, Computer Networking , 5 th Edition Homework #1 Assigned today Due in one
Some ¡slides ¡from ¡Kurose ¡and ¡Ross, ¡Computer ¡Networking, ¡5th ¡Edition ¡
2 ¡
3 ¡
4 ¡
“Bits ¡on ¡a ¡wire” ¡ Encoding ¡schemes ¡fight: ¡ attenuation ¡ distortion ¡ clock ¡skew ¡
5 ¡
Framing ¡ Error ¡Detection ¡ Media ¡Access ¡ Control ¡ Ethernet! ¡ MAC ¡addresses ¡ Hubs ¡& ¡Switches ¡ Transfer ¡ between ¡ neighbors ¡
6 ¡
IP ¡– ¡Internet ¡Protocol! ¡ Packet ¡Headers ¡ IP ¡Addresses ¡ ICMP ¡for ¡error ¡ reporting ¡and ¡ router ¡signaling ¡ Routers ¡ Routing ¡Protocols ¡ End-‑to-‑End ¡ packet ¡ transfer ¡
7 ¡
TCP ¡ UDP ¡ End-‑to-‑End ¡ message ¡ transfer ¡
Sockets ¡
Flow ¡Control ¡ Congestion ¡Control ¡
8 ¡
HTTP ¡ DNS ¡ IMAP ¡
Sockets ¡
… ¡and ¡many ¡more! ¡ Skype ¡ BitTorrent ¡ RDP ¡ SSH ¡ LDAP ¡ NFS ¡
9 ¡
10 ¡
11 ¡
12 ¡
§ Communicate ¡over ¡network ¡ § e.g., ¡web ¡server ¡software ¡
§ Network-‑core ¡devices ¡do ¡
§ Applications ¡on ¡end ¡
13 ¡
application ¡ transport ¡ network ¡ data ¡link ¡ physical application ¡ transport ¡ network ¡ data ¡link ¡ physical application ¡ transport ¡ network ¡ data ¡link ¡ physical
14 ¡
§ May ¡be ¡intermittently ¡
§ May ¡have ¡dynamic ¡IP ¡
§ Do ¡not ¡communicate ¡
15 ¡
16 ¡
17 ¡
18 ¡
19 ¡
¡ Process ¡sends/receives ¡
¡ Socket ¡analogous ¡to ¡door ¡ § Sending ¡process ¡shoves ¡
§ Transport ¡infrastructure ¡on ¡
§ Imagine ¡you ¡are ¡just ¡writing ¡to ¡
¡ API ¡allow ¡customization ¡of ¡
§ Choose ¡transport ¡protocol ¡ § Choose ¡parameters ¡of ¡protocol ¡
20 ¡
process ¡ TCP ¡with ¡ buffers, ¡ variables ¡ socket ¡ host ¡or ¡ server ¡ process ¡ TCP ¡with ¡ buffers, ¡ variables ¡ socket ¡ host ¡or ¡ server ¡ Internet ¡ controlled ¡ by ¡OS ¡ ¡ controlled ¡by ¡ app ¡developer ¡
21 ¡
22 ¡
23 ¡
24 ¡
25 ¡
Application ¡ Data ¡Loss? ¡
(OK ¡or ¡not?) ¡
Throughput? ¡
(Min ¡required ¡or ¡ elastic?) ¡
Time ¡Sensitive? ¡
(Low ¡delay ¡required?) ¡
File ¡transfer ¡ Email ¡ Web ¡pages ¡ Real-‑time ¡audio ¡/ ¡ video ¡ Stored ¡audio/video ¡ Gaming ¡ Instant ¡messaging ¡
26 ¡
Application ¡ Data ¡Loss? ¡
(OK ¡or ¡not?) ¡
Throughput? ¡
(Min ¡required ¡or ¡ elastic?) ¡
Time ¡Sensitive? ¡
(Low ¡delay ¡required?) ¡
File ¡transfer ¡ No ¡data ¡loss ¡ Elastic ¡ “Normal” ¡delay ¡OK ¡ Email ¡ No ¡data ¡loss ¡ Elastic ¡ “Normal” ¡delay ¡OK ¡ Web ¡pages ¡ No ¡data ¡loss ¡ Elastic ¡ “Normal” ¡delay ¡OK ¡ Real-‑time ¡audio ¡/ ¡ video ¡ Loss ¡tolerant ¡ Minimum ¡ Time ¡sensitive ¡ Stored ¡audio/video ¡ Loss ¡tolerant ¡ Minimum ¡ “Normal” ¡delay ¡OK ¡ Gaming ¡ No ¡data ¡loss ¡ Minimum ¡ ¡ Time ¡sensitive ¡ Instant ¡messaging ¡ No ¡data ¡loss ¡ Elastic ¡ “Normal” ¡delay ¡OK ¡
¡ Connection-‑oriented ¡ § Setup ¡required ¡between ¡client ¡
and ¡server ¡processes ¡
¡ Reliable ¡transport ¡between ¡
¡ Flow ¡control ¡ § Sender ¡won’t ¡overwhelm ¡
receiver ¡ ¡
¡ Congestion ¡control ¡ § Sender ¡won’t ¡overwhelm ¡the ¡
network ¡
¡ Does ¡not ¡provide ¡ § Timing, ¡minimum ¡throughput ¡
guarantees, ¡security ¡
¡ Unreliable ¡data ¡transfer ¡
¡ Does ¡not ¡provide ¡
§ Connection ¡setup ¡ § Reliability ¡ § Flow ¡control ¡ § Congestion ¡control ¡ § Timing ¡ § Throughput ¡guarantee ¡ § Security ¡ ¡
27 ¡
Why ¡ bother ¡ with ¡UDP ¡ then? ¡
28 ¡
Application ¡ Data ¡Loss? ¡
(OK ¡or ¡not?) ¡
Throughput? ¡
(Min ¡required ¡or ¡ elastic?) ¡
Time ¡Sensitive? ¡
(Low ¡delay ¡required?) ¡
Transport ¡ Protocol ¡
File ¡transfer ¡ No ¡data ¡loss ¡ Elastic ¡ “Normal” ¡delay ¡OK ¡ TCP ¡ Email ¡ No ¡data ¡loss ¡ Elastic ¡ “Normal” ¡delay ¡OK ¡ TCP ¡ Web ¡pages ¡ No ¡data ¡loss ¡ Elastic ¡ “Normal” ¡delay ¡OK ¡ TCP ¡ Real-‑time ¡audio ¡/ ¡ video ¡ Loss ¡tolerant ¡ Minimum ¡ Time ¡sensitive ¡ UDP ¡ Stored ¡audio/video ¡ Loss ¡tolerant ¡ Minimum ¡ “Normal” ¡delay ¡OK ¡ TCP ¡or ¡UDP ¡ Gaming ¡ No ¡data ¡loss ¡ Minimum ¡ ¡ Time ¡sensitive ¡ UDP ¡ Instant ¡messaging ¡ No ¡data ¡loss ¡ Elastic ¡ “Normal” ¡delay ¡OK ¡ TCP ¡
29 ¡
30 ¡
host ¡name path ¡name
31 ¡
PC ¡running ¡ Chrome Server ¡ ¡ running ¡ Apache ¡Web ¡ server Mac ¡running ¡ Safari
32 ¡
Server ¡accepts ¡TCP ¡connection ¡from ¡client ¡ HTTP ¡messages ¡(application-‑layer ¡protocol ¡ messages) ¡exchanged ¡between ¡browser ¡ (HTTP ¡client) ¡and ¡Web ¡server ¡(HTTP ¡server) ¡ Client ¡initiates ¡TCP ¡connection ¡ (creates ¡socket) ¡to ¡server, ¡port ¡80 ¡
TCP ¡connection ¡closed ¡by ¡client ¡or ¡server ¡
33 ¡
34 ¡
connection ¡to ¡HTTP ¡server ¡ (process) ¡at ¡ ¡ www.someCompany.com ¡
message ¡(containing ¡URL) ¡into ¡TCP ¡ connection ¡socket. ¡Message ¡ indicates ¡that ¡client ¡wants ¡object ¡ someDept/index.html
www.someCompany.com ¡ waiting ¡for ¡TCP ¡connection ¡at ¡port ¡
notifying ¡client ¡
message, ¡forms ¡response ¡message ¡ containing ¡requested ¡object, ¡and ¡ sends ¡message ¡into ¡its ¡socket ¡ time (contains text and references to 10 jpeg images)
35 ¡
message ¡containing ¡html ¡file, ¡ displays ¡html. ¡ ¡Parsing ¡html ¡file, ¡ finds ¡10 ¡referenced ¡jpeg ¡ ¡objects ¡
jpeg ¡objects ¡
time
36 ¡
§ One ¡RTT ¡for ¡HTTP ¡
§ File ¡transmission ¡time ¡
¡ Total ¡= ¡2RTT+transmit ¡time ¡
37 ¡
time ¡to ¡ ¡ transmit ¡ ¡ file ¡ initiate ¡TCP ¡ connection ¡ RTT ¡ request ¡ file ¡ RTT ¡ file ¡ received ¡ time time
§ Server ¡leaves ¡connection ¡
§ Subsequent ¡HTTP ¡
§ Client ¡sends ¡requests ¡as ¡
§ As ¡little ¡as ¡one ¡RTT ¡for ¡all ¡
38 ¡
39 ¡
40 ¡
41 ¡
42 ¡
43 ¡
§ request ¡succeeded, ¡requested ¡object ¡later ¡in ¡this ¡message ¡
§ requested ¡object ¡moved, ¡new ¡location ¡specified ¡later ¡in ¡this ¡
§ request ¡message ¡not ¡understood ¡by ¡server ¡
§ requested ¡document ¡not ¡found ¡on ¡this ¡server ¡
In ¡first ¡line ¡in ¡server-‑>client ¡response ¡message. ¡ A ¡few ¡sample ¡codes: ¡
44 ¡
45 ¡
¡
Opens ¡TCP ¡connection ¡to ¡port ¡80 ¡ (default ¡HTTP ¡server ¡port) ¡at ¡www.google.com Anything ¡typed ¡in ¡sent ¡ ¡ to ¡port ¡80 ¡at ¡www.google.com telnet www.google.com 80
¡ GET /about/ HTTP/1.1 Host: www.google.com By ¡typing ¡this ¡in ¡(hit ¡carriage ¡ return ¡twice), ¡you ¡send ¡ this ¡minimal ¡(but ¡complete) ¡ ¡ GET ¡request ¡to ¡HTTP ¡server
46 ¡
47 ¡
client server usual ¡http ¡response ¡msg usual ¡http ¡response ¡msg
usual ¡http ¡request ¡msg ¡
access ¡
ebay 8734
usual ¡http ¡request ¡msg
¡ ¡ ¡ ¡entry ¡ usual ¡http ¡response ¡ ¡
ebay 8734 amazon 1678
usual ¡http ¡request ¡msg ¡
access ¡
ebay 8734 amazon 1678
backend ¡ database ¡
48 ¡
49 ¡ http://arstechnica.com/web/news/2010/09/evercookie-‑escalates-‑the-‑zombie-‑cookie-‑war-‑by-‑raising-‑awareness.ars ¡
50 ¡
¡ User ¡sets ¡browser ¡to ¡
¡ Browser ¡sends ¡all ¡HTTP ¡
§ Object ¡in ¡cache? ¡Cache ¡
§ Object ¡not ¡in ¡cache? ¡
client
client
server
server
51 ¡
52 ¡
¡ Average ¡object ¡size ¡= ¡1 ¡Mbit ¡ ¡ Average ¡request ¡rate ¡from ¡
¡ Delay ¡from ¡institutional ¡router ¡to ¡
¡
Utilization ¡on ¡LAN ¡= ¡15% ¡
¡
Utilization ¡on ¡access ¡link ¡= ¡100% ¡
¡
Total ¡delay ¡ ¡ ¡= ¡Internet ¡delay ¡+ ¡access ¡ delay ¡+ ¡LAN ¡delay ¡ ¡ ¡= ¡ ¡2 ¡sec ¡+ ¡minutes ¡+ ¡milliseconds ¡
public ¡ ¡Internet institutional ¡ network 100 ¡Mbps ¡LAN 15 ¡Mbps ¡ ¡ access ¡link
53 ¡
¡ Buy ¡more ¡link ¡bandwidth! ¡ ¡ Say, ¡100 ¡Mbps ¡
¡
Utilization ¡on ¡LAN ¡= ¡15% ¡
¡
Utilization ¡on ¡access ¡link ¡= ¡15% ¡
¡
Total ¡delay ¡ ¡ ¡= ¡Internet ¡delay ¡+ ¡access ¡ delay ¡+ ¡LAN ¡delay ¡ ¡ ¡= ¡ ¡2 ¡sec ¡+ ¡msecs ¡+ ¡msecs ¡
¡
Often ¡a ¡costly ¡upgrade ¡
54 ¡
public ¡ ¡Internet institutional ¡ network 100 ¡Mbps ¡LAN 100 ¡Mbps ¡ ¡ access ¡link
¡ Suppose ¡hit ¡rate ¡is ¡0.4 ¡
¡ 40% ¡requests ¡will ¡be ¡satisfied ¡
¡ 60% ¡requests ¡satisfied ¡by ¡origin ¡
¡ Utilization ¡of ¡access ¡link ¡
¡ Total ¡average ¡delay ¡ ¡
§
= ¡Internet ¡delay ¡+ ¡access ¡delay ¡+ ¡ LAN ¡delay ¡ ¡ ¡ ¡
§
= ¡ ¡.6*(2.01) ¡secs ¡ ¡+ ¡.4*milliseconds ¡ ¡
§
= ¡Approx ¡1.2 ¡secs ¡ ¡ Faster ¡and ¡cheaper ¡than ¡
public ¡ ¡Internet institutional ¡ network 100 ¡Mbps ¡LAN 15 ¡Mbps ¡ ¡ access ¡link
institutional ¡ cache
55 ¡
¡ How ¡do ¡I ¡know ¡if ¡the ¡cache ¡
§ Solution: ¡Conditional ¡Get ¡ § Don’t ¡send ¡object ¡if ¡cache ¡has ¡
¡ cache: ¡specify ¡date ¡of ¡
§ If-modified-since:
¡ Server: ¡response ¡contains ¡
§ HTTP/1.0 304 Not
56 ¡
cache server HTTP ¡request ¡msg ¡
If-modified-since: <date>
HTTP ¡response ¡
HTTP/1.0 304 Not Modified
HTTP ¡request ¡msg ¡
If-modified-since: <date>
HTTP ¡response ¡
HTTP/1.0 200 OK