CPSC 317: Computer Networking

CPSC 317: Computer Networking

Summer 2024

COURSE DESCRIPTION

Computer networks are pervasive and we use them daily yet we often do not give a lot of thought to how they are put together, how they work, how applications use them, and what the underlying fundamental principles are that allow us to build and design applications using computer networks. In this course you should:

  • Become comfortable with writing and working with different programs that use computer networks.
  • Learn the terminology associated with networking.
  • Learn the key paradigms and strategies used in developing applications that use computer networks.
  • Be able to apply the key paradigms and strategies to write programs and/or explain the operation of the Internet.
  • Become familiar with the basic concepts of how the Internet is put together and operates and basic protocols that are used.


TOPICS

  • Design strategies for scalability and reliability in distributed systems.
  • The use of layers and abstractions to understand and simplify designs.
  • Routing, naming and addressing.
  • Isolation, data loss and performance
  • Privacy and Security


SYLLABUS

Download the syllabus (v1.0)

 

LECTURES & CLASSROOMS

  • Lecture Time: Tuesday/Thursday - 11:00AM to 2:30PM
  • Classroom: Forest Sciences Centre (FSC) - Room: 1005
  • Office hours: Wednesday, 10:00AM -12:00 PM

TEXTBOOKS

We will rely on the following book for this course:

  • Title: Computer Networking: A Top-Down Approach – seventh edition (get 8th edition if buying new or if you plan on taking 417)
  • Authors: James Kurose and Keith Ross 
  • ISBN-13: 978-0-13-359414-0


TA TEAM

COURSE COORDINATORS 

HANDOUT

Lecture 1

Introduction [SLIDES]

Design of the Internet [SLIDES]

In-Class-Work: Circuit vs Packet Switching 

Design of the Internet: Switching Protocols  [SLIDES]

In-Class-Work: Protocol Layers 


Lecture 2

Network Performance [SLIDES]

In-Class-Work:  Network Performance Metrics   

Network Performance: Delay [SLIDES]

In-Class-work:  Network Delay 

Application Layer Protocols [SLIDES]

In-Class-work:  Application Architecture and Transport Protocols 


Lecture 3

Application Layer Protocols: The Web [SLIDES]

In-Class-Work:  HTTP 

Application Layer Protocols: DNS [SLIDES]

In-Class-Work:  DNS 

Application Layer Protocols: E-mail [SLIDES]

In-Class-Work:  Email and its protocols 


Lecture 4

Application Layer Protocols: peer-to-peer [SLIDES]

In-Class-Work:  Peer to Peer Applications 

Transport: Introduction and UDP [SLIDES]

In-Class-Work:  Transport  

Transport: State Machines and Reliability [SLIDES]

In-Class-Work:  Finite State Machines 


Lecture 5

Transport: Lost Segments and Timeouts [SLIDES]

In-Class-Work:  Timeouts and Reliable Data Transfer 

Transport: Windowing Protocols [SLIDES]

In-Class-Work:  Go-Back-N 

Transport: Selective Repeat [SLIDES]

In-Class-Work:  Selective Repeat 


Lecture 6

Transport: Flow and Congestion Control, TCP overview [SLIDES]

In-Class-Work:  TCP 

Transport: TCP [SLIDES]

In-Class-Work:   TCP Congestion Management 

Transport: TCP wrap up [SLIDES]

In-Class-Work:  TCP Congestion Management 


Lecture 7

Transport: Alternate Protocols [SLIDES]

Network Layer: History and ASes [SLIDES]

In-Class-Work:  Networks and Autonomous Systems  

Network Layer: IP and Address Forwarding [SLIDES]

In-Class-Work:  IP addresses  


Lecture 8

Network Layer: IP Address Ranges [SLIDES]

In-Class-Work:  IP address segregation, splitting, and forwarding 

Network Layer: Routing [SLIDES]

In-Class-Work:  Link State Routing  

Network Layer: Distance Vector Routing [SLIDES]

In-Class-Work:   Distance Vector Routing 

 

Lecture 9

Network Layer: Inter-domain routing [SLIDES]

Network Address Translation (NAT) [SLIDES]

In-Class-Work:  Network Address Translation 

Link Layer: Introduction, Error Detection [SLIDES]

In-Class-Work:  MAC addresses, and error detection and correction 

 

Lecture 10

Link Layer: Access control and ARP [SLIDES]

In-Class-Work:  Switches and ARP

Link Layer: DHCP [SLIDES]

In-Class-Work:  DHCP 

Link Layer: Physical and Link Layer Issues [SLIDES]


Lecture 11

Security: Introduction [SLIDES]

In-Class-Work: Breaking encryption 

Security: Encryption [SLIDES]

In-Class-Work: Advanced encryption 

Security: Asymmetric Encryption [SLIDES]

In-Class-Work:  Asymmetric encryption

 

Lecture 12

Security: Authentication and TLS [SLIDES]

In-Class-Work:   Protocol security 

Security: IPSec, VPN, Firewall and IDS [SLIDES]

In-Class-Work:  VPNs and Secure Protocols  

Security: Availability [SLIDES]

In-Class-Work:  VPNs and Secure Protocols 



Tutorials