introduc3on)to)computer)networks) · computer)science)&)engineering)...

179
Computer Science & Engineering Introduc3on to Computer Networks Overview of the Link Layer

Upload: others

Post on 05-Aug-2020

15 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Computer  Science  &  Engineering  

Introduc3on  to  Computer  Networks  

Overview  of  the  Link  Layer  

Page 2: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   2  

Where  we  are  in  the  Course  •  Moving  on  to  the  Link  Layer!  

Physical  Link  

Network  Transport  Applica3on  

Page 3: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   3  

Scope  of  the  Link  Layer  •  Concerns  how  to  transfer  messages  over  one  or  more  connected  links  – Messages  are  frames,  of  limited  size  –  Builds  on  the  physical  layer  

Frame  

Page 4: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

In  terms  of  layers  

CSE  461  University  of  Washington   4  

Actual  data  path  

Virtual  data  path  

Network  

Link  

Physical  

Page 5: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Typical  Implementa3on  of  Layers  

CSE  461  University  of  Washington   5  

Page 6: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   6  

Topic  •  The  Physical  layer  gives  us  a  stream  of  bits.  How  do  we  interpret  it  as  a  sequence  of  frames?  

…10110  …  

Um?  

Page 7: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   7  

Byte  Count  •  First  try:  

– Let’s  start  each  frame  with  a  length  field!  

–  It’s  simple,  and  hopefully  good  enough  …  

Page 8: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Byte  Count  (2)  •  How  well  do  you  think  it  works?  

CSE  461  University  of  Washington   8  

Page 9: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Byte  Count  (3)  •  Difficult  to  re-­‐synchronize  acer  framing  error  

– Want  an  easy  way  to  scan  for  a  start  of  frame  

CSE  461  University  of  Washington   9  

Page 10: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   10  

Byte  Stuffing  •  Beeer  idea:  

–  Have  a  special  flag  byte  value  that  means  start/end  of  frame  

–  Replace  (“stuff”)  the  flag  inside  the  frame  with  an  escape  code  

–  Complica3on:  have  to  escape  the  escape  code  too!  

Page 11: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Byte  Stuffing  (2)  •  Rules:  

–  Replace  each  FLAG  in  data  with  ESC  FLAG  –  Replace  each  ESC  in  data  with  ESC  ESC  

CSE  461  University  of  Washington   11  

Page 12: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Byte  Stuffing  (3)  •  Now  any  unescaped  FLAG  is  the  start/end  of  a  frame  

CSE  461  University  of  Washington   12  

Page 13: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   13  

Bit  Stuffing  •  Can  stuff  at  the  bit  level  too  

– Assume  a  flag  has  six  consecu3ve  1s  

– On  transmit,  acer  five  1s  in  the  data,  insert  a  0  

– On  receive,  a  0  acer  five  1s  is  deleted    

Page 14: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Bit  Stuffing  (2)  •  Example:  

CSE  461  University  of  Washington   14  

Transmieed  bits  with  stuffing  

Data  bits  

Page 15: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Bit  Stuffing  (3)  •  So  how  does  it  compare  with  byte  stuffing?  

CSE  461  University  of  Washington   15  

Transmieed  bits  with  stuffing  

Data  bits  

Page 16: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   16  

Link  Example:  PPP  over  SONET  •  PPP  is  Point-­‐to-­‐Point  Protocol  •  Widely  used  for  link  framing  

– E.g.,  it  is  used  to  frame  IP  packets  that  are  sent  over  SONET  op3cal  links  

 

Page 17: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Link  Example:  PPP  over  SONET  (2)  •  Think  of  SONET  as  a  bit  stream,  and  PPP  as  the  framing  that  carries  an  IP  packet  over  the  link  

CSE  461  University  of  Washington   17  

Protocol  stacks  PPP  frames  may  be  split  over  

SONET  payloads  

Page 18: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Link  Example:  PPP  over  SONET  (3)  •  Framing  uses  byte  stuffing    

–  FLAG  is  0x7E  and  ESC  is  0x7D.  To  stuff  (unstuff)  a  byte,  add  (remove)  ESC,  and  XOR  byte  with  0x20  

CSE  461  University  of  Washington   18  

Page 19: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   19  

Topic  •  Some  bits  will  be  received  in  error  due  

to  noise.  What  can  we  do?  –  Detect  errors  with  codes  »  –  Correct  errors  with  codes  »  –  Retransmit  lost  frames  

•  Reliability  is  a  concern  that  cuts  across  the  layers  –  we’ll  see  it  again  

Later  

Page 20: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Problem  –  Noise  may  flip  received  bits    

CSE  461  University  of  Washington   20  

Signal  0   0   0   0  

1  1   1  0  

0   0   0   0  1  1   1  

0  

0   0   0   0  1  1  

Slightly  Noisy  

Very  noisy   0  

1  

Page 21: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   21  

Approach  –  Add  Redundancy    •  Error  detec3on  codes  

–   Add  check  bits  to  the  message  bits  to  let  some  errors  be  detected  

•  Error  correc3on  codes  –  Add  more  check  bits  to  let  some  errors  be  corrected  

•  Key  issue  is  now  to  structure  the  code  to  detect  many  errors  with  few  check  bits  and  modest  computa3on  

Page 22: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   22  

Mo3va3ng  Example  •  A  simple  code  to  handle  errors:  

–  Send  two  copies!  Error  if  different.    

•  How  good  is  this  code?  –  How  many  errors  can  it  detect/correct?  –  How  many  errors  will  make  it  fail?          

Page 23: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   23  

Mo3va3ng  Example  (2)  •  We  want  to  handle  more  errors  with  less  overhead  – Will  look  at  beeer  codes;  they  are  applied  mathema3cs  

–  But,  they  can’t  handle  all  errors  –  And  they  focus  on  accidental  errors  (will  look  at  secure  hashes  later)  

Page 24: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   24  

Using  Error  Codes  •  Codeword  consists  of  D  data  plus  R  

check  bits  (=systema3c  block  code)  

•  Sender:    –  Compute  R  check  bits  based  on  the  D  data  bits;  send  the  codeword  of  D+R  bits  

D   R=fn(D)  Data  bits   Check  bits  

Page 25: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   25  

Using  Error  Codes  (2)  •  Receiver:      

–  Receive  D+R  bits  with  unknown  errors  –  Recompute  R  check  bits  based  on  the  D  data  bits;  error  if  R  doesn’t  match  R’  

D   R’  Data  bits   Check  bits  

R=fn(D)  =?  

Page 26: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   26  

Intui3on  for  Error  Codes  •  For  D  data  bits,  R  check  bits:  

     

•  Randomly  chosen  codeword  is  unlikely  to  be  correct;  overhead  is  low  

