introduc6on$to$computer$networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf ·...

45
1/11/13 1 Computer Science & Engineering Introduc6on to Computer Networks Arvind Krishnamurthy David Wetherall, John Zahorjan Focus of the course CSE 461 University of Washington 2 ???

Upload: others

Post on 22-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

1  

Computer  Science  &  Engineering  

Introduc6on  to  Computer  Networks  

Arvind  Krishnamurthy  David  Wetherall,  John  Zahorjan  

Focus  of  the  course  

CSE  461  University  of  Washington   2  

???  

Page 2: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

2  

Focus  of  the  course  (2)  •  Three  “networking”  topics:  

 •  We’re  in  the  middle  

Distributed  systems  

Networking  

Communica6ons  

CSE  461  University  of  Washington   3  

The  Main  Point  1.  To  learn  how  the  Internet  works  »  

–  What  really  happens  when  you  “browse  the  web”?  

–  What  are  TCP/IP,  DNS,  HTTP,  NAT,  VPNs,  802.11  etc.  anyway?  

2.  To  learn  the  fundamentals  of  computer  networks  

CSE  461  University  of  Washington   4  

Page 3: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

3  

CSE  461  University  of  Washington   5  

Why  learn  about  the  Internet?    

1.  Curiosity  »  2.  Impact  on  our  world  »  3.  Job  prospects!  

From  this  experimental  network  …  

CSE  461  University  of  Washington   6  

ARPANET  ~1970  

(a)  Dec.  1969.  (b)  July  1970.      (c)  March  1971.    

Page 4: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

4  

CSE  461  University  of  Washington   7  

       To  this!  

•  An  everyday  ins6tu6on  used  at  work,  home,  and  on-­‐the-­‐go  

•  Visualiza6on  contains  millions  of  links  

Airibu6on:  By  The  Opte  Project  [CC-­‐BY-­‐2.5],  via  Wikimedia  Commons  

Internet  ~2005  

CSE  461  University  of  Washington   8  

Ques6on  

•  What  do  you  think  are  the  issues  that  one  has  to  tackle  to  grow  from  a  small  network  to  an  extremely  large  network?  

Page 5: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

5  

Internet  –  Societal  Impact  •  An  enabler  of  societal  change  

– Easy  access  to  knowledge  – Electronic  commerce  – Personal  rela6onships  – Discussion  without  censorship  

CSE  461  University  of  Washington   9  

Internet  –  Economic  impact  •  An  engine  of  economic  growth  

– Adver6sing-­‐sponsored  search  – “Long  tail”  online  stores  – Online  marketplaces  – Crowdsourcing    

CSE  461  University  of  Washington   10  

Page 6: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

6  

The  Main  Point  (2)  1.  To  learn  how  the  Internet  works  2.  To  learn  the  fundamentals  of  

computer  networks  –  What  hard  problems  must  they  

solve?  –  What  design  strategies  have  

proven  valuable?  

CSE  461  University  of  Washington   11  

CSE  461  University  of  Washington   12  

Why  learn  the  Fundamentals?  

1.  Apply  to  all  computer  networks  

2.  Intellectual  interest  »  3.  Change  /  reinven6on  »  

Page 7: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

7  

CSE  461  University  of  Washington   13  

Fundamentals  –  Intellectual  Interest  

•  Example  key  problem:  Reliability!  – Any  part  of  the  Internet  might  fail  – Messages  might  be  corrupted  –  So  how  do  we  provide  reliability?  

Fundamentals  –  Intellectual  Interest  (2)  

CSE  461  University  of  Washington   14  

Key  problem   Example  solu0ons  Reliability  despite  failures  

Codes  for  error  detec6on/correc6on  (§3.2,  3.3)  Rou6ng  around  failures  (§5.2)  

Network  growth                          and  evolu6on  

Addressing  (§5.6)  and  naming  (§7.1)  Protocol  layering  (§1.3)  

Alloca6on  of  resources  like  bandwidth    

Mul6ple  access  (§4.2)  Conges6on  control  (§5.3,  6.3)  

Security  against  various  threats  

Confiden6ality  of  messages  (§8.2,  8.6)  Authen6ca6on  of  communica6ng  par6es  (§8.7)  

