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 help? Internet? course look like? 2
Where do I get… • Administrivia, slides, logistics, assignments, references, and policies? • Class website (https://www.rishabn.com/cs3640-f18) 3
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
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
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
Rules of engagement: Electronics • Avoid using your phone, computer, etc. (unless I ask you to) • I will post lecture slides and references online. 7
Rules of engagement: Congeniality • Collaborate and be helpful. • You will need to work well with your peers to do well in this class. 8
Today in class 1. 2. 3. Where do I get What is the What does this help? Internet? course look like? 9
What is a network? • An arrangement of lines that connect points. Node A Edge Edge Node C Node B Edge 10
Examples and goals of a network • Goals: Resource sharing and communication. • Discuss: What makes a good network? • Well connected, high capacity, affordable, etc. 11
What is a computer network? • A network of computing devices. • Nodes: Computing devices. • Edges: Transmission media. • Examples: Cellular networks, Wi-Fi, ethernets, etc. 12
Computer networks Each network uses a specific type of transmission media to interconnect a specific set of devices . 13
What is the Internet? The Internet is not a specific network. The Inter net ties different networks together. 14
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
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
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
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
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
The 4-layer Internet model 20
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
• 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
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
The network layer Source End-Host Destination End-Host Application Application Transport Transport Router Router Network Network Network Network Link Link Link Link
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
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
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
Putting it all together Source End-Host Destination End-Host Application Application Transport Transport Router Router Network Network Network Network Link Link Link Link
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.
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
Today in class 1. 2. 3. Where do I get What is the What does this help? Internet? course look like? 31
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.
Tentative list of protocols HTTP, DN DNS, , SS SSH, , BGP BGP Application TCP CP, UD UDP Transport IP IP Network Ethernet, Wi-Fi Link
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.
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