All  codewords  Correct  

codewords  

Page 27: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   27  

Hamming  Distance  •  Distance  is  the  number  of  bit  flips  needed  to  change  D1  to  D2  

•  Hamming  distance  of  a  code  is  the  minimum  distance  between  any  pair  of  codewords  

Page 28: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   28  

Hamming  Distance  (2)  •  Error  detec3on:  

–  For  a  code  of  distance  d+1,  up  to  d  errors  will  always  be  detected  

Page 29: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   29  

Hamming  Distance  (3)  •  Alterna3vely,  error  correc3on:  

–  For  a  code  of  distance  2d+1,  up  to  d  errors  can  always  be  corrected  

Page 30: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Computer  Science  &  Engineering  

Introduc3on  to  Computer  Networks  

Error  Detec3on  (§3.2.2)  

Page 31: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   31  

Topic  •  Some  bits  may  be  received  in  error  

due  to  noise.  How  do  we  detect  this?  –  Parity  »  –  Checksums  »  –  CRCs  »  

•  Detec3on  will  let  us  fix  the  error,  for  example,  by  retransmission  (later).  

Page 32: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   32  

Simple  Error  Detec3on  –  Parity  Bit  •  Take  D  data  bits,  add  1  check  bit  that  is  the  sum  of  the  D  bits  –  Sum  is  modulo  2  or  XOR  

Page 33: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   33  

Parity  Bit  (2)  •  How  well  does  parity  work?  

– What  is  the  distance  of  the  code?      –  How  many  errors  will  it  detect/correct?  

   

•  What  about  larger  errors?      

Page 34: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   34  

Checksums  •  Idea:  sum  up  data  in  N-­‐bit  words  

– Widely  used  in,  e.g.,  TCP/IP/UDP  

•  Stronger  protec3on  than  parity  

1500  bytes   16  bits  

Page 35: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   35  

Internet  Checksum  •  Sum  is  defined  in  1s  complement  arithme3c  (must  add  back  carries)  –  And  it’s  the  nega3ve  sum  

•  “The  checksum  field  is  the  16  bit  one's  complement  of  the  one's  complement  sum  of  all  16  bit  words  …”  –  RFC  791  

Page 36: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   36  

Internet  Checksum  (2)  Sending:  1. Arrange  data  in  16-­‐bit  words  

2. Put  zero  in  checksum  posi3on,  add    

3. Add  any  carryover  back  to  get  16  bits  

4. Negate  (complement)  to  get  sum  

0001 f203 f4f5 f6f7

+(0000) ------ 2ddf0

ddf0

+ 2 ------ ddf2

220d

Page 37: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   37  

Internet  Checksum  (3)  Sending:  1. Arrange  data  in  16-­‐bit  words  2. Put  zero  in  checksum  posi3on,  add  

3. Add  any  carryover  back  to  get  16  bits  

4. Negate  (complement)  to  get  sum  

0001 f203 f4f5 f6f7

+(0000) ------ 2ddf0

ddf0

+ 2 ------ ddf2

220d

Page 38: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   38  

Internet  Checksum  (4)  Receiving:  1. Arrange  data  in  16-­‐bit  words  2. Checksum  will  be  non-­‐zero,  add  

3. Add  any  carryover  back  to  get  16  bits  

4. Negate  the  result  and  check  it  is  0  

0001 f203 f4f5 f6f7

+ 220d ------ 2fffd

fffd

+ 2 ------ ffff

0000

Page 39: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   39  

Internet  Checksum  (5)  Receiving:  1. Arrange  data  in  16-­‐bit  words  2. Checksum  will  be  non-­‐zero,  add  

3. Add  any  carryover  back  to  get  16  bits  

4. Negate  the  result  and  check  it  is  0  

0001 f203 f4f5 f6f7

+ 220d ------ 2fffd

fffd

+ 2 ------ ffff

0000

Page 40: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   40  

Internet  Checksum  (6)  •  How  well  does  the  checksum  work?  

– What  is  the  distance  of  the  code?  –  How  many  errors  will  it  detect/correct?  

   

•  What  about  larger  errors?      

Page 41: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   41  

Cyclic  Redundancy  Check  (CRC)  •  Even  stronger  protec3on  

–  Given  n  data  bits,  generate  k  check  bits  such  that  the  n+k  bits  are  evenly  divisible  by  a  generator  C    

•  Example  with  numbers:  –  n  =  302,  k  =  one  digit,  C  =  3  

Page 42: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   42  

CRCs  (2)  •  The  catch:  

–  It’s  based  on  mathema3cs  of  finite  fields,  in  which  “numbers”  represent  polynomials  

–  e.g,  10011010  is  x7  +  x4  +  x3  +  x1    

•  What  this  means:  – We  work  with  binary  values  and  operate  using  modulo  2  arithme3c  

Page 43: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   43  

CRCs  (2)  •  Send  Procedure:  1.  Extend  the  n  data  bits  with  k  zeros  2.  Divide  by  the  generator  value  C  3.  Keep  remainder,  ignore  quo3ent  4.  Adjust  k  check  bits  by  remainder  

•  Receive  Procedure:  1.  Divide  and  check  for  zero  remainder  

Page 44: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CRCs  (3)  

CSE  461  University  of  Washington   45  

Page 45: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   46  

CRCs  (4)  •  Protec3on  depend  on  generator  

–  Standard  CRC-­‐32  is  10000010  01100000  10001110  110110111  

»     

•  Proper3es:  –  HD=4,  detects  up  to  triple  bit  errors  –  Also  odd  number  of  errors    –  And  bursts  of  up  to  k  bits  in  error  –  Not  vulnerable  to  systema3c  errors  like  checksums  

Page 46: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   47  

Error  Detec3on  in  Prac3ce  •  CRCs  are  widely  used  on  links  

– Ethernet,  802.11,  ADSL,  Cable  …  •  Checksum  used  in  Internet    

–  IP,  TCP,  UDP  …  but  it  is  weak  •  Parity  

–  Is  liele  used  

Page 47: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Computer  Science  &  Engineering  

Introduc3on  to  Computer  Networks  

Error  Correc3on  (§3.2.3)  

Page 48: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   49  

Topic  •  Some  bits  may  be  received  in  error  due  to  noise.  How  do  we  fix  them?  –  Hamming  code  »  –  Other  codes  »  

•  And  why  should  we  use  detec3on  when  we  can  use  correc3on?  

Page 49: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   50  

Why  Error  Correc3on  is  Hard  •  If  we  had  reliable  check  bits  we  could  use  them  to  narrow  down    the  posi3on  of  the  error  –  Then  correc3on  would  be  easy  

