office: (617) 358-1062
fax: (617) 353-6457
e-mail:
matta@cs.bu.edu
Final Exam Tuesday May 8, 2001, 2:00 PM - 4:00 PM, MCS 148.
Join the course mailing list by typing csmail -a cs591a1 on the Sun cluster (e.g. csa machine). By sending on cs591a1@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.
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.
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
Tuesdays and Thursdays 3:30 pm - 5:00 pm, MCS 271. Or, by appointment; please e-mail me at matta@cs.bu.edu.
Teaching Fellow
Gu-In Kwon.
E-mail: guin@cs.bu.edu
Office Hours: Thursdays 12:00 - 2:00 pm, MCS B46.
Phone: (617) 353-9777
Grader
TBA.
Textbooks (Not Required)
These textbooks are not required. 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. The following are textbooks that can serve as reference to provide necessary background. You should be able to find most of these textbooks on reserve in the library.
William Stallings. High-Speed Networks: TCP/IP and ATM Design Principles.
Prentice-Hall, 1998.
Franklin Kuo, W. Effelsberg and J.J. Garcia-Luna-Aceves. Multimedia
Communications: Protocols and Applications. Prentice-Hall, 1998.
Paul Ferguson and Geoff Huston. Quality of Service. Wiley 1998.
Gary R. Wright and W. Richard Stevens. TCP/IP Illustrated, Volumes
1, 2, 3. Addison-Wesley, 1994, 1995, 1996.
S. Keshav. An Engineering Approach to Computer Networking: ATM Networks,
the Internet, and the Telephone Network. Addison-Wesley, 1997.
C. Huitema. Routing in the Internet. Prentice-Hall, 1995.
W. R. Stevens. Unix Network Programming. Prentice-Hall, Second
edition, 1998.
D. Comer and D. L. Stevens. Internetworking with TCP/IP, Client-Server
Programming and Applications. Prentice-Hall, 2001.
S. Paul. Multicasting on the Internet and its Applications.
Kluwer-Academic, 1998.
There are many other networking textbooks, including:
Mischa Schwartz. Broadband Integrated Networks. Prentice-Hall,
1996.
Joel Mambretti and Andrew Schmidt. Next Generation Internet.
Wiley, 1999.
Uyless Black. Advanced Internet Technologies. Prentice-Hall, 1999.
William Stallings. ISDN and Broadband ISDN with Frame Relay and ATM.
Prentice-Hall, 1999.
L. Peterson and B. Davie. Computer Networks: A Systems Approach.
Morgan-Kaufmann, 1996.
Uyless Black. ATM: Foundation for Broadband Networks. Prentice-Hall,
1995.
F. Halsall. Multimedia Communications. Addison-Wesley, 2001.
S.A. Thomas. IPng and the TCP/IP Protocols, Implementing the Next Generation
Internet. Wiley, 1996.
Jean Walrand and Pravin Varaiya. High-Performance Communication
Networks. Morgan-Kaufman, 1996.
D. Comer. Internetworking with TCP/IP, Volume 1, Third edition.
Prentice-Hall, 1995.
J. Kurose and K. Ross. Computer Networking, A Top-Down Approach Featuring
the Internet. Addison-Wesley, 2000.
A.S. Tanenbaum. Computer Networks. Prentice-Hall, 1996.
F. Halsall. Data Communications, Computer Networks and Open Systems.
Addison-Wesley.
W. Stallings. Data and Computer Communications. Prentice-Hall.
J. Walrand. Communication Networks: A First Course. Aksen Associates.
D. Comer. Computer Networks and Internets. Prentice-Hall.
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 3-4 written homeworks, which may require you to perform simple numerical computations or answer basic questions on assigned readings. 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 proposed 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. You will be allowed to work in teams of two. More details follow.
There will 2 programming assignments. You will be given about 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 15, 2001 and final exam week May 7-15, 2001): 40% (20% each) |
![]() | Homeworks: 10% |
![]() | Programming assignments: 20% |
![]() | 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 2, 2001.
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:
![]() | 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. |
![]() | routesim. A flow-level routing simulator. |
![]() | Dummynet and NIST Net: tools for emulating IP networks. |
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.
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