Computer Networking : Principles, Protocols and Practice - lesson 1

3,470 views

Published on

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

Published in: Engineering
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
3,470
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
185
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

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

×