•  But  error  could  be  in  the  check      bits  as  well  as  the  data  bits!  –  Data  might  even  be  correct    

Page 50: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   51  

Intui3on  for  Error  Correc3ng  Code  •  Suppose  we  construct  a  code  with  a  

Hamming  distance  of  at  least  3  –  Need  ≥3  bit  errors  to  change  one                  valid  codeword  into  another  

–  Single  bit  errors  will  be  closest  to  a    unique  valid  codeword  

•  If  we  assume  errors  are  only  1  bit,        we  can  correct  them  by  mapping  an  error  to  the  closest  valid  codeword  –  Works  for  d  errors  if  HD  ≥  2d  1  

Page 51: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   52  

Intui3on  (2)  •  Visualiza3on  of  code:  

A

B

Valid  codeword  

Error  codeword  

Page 52: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   53  

Intui3on  (3)  •  Visualiza3on  of  code:  

A

B

Valid  codeword  

Error  codeword  

Single    bit  error  from  A  

Three  bit    errors  to    get  to  B  

Page 53: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   54  

Hamming  Code  •  Gives  a  method  for  construc3ng  a  code  with  a  distance  of  3  –  Uses  k  check  bits  for  2k-­‐1  data  bits    –  Put  check  bits  in  posi3ons  p  that  are  powers  of  2,  star3ng  with  posi3on  1  

–  Check  bit  in  posi3on  p  is  parity  of  posi3ons  with  a  p  term  in  their  values  

•  Plus  an  easy  way    to  correct  [soon]  

Page 54: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   55  

Hamming  Code  (2)  •  Example:  data=0101,  3  check  bits  

–  7  bit  code,  check  bit  posi3ons  1,  2,  4  –  Check  1  covers  posi3ons  1,  3,  5,  7  –  Check  2  covers  posi3ons  2,  3,  6,  7  –  Check  4  covers  posi3ons  4,  5,  6,  7  

                                     _    _    _    _    _    _    _     1      2      3      4      5      6      7  

Page 55: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   56  

Hamming  Code  (3)  •  Example:  data=0101,  3  check  bits  

–  7  bit  code,  check  bit  posi3ons  1,  2,  4  –  Check  1  covers  posi3ons  1,  3,  5,  7  –  Check  2  covers  posi3ons  2,  3,  6,  7  –  Check  4  covers  posi3ons  4,  5,  6,  7  

                                   0    1    0    0    1    0    1    p1=  0+1+1  =  0,    p2=  0+0+1  =  1,    p4=  1+0+1  =  0  

1      2      3      4      5      6      7  

Page 56: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   57  

Hamming  Code  (4)  •  To  decode:  

–  Recompute  check  bits  (with  parity  sum  including  the  check  bit)  

–  Arrange  as  a  binary  number  –  Value  (syndrome)  tells  error  posi3on  –  Value  of  zero  means  no  error  –  Otherwise,  flip  bit  to  correct  

Page 57: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   58  

Hamming  Code  (5)  •  Example,  con3nued  

                           0    1    0    0    1    0    1    p1=                                                          p2=    p4=        

Syndrome  =      Data  =  

1      2      3      4      5      6      7  

Page 58: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   59  

Hamming  Code  (6)  •  Example,  con3nued  

                           0    1    0    0    1    0    1    p1=  0+0+1+1  =  0,      p2=  1+0+0+1  =  0,  p4=  0+1+0+1  =  0    

Syndrome  =  000,  no  error  Data  =  0  1  0  1  

1      2      3      4      5      6      7  

Page 59: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   60  

Hamming  Code  (7)  •  Example,  con3nued  

                           0    1    0    0    1    1    1    p1=                                                          p2=    p4=        

Syndrome  =      Data  =  

1      2      3      4      5      6      7  

Page 60: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   61  

Hamming  Code  (8)  •  Example,  con3nued  

                           0    1    0    0    1    1    1    p1=  0+0+1+1  =  0,      p2=  1+0+1+1  =  1,  p4=  0+1+1+1  =  1    

Syndrome  =  1  1  0,  flip  posi3on  6  Data  =  0  1  0  1  (correct  acer  flip!)  

1      2      3      4      5      6      7  

Page 61: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   62  

Other  Error  Correc3on  Codes  •  Codes  used  in  prac3ce  are  much  more  involved  than  Hamming  

•  Convolu3onal  codes  (§3.2.3)  –  Take  a  stream  of  data  and  output  a  mix  of  the  recent  input  bits  

– Makes  each  output  bit  less  fragile  –  Decode  using  Viterbi  algorithm    (which  can  use  bit  confidence  values)  

Page 62: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   64  

Detec3on  vs.  Correc3on  •  Which  is  beeer  will  depend  on  the  paeern  of  errors.  For  example:  –  1000  bit  messages  with  a  bit  error  rate  (BER)  of  1  in  10000  

•  Which  has  less  overhead?  

Page 63: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   66  

Detec3on  vs.  Correc3on  (2)  •  Assume  bit  errors  are  random  

–  Messages  have  0  or  maybe  1  error  

•  Error  correc3on:    –  Need  ~10  check  bits  per  message  –  Overhead:  

•  Error  detec3on:    –  Need  ~1  check  bits  per  message  plus  1000  bit  

retransmission  1/10  of  the  3me  –  Overhead:  

Page 64: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   67  

Detec3on  vs.  Correc3on  (3)  •  Assume  errors  come  in  bursts  of  100  

–  Only  1  or  2  messages  in  1000  have  errors  

•  Error  correc3on:    –  Need  >>100  check  bits  per  message  –  Overhead:  

•  Error  detec3on:    –  Need  32?  check  bits  per  message  plus  1000  

bit  resend  2/1000  of  the  3me  –  Overhead:  

Page 65: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   68  

Detec3on  vs.  Correc3on  (4)  •  Error  correc3on:    

– Needed  when  errors  are  expected  – Or  when  no  3me  for  retransmission  

•  Error  detec3on:    – More  efficient  when  errors  are  not  expected  

– And  when  errors  are  large  when  they  do  occur  

Page 66: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   69  

Error  Correc3on  in  Prac3ce  •  Heavily  used  in  physical  layer  

–  Convolu3onal  codes  widely  used  in  prac3ce  –  LDPC  is  the  future,  used  for  demanding  links  

like  802.11,  DVB,  WiMAX,  LTE,  power-­‐line,  …  

•  Error  detec3on  (w/  retransmission)  is  used  in  the  link  layer  and  above  for  residual  errors  

•  Also  used  in  the  applica3on  layer  –  With  an  erasure  error  model  –  E.g.,  Reed-­‐Solomon  (CDs,  DVDs,  etc.)  

Page 67: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Computer  Science  &  Engineering  

Introduc3on  to  Computer  Networks  

