Skip to main content

CSC/ECE 579 — Introduction to Computer Performance Modeling

Lecture slides, assignments, and solutions are available from the course Moodle space

Lecture videos are available from the EOL site

Fall 2022 Schedule of Lectures

Date Lecture # Topic Assignment Due
May 19 1 Overview, goals, logistics HW1 Project 1  
May 21 2 Introduction: Internet, network edge, packet vs circuit switching, network core Chapter 1.1-1.3    
May 24 3 Intro (cont’d): delay, loss, throughput, protocol layers, attacks, history Chapter 1.4-1.7    
May 26 4 Application Layer (AL): principles, HTTP Chapter 2.1, 2.2    
May 28 5 AL (cont’d): email (SMPT), directory service (DNS) Chapter 2.3-2.5 HW2

HW1

May 31 No class (Memorial Day)    
Jun 2 6 AL (cont’d): peer-to-peer (P2P) applications, content distribution networks (CDN), socket programming Chapter 2.5-2.7    
Jun 4 7 Discussion of Project 1 Transport Layer (TL): overview, multiplexing/demultiplexing, UDP Chapter 3.1-3.3    
Jun 7 8 TL (cont’d): reliable data transfer Chapter 3.4    
Jun 9 9 TL (cont’d): TCP functionality Chapter 3.5 HW3

HW2

Jun 11 10 TL (cont’d): Principles of congestion control, TCP congestion control Chapter 3.6,3.7    
Jun 14 11 Congestion control in high-speed networks    
Jun 16 12 PageRank Project 2

Project 1

Jun 18 No class (reading day)  

HW3

Jun 21/22 Midterm exam    
Jun 23 13 Discussion of Project 2 Network Layer-Data Plane (NL-DP): overview, router architecture Chapter 4.1,4.2    
Jun 25 No class (University Holiday)    
Jun 28 14 Discussion of Midterm exam NL-DP (cont’d): Internet Protocol (IPv4, addressing, DHCP) Chapter 4.3.1-4.3.3 HW4  
Jun 30 15 NL-DP (cont’d): NAT, IPv6, SDN Chapter: 4.3.4-4.3.5,4.4    
Jul 2 16 Network Layer-Control Plane (NL-CP): link state and distance vector routing algorithms Chapter 5.1,5.2    
Jul 5 No class (Independence Day observed)    
Jul 7 17 NL-CP (cont’d): OSPF, BGP Chapter 5.3,5.4 Lab assignment

Project 2

Jul 9 18 NL-CP (cont’d): SDN control plane, ICMP, SNMP Chapter 5.5-5.7    
Jul 12 19 NL-CP (cont’d): Broadcast and multicast routing HW5

HW4

Jul 14 20 Data Link Layer (DLL): services, error detection, multiple access protocols Chapter 6.1-6.3    
Jul 16 21 DLL (cont’d): multiple access protocols, LANs Chapter 6.3,6.4    
Jul 19 22 DLL (cont’d): link virtualization, data center networking, retrospective Chapter 6.5-6.7 Passive Optical Networks (PON)    
Jul 21 23 Security: Intro, Principles of cryptography Chapter 8.1,8.2  

HW5

Jul 23 24 Security (cont’d): Message integrity, digital signatures, authentication, securing email Chapter 8.3-8.5    
Jul 26 25 Security (cont’d): SSL, IPsec, VPNs Chapter 8.6,8.7    
Jul 28 26 Security (cont’d): firewalls and intrusion detection systems Chapter 8.9  

Lab assignment

Jul 30 No class (reading day)    
Aug 2/3 1-4pm Final exam    

Syllabus

Prerequisites

Students who wish to take this course must have completed a course on Probability Theory (MA 421 or equivalent) and a course on Computer Organization (CSC 312 or ECE 218 or equivalent).

Students must also have good working knowledge of a high-level programming language such as C, C++, or JAVA. The programming projects can be challenging, hence good programming experience is required.

Objectives

The purpose of this course is to present simulation techniques and queueing theory as tools for modeling and studying the performance of communication networks and computer systems.

At the conclusion of the course you should be able to:

  •  apply simulation techniques to develop models of computer and communication systems;
  •  appy queueing-based models to characterize computer and communication systems;
  •  use appropriate analytic tools to compute performance measure of interest (e.g., response time and throughput) for a given queueing system;
  •  select the system characteristics (e.g., storage capacity) to achieve a given level of performance;
  •  evaluate the relative merits of alternative system design solutions; and
  •  engage in research in the field of performance analysis and evaluation.

I encourage and expect you to participate actively in the learning process. In particular, I welcome your comments and questions as we cover material in class. One-way lectures quickly become boring, both for you and for me. By asking lots of questions your understanding of the material will be deepened significantly, and the course will be much more fun!

Outline

The course is logically divided in three parts.Part I: Refresher.
At the beginning of the semester we will review important concepts from probability theory and Laplace and z transforms.

Part II: Simulation Techniques.
This part addresses the development of simulation models, including:

  •  generation of random numbers and stochastic variates
  •  simulation designs
  •  estimation techniques for analyzing endogenously created data
  •  validation

Part III: Queueing Theory.
This part introduces a number of fundamental concepts and techniques, including:

  •  stochastic processes and Markov processes
  •  Poisson process
  •  birth-death processes
  •  the M/M/1 queue and variants
  •  Erlang and Coxian distributions as models of service time
  •  the M/G/1 queue
  •  priority queueing and conservation laws

Textbook

Students are required to purchase the following textbook:

  •  L. Kleinrock, Queueing Systems, vol. 1: Theory, Wiley. ISBN: 0-471-49110-1

I also suggest the following two books as reference:

  •  L. Kleinrock, Queueing Systems, vol. 2: Computer Applications, Wiley
  •  W. Drake, Fundamentals of Applied Probability Theory, McGraw-Hiil (or any other book on probability theory and transforms)

I will also make available an extensive set of lecture slides.

Grading

Students are required to complete all assignments and show all work in order to receive full credit. The final grade will be determined using the following weights:

  •  45% — Three programming projects (15% each)
  •  15% — Homework assignments (of equal weight)
  •  20% — Midterm exam (open book)
  •  20% — Final exam (comprehensive, open book)

Policies

Attendance: Attendance is not mandatory but strongly encouraged. Students are responsible for making up any course material they miss.

Assignments: No hard copies of assignments or solutions will be handed out. New assignments and solutions will be announced in class and/or the course mailing list, and will be available on the course web page.

Submission: Students must submit their assignments as PDF or Word files using the submit facility. The deadline for submission is midnight (Eastern time) on the day due. Any deadline extensions are up to the discretion of the instructor, and will be announced to the whole class. Extensions may be provided to individual students only in advance of the submission deadline and only under extenuating circumstances.

Late Submission: No late assignments will be accepted and no partial credit will be given for late assignments without a valid excuse.

Cheating: Homework and projects are individual assignments and students are required to submit their own solutions. All students are bound by the University’s academic integrity policies (refer to the relevant section below).

Teaching Assistant

Shailaja Mallick (smallic@ncsu.edu) is the TA for this course.

You may contact her to arrange for an online chat or video call at a mutually convenient time.

Feel free to contact the TA for any questions about the course.

Office Hours

My office is in Room 2306 of the EB II building.

Please email me to arrange for a mutually convenient time to have a discussion over the phone or online chat.

Academic Integrity

Students are required to respect the NC State academic integrity policies.