cs 3640 introduction to
play

CS 3640: Introduction to Networks and Their Applications Fall 2018, - PowerPoint PPT Presentation

CS 3640: Introduction to Networks and Their Applications Fall 2018, Lecture 1: The Internet Layers Instructor: Rishab Nithyanand Teaching Assistant: Md. Kowsar Hossain 1 Today in class 1. 2. 3. Where do I get What is the What does this


  1. CS 3640: Introduction to Networks and Their Applications Fall 2018, Lecture 1: The Internet Layers Instructor: Rishab Nithyanand Teaching Assistant: Md. Kowsar Hossain 1

  2. Today in class 1. 2. 3. Where do I get What is the What does this help? Internet? course look like? 2

  3. Where do I get… • Administrivia, slides, logistics, assignments, references, and policies? • Class website (https://www.rishabn.com/cs3640-f18) 3

  4. Where do I get… • Support, discussion, etc.? • Class forum on Piazza (http://piazza.com/uiowa/fall2018/cs3640) • Meet me after class if you don’t have an invite yet. 4

  5. Rules of engagement: Seating • Occupy the front rows. Let there be no gaps in seating. • You will be asked to interact with the people around you in class. 5

  6. Rules of engagement: Interaction • Ask questions! • I don’t want to get bored. • Answer questions! • I’ll wait until you do. I have no problem with awkward silences. 6

  7. Rules of engagement: Electronics • Avoid using your phone, computer, etc. (unless I ask you to) • I will post lecture slides and references online. 7

  8. Rules of engagement: Congeniality • Collaborate and be helpful. • You will need to work well with your peers to do well in this class. 8

  9. Today in class 1. 2. 3. Where do I get What is the What does this help? Internet? course look like? 9

  10. What is a network? • An arrangement of lines that connect points. Node A Edge Edge Node C Node B Edge 10

  11. Examples and goals of a network • Goals: Resource sharing and communication. • Discuss: What makes a good network? • Well connected, high capacity, affordable, etc. 11

  12. What is a computer network? • A network of computing devices. • Nodes: Computing devices. • Edges: Transmission media. • Examples: Cellular networks, Wi-Fi, ethernets, etc. 12

  13. Computer networks Each network uses a specific type of transmission media to interconnect a specific set of devices . 13

  14. What is the Internet? The Internet is not a specific network. The Inter net ties different networks together. 14

  15. What is the Internet? • The Internet facilitates communication between many different networks. • It allows you (on a university ethernet network) to talk to your friend (on a home Wi-Fi network). 15

  16. Design goals: Networks vs. Internet • Networks: • Speed, cost, reliability, etc. • Achieved through engineering. • How should this task get done? • Internet: • Interoperability, scalability, fault-tolerance, etc. • Achieved through architectural design. • What tasks have to get done? Who should do them? 16

  17. Let’s design a messaging app • Scenario: No “Internet” • Three users: • A on ethernet • B on Wi-Fi • C on cellular network • Discuss: How would you make this app? What protocols would you have to implement? 17

  18. Let’s design a messaging app • You’d have to design a way for your app to use ethernet, Wi -Fi, and cellular. • You’d have to design a way for your app to locate devices on each network. • You’d have to keep adding new technology support and maintain existing code. • Ugh! All of that sounds like a lot of work for every new app. How does the Internet make this easier? 18

  19. The 4-layer Internet model • The Internet has a hierarchy of operations. • Examples of operations: writing to a medium, finding a device in a network, etc. • Many of these are common to every app. • If we made the design modular, we could easily reuse them. • If we made layers, each operation could go in a layer. • Each layer could provide this operation as a service to a higher layer. 19

  20. The 4-layer Internet model 20

  21. The link layer • Links connect end devices (phones, laptops, etc.) to network gateways (routers). • Links connect network gateways to each other. • The link layer is responsible for sending packets over a link. • The link layer is used as a service by the network layer. 21

  22. • The link layer carries the The link layer packet over a single link. • All it does is deliver data to Routers the next hop. • Examples: Wi-Fi and ethernet Link Packet/Header Source Destination 22

  23. The network layer • The network layer provides an “end -to- end” (source to destination) service. • It delivers packets from the source to the destination. • Uses the link layer as a service. • How? • It figures out what the next hop should be and tells the link layer to send it there. • It doesn’t care how. 23

  24. The network layer Source End-Host Destination End-Host Application Application Transport Transport Router Router Network Network Network Network Link Link Link Link

  25. The network layer • There is only one network layer protocol for data delivery: The Internet Protocol (IP). • It is the glue of the Internet. There is no Internet without IP. • Internet Control Message Protocol (ICMP) is only for error and diagnostic functions. • IP makes no promises that datagrams will reach the destination : • uncorrupted. • in the order they were sent. • at all. • Discuss: Why would the Internet Protocol work this way? 25

  26. The transport layer • Interface between the application and the network layer. It implements: • Reliable delivery, in-order delivery, congestion detection, and congestion control (if required). • Discuss: Why wouldn’t these always be required? • Makes network communication appear like inter- process communication for applications. • Examples: TCP (Transmission Control Protocol) and UDP (User Datagram Protocol). 26

  27. The application layer • This is where the logic for your application goes. • Every app is different, but they all really only need to use the network through the Transport layer abstraction. • You don’t have to write any code below this layer to make an Internet application! • Developers are insulated from the constant evolution of networking technology and protocols. 27

  28. Putting it all together Source End-Host Destination End-Host Application Application Transport Transport Router Router Network Network Network Network Link Link Link Link

  29. Summary of the 4-layer Internet model Logic of the Internet application. What should the app do? Application How can users interact with the app? What transport properties are required? Transport Implements reliability, in-order delivery, congestion control. Delivers data end-to-end. Best-effort delivery Network – provides no guarantees. Must use the Internet Protocol (IP). Delivers data over a single link between an end host Link and router, or between routers.

  30. Let’s design a messaging app (v2) • Scenario: The Internet abstraction exists. • Three users: • A on ethernet • B on Wi-Fi • C on cellular network • Discuss: How would you make this app? What protocols would you have to implement? What transport properties would you use? 30

  31. Today in class 1. 2. 3. Where do I get What is the What does this help? Internet? course look like? 31

  32. High-level organization • Internet architecture • What are the principles driving Internet design? • Engineering and protocols • How are these principles implemented? • Protocol overloading • How are implementations exploited? • Economic, legal, social, and ethical considerations • Ongoing challenges and things to think about as computer scientists.

  33. Tentative list of protocols HTTP, DN DNS, , SS SSH, , BGP BGP Application TCP CP, UD UDP Transport IP IP Network Ethernet, Wi-Fi Link

  34. Tentative list of things you will do in projects • Write a simple web application. • Scrape the web. • Identify Internet paths taken by your packets and performance bottlenecks in the network. • Identify the organizations controlling the Internet. • Exploit protocols and overload them. • Play with censors on the Internet.

  35. Let’s go over administrivia • https://www.rishabn.com/cs3640-f18 • Don’t forget! • Get on Piazza and introduce yourself. • Set up Python and Jupyter.

Recommend


More recommend