Page 8: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

8  

Fundamentals  –  Reinven6on    •  The  Internet  is  constantly  being  re-­‐invented!  

– Growth  over  6me  and  technology  trends  drive  upheavals  in  Internet  design  and  usage  »  

•  Today’s  Internet  is  different  from  yesterday’s  – And  tomorrow’s  will  be  different  again  – But  the  fundamentals  remain  the  same  

CSE  461  University  of  Washington   15  

CSE  461  University  of  Washington   16  

Fundamentals  –  Reinven6on  (2)  •  At  least  a  billion  Internet  hosts  and  growing  …  

Page 9: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

9  

Fundamentals  –  Reinven6on  (3)  •  Examples  of  upheavals  in  the  past  1-­‐2  decades  

CSE  461  University  of  Washington   17  

Growth  /  Tech  Driver   Upheaval  Emergence  of  the  web   Content  Distribu6on  Networks  Digital  songs/videos   Peer-­‐to-­‐peer  file  sharing  Falling  cost/bit   Voice-­‐over-­‐IP  calling  Many  Internet  hosts   IPv6  Wireless  advances   Mobile  devices  

CSE  461  University  of  Washington   18  

Not  a  Course  Goal  

•  To  learn  IT  job  skills  – How  to  configure  equipment  

•  e.g.,  Cisco  cer6fica6ons  – But  course  material  is  relevant,  and  we  use  hands-­‐on  tools    

Page 10: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

10  

Course  Mechanics  •  Course Administration

–  Everything you need to know will be on the course web page: http://www.cs.washington.edu/461/

•  Teaching Assistants: –  Ravi Bhoraskar –  Max Forbes

•  Concurrent with an online Coursera course

CSE  461  University  of  Washington   20  

Course  Logis6cs    

1.  Reading  2.  Projects/Homeworks:  60%  3.  Mid-­‐term/final:  40%  

Page 11: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

11  

Computer  Science  &  Engineering  

Introduc6on  to  Computer  Networks  

Uses  of  Networks  (§1.1)  

CSE  461  University  of  Washington   22  

Example  Uses  of  Networks  •  Work:  

–  Email,  file  sharing,  prin6ng,  …  •  Home:  

– Movies  /  songs,  news,  calls  /  video  /  messaging,  e-­‐commerce,  …  

•  Mobile:  –  Calls  /  texts,  games,  videos,  maps,  informa6on  access  …  

Page 12: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

12  

CSE  461  University  of  Washington   23  

Example  Uses  of  Networks  •  Work:  

–  Email,  file  sharing,  prin6ng,  …  •  Home:  

– Movies  /  songs,  news,  calls  /  video  /  messaging,  e-­‐commerce,  …  

•  Mobile:  –  Calls  /  texts,  games,  videos,  maps,  informa6on  access  …  

What  do  these  uses  tell  us  about  why  we  build  networks?  

CSE  461  University  of  Washington   24  

For  User  Communica6on  •  From  the  telephone  onwards:  

–  VoIP  (voice-­‐over-­‐IP)  –  Video  conferencing  –  Instant  messaging  –  Social  networking  

→ What  is  the  metric  we  need  to  be  op6mizing  for  these  uses?  

Page 13: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

13  

CSE  461  University  of  Washington   25  

For  Resource  Sharing  •  Many  users  may  access  the  same  underlying  resource  –  E.g.,  3D  printer,  search  index,  machines  in  the  cloud  

→ More  cost  effec6ve  than  dedicated  resources  per  user  –  Even  network  links  are  shared  via  sta6s6cal  mul6plexing  »  

CSE  461  University  of  Washington   26  

Sta6s6cal  Mul6plexing  •  Sharing  of  network  bandwidth  between  users  according  to  the  sta6s6cs  of  their  demand  –  (Mul6plexing  just  means  sharing)  –  Useful  because  users  are  mostly  idle  and  their  traffic  is  bursty  

•  Key  ques6on:    –  How  much  does  it  help?  

Page 14: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

14  

CSE  461  University  of  Washington   27  

Sta6s6cal  Mul6plexing  (2)  •  Example:  Users  in  an  ISP  network  

