Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Computer Networking : Principles, Protocols and Practice - lesson 1

5,360 views

Published on

First lesson for classes using the open-source Computer Networking : Principles, Protocols and Practice ebook

Published in: Engineering
  • Be the first to comment

Computer Networking : Principles, Protocols and Practice - lesson 1

  1. 1. Computer networking Olivier Bonaventure http://perso.uclouvain.be/olivier.bonaventure
  2. 2. Computer networking • What do you already know about computer networks ? • Which topics should be covered in this course ?
  3. 3. Our focus
  4. 4. Course structure • Principles first • reliable transfer, building a network, sharing resources, serving applications • Protocols in details • HTTP, SMTP, DNS, TCP, SCTP, UDP, IPv6, MPLS, RIP, OSPF, BGP, Ethernet, WiFi • Practice • Learning by doing
  5. 5. Teaching material • Second edition, beta version every week • http://cnp3bis.info.ucl.ac.be • Feedback/Fixes/Suggestions/Comments • http://github.com/obonaventure/cnp3
  6. 6. Course organisation • First pass on the week topic (Tue) • Students read and prepare exercises • Multiple choice questions • Some weeks : practical exercises as well • Discussion with teaching assistants (Mon) • Second pass on the week topics (Tue)
  7. 7. Course Team
  8. 8. Learning by doing • At home • MCQ • In the lab • netkit
  9. 9. Why IPv6 ?
  10. 10. IPv6 in Belgium
  11. 11. Course evaluation • Group programming project (15%) • implement one protocol by end October • Individual Analysis (20%) • Review of code • Explain one website -> Dec. • Exam • Both exercises and theory (65%)
  12. 12. Connecting two hosts
  13. 13. The physical layer • Transmitting bits over a wire • Time sequence diagram
  14. 14. The physical layer service Bits 010100010100010101001010 Physical layer Physical layer Physical transmission medium • unreliable service • transmission errors • loss/creation of bits
  15. 15. Modems and ISDN
  16. 16. xDSL and DOCSIS
  17. 17. WiFi
  18. 18. The framing problem • How to extract frames from a sequence of bits ? • Bit stuffing • Character stuffing
  19. 19. How to reliably transfer data ? • Hypothesis • Reliable physical layer service A B Data.request(a) Frame(a) Data.request(b) Frame(b) Data.ind(a) Data.request(c) Frame(c) Data.ind(b) Data.ind(c)
  20. 20. Does this always work ?
  21. 21. Control frames A B Data.req(a) D(a) Data.req(b) C(OK) Data.ind(a) D(b) Data.ind(b) C(OK)
  22. 22. How to deal with transmission errors • Affecting the data frames • Affecting the control frames
  23. 23. Alternating Bit Protocol A B Data.req(a) D(0,a) Data.req(b) C(OK0) Data.ind(a) Duplicate detected D(1,b) Retransmission timer D(1,b) Data.ind(b) D(1,b) recvd C(OK1) Data.req(c) C(OK1) D(0,c) Lost D(1,b) recvd Retransmission timer D(0,c) Data.ind(c)
  24. 24. Performance • What is the performance of this reliable protocol ? • Two high-end servers • 10 Gbps interfaces • 1000 bytes frames • 1 millisecond delay
  25. 25. Pipelining A B • How many frames can A send ? Data.ind(a) Data.req(a) ... D(0,a) ... D(4,e) Data.req(b) Data.req(e) Data.ind(e)
  26. 26. Pipelining example A B 0 1 2 3 4 5 6 7 8 Data.req(a) 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 Data.ind(a) 0 1 2 3 4 5 6 7 8 Data.req(b) D(0,a) Data.ind(b) 0 1 2 3 4 5 6 7 8 D(1,b) Data.req(c) Data.ind(c) D(2,c) C(OK0) C(OK1) C(OK2) 0 1 2 3 4 5 6 7 8 Data.req(d) Data.ind(d) D(3,d) 0 1 2 3 4 5 6 7 8 Data.req(e) D(4,e) Sending window
  27. 27. Frame header has limited size 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.ind(a) Data.req(b) D(0,a) Data.ind(b) Data.req(c) D(1,b) Data.ind(c) D(2,c) C(OK0) C(OK1) Data.req(d) C(OK2) Data.ind(d) Data.req(e) D(3,d) D(0,e) Sending window 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
  28. 28. How to deal with errors/frame losses ? • Go-back-n • Selective repeat
  29. 29. Go-back-n 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)
  30. 30. 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

×