Retransmissions  (ARQ)  (§3.3)  

Page 68: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   71  

Topic  •  Two  strategies  to  handle  errors:  1.  Detect  errors  and  retransmit  frame  

(Automa3c  Repeat  reQuest,  ARQ)  

2.  Correct  errors  with  an  error                correc3ng  code  

Done  this  

Page 69: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   72  

ARQ  •  ARQ  ocen  used  when  errors  are  common  or  must  be  corrected  –  E.g.,  WiFi,  and  TCP  (later)  

•  Rules  at  sender  and  receiver:  –  Receiver  automa3cally  acknowledges  correct  frames  with  an  ACK  

–  Sender  automa3cally  resends  acer  a  3meout,  un3l  an  ACK  is  received  

Page 70: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   73  

ARQ  (2)  •  Normal  opera3on  (no  loss)  

Frame  

ACK  Timeout   Time  

Sender   Receiver  

Page 71: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   74  

ARQ  (3)  •  Loss  and  retransmission  

Frame  

Timeout   Time  

Sender   Receiver  

Frame  

ACK  

X  

Page 72: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   75  

So  What’s  Tricky  About  ARQ?  •  Two  non-­‐trivial  issues:  

–  How  long  to  set  the  3meout?  »  –  How  to  avoid  accep3ng  duplicate  frames  as  new  frames  »  

•  Want  performance  in  the  common  case  and  correctness  always  

Page 73: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   76  

Timeouts  •  Timeout  should  be:  

–  Not  too  big  (link  goes  idle)  –  Not  too  small  (spurious  resend)  

•  Fairly  easy  on  a  LAN  –  Clear  worst  case,  liele  varia3on  

•  Fairly  difficult  over  the  Internet  – Much  varia3on,  no  obvious  bound  – We’ll  revisit  this  with  TCP  (later)  

Page 74: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   77  

Duplicates  •  What  happens  if  an  ACK  is  lost?  

X  

Frame  

ACK  Timeout  

Sender   Receiver  

New  Frame?  

Page 75: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   78  

Duplicates  (2)  •  What  happens  if  an  ACK  is  lost?  

Frame  

ACK  

X  

Frame  

ACK  Timeout  

Sender   Receiver  

New  Frame?  

New    Frame??  

Page 76: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   79  

Duplicates  (3)  •  Or  the  3meout  is  early?  

ACK  

Frame  

Timeout  

Sender   Receiver  

New  Frame?  

Page 77: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   80  

Duplicates  (4)  •  Or  the  3meout  is  early?  

Frame  

ACK  

Frame  

ACK  

Timeout  

Sender   Receiver  

New  Frame?  

New    Frame??  

Page 78: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   81  

Sequence  Numbers  •  Frames  and  ACKs  must  both  carry  sequence  numbers  for  correctness  

•  To  dis3nguish  the  current  frame  from  the  next  one,  a  single  bit  (two  numbers)  is  sufficient  –  Called  Stop-­‐and-­‐Wait  

Page 79: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   82  

Stop-­‐and-­‐Wait  •  In  the  normal  case:  

Time  

Sender   Receiver  

Page 80: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   83  

Stop-­‐and-­‐Wait  (2)  •  In  the  normal  case:  

Frame  0  

ACK  0  Timeout   Time  

Sender   Receiver  

Frame  1  

ACK  1  

Page 81: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   84  

Stop-­‐and-­‐Wait  (3)  •  With  ACK  loss:  

X  

Frame  0  

ACK  0  Timeout  

Sender   Receiver  

New  Frame?  

Page 82: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   85  

Stop-­‐and-­‐Wait  (4)  •  With  ACK  loss:  

Frame  0  

ACK  0  

X  

Frame  0  

ACK  0  Timeout  

Sender   Receiver  

New  Frame?  

It’s  a    Resend!  

Page 83: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   86  

Stop-­‐and-­‐Wait  (5)  •  With  early  3meout:  

ACK  0  

Frame  0  

Timeout  

Sender   Receiver  

New  Frame?  

Page 84: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   87  

Stop-­‐and-­‐Wait  (6)  •  With  early  3meout:  

Frame  0  

ACK  0  

Frame  0  

ACK  0  

Timeout  

Sender   Receiver  

New  Frame?  

It’s  a  Resend  

OK  …  

Page 85: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   88  

Limita3on  of  Stop-­‐and-­‐Wait  •  It  allows  only  a  single  frame  to  be  outstanding  from  the  sender:  –  Good  for  LAN,  not  efficient  for  high  BD  

•  Ex:  R=1  Mbps,  D  =  50  ms  –  How  many  frames/sec?  If  R=10  Mbps?  

Page 86: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   89  

Sliding  Window  •  Generaliza3on  of  stop-­‐and-­‐wait  

–  Allows  W  frames  to  be  outstanding  –  Can  send  W  frames  per  RTT  

–  Various  op3ons  for  numbering  frames/ACKs  and  handling  loss  

•  Will  look  at  along  with  TCP  (later)  

Page 87: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Computer  Science  &  Engineering  

Introduc3on  to  Computer  Networks  

Mul3plexing(§2.5.3,  2.5.4)  

Page 88: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Topic  •  Mul3plexing  is  the  network  word  for  the  sharing  of  a  resource  

•  Classic  scenario  is  sharing  a  link  among  different  users  –  Time  Division  Mul3plexing  (TDM)  »  –  Frequency  Division  Mul3plexing  (FDM)  »  

CSE  461  University  of  Washington   91  

Page 89: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Time  Division  Mul3plexing  (TDM)  

•  Users  take  turns  on  a  fixed  schedule  

CSE  461  University  of  Washington   92  

2   2   2   2  

Page 90: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Frequency  Division  Mul3plexing  (FDM)  •  Put  different  users  on  different  frequency  bands  

CSE  461  University  of  Washington   93  

Overall  FDM  channel  

Page 91: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   94  

TDM  versus  FDM  •  In  TDM  a  user  sends  at  a  high  rate  a  frac3on  of  the  3me;  in  FDM,  a  user  sends  at  a  low  rate  all  the  3me    

Rate  

Time  FDM  

TDM  

Page 92: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   95  

TDM  versus  FDM  (2)  •  In  TDM  a  user  sends  at  a  high  rate  a  frac3on  of  the  3me;  in  FDM,  a  user  sends  at  a  low  rate  all  the  3me    

Rate  

Time  FDM  

TDM  

Page 93: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   96  

TDM/FDM  Usage  •  Sta3cally  divide  a  resource  

–  Suited  for  con3nuous  traffic,  fixed  number  of  users  

•  Widely  used  in  telecommunica3ons  –  TV  and  radio  sta3ons  (FDM)  –  GSM  (2G  cellular)  allocates  calls  using  TDM  within  FDM  