–  Network  has  100  Mbps  (units  of  bandwidth)  –  Each  user  subscribes  to  5  Mbps,  for  videos  –  But  a  user  is  ac6ve  only  50%  of  the  6me  …  

•  How  many  users  can  the  ISP  support?  

–  With  dedicated  bandwidth  for  each  user:  

–  Probability  all  bandwidth  is  used:    

ISP  100  

5  

5  

5  

.  .  .  

CSE  461  University  of  Washington   28  

Sta6s6cal  Mul6plexing  (3)  •  With  30  users,  s6ll  unlikely  

(2%  chance)  to  need  more  than  100  Mbps!  –  Binomial  probabili6es    

→ Can  serve  more  users  with  the  same  size  network  –  Sta6s6cal  mul6plexing  gain  is  30/20  or  1.5X  

–  But  may  get  unlucky;  users  will  have  degraded  service  

Page 15: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

15  

CSE  461  University  of  Washington   29  

For  Content  Delivery  •  Same  content  is  delivered  to  many  users  –  Videos  (large),  songs,  apps  and  upgrades,  web  pages,  …  

→ What  is  the  metric  that  we  want  to  op6mize  in  such  cases?  

CSE  461  University  of  Washington   30  

Content  Delivery  (2)  •  Sending  content  from  the  source  to  4  users  takes  4  x  3  =  12  “network  hops”  in  the  example  

Source  

User  

User  

.  .  .  

Page 16: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

16  

CSE  461  University  of  Washington   31  

Content  Delivery  (3)  •  But  sending  content  via  replicas  takes  only  4  +  2  =  6  “network  hops”  

Source  

User  

User  

.  .  .  

Replica  

Computer  Science  &  Engineering  

Introduc6on  to  Computer  Networks  

Network  Components  (§1.2)  

Page 17: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

17  

Parts  of  a  Network  

CSE  461  University  of  Washington   33  

host  

app  

link  router  

Component  Names  

CSE  461  University  of  Washington   34  

Component   Func0on   Example  Applica6on,  or  app,  user   Uses  the  network   Skype,  iTunes,  Amazon  Host,  or  end-­‐system,  edge  device,  node,  source,  sink   Supports  apps   Laptop,  mobile,  desktop  

Router,  or  switch,  node,    intermediate  system,  …  

Relays  messages  between  links  

Access  point,  cable/DSL  modem  

Link,  or  channel   Connects  nodes   Wires,  wireless  

Page 18: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

18  

CSE  461  University  of  Washington   35  

Types  of  Links  •  Full-­‐duplex  

–  Bidirec6onal  

•  Half-­‐duplex  –  Bidirec6onal  

•  Simplex  –  unidirec6onal  

CSE  461  University  of  Washington   36  

Wireless  Links  •  Message  is  broadcast  

– Received  by  all  nodes  in  range  – Not  a  good  fit  with  our  model  

Page 19: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

19  

CSE  461  University  of  Washington   37  

Example  Networks  •  WiFi  (802.11)  •  Enterprise  /  Ethernet  •  ISP  (Internet  Service  Provider)  •  Cable  /  DSL  •  Mobile  phone  /  cellular  (2G,  3G,  4G)  •  Bluetooth  •  Telephone  •  Satellite  ...  

Network  names  by  scale  

CSE  461  University  of  Washington   38  

Scale Type Example Vicinity PAN (Personal Area Network) Bluetooth (e.g., headset) Building LAN (Local Area Network) WiFi, Ethernet City MAN (Metropolitan Area

Network) Cable, DSL

Country WAN (Wide Area Network) Large ISP Planet The Internet (network of all

networks) The Internet!

Page 20: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

20  

CSE  461  University  of  Washington   39  

Internetworks  •  An  internetwork,  or  internet,    is  what  you  get  when  you  join  networks  together  –  Just  another  network  

•  The  Internet  (capital  “I”)  is  the  internet  we  all  use  

CSE  461  University  of  Washington   40  Source:  Internet2  

Page 21: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

21  

CSE  461  University  of  Washington   41  

Key  Interfaces  •  Between  (1)  apps  and  network,    and  (2)  network  components  – More  formal  treatment  later  on  

host  

app  

CSE  461  University  of  Washington   42  

Key  Interfaces  (2)  1.  Network-­‐applica6on  interfaces  

