Ming Liu mgliu@cs.wisc.edu Introduction to Computer Networks CS640 https://pages.cs.wisc.edu/~mgliu/CS640/F21/ Introduction 1
Ming Liu [email protected]
Introduction to Computer Networks
CS640 https://pages.cs.wisc.edu/~mgliu/CS640/F21/
Introduction
1
Administrative details
Graders • Aditya Kaushik Kota
• Srinivas Pothuraju
Teaching assistants • Hailey Johnson
- Office: #3215, MW 1:00 to 2:00PM
• Partho Sarthi - [email protected]
- Office: #3209, WF 1:00 to 2:00PM
Instructors • Ming Liu
- Office: #7379, TuTh 2:00 to 3:00PM
Course web site • https://pages.cs.wisc.edu/~mgliu/CS640/F21/
• Slides, readings, announcements, …
3
Grading
5 programming labs (50%) • related to socket api, link layer, routing, forwarding, SDN, and transport • implementations (Java)
• teams of 2-3 people
4 written problem sets (10%) • exercises from the textbook • individual
2 in-class midterms (40%) • midterm1: 20%, 10/28/2021
• midterm2: 20%, 12/14/2021
4
Reading and references
Required readings posted on the course web page • Complete each reading before the lecture of which it is assigned
Textbook • Larry Peterson and Bruce Davie, Computer Networks: A Systems Approach, Fifth
edition, Morgan Kauffmann, 2011, ISBN: 978-0123850591
Additional references • Check course web page
5
Collaboration & late submission & advice
Participate • Ask and answer questions
Meet deadlines • Turn assignments in on time; Late penalty (see each assignment) • Start lab sooner than you think you need to
• Follow instructions for submitting codes (we have to be able to run and test it)
Working together is encouraged • Discussion of course materials, debugging issues, …
But final submission must be your own work! • Labs, homework, midterm …
6
Goals of this class
#1: Understand principles and practice of networking
#2: How do network applications work? How to write applications that use the network?
#3: Performance and design trade-offs in network protocols and applications
7
Goal of networking
Enable communication between networked applications on different end-points • End-points: computers, cell phones, …
• Networked applications: Web, video streaming, social networking, …
• Communication: transfer bits or information across a “network"
9
How applications use network?
Applications use the network to send and receive messages
10
App A App B
A popular application
World Wide Web, accessed using a browsers • https://pages.cs.wisc.edu/~mgliu/CS640/F21/index.html —> Uniform Resource Locator (URL) that locates objects on the Web
• https://pages.cs.wisc.edu/~mgliu/ —> host or machine that serves the page
• In retrieving this page, many messages are exchanged
• Retrieving an address for the host — 128.104.80.16
• Set up a connection to the host • Request object • Receive object • …
• Most of the objects are sent/recieved between your browser and a Web server running at 128.104.80.16
11
Other application examples
On-demand streaming audio/video • Once delivery of content starts, we want “glitch-free” experience
• Different from WWW, where data is not consumed in a “continuous” manner
Real-time video/audio or cloud gaming • Tight timing constraints — millisecond scale
• When someone speaks at one end, the service should guarantee that heard at the
other end near simultaneously
12
Network must understand application needs
What data rate ?
13
Traffic pattern (bursty or constant bit rate) ?
Traffic target? (multipoint or single destination, mobile or fixed)
Network must understand application needs
What data rate ?
13
Traffic pattern (bursty or constant bit rate) ?
Traffic target? (multipoint or single destination, mobile or fixed)
But, we don’t know these in the first place!
Uniqueness of computer networks
Older networks built for one application • Ratio, TV, …
Computer networks • Support very different applications with very different requirements • One of the key factors that drive the field
When a new application rise, • Basic communication support • Enhance the network design to provide unique performance (or others) requirements
14
Three perspectives of “using” network
Network designers • Cost efficiency • How to build the hardware network fabric and design the software protocol?
Application developers • Performance
• How to achieve reliable message delivery within a certain amount of time?
Network operator • Manageability • How to detect a failure when there is no connections?
• How to add/remove/upgrade devices without breaking the service?15
Three perspectives of “using” network
Network designers • Cost efficiency • How to build the hardware network fabric and design the software protocol?
Application developers • Performance
• How to achieve reliable message delivery within a certain amount of time?
Network operator • Manageability • How to detect a failure when there is no connections?
• How to add/remove/upgrade devices without breaking the service15
Design requirements
#1: Scalable connectivity • Internet grows in the number of machines it connects every day. How do we connect them all?
16
Design requirements
#1: Scalable connectivity • Internet grows in the number of machines it connects every day. How do we connect them all?
#2: Cost-efficient resource usage • When multiple devices communicate over the Internet, how do we ensure sharing the
network resources (e.g., limited bandwidth)?
• Ensure the network is used in an efficient and fair manner
16
Design requirements
#1: Scalable connectivity • Internet grows in the number of machines it connects every day. How do we connect them all?
#2: Cost-efficient resource usage • When multiple devices communicate over the Internet, how do we ensure sharing the
network resources (e.g., limited bandwidth)?
• Ensure the network is used in an efficient and fair manner
16
#3: Support for common services • Many applications may need the same set of mechanisms • Extract the common requirements and make them available for many applications
What makes the network — node and link
Network = nodes + links • Node: PC, phone, sensor, server, …
• Link: coaxial cable, optical cable, wireless channel, …
Direct
Shared
End Point
Link
19
What makes the network — switch
Network = nodes + links + switch • Switch: a multi-port bridge connecting different hardware
elements (like end points, switches, etc.)
End Point
Link
Switch
20
Circuit switching v.s. Packet switching
Circuit switching • Establish an end-to-end connection before data transmission
• Example: telephone system
Disadvantages • The signaling overhead (between node) adds latency • Bandwidth waste due to resource reservation
• Reconfiguration is slow
Advantages • Fast and simple data transfer • Predictable performance due to channel isolation
21
Circuit switching v.s. Packet switching
Packet switching • Divide each message into a sequence of discrete blocks of data
• Each block is called a packet, where the maximize size depends on the link capability • A packet carries information about the sender and receiver • Switches receive each packet and then decides where to forward based on addresses
Advantages • No setup time, no need to reserve resources • More efficient
Disadvantages • No isolation: congestion
• Address look up and forwarding22
Circuit switching v.s. Packet switching
Packet switching • Divide each message into a sequence of discrete blocks of data
• Each block is called a packet, where the maximize size depends on the link capability • A packet carries information about the sender and receiver • Switches receive each packet and then decides where to forward based on addresses
Advantages • No setup time, no need to reserve resources • More efficient
Disadvantages • No isolation: congestion
• Address look up and forwarding
• We focus on packet switching for this course • We have seen a resurgence of circuit switching for optical networks used in data centers • Sirius: A Flat Datacenter Network with Nanosecond Optical Switching (Sigcomm’20)
23
What makes the network — router
Network = nodes + links + switch + router • router: a multi-port bridge connecting different switched network
End Point
Link
Switch
Router
Switched network 1
Switched network 2
Switched network 3Internetwork
24
The Internet
Recursively grouped interconnection of internetworks
End Point
Link
Switch
Router
ISP1
Campus
ISP2
Host A
Host C
Host B
25