Page 94: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   97  

Mul3plexing  Network  Traffic  •  Network  traffic  is  bursty  

–  ON/OFF  sources    –  Load  varies  greatly  over  3me  

Rate  

Time  Rate  

Time  

Page 95: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   98  

Mul3plexing  Network  Traffic  (2)  •  Network  traffic  is  bursty  

–  Inefficient  to  always  allocate  user    their  ON  needs  with  TDM/FDM  

Rate  

Time  Rate  

Time  

R  

R  

Page 96: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Mul3plexing  Network  Traffic  (3)  •  Mul3ple  access  schemes  mul3plex  users  according  to  their  demands  –  for  gains  of  sta3s3cal  mul3plexing  

CSE  461  University  of  Washington   99  

Rate  

Time  Rate  

Time  

Rate  

Time  

R  

R  

R’<2R  

Two  users,  each  need  R   Together  they  need  R’  <  2R  

Page 97: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   100  

Mul3ple  Access  •  We  will  look  at  two  kinds  of  mul3ple  

access  protocols  1.  Randomized.  Nodes  randomize  their  

resource  access  aeempts  –  Good  for  low  load  situa3ons  

2.  Conten3on-­‐free.  Nodes  order  their  resource  access  aeempts  

–  Good  for  high  load  or  guaranteed                  quality  of  service  situa3ons  

Page 98: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Computer  Science  &  Engineering  

Introduc3on  to  Computer  Networks  

Randomized  Mul3ple  Access  (§4.  2.1-­‐4.2.2,  4.3.1-­‐4.3.3)  

Page 99: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   102  

Topic  •  How  do  nodes  share  a  single  link?  Who  sends  when,  e.g.,  in  WiFI?  –  Explore  with  a  simple  model  

 •  Assume  no-­‐one  is  in  charge;  this  is  a  distributed  system  

Page 100: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   103  

Topic  (2)  •  We  will  explore  random  mul3ple  access  control  (MAC)  protocols  –  This  is  the  basis  for  classic  Ethernet  –  Remember:  data  traffic  is  bursty  

Zzzz..  Busy!   Ho  hum  

Page 101: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   104  

ALOHA  Network  •  Seminal  computer  network  connec3ng  the  Hawaiian                islands  in  the  late  1960s  – When  should  nodes  send?  –  A  new  protocol  was  devised  by  Norm  Abramson  …  

Hawaii  

Page 102: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   105  

ALOHA  Protocol  •  Simple  idea:  

–  Node  just  sends  when  it  has  traffic.    –  If  there  was  a  collision  (no  ACK  received)  then  wait  a  random  3me  and  resend  

•  That’s  it!  

Page 103: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   106  

ALOHA  Protocol  (2)  •  Some  frames  will  be  lost,  but  many  may  get  through…  

•  Good  idea?  

   

Page 104: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   107  

ALOHA  Protocol  (3)  •  Simple,  decentralized  protocol  that  works  well  under  low  load!  

•  Not  efficient  under  high  load  –  Analysis  shows  at  most  18%  efficiency  –  Improvement:  divide  3me  into  slots  and  efficiency  goes  up  to  36%  

•  We’ll  look  at  other  improvements  

Page 105: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   108  

Classic  Ethernet    •  ALOHA  inspired  Bob  Metcalfe  to  invent  Ethernet  for  LANs  in  1973  –  Nodes  share  10  Mbps  coaxial  cable  –  Hugely  popular  in  1980s,  1990s  

:  ©  2009  IEEE  

Page 106: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   109  

CSMA  (Carrier  Sense  Mul3ple  Access)  •  Improve  ALOHA  by  listening  for  ac3vity  before  we  send  (Doh!)  –  Can  do  easily  with  wires,  not  wireless  

•  So  does  this  eliminate  collisions?  – Why  or  why  not?  

Page 107: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   110  

CSMA  (2)  •  S3ll  possible  to  listen  and  hear  nothing  when  another  node  is  sending  because  of  delay  

•  CSMA  is  a  good  defense  against  collisions  only  when  BD  is  small  

Page 108: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   112  

CSMA/CD  (with  Collision  Detec3on)  •  Can  reduce  the  cost  of  collisions  by  detec3ng  them  and  abor3ng  (Jam)  the  rest  of  the  frame  3me  –  Again,  we  can  do  this  with  wires  

X  X  X  X  X  X  X  X  Jam!   Jam!  

Page 109: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   113  

CSMA/CD  Complica3ons  •  Want  everyone  who  collides  to  know  that  it  happened  –  Time  window  in  which  a  node  may  hear  of  a  collision  is  2D  seconds  

X  

Page 110: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   114  

CSMA/CD  Complica3ons  (2)  •  Impose  a  minimum  frame  size  that  lasts  for  2D  seconds  –  So  node  can’t  finish  before  collision  –  Ethernet  minimum  frame  is  64  bytes  

X  

Page 111: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   115  

CSMA  “Persistence”  •  What  should  a  node  do  if  another  node  is  sending?  

   

 •  Idea:  Wait  un3l  it  is  done,  and  send    

What  now?  

Page 112: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   116  

CSMA  “Persistence”  (2)  •  Problem  is  that  mul3ple  wai3ng  nodes  will  queue  up  then  collide  – More  load,  more  of  a  problem  

Now!   Now!  Uh  oh  

Page 113: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   117  

CSMA  “Persistence”  (3)  •  Intui3on  for  a  beeer  solu3on  

–  If  there  are  N  queued  senders,  we  want  each  to  send  next  with  probability  1/N  

Send  p=½  Whew  Send  p=½  

Page 114: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   118  

Binary  Exponen3al  Backoff  (BEB)  •  Cleverly  es3mates  the  probability  

–  1st  collision,  wait  0  or  1  frame  3mes  –  2nd  collision,  wait  from  0  to  3  3mes  –  3rd  collision,  wait  from  0  to  7  3mes  …  

•  BEB  doubles  interval  for  each  successive  collision  –  Quickly  gets  large  enough  to  work  –  Very  efficient  in  prac3ce  

Page 115: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Classic  Ethernet,  or  IEEE  802.3  •  Most  popular  LAN  of  the  1980s,  1990s  

–  10  Mbps  over  shared  coaxial  cable,  with  baseband  signals  – Mul3ple  access  with  “1-­‐persistent  CSMA/CD  with  BEB”  

CSE  461  University  of  Washington   119  

Page 116: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Ethernet  Frame  Format  •  Has  addresses  to  iden3fy  the  sender  and  receiver  •  CRC-­‐32  for  error  detec3on;  no  ACKs  or  retransmission  •  Start  of  frame  iden3fied  with  physical  layer  preamble  