define  how  apps  use  the  network  –  Sockets  are  widely  used  in  prac6ce  

host  

app  

Page 22: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

22  

CSE  461  University  of  Washington   43  

2.  Network-­‐network  interfaces  define  how  nodes  work  together  –  Traceroute  can  peek  in  the  network    

Key  Interfaces  (3)  

host  

app  

Computer  Science  &  Engineering  

Introduc6on  to  Computer  Networks  

Peeking  inside  the  Network  with  Traceroute  

Page 23: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

23  

CSE  461  University  of  Washington   45  

Network  Service  API  Hides  Details  •  Apps  talk  to  other  apps  with  no  real  idea  of  what  is  inside  the  network  –  This  is  good!  But  you  may  be  curious  …  

host  

app  app  

host  

???  

CSE  461  University  of  Washington   46  

Traceroute  •  Widely  used  command-­‐line  tool  to  let  hosts  peek  inside  the  network  –  On  all  OSes  (tracert  on  Windows)  –  Developed  by  Van  Jacobson  ~1987  –   Uses  a  network-­‐network  interface    (IP)  in  ways  we  will  explain  later    

Page 24: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

24  

Traceroute  (2)  •  Probes  successive  hops  to  find  network  path  

CSE  461  University  of  Washington   47  

.  .  .    

Local  Host  

Remote  Host  

Traceroute  (3)  

CSE  461  University  of  Washington   48  

.  .  .    

Local  Host   Remote  

Host  

1  hop   2  hops  3  hops   N-­‐1  hops  

N  hops  

Page 25: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

25  

Using  Traceroute  

CSE  461  University  of  Washington   49  

Using  Traceroute  (2)  •  ISP  names  and  places  are  educated  guesses  

CSE  461  University  of  Washington   50  

.  .  .    

My  computer   www.uw.edu  (www1.cac.washington.edu)  

tde  3  hops  

Telefonica  4  hops  

Level3  6  hops  

pnw-­‐gigapop      1  hop  

   UW  3  hops  

NYC   San  Jose   Seaile  

UW  

Home  1  hop  

100  ms  180  ms  

>200  ms  

Page 26: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

26  

Traceroute  to  another  commercial  webserver  -­‐bash-­‐3.1$  traceroute  www.nyse.com  traceroute  to  www.nyse.com  (209.124.184.150),  30  hops  max,  40  byte  packets    1    acar-­‐hsh-­‐01-­‐vlan75.cac.washington.edu  (128.208.2.100)    0.327  ms    0.353  ms    0.392  ms    2    uwcr-­‐hsh-­‐01-­‐vlan3904.cac.washington.edu  (205.175.110.17)    0.374  ms    0.412  ms    0.443  ms    3    uwcr-­‐hsh-­‐01-­‐vlan1901.cac.washington.edu  (205.175.103.5)    0.595  ms    0.628  ms    0.659  ms    4    uwbr-­‐ads-­‐01-­‐vlan1902.cac.washington.edu  (205.175.103.10)    0.445  ms    0.472  ms    0.501  ms    5    ccar1-­‐ads-­‐ge-­‐0-­‐0-­‐0-­‐0.pnw-­‐gigapop.net  (209.124.176.32)    0.679  ms    0.747  ms    0.775  ms    6    a209.124.184.150.deploy.akamaitechnologies.com.184.124.209.in-­‐addr.arpa  (209.124.184.150)    0.621  ms    0.456  ms    0.419  ms        

 What  is  going  on?    -­‐bash-­‐3.1$  nslookup  www.nyse.com  Name:      a789.g.akamai.net  Address:  209.124.184.137  

Announcements  •  Project  1  will  be  released  on  Monday  •  No  sec6on  tomorrow;  instead  the  TA(s)  will  hold  office  hours  

CSE  461  University  of  Washington   52  

Page 27: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

27  

Computer  Science  &  Engineering  

Introduc6on  to  Computer  Networks  

The  Socket  API    (§1.3.4,  6.1.2-­‐6.1.4)  

CSE  461  University  of  Washington   54  

Network-­‐Applica6on  Interface  •  Defines  how  apps  use  the  network  

