2 reliability-network

1,541 views

Published on

Second lesson of the computer networks course given at UCL on the basis of the 'Computer Networking : Principles and Practice' ebook

Published in: Engineering
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,541
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
134
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2 reliability-network

  1. 1. Week 2 Reliable transmission Building a network
  2. 2. Agenda • Reliable transmission • Checksums and hash functions • Framing • Go-back-n • Selective repeat • Building a network
  3. 3. Agenda • Reliable transmission • Checksums and hash functions • Framing • Go-back-n • Selective repeat • Building a network
  4. 4. Checksums • How to verify that a transmission has not been affected by random errors • Checksum • CRC • Should the Checksum/CRC also cover the header ?
  5. 5. Hash functions • What is the role of hash functions like MD5 or SHA-1 ? • Do they play the same role as CRCs and checksums ?
  6. 6. Agenda • Reliable transmission • Checksums and hash functions • Framing • Go-back-n • Selective repeat • Building a network
  7. 7. Bit stuffing • How to combine bit stuffing and checksums ? • Stuffing first and then compute checksum or • Compute checksum and then stuffing
  8. 8. Character stuffing • What are the advantages/drawbacks of character stuffing compared to bit stuffing ?
  9. 9. Agenda • Reliable transmission • Checksums and hash functions • Framing • Go-back-n • Selective repeat • Building a network
  10. 10. Go-back-n • What are the key principles behind go-back- n ? • How does it deal with losses/errors ? • How does it deal with losses of acknowledgements ? • How to set the retransmission timer ?
  11. 11. Go-back-n : example A B 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 Data.req(a) Data.req(e) Data.ind(a) D(0,a) Data.req(c) D(2,c) C(OK,0) C(OK,0) Sending window Data.req(b) D(1,b) Lost Not expected seq num, discarded Retransmission timer expires 0 1 2 3 0 1 2 3 Sending window is full D(1,b) Data.ind(b) Data.req(d) D(3,d) Data.ind(d) D(2,c) Data.ind(c)
  12. 12. Maximum window • What is the maximum window size that can be used with go-back-n ? • Sequence numbers are encoded in N bits
  13. 13. Agenda • Reliable transmission • Checksums and hash functions • Framing • Go-back-n • Selective repeat • Building a network
  14. 14. Selective repeat • What are the key principles behind selective repeat ? • How does it deal with losses/errors ? • How does it deal with losses of acknowledgements ? • How to inform about losses ? • How to set the retransmission timer ?
  15. 15. Selective repeat A B 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 Data.ind(b) Data.req(a) Data.ind(a) D(0,a) 0 1 2 3 Data.req(c) D(2,c) C(OK,0) C(OK,0) Sending window Data.req(b) D(1,b) Lost segment Segment stored D(1,b) Retransmission 0 1 2 3 timer expires 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 Data.ind(c) Data.req(d) D(3,d) Data.ind(d) 0 1 2 3 0 1 2 3 C(OK,2) C(OK,3) Rec. window 0 1 2 3 0 1 2 3
  16. 16. Maximum window • What is the maximum window size that can be used with selective repeat ? • Sequence numbers are encoded in N bits
  17. 17. Performance with losses • What is the minimum window size required to achieve high throughput • When there are no losses ? • When a few frames are errored/lost ? • Go-back-n • Selective repeat
  18. 18. Take back lessons • Usage of Checksums/CRCs • Cumulative acknowledgements • Maximum window size with gbn/sr • Bandwidth x delay product
  19. 19. • Reliable tranAsmigsseionnda • Building a network • Datagram organisation • Virtual circuit organisation • Distance vector routing • Link state routing
  20. 20. Datagram organisation • Principles • Nodes • Hosts • Routers • Packet
  21. 21. Forwarding table • Contents of the forwarding table • Destination, nexthop/outgoing if • How to compute the forwarding table ?
  22. 22. Port-station table • When a node boots, its forwarding table is empty, is it possible to learn automatically the forwarding table from the packets ? • Tree-shaped networks only !
  23. 23. A network B A R1 R2 R3
  24. 24. Source routing • Basic idea • Each node has a unique address • Each node knows its direct neighbours • How ? • Each packet contains the list of the addresses of intermediate nodes
  25. 25. A network B A R1 R2 R3 How can A discover the paths towards B ?
  26. 26. • Reliable tranAsmigsseionnda • Building a network • Datagram organisation • Virtual circuit organisation • Distance vector routing • Link state routing
  27. 27. Virtual circuit • Basic idea • Create circuits through the network to transfer data divided in packets • Packet contains one label • Simpler forwarding table • incoming label, nexthop, outgoing label
  28. 28. Virtual circuit B A R1 R2 R3 Create one virtual circuit from A to B C
  29. 29. • Reliable tranAsmigsseionnda • Building a network • Datagram organisation • Virtual circuit organisation • Distance vector routing • Link state routing
  30. 30. Computing forwarding tables • How to compute the forwarding tables for all nodes in a network ? C A B C E D E
  31. 31. Computing forwarding tables • • A B C C E D E Routing table A : Local D : South B : East C : East [via B] E: East [via B] Routing table A : West B : Local C : East D : South [via E] E : South Routing table A : West [via B] B : West C : Local D : West [via B] E : South West Routing table A : North B : North [via A] C : East [via E] D : Local E : East Routing table A : North [via B] B : North C : North-East D : West E : Local Cost=1 Cost=1 Cost=1 Cost=1 Cost=1 Cost=1
  32. 32. Distance vector routing • Objectives of the routing protocol • Compute forwarding tables so that all nodes can reach all nodes in the network • Principle • Each node regularly sends a summary of its forwarding table to its neighbours
  33. 33. Distance vector Routing table B : 0 [Local] Routing table C D E Routing table A : 0 [ Local ] A B C D E C : 0 [Local] Routing table E : 0 [Local] Routing table D : 0 [Local]
  34. 34. Distance vector example (2) C Routing table B : 0 [Local] A : 1 [West] D E Routing table A : 0 [ Local ] A B C D E Routing table C : 0 [Local] Routing table E : 0 [Local] Routing table D : 0 [Local] A : 1 [North] D=0 ; A=1 D=0 ; A=1
  35. 35. Distance vector example (3) C Routing table B : 0 [Local] A : 1 [West] D E Routing table A : 0 [ Local ] D : 1 [South] A B C D E Routing table C : 0 [Local] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] Routing table D : 0 [Local] A : 1 [North] C=0 C=0
  36. 36. Distance vector example (4) C Routing table B : 0 [Local] A : 1 [West] C : 1 [East] E=0;D=1;A=2;C=1 D E Routing table A : 0 [ Local ] D : 1 [South] A B C D E Routing table C : 0 [Local] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] Routing table D : 0 [Local] A : 1 [North] E=0;D=1;A=2;C=1 E=0;D=1;A=2;C=1
  37. 37. Distance vector example (5) C Routing table B : 0 [Local] A : 1 [West] C : 1 [East] E : 1 [South] D : 2 [South] D E Routing table A : 0 [ Local ] D : 1 [South] A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A : 3 [South-West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] B=0;A=1;C=1;D=2;E=1 B=0;A=1;C=1;D=2;E=1
  38. 38. Distance vector example (6) C Routing table B : 0 [Local] A : 1 [West] C : 1 [East] E : 1 [South] D : 2 [South] D E Routing table A : 0 [ Local ] D : 1 [South] B : 1 [East] C : 2 [East] E : 2 [East] A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A : 2 [West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] A=0;B=1;C=2;D=1;E=2
  39. 39. Distance vector example (7) C Routing table B : 0 [Local] A : 1 [West] C : 1 [East] E : 1 [South] D : 2 [South] D E Routing table A : 0 [ Local ] D : 1 [South] B : 1 [East] C : 2 [East] E : 2 [East] A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A : 2 [West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] B : 2 [North]
  40. 40. • Reliable tranAsmigsseionnda • Building a network • Datagram organisation • Virtual circuit organisation • Distance vector routing • Link state routing
  41. 41. Link state routing • Objectives of the routing protocol • Compute all forwarding tables • Principle • Each node detects its neighbours • Each node regularly sends list of its neighbours to all nodes
  42. 42. Discovering neighbours • Manually • Automatically E A:HELLO A B E B:HELLO E:HELLO
  43. 43. Link state packets C Links A-B : 1 B-E : 1 B-C : 1 A B C LSP : E [D:1];[B:1];[C:1] LSP : E [D:1];[B:1];[C:1] D E Links A-B : 1 A-D : 1 D E Links B-C : 1 C-E : 1 Links E-D : 1 E-B : 1 E-C : 1 Links A-D : 1 D-E : 1 LSP : E [D:1];[B:1];[C:1] • How to reliably send LSPs to all nodes ?
  44. 44. Flooding • Naive approach • Send received LSP to all neighbours C D E Links A-B : 1 A-D : 1 LSP : E [D:1];[B:1];[C:1] A B C D E Links B-C : 1 C-E : 1 B-E : 1 D-E : 1 Links E-D : 1 E-B : 1 E-C : 1 Links A-B : 1 B-E : 1 B-C : 1 E-D : 1 E-C : 1 Links A-D : 1 D-E : 1 B-E : 1 E-C : 1 LSP : E [D:1];[B:1];[C:1] LSP : E [D:1];[B:1];[C:1]
  45. 45. Flooding LSPs LSPs C LSP : E-0 [D:1];[B:1];[C:1] LSP : E-0 [D:1];[B:1];[C:1] D E Links A-B : 1 A-D : 1 A B C D E Links B-C : 1 C-E : 1 Links E-D : 1 E-B : 1 E-C : 1 LSPs Links A-D : 1 D-E : 1 Links A-B : 1 B-E : 1 B-C : 1 LSP : E-0 [D:1];[B:1];[C:1] LSPs LSPs E-0 [D:1];[B:1];[C:1]
  46. 46. Flooding E-0 [D:1];[B:1];[C:1] C D E Links A-B : 1 A-D : 1 LSPs LSP : E-0 [D:1];[B:1];[C:1] A B C D E Links B-C : 1 C-E : 1 B-E : 1 D-E : 1 Links E-D : 1 E-B : 1 E-C : 1 Links A-B : 1 B-E : 1 B-C : 1 E-D : 1 E-C : 1 LSPs Links A-D : 1 D-E : 1 B-E : 1 E-C : 1 LSP : E-0 [D:1];[B:1];[C:1] LSPs E-0 [D:1];[B:1];[C:1] LSPs E-0 [D:1];[B:1];[C:1] LSPs E-0 [D:1];[B:1];[C:1] LSP : E-0 [D:1];[B:1];[C:1]
  47. 47. After flooding • Each node knows full network topology C Links A-B, B-A : 1 B-E, E-B : 1 B-C, C-B : 1 E-D, D-E : 1 E-C, C-E : 1 A-D, D-A : 1 LSPs E-0 [D:1];[B:1];[C:1] A-0 [D:1];[B:1] B-0 [A:1] [C:1] [E:1] C-0 [B:1] [E:1] D-0 [A:1] [E:1] Links A-B, B-A : 1 B-E, E-B : 1 B-C, C-B : 1 E-D, D-E : 1 E-C, C-E : 1 A-D, D-A : 1 A B C D E D E Links A-B, B-A : 1 B-E, E-B : 1 B-C, C-B : 1 E-D, D-E : 1 E-C, C-E : 1 A-D, D-A : 1 LSPs E-0 [D:1];[B:1];[C:1] A-0 [D:1];[B:1] B-0 [A:1] [C:1] [E:1] C-0 [B:1] [E:1] D-0 [A:1] [E:1] LSPs E-0 [D:1];[B:1];[C:1] A-0 [D:1];[B:1] B-0 [A:1] [C:1] [E:1] C-0 [B:1] [E:1] D-0 [A:1] [E:1] Links A-B, B-A : 1 B-E, E-B : 1 B-C, C-B : 1 E-D, D-E : 1 E-C, C-E : 1 A-D, D-A : 1 Links A-B, B-A : 1 B-E, E-B : 1 B-C, C-B : 1 E-D, D-E : 1 E-C, C-E : 1 A-D, D-A : 1 LSPs E-0 [D:1];[B:1];[C:1] A-0 [D:1];[B:1] B-0 [A:1] [C:1] [E:1] C-0 [B:1] [E:1] D-0 [A:1] [E:1] LSPs E-0 [D:1];[B:1];[C:1] A-0 [D:1];[B:1] B-0 [A:1] [C:1] [E:1] C-0 [B:1] [E:1] D-0 [A:1] [E:1]

×