CSE  461  University  of  Washington   120  

Packet  from  Network  layer  (IP)  

Page 117: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   121  

Modern  Ethernet  •  Based  on  switches,  not  mul3ple  access,  but  s3ll  called  Ethernet  – We’ll  get  to  it  in  a  later  segment  

Switch  

Twisted  pair  Switch  ports  

Page 118: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Computer  Science  &  Engineering  

Introduc3on  to  Computer  Networks  

Wireless  Mul3ple  Access  (§4.2.5,  4.4)  

Page 119: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   124  

Wireless  Complica3ons  •  Wireless  is  more  complicated  than  the  wired  case  (Surprise!)  1.  Nodes  may  have  different  areas  of  

coverage  –  doesn’t  fit  Carrier  Sense  »  2.  Nodes  can’t  hear  while  sending  –  

can’t  Collision  Detect  »  

  ≠  CSMA/CD  

Page 120: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   125  

Different  Coverage  Areas  •  Wireless  signal  is  broadcast  and  received  nearby,  where  there  is  sufficient  SNR  

Page 121: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Hidden  Terminals  •  Nodes  A  and  C  are  hidden  terminals  when  sending  to  B  

–  Can’t  hear  each  other  (to  coordinate)  yet  collide  at  B  – We  want  to  avoid  the  inefficiency  of  collisions  

CSE  461  University  of  Washington   126  

Page 122: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Exposed  Terminals  •  B  and  C  are  exposed  terminals  when  sending  to  A  and  D  

–  Can  hear  each  other  yet  don’t  collide  at  receivers  A  and  D  – We  want  to  send  concurrently  to  increase  performance  

CSE  461  University  of  Washington   127  

Page 123: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   128  

Nodes  Can’t  Hear  While  Sending  •  With  wires,  detec3ng  collisions  (and  abor3ng)  lowers  their  cost  

•  More  wasted  3me  with  wireless  

Time   XXXXXXXXX  

XXXXXXXXX  

Wireless  Collision  

Resend  X  

X  

Wired  Collision  

Resend  

Page 124: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Possible  Solu3on:  MACA  •  MACA  uses  a  short  handshake  instead  of  CSMA  (Karn,  1990)  

–  802.11  uses  a  refinement  of  MACA  (later)    

•  Protocol  rules:  1. A  sender  node  transmits  a  RTS  (Request-­‐To-­‐Send,  with  frame  length)  

2. The  receiver  replies  with  a  CTS  (Clear-­‐To-­‐Send,  with  frame  length)  3. Sender  transmits  the  frame  while  nodes  hearing  the  CTS  stay  silent  –  Collisions  on  the  RTS/CTS  are  s3ll  possible,  but  less  likely  

CSE  461  University  of  Washington   129  

Page 125: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   130  

MACA  –  Hidden  Terminals  •  AàB  with  hidden  terminal  C  

1.  A  sends  RTS,  to  B    

DCBA

Page 126: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   131  

MACA  –  Hidden  Terminals  (2)  •  AàB  with  hidden  terminal  C  

2.  B  sends  CTS,  to  A,  and  C  too    

DCBARTS  

Page 127: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   132  

MACA  –  Hidden  Terminals  (3)  •  AàB  with  hidden  terminal  C  

2.  B  sends  CTS,  to  A,  and  C  too    

DCBARTS  

CTS  CTS  

Alert!  

Page 128: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   133  

MACA  –  Hidden  Terminals  (4)  •  AàB  with  hidden  terminal  C  

3.  A  sends  frame  while  C  defers  

Frame  Quiet...  

Page 129: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   134  

MACA  –  Exposed  Terminals  •  BàA,  CàD  as  exposed  terminals  

– B  and  C  send  RTS  to  A  and  D    

DCBA

Page 130: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   135  

MACA  –  Exposed  Terminals  (2)  •  BàA,  CàD  as  exposed  terminals  

– A  and  D  send  CTS  to  B  and  C    

DCBARTS  RTS  

Page 131: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   136  

MACA  –  Exposed  Terminals  (3)  •  BàA,  CàD  as  exposed  terminals  

– A  and  D  send  CTS  to  B  and  C    

DCBARTS  RTS  

CTS  CTS  

All  OK  All  OK  

Page 132: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   137  

MACA  –  Exposed  Terminals  (4)  •  BàA,  CàD  as  exposed  terminals  

– A  and  D  send  CTS  to  B  and  C    

DCBAFrame  Frame  

Page 133: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   138  

802.11,  or  WiFi  •  Very  popular  wireless  LAN  

started  in  the  1990s  •  Clients  get  connec3vity  from  a  

(wired)  AP  (Access  Point)  •  It’s  a  mul3-­‐access  problem  J    •  Various  flavors  have  been  

developed  over  3me  –  Faster,  more  features    

Access  Point  

Client  

To  Network  

Page 134: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   139  

802.11  Physical  Layer  •  Uses  20/40  MHz  channels  on  ISM  bands  

–  802.11b/g/n  on  2.4  GHz  –  802.11  a/n  on  5  GHz  

•  OFDM  modula3on  (except  legacy  802.11b)  –  Different  amplitudes/phases  for  varying  SNRs  –  Rates  from  6  to  54  Mbps    plus  error  correc3on  –  802.11n  uses  mul3ple  antennas;  see  “802.11  

with  Mul3ple  Antennas  for  Dummies”  

Page 135: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

802.11  Link  Layer  •  Mul3ple  access  uses  CSMA/CA  (next);  RTS/CTS  op3onal    •  Frames  are  ACKed  and  retransmieed  with  ARQ  •  Funky  addressing  (three  addresses!)  due  to  AP  •  Errors  are  detected  with  a  32-­‐bit  CRC  •  Many,  many  features  (e.g.,  encryp3on,  power  save)  

CSE  461  University  of  Washington   140  

Packet  from  Network  layer  (IP)  

Page 136: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

802.11  CSMA/CA  for  Mul3ple  Access  •  Sender  avoids  collisions  by  inser3ng  small  random  gaps  

–  E.g.,  when  both  B  and  C  send,  C  picks  a  smaller  gap,  goes  first  

CSE  461  University  of  Washington   141  

Time  

Send?  

Send?  

Page 137: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Computer  Science  &  Engineering  

Introduc3on  to  Computer  Networks  

Conten3on-­‐Free  Mul3ple  Access  (§4.2.3)  

Page 138: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   144  

Topic  •  A  new  approach  to  mul3ple  access  

–  Based  on  turns,  not  randomiza3on  

 1  

3  2  

4    

Page 139: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   145  

Issues  with  Random  Mul3ple  Access  •  CSMA  is  good  under  low  load:  