–  Lets  apps  talk  to  each  other  via  hosts;  hides  the  details  of  the  network  

host  

app  app  

host  

Page 28: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

28  

CSE  461  University  of  Washington   55  

Mo6va6ng  Applica6on  •  Simple  client-­‐server  setup  

request  

reply  

CSE  461  University  of  Washington   56  

Mo6va6ng  Applica6on  (2)  •  Simple  client-­‐server  setup  

–  Client  app  sends  a  request  to  server  app  –  Server  app  returns  a  (longer)  reply  

•  This  is  the  basis  for  many  apps!  –  File  transfer:  send  name,  get  file  (§6.1.4)  –  Web  browsing:  send  URL,  get  page  –  Echo:  send  message,  get  it  back  

•  Let’s  see  how  to  write  this  app  …  

Page 29: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

29  

CSE  461  University  of  Washington   57  

Socket  API  •  Simple  abstrac6on  to  use  the  network  

–  The  network  service  API  used  to  write  all  Internet  applica6ons  

–  Part  of  all  major  OSes  and  languages;  originally  Berkeley  (Unix)  ~1983  

•  Supports  two  kinds  of  network  services  –  Streams:  reliably  send  a  stream  of  bytes  »  –  Datagrams:  unreliably  send  separate  messages.  (Ignore  for  now.)  

–  Ques6on:  when  would  you  use  streams  vs.  datagrams?  

CSE  461  University  of  Washington   58  

Socket  API  (2)  •  Sockets  let  apps  aiach  to  the  

local  network  at  different  ports  

Socket,  Port  #1  

Socket,  Port  #2  

Page 30: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

30  

Socket  API  (3)  

CSE  461  University  of  Washington   59  

Primi0ve   Meaning  SOCKET   Create  a  new  communica6on  endpoint  BIND   Associate  a  local  address  with  a  socket  LISTEN   Announce  willingness  to  accept  connec6ons;  give  queue  size  ACCEPT   Passively  establish  an  incoming  connec6on  CONNECT   Ac6vely  aiempt  to  establish  a  connec6on  SEND   Send  some  data  over  the  connec6on  RECEIVE   Receive  some  data  from  the  connec6on  CLOSE   Release  the  connec6on  

CSE  461  University  of  Washington   60  

Using  Sockets  Client  (host  1)   Server  (host  2)  Time  

Page 31: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

31  

CSE  461  University  of  Washington   61  

Using  Sockets  (2)  Client  (host  1)   Server  (host  2)  Time  

5:  connect*  

1:  socket   2:  bind  1:  socket  

3:  listen  

9:  send  

6:  recv*  

4:  accept*  

7:  send  8:  recv*  

10:  close   10:  close  

request  

reply  

disconnect  

connect  

*=  call  blocks  

CSE  461  University  of  Washington   62  

Client  Program  (outline)  socket()    //  make  socket  getaddrinfo()  //  server  and  port  name  

   //  www.example.com:80  connect()  //  connect  to  server  [block]  …  send()    //  send  request  recv()    //  await  reply  [block]  …    //  do  something  with  data!  close()    //  done,  disconnect  

Page 32: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

32  

CSE  461  University  of  Washington   63  

Server  Program  (outline)  socket()    //  make  socket  getaddrinfo()  //  for  port  on  this  host  bind()    //  associate  port  with  socket  listen()    //  prepare  to  accept  connec6ons  accept()    //  wait  for  a  connec6on  [block]    …  recv()    //  wait  for  request  …  send()    //  send  the  reply  close()    //  eventually  disconnect  

Computer  Science  &  Engineering  

Introduc6on  to  Computer  Networks  

Protocols  and  Layering  (§1.3)  

Page 33: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

33  

CSE  461  University  of  Washington   65  

Networks  Need  Modularity  •  The  network  does  much  for  apps:  

–  Make  and  break  connec6ons  –  Find  a  path  through  the  network  –  Transfers  informa6on  reliably  –  Transfers  arbitrary  length  informa6on  –  Send  as  fast  as  the  network  allows  –  Shares  bandwidth  among  users  –  Secures  informa6on  in  transit  –  Lets  many  new  hosts  be  added  –  …  

CSE  461  University  of  Washington   66  

