CAS CS 591 A1

Advanced Computer Networks
(officially, Networking Seminar)

Department of Computer Science
College of Arts and Sciences
Boston University

Spring 2001

Prof. Ibrahim Matta
111 Cummington Street, Math-Computer Science (MCS) building, room 271

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.

This page http://www.cs.bu.edu/fac/matta/Teaching/cs591a1/S01/ will be continually updated. Please check (reload) this page regularly (at least twice a week).

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.

Official Description

Time & Place

Tuesdays and Thursdays 2:00 pm - 3:30 pm. MCS 148.

Description

This is intended as a regular advanced course in Computer Networks. So this course assumes the basic knowledge covered in CAS CS 555 regarding the Internet and its protocols. The goal of this course is to take a broader view of networking issues and solutions. The main objective is to strengthen the student's understanding of fundamental concepts, requirements and design tradeoffs, particularly as related to scheduling, congestion control, routing, traffic management, wireless access and mobility, and applications. More importantly, the course discusses how networking may evolve in the future to provide ubiquitous support for quality-of-service (QoS) in heterogeneous environments.

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.

 


The use of this page and pages linked to it is permitted for the class CAS CS 591-A1 at Boston University and for non-profit educational purposes only. Any other use requires permission of the author (Ibrahim Matta, matta@cs.bu.edu).

Acknowledgments: Contents are based in part on material by many colleagues, in particular, S. Keshav, Guru Parulkar, Mostafa Ammar, George Apostolopoulos, Nitin Vaidya

Last updated Feb 12, 2001