–  Grants  immediate  access  –  Liele  overhead  (collisions)  

•  But  not  so  good  under  high  load:  –  High  overhead  (expect  collisions)  –  Access  3me  varies  (lucky/unlucky)  

•  We  want  to  do  beeer  under  load!  

Page 140: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   146  

Turn-­‐Taking  Mul3ple  Access  Protocols  

•  They  define  an  order  in  which  nodes  get  a  chance  to  send  –  Or  pass,  if  no  traffic  at  present  

•  We  just  need  some  ordering  …  –  E.g.,  Token  Ring  »  –  E.g.,  node  addresses  

Page 141: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Token  Ring  •  Arrange  nodes  in  a  ring;  token  rotates  “permission  to  send”  to  each  node  in  turn  

CSE  461  University  of  Washington   147  

Node  

Direc3on  of  transmission  

Token  

Page 142: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   148  

Turn-­‐Taking  Advantages  •  Fixed  overhead  with  no  collisions  

– More  efficient  under  load  

•  Regular  chance  to  send  with  no  unlucky  nodes  –  Predictable  service,  easily  extended  to  guaranteed  quality  of  service  

Page 143: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   149  

Turn-­‐Taking  Disadvantages  •  Complexity  

– More  things  that  can  go  wrong  than  random  access  protocols!  

•  E.g.,  what  if  the  token  is  lost?  – Higher  overhead  at  low  load  

Page 144: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   150  

Turn-­‐Taking  in  Prac3ce  •  Regularly  tried  as  an  improvement  offering  beeer  service  –  E.g.,  quali3es  of  service  

•  But  random  mul3ple  access  is  hard  to  beat  –  Simple,  and  usually  good  enough  –  Scales  from  few  to  many  nodes  

Page 145: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Computer  Science  &  Engineering  

Introduc3on  to  Computer  Networks  

LAN  Switches  (§4.x)  

Page 146: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   152  

Topic  •  How  do  we  connect  nodes  with  a  switch  instead  of  mul3ple  access  –  Uses  mul3ple  links/wires    –  Basis  of  modern  (switched)  Ethernet  

Switch  

Page 147: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   153  

Switched  Ethernet  •  Hosts  are  wired  to  Ethernet  switches  with  twisted  pair  –  Switch  serves  to  connect  the  hosts  – Wires  usually  run  to  a  closet  

  Switch  

Twisted  pair  Switch  ports  

Page 148: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   154  

What’s  in  the  box?  •  Remember  from  protocol  layers:  

Network  Link  

Network  Link  

Link   Link  

Physical   Physical  Hub,  or  repeater  

Switch  

Router  

All  look  like  this:  

Page 149: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Inside  a  Hub  •  All  ports  are  wired  together;  more  convenient  and  reliable  than  a  single  shared  wire  

CSE  461  University  of  Washington   155  

↔  

Page 150: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Inside  a  Switch  •  Uses  frame  addresses  to  connect  input  port  to  the  right  output  port;  mul3ple  frames  may  be  switched  in  parallel  

CSE  461  University  of  Washington   156  

.  .  .  

Fabric  

Page 151: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Inside  a  Switch  (2)  •  Port  may  be  used  for  both  input  and  output  (full-­‐duplex)  

–  Just  send,  no  mul3ple  access  protocol  

CSE  461  University  of  Washington   157  

.  .  .  

1  2  3  

4

1  à  4  and  2  à  3  

Page 152: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Inside  a  Switch  (3)  •  Need  buffers  for  mul3ple  inputs  to  send  to  one  output  

CSE  461  University  of  Washington   158  

.  .  .  

.  .  .  

.  .  .   .  .  .  

Input  Buffer   Output  Buffer  Fabric  

Input   Output  

Page 153: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Inside  a  Switch  (4)  •  Sustained  overload  will  fill  buffer  and  lead  to  frame  loss  

CSE  461  University  of  Washington   159  

.  .  .  

.  .  .  

.  .  .   .  .  .  

Input  Buffer   Output  Buffer  Fabric  

Input   Output  

XXX  

Loss!  

Page 154: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   160  

Advantages  of  Switches  •  Switches  and  hubs  have  replaced  the  

shared  cable  of  classic  Ethernet  –  Convenient  to  run  wires  to  one  loca3on  –  More  reliable;  wire  cut  is  not  a  single  point  of  failure  that  is  hard  to  find  

•  Switches  offer  scalable  performance  –  E.g.,  100  Mbps  per  port  instead  of  100  Mbps  for  all  nodes  of  shared  cable  /  hub  

Page 155: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Switch  Forwarding  •  Switch  needs  to  find  the  right  output  port  for  the  des3na3on  address  in  the  Ethernet  frame.  How?  – Want  to  let  hosts  be  moved  around  readily;  don’t  look  at  IP  

CSE  461  University  of  Washington   161  

.  .  .  

.  .  .  

.  .  .   .  .  .  

Source  

Des3na3on  

Ethernet  Frame  

Page 156: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   162  

Backward  Learning  •  Switch  forwards  frames  with  a  port/address  table  as  follows:  1.  To  fill  the  table,  it  looks  at  the  

source  address  of  input  frames  2.  To  forward,  it  sends  to  the  port,  

or  else  broadcasts  to  all  ports  

Page 157: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   163  

Backward  Learning  (2)  •  1:  A  sends  to  D  

Switch  

D

Address Port A B C D

Page 158: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   164  

Backward  Learning  (3)  •  2:  D  sends  to  A  

Switch  

D

Address Port A 1 B C D

Page 159: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   165  

Backward  Learning  (4)  •  3:  D  sends  to  A  

Switch  

D

Address Port A 1 B C D 4

Page 160: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   166  

Backward  Learning  (5)  •  3:  D  sends  to  A  

Switch  

D

Address Port A 1 B C D 4

Page 161: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Learning  with  Mul3ple  Switches  •  Just  works  with  mul3ple  switches  and  a  mix  of  hubs,  assuming  no  loops  in  the  topology,  E.g.,  A  sends  to  D  

CSE  461  University  of  Washington   167  

Switch  

Page 162: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Learning  with  Mul3ple  Switches  (2)  •  Just  works  with  mul3ple  switches  and  a  mix  of  hubs  assuming  no  loops,  e.g.,  A  sends  to  D  then  D  sends  to  A  

CSE  461  University  of  Washington   168  

Switch  

Page 163: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Computer  Science  &  Engineering  

Introduc3on  to  Computer  Networks  

Switch  Spanning  Tree  (§4.x)  

Page 164: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   170  

Topic  •  How  can  we  connect  switches  in  any  topology  so  they  just  work  –  This  is  part  2  of  switched  Ethernet  

 