Networks  Need  Modularity  •  The  network  does  much  for  apps:  

–  Make  and  break  connec6ons  –  Find  a  path  through  the  network  –  Transfers  informa6on  reliably  –  Transfers  arbitrary  length  informa6on  –  Send  as  fast  as  the  network  allows  –  Shares  bandwidth  among  users  –  Secures  informa6on  in  transit  –  Lets  many  new  hosts  be  added  –  …  

We  need  a  form  of  modularity,  to  help  manage  complexity  and  support  reuse  

Page 34: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

34  

CSE  461  University  of  Washington   67  

Protocols  and  Layers  •  Protocols  and  layering  is  the  main  structuring  method  used  to  divide  up  network  func6onality  –  Each  instance  of  a  protocol  talks  virtually  to  its  peer  using  the  protocol  

–  Each  instance  of  a  protocol  uses  only  the  services  of  the  lower  layer    

Protocols  and  Layers  (2)  •  Protocols  are  horizontal,  layers  are  ver6cal  

CSE  461  University  of  Washington   68  

X  

Y  Y  

X  Instance  of  protocol  X  

Peer  instance  

Node  1   Node  2  

Lower  layer  instance  (of  protocol  Y)  

Protocol  X  

Service  provided  by  Protocol  Y  

Page 35: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

35  

Protocols  and  Layers  (3)  •  Set  of  protocols  in  use  is  called  a  protocol  stack  

CSE  461  University  of  Washington   69  

CSE  461  University  of  Washington   70  

Protocols  and  Layers  (4)  •  Protocols  you’ve  probably  heard  of:  

–  TCP,  IP,  802.11,  Ethernet,  HTTP,  SSL,  DNS,  …  and  many  more  

•  An  example  protocol  stack  –  Used  by  a  web  browser  on  a  host  that  is  wirelessly  connected  to  the  Internet    

Page 36: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

36  

CSE  461  University  of  Washington   71  

Encapsula6on  •  Encapsula6on  is  the  mechanism  used  to  effect  protocol  layering  –  Lower  layer  wraps  higher  layer  content,  adding  its  own  informa6on  to  make  a  new  message  for  delivery  

–  Like  sending  a  leier  in  an  envelope;  postal  service  doesn’t  look  inside  

Encapsula6on  (2)  

CSE  461  University  of  Washington   72  

HTTP  

TCP  

IP  

802.11  

Page 37: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

37  

Encapsula6on  (3)  

CSE  461  University  of  Washington   73  

HTTP  

TCP  

IP  

802.11  

HTTP  

TCP   HTTP  

TCP   HTTP  IP  

TCP   HTTP  IP  802.11  

HTTP  

TCP  

IP  

802.11  (wire)  

HTTP  

TCP   HTTP  

TCP   HTTP  IP  

TCP   HTTP  IP  802.11  

TCP   HTTP  IP  802.11  

Encapsula6on  (4)  •  Normally  draw  message  like  this:  

–  Each  layer  adds  its  own  header  

•  More  involved  in  prac6ce  –  Trailers  as  well  as  headers,  encrypt/compress  contents  –  Segmenta6on  (divide  long  message)  and  reassembly    

CSE  461  University  of  Washington   74  

802.11   IP   TCP   HTTP  

First  bits  on  the  wire   Last  bits  

Page 38: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

38  

CSE  461  University  of  Washington   75  

Demul6plexing  •  Incoming  message  must  be  passed  to  the  protocols  that  it  uses    

??  

UDP  TCP  

ARP  IP  

Ethernet  

SMTP   HTTP   DNS  

Demul6plexing  (2)  •  Done  with  demul6plexing  keys  in  the  headers  

CSE  461  University  of  Washington   76  

Ethernet   IP   TCP   HTTP  

UDP  TCP  

ARP  IP  

Ethernet  

SMTP   HTTP  

Ethertype  value  

IP  protocol  field  

TCP  port  number  

Host  Incoming    message  

DNS  

Page 39: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

39  

Advantage  of  Layering  •  Informa6on  hiding  and  reuse  

CSE  461  University  of  Washington   77  

HTTP  

Browser  

HTTP  

Server  

HTTP  

Browser  

HTTP  

Server  

or  

