# Network Modeling

## Abstract

The goal of this course is to teach student how to model, analyze, and optimize the performance of different Networks using simple theoretical tools. The end goal is to highlight the common underlying properties, develop a strong high-level insight on the network parameters affecting network performance, and understand how to optimize a networked system.

Each class will be a mix of some necessary theoretical tools, and their application to real-world networks. We will consider examples from modern cellular networks (e.g., offloading and load balancing), capacity planning, MAC protocols, scheduling in computing clouds and web server farms, security (e.g. virus infections), measuring large social networks like Facebook and Twitter, search engines (e.g. Google's PageRank algorithm), and many others.

**Teaching and Learning Methods** :Lectures, Homework, and Programming Labs (2)

## Bibliography

Some research articles from the web, and selected chapters from:

"Performance Modeling and Design of Computer Systems" by Mor-Harchol-Balter,

"Networks, Crowds, and Markets: Reasoning About a Highly Connected World" by D. Easley and T. Kleinberg,

## Requirements

Basic knowledge of Probabilities, eigenvalues/eigenvectors/SVD, basic Matlab or Python

## Description

Markov Chains with Applications:Markov chains are one of the simplest and most applied analytical tool to model a very large range of networks and networking problems. We will introduce discrete-time and continuous-time Markov chains and discuss their application to solve problem like web search engines, MAC protocol performance, and mobility modeling.

Queueing theory and Scheduling:We will use Markov chains to analyze simple queueing models for systems with single and many servers, and then discuss how to optimally schedule computing jobs, or communication traffic, using a range of examples from web server farms and cloud computing, mobile network planning, traffic offloading, cognitive networks, etc.

Social and Complex Networks: Some of the most interesting systems in today's cyber-world are large networks with complex structure and dynamics. Some examples are the Internet, online social networks (e.g. Facebook, Twitter), peer-to-peer networks (e.g. Skype, BitTorrent), etc. We will introduce some key random graph models and properties, such as Poisson graphs, scale-free graphs, small-world graphs, preferential attachment, community structure etc., and learn how to model and understand processes and dynamics like searching such networks, measuring them, how rumors or malware spreads over these networks, etc.

Applications and Use Cases from Real Systems: Most of the above topics will be presented along with some important applications drawn from areas like, Internet measurement, searching in peer-to-peer (P2P) networks, sampling of social networks, etc. The class will include homework sets to practice the material learned, and two programming labs. One lab will using datasets from real networks, and in-class group problem solving.

**Learning outcomes:**

Be able to abstract and understand a large networked system, and make predictions about its performance.

Be able to identify performance bottlenecks for a large range of networking problems, a valuable skill for any manager or consultant.

Understand the basic underlying principle behind some of the most important networks and systems around us, such as Cloud Computing, Server Farms, Internet Search Engines, Cellular Networks, Social Networks, Viral Information Dissemination, etc.

**Nb hours** :42.00

**Grading Policy** :Midterm (30%), Final (50%), Homeworks and Labs (20%), Participation (extra credit)

**Nb hours:**42.00

**Nb hours per week:**3.00