Loops  –  yikes!  

Page 165: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   171  

Problem  –  Forwarding  Loops    •  May  have  a  loop  in  the  topology  

–  Redundancy  in  case  of  failures  –  Or  a  simple  mistake  

•  Want  LAN  switches  to  “just  work”  –  Plug-­‐and-­‐play,  no  changes  to  hosts  –  But  loops  cause  a  problem  …  

Redundant    Links  

Page 166: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   172  

Forwarding  Loops  (2)    •  Suppose  the  network  is  started  and  A  sends  to  F.  What  happens?  

Lec  /  Right  

A   B  

C  

D  

E   F  

Page 167: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   173  

Forwarding  Loops  (3)    •  Suppose  the  network  is  started  and  A  sends  to  F.  What  happens?  –  A  à  C  à  B,  D-­‐lec,  D-­‐right  –  D-­‐lec  à  C-­‐right,  E,  F  –  D-­‐right  à  C-­‐lec,  E,  F  –  C-­‐right  à  D-­‐lec,  A,  B  –  C-­‐lec  à  D-­‐right,  A,  B  –  D-­‐lec  à  …  –  D-­‐right  à  …  

Lec  /  Right  

A   B  

C  

D  

E   F  

Page 168: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   174  

Spanning  Tree  Solu3on  •  Switches  collec3vely  find  a  spanning  tree  for  the  topology  –  A  subset  of  links  that  is  a  tree  (no  loops)  and  reaches  all  switches  

–  Then  switches  forward  as  normal            on  the  spanning  tree  

–  Broadcasts  will  go  up  to  the  root  of  the  tree  and  down  all  the  branches  

Page 169: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Spanning  Tree  (2)  

CSE  461  University  of  Washington   175  

Topology   One  ST   Another  ST  

Page 170: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Spanning  Tree  (3)  

CSE  461  University  of  Washington   176  

Topology   One  ST   Another  ST  

Root  

Page 171: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   177  

Spanning  Tree  Algorithm  •  Rules  of  the  distributed  game:  

–  All  switches  run  the  same  algorithm  –  They  start  with  no  informa3on  –  Operate  in  parallel  and  send  messages  –  Always  search  for  the  best  solu3on  

•  Ensures  a  highly  robust  solu3on  –  Any  topology,  with  no  configura3on  –  Adapts  to  link/switch  failures,  …  

Page 172: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   179  

Spanning  Tree  Algorithm  (2)  •  Outline:  

1.  Elect  a  root  node  of  the  tree  (switch  with  the  lowest  address)  

2.  Grow  tree  as  shortest  distances  from  the  root  (using  lowest  address  to  break  distance  3es)  

3.  Turn  off  ports  for  forwarding  if  they  aren’t  on  the  spanning  tree  

Page 173: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

Spanning  Tree  Algorithm  (3)  •  Details:  

–  Each  switch  ini3ally  believes  it  is  the  root  of  the  tree  –  Each  switch  sends  periodic  updates  to  neighbors  with:  

•  Its  address,  address  of  the  root,  and  distance  (in  hops)  to  root  –  Switches  favors  ports  with  shorter  distances  to  lowest  root  

•  Uses  lowest  address  as  a  3e  for  distances  

CSE  461  University  of  Washington   180  

C  

Hi,  I’m  C,  the  root  is  A,  it’s  2  hops  away     or  (C,  A,  2)  

Page 174: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   181  

Spanning  Tree  Example  •  1st  round,  sending:  

–  A  sends  (A,  A,  0)  to  say  it  is  root  –  B,  C,  D,  E,  and  F  do  likewise  

•  1st  round,  receiving:  –  A  s3ll  thinks  is  it  (A,  A,  0)  –  B  s3ll  thinks  (B,  B,  0)  –  C  updates  to  (C,  A,  1)  –  D  updates  to  (D,  C,  1)  –  E  updates  to  (E,  A,  1)  –  F  updates  to  (F,  B,  1)  

A,A,0   B,B,0  

C,C,0  

D,D,0  

E,E,0   F,F,0  

Page 175: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   182  

Spanning  Tree  Example  (2)  •  2nd  round,  sending  

–  Nodes  send  their  updated  state  •  2nd  round  receiving:  

–  A  remains  (A,  A,  0)  –  B  updates  to  (B,  A,  2)  via  C  –  C  remains  (C,  A,  1)  –  D  updates  to  (D,  A,  2)  via  C  –  E  remains  (E,  A,  1)  –  F  remains  (F,  B,  1)  

A,A,0   B,B,0  

C,A,1  

D,C,1  

E,A,1   F,B,1  

Page 176: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   183  

Spanning  Tree  Example  (3)  •  3rd  round,  sending  

–  Nodes  send  their  updated  state  •  3rd  round  receiving:  

–  A  remains  (A,  A,  0)  –  B  remains  (B,  A,  2)  via  C  –  C  remains  (C,  A,  1)  –  D  remains  (D,  A,  2)  via  C-­‐lec  –  E  remains  (E,  A,  1)  –  F  updates  to  (F,  A,  3)  via  B  

A,A,0   B,A,2  

C,A,1  

D,A,2  

E,A,1   F,B,1  

Page 177: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   184  

Spanning  Tree  Example  (4)  •  4th  round  

–  Steady-­‐state  has  been  reached  –  Nodes  turn  off  forwarding  that    is  not  on  the  spanning  tree  

•  Algorithm  con3nues  to  run  –  Adapts  by  3ming  out  informa3on  –  E.g.,  if  A  fails,  other  nodes  forget  it,  and  B  will  become  the  new  root  

A,A,0   B,A,2  

C,A,1  

D,A,2  

E,A,1   F,A,3  

Page 178: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   185  

Spanning  Tree  Example  (5)  •  Forwarding    proceeds  as  usual  on  the  ST  •  Ini3ally  D  sends  to  F:  

•  And  F  sends  back  to  D:  

   

A,A,0   B,A,2  

C,A,1  

D,A,2  

E,A,1   F,A,3  

Page 179: Introduc3on)to)Computer)Networks) · Computer)Science)&)Engineering) Introduc3on)to)Computer)Networks) Overview)of)the)Link)Layer)

CSE  461  University  of  Washington   186  

Spanning  Tree  Example  (6)  •  Forwarding    proceeds  as  usual  on  the  ST  •  Ini3ally  D  sends  to  F:  

–  D  à  C-­‐lec  –  C  à  A,  B    –  A  à  E  –  B  à  F  

•  And  F  sends  back  to  D:  –  F  à  B  –  B  à  C  –  C  à  D  (hm,  not  such  a  great  route)  

A,A,0   B,A,2  

C,A,1  

D,A,2  

E,A,1   F,A,3