Advantage  of  Layering  (2)  •  Using  informa6on  hiding  to  connect  different  systems  

CSE  461  University  of  Washington   78  

HTTP  

TCP  

IP  

802.11  

Browser  

HTTP  

TCP  

IP  Ethernet  

Server  

Page 40: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

40  

CSE  461  University  of  Washington   79  

Disadvantage  of  Layering  

•  What  are  the  undersirable  aspects  of  layering?  

Computer  Science  &  Engineering  

Introduc6on  to  Computer  Networks  

Reference  Models  (§1.4,  1.6)  

Page 41: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

41  

CSE  461  University  of  Washington   81  

Guidance  •  What  func6onality  should  we  implement  at  which  layer?  – This  is  a  key  design  ques6on  – Reference  models  provide  frameworks  that  guide  us  »  

OSI  “7  layer”  Reference  Model  •  A  principled,  interna6onal  standard,  to  connect  systems  

–   Influen6al,  but  not  used  in  prac6ce.  (Woops)  

 

CSE  461  University  of  Washington   82  

–  Provides  func6ons  needed  by  users  –  Converts  different  representa6ons  –  Manages  task  dialogs  –  Provides  end-­‐to-­‐end  delivery  –  Sends  packets  over  mul6ple  links  –  Sends  frames  of  informa6on  –  Sends  bits  as  signals  

Page 42: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

42  

Internet  Reference  Model  •  A  four  layer  model  based  on  experience;  omits  some  OSI  layers  and  uses  the  IP  as  the  network  layer.  

 

CSE  461  University  of  Washington   83  

4.          Applica6on        –  Programs  that  use  network  service    3.          Transport              –  Provides  end-­‐to-­‐end  data  delivery    2.          Internet              –  Send  packets  over  mul6ple  networks  

1.          Link              –  Send  frames  over  a  link  

Internet  Reference  Model  (2)  •  With  examples  of  common  protocols  in  each  layer    

CSE  461  University  of  Washington   84  

4.  Applica6on  3.  Transport  

2.  Internet  

1.  Link  

Page 43: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

43  

Internet  Reference  Model  (3)  •  IP  is  the  “narrow  waist”  of  the  Internet  

–  Supports  many  different  links  below  and  apps  above  

CSE  461  University  of  Washington   85  

4.  Applica6on  3.  Transport  

2.  Internet  

1.  Link   Ethernet  802.11  

IP  

TCP   UDP  

HTTP  SMTP   RTP   DNS  

3G  DSL  Cable  

CSE  461  University  of  Washington   86  

Standards  Bodies  •  Where  all  the  protocols  come  from!  

–  Focus  is  on  interoperability  Body Area Examples ITU Telecom G.992, ADSL

H.264, MPEG4 IEEE Communications 802.3, Ethernet

802.11, WiFi IETF Internet RFC 2616, HTTP/1.1

RFC 1034/1035, DNS

W3C Web HTML5 standard CSS standard

Page 44: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

44  

CSE  461  University  of  Washington   87  

Layer-­‐based  Names  •  For  units  of  data:  

Layer Unit of Data Application Message Transport Segment Network Packet Link Frame Physical Bit

CSE  461  University  of  Washington   88  

Layer-­‐based  Names  (2)  •  For  devices  in  the  network:  

Network  Link  

Network  Link  

Link   Link  

Physical   Physical  Repeater  

Switch  (or  bridge)  

Router  

Page 45: Introduc6on$to$Computer$Networks$courses.cs.washington.edu/courses/cse461/13wi/lectures/lect1.pdf · 1/11/13 13 CSE$461$University$of$Washington$ 25 For$Resource$Sharing$ • Many$users$may$access$the$same$

1/11/13  

45  

CSE  461  University  of  Washington   89  

Layer-­‐based  Names  (3)  •  For  devices  in  the  network:  

Proxy  or  middlebox  or  gateway  

Network  Link  

Network  Link  

App  Transport  

App  Transport  

But  they  all  look  like  this!  

CSE  461  University  of  Washington   90  

A  Note  About  Layers  •  They  are  guidelines,  not  strict  

– May  have  mul6ple  protocols  working  together  in  one  layer  

– May  be  difficult  to  assign  a  specific  protocol  to  a  layer