
office: (617) 358-1062
fax: (617) 353-6457
e-mail:
matta@cs.bu.edu
![]()
Join the course mailing list by typing csmail -a cs556 on the Sun cluster (e.g. csa machine). By sending on cs556@cs.bu.edu, your message is broadcast to the whole class, so please use it wisely.
For non-CS students, you can get an account on the CS cluster at the UNIX undergraduate lab located at 730 Commonwealth Ave, third floor. Please see a Terminal Assistant there for help.
See Internet Teaching Laboratory web page.
FINAL EXAM: Monday 05/06, 2:00-4:00PM, MCS-148
![]()
Includes programming assignments that (1) build upon application (socket) programming knowledge from CS 555, and/or (2) involve the modeling of network systems and their performance evaluation using analysis and/or simulation.
Subject to availability of a newly established Internet Teaching
Laboratory, homework assignments may include write-ups based on lab experiments,
which include configuring a network, a routing protocol, doing traffic
measurements, etc.
See Tentative Syllabus and Schedule (subject to change).
See Assignments Page.
Prerequisites
Basic networking (CAS CS 555 or equivalent), including TCP/IP protocols and Internet principles like addressing, routing, transport, naming and client-server socket programming.
Strong programming skills in C, C++, or Java. You will probably be given the flexibility of doing the programming assignments in a language of your choice. Knowledge of scripting languages such Tcl/Tk might also be helpful. If a sample skeleton code is given in a certain language as part of an assignment, you may still choose to use another language.
Algorithms and data structures (CAS CS 112 or 113 or equivalent).
Working knowledge of probability theory (CAS MA 381 or 581 or equivalent).
Background in operating and architectural issues should be helpful.
No special assistance or consideration will be offered if your background is inadequate.
Office Hours
Mondays and Tuesdays 3:30 pm - 5:00 pm, MCS 271. Or, by appointment; please e-mail me at matta@cs.bu.edu.
Teaching Fellow
Dhiman Barman.
E-mail: dhiman@cs.bu.edu
Office Hours: During Lab Hours
Phone: (617) 353-5222
Reading Material
There is simply no single textbook that either covers all the material in this course or covers them in a reasonably detailed level. Some lecture slides and notes will be made available on-line, and supplemented with some papers, Internet RFCs and drafts. Follow this link for textbooks (not required) that can serve as reference to provide necessary background.
Course Requirements and Grading Policy
There will be 2 in-class (midterm and final) exams to test your basic understanding of the main concepts discussed in class and in assigned readings. Both exams will closed books and notes. However, you will be allowed to bring one 8.5"x11" sheet of notes to the midterm exam, and an additional sheet of notes to the final exam. Exams will be cumulative, i.e., they will include all material covered in class from the beginning to the day of the exam. It is reasonable though to expect the final exam to focus on the latest material.
There will be 4-5 written homeworks, which may require you to perform simple numerical computations or answer basic questions on assigned readings. Depending on the availability of a newly established Internet Teaching Laboratory (ITL), some homeworks will be based on lab exercises. These homeworks are to be completed individually.
A main objective of this course is to familiarize you with programming and analysis tools useful in the design and evaluation of networking systems. To this end, you will be assigned two relatively small-scale programming assignments (likely one requires you to do socket programming and another that requires you to write a simulator). You will then be asked to complete a somewhat "research-oriented" project that may extend the previous two programming assignments, or that you pick from a number of suggested projects, or that you pick yourself (possibly based on your current Masters or PhD projects if related to the subject matter of the course). This "research-oriented" project may involve using an existing simulation tool to study certain aspects of networking or may make use of the ITL lab. You will be allowed to work in teams of two. More details follow.
There will 2 programming assignments. You will be given about 2-3 weeks to complete each assignment. These programming assignments can be done in groups of two.
The course also requires you to complete a research paper in the format of a "real" scientific paper. A team of two students may collaborate in submitting one paper. The choice of the topic is quite flexible. A couple of possible projects will be provided. You can also define your own project on a topic of interest to you. In this case, before you start on a topic, I must approve of it first. Please stop by my office or send me an e-mail and I will let you know if the topic is relevant and I may also point you to some references/ideas. You will be required to submit two reports. You will be given about 3 weeks to complete each report.
In your research project, your solution approach may involve the modeling of a network system and its performance evaluation using analysis and/or simulation, or the implementation and testing of network services on a network testbed. Thus, to obtain results in support of your project, you may need good computer programming skills (e.g., in C, C++, or Java) and working knowledge of operating systems. Knowledge of basic queueing theory (as in CAS CS 470/670 or CAS MA 583) and simulation should also be helpful.
The research paper may be based on your current Masters or PhD projects if related to the subject matter of the course, or may serve as a starting point for a Masters or PhD thesis!
Your overall grade will approximately be based on the following policy:
| Two exams (March 14, 2002 and final exam week May 4-11, 2002): 40% (20% each) FINAL EXAM: Monday 05/06, 2:00-4:00PM, MCS-148 | |
| Homeworks: 15% | |
| Programming assignments: 15% | |
| Research Project: 30% |
You are expected to attend and actively participate in class. This is an advanced course whose goal is to give you a broader view of networking not only of today but also of tomorrow. So questions and thoughts are very welcome.
Each assignment will have a due date. There will be a 5% penalty per day for late submissions. But, no late assignments will be accepted after one week from due date, and the last day to submit any late assignments is May 1, 2002.
More on Research Project
For your research paper, you must submit two reports. In your first report, you should identify a particular problem that you propose to work on and also what your objectives are. You should also specify how you plan to achieve your objectives -- whether by analysis, simulation or some other technique. So in your first report, you should precisely define your problem and clearly state the research question(s), and identify related work, your objectives and solution methodology. You are advised to start working on your research project as soon as possible.
Your second and final report must contain a complete description
of your project. So, it will include parts of the first report together
with some results/findings. You should obtain these results using the solution
methodology you already specified in the first report. For this, you may
use one of a number of tools (see below), including simulators, analytical/numerical
techniques (queueing theory, dynamic flow theory, worst-case analysis,
etc.) and experimental tools (NeVoT, etc.). Your results should be feasible
to obtain by the deadline but not too trivial!
Tools: You are free to use whatever tool you need. A popular
tool is discrete-event simulation. You can, of course, write your own simulator
from scratch. You can also use one of a number of network simulators already
available. Most of these network simulators are written in C or C++ and
are documented. However, you may need to modify or extend the simulator
you choose. Note that due to time constraints, it might not be feasible
to make major changes/extensions to obtain your results. Check the documentation
for the capabilities and flexibility of each simulator. Again, come see
me if you need help on which simulator to use. Following is a list of some
simulators/tools:
| MaRS. A packet-level simulator for evaluating routing systems. | |
| REAL simulator. Developed by Keshav. | |
| UCB/LBNL/VINT Network Simulator - ns (version 2) NS provides substantial support for simulation of TCP, routing, and multicast protocols. Includes links to topology generation, wireless network simulation, other simulation packages, visualization tools, and traffic archives. | |
| UCB/LBNL Network Simulator: Contributed Code, WWW Traffic Generator. | |
| NeVoT (audio conferencing tool) and other tools: Developed by Henning Schulzrinne. | |
| Dummynet and NIST Net: tools for emulating IP networks. | |
| Performance Measurement Tools: a collection of tools for measuring Internet performance. |
We will provide an overview of discrete-event simulation and ns-2. You are expected to have strong programming skills, working knowledge of operating systems, and ability to learn new tools to complete your assignments.
In case of availability of the newly established Internet Teaching Laboratory (ITL), you are also encouraged to use it for experimental evaluation of protocols and applications.
Academic Honesty
General discussions of issues in networking is strongly encouraged. But you must submit only your own work. A student violating this policy will receive a grade of "F" for the course. If you are having trouble completing an assignment, see the instructor.
See BU CAS Academic Conduct Code.
![]()
Acknowledgments: Contents are based in part on material by many colleagues, in particular, S. Keshav, Guru Parulkar, Mostafa Ammar, George Apostolopoulos, Nitin Vaidya.
![]()