Syllabus CS 536        Data Communication and Computer Networks        Fall 1998


Instructor : Prof. Kihong Park
Office Hours : MW 9:30-10:30am, F 10:45-11:45am (CS 220)
Class : MWF 8:30-9:20 (POTR 262)
E-mail : park@cs.purdue.edu (Tel. : (765) 494-7821)
Course Homepage : http://www.cs.purdue.edu/homes/park/cs536.html


Teaching Assistants : Ramakrishna Paduvalli, Tao Yang
Office Hours : Paduvalli: MW 3:00-4:30pm (MT 415), Yang: TF 3:00-4:30pm (MT 433)
E-mail : ramakrps@cs.purdue.edu (494-6408), yangt@cs.purdue.edu (494-5735)


Course Content : Graduate-level introductory course to computer networks and data communication.


Prerequisites : Operating systems (CS 413); solid background in C and UNIX (experience with projects and system programming); sound undergraduate-level mathematical preparation (calculus, differential equations, probability and statistics).


Text Books : Required--Computer Networks: A Systems Approach. Peterson & Davie. Morgan Kaufmann Publ., latest edition. Recommended--Data Networks. Bertsekas & Gallager, Prentice Hall, 1992 (2nd ed.).

The textbooks, including Peterson & Davie, are to be viewed as reference materials; the lectures are the main source of information. Although the overall flow will be the same, the material covered in the lectures will deviate from the textbooks in sequence, presentation, and treatment at various places. Attendance is crucial for the successful completion of the course.


Work Load and Grading Policy : Homework assignments (40 %), midterm (30 %), final (30 %). Homework assignments are given out weekly; they are due in class the following week. Late assignments will not be accepted. Homework assignments will be posted on the course homepage http://www.cs.purdue.edu/ homes/park/cs536.html.

Discussion of initial ideas and approaches regarding homework assignments is fine. Collaboration on homeworks (i.e., jointly exploring the specifics of a solution), however, is not allowed. Academic dishonesty is a serious matter and is dealt with in accordance with University policy.


Lab Space : Our main programming and implementation platform will be the cluster of workstations in the Xinu Lab (CS 257) of the Computer Science Building running UNIX (Solaris). Lab times have been set aside for CS 536 (consult your schedules). There are also open times (posted in the Lab) during which the machines can be shared with other users.

The lab machines can also be accessed remotely using telnet; for CS 536Q students, this will be the main mode of access. The relevant hostnames are: xinu1.cs.purdue.edu, tex2html
_wrap_inline44 , xinu20.cs.purdue.edu which are Intel x86 based machines, and xinuserver.cs.purdue.edu which is the fileserver for the cluster. A typical homework (programming/implementation component) will involve writing network programs running on a number of xinu*.cs.purdue.edu machines.

Accounts will be automatically created and distributed during the first week of classes. For account-related questions, please consult Candace Walters (clw@cs.purdue.edu, (765) 494-9206, CS 210).

We will extensively use socket programming to access TCP/IP for network communication-related implementations. We will selectively use the x-kernel, a ``networking-friendly'' operati ng system environment and its associated simulator x-sim, as well as ns, a network simulator from Lawrence Berkeley National Laboratory (LBNL). A newly installed ATM (asynchronous transfer mode) LAN--a high-speed network--will be available course work.


Goal of the Course :

The primary goal of the course lies in the mastery of fundamental networking concepts--architecture, algorithms, and implementations.

Computer networks is a rapidly evolving field, with new standards and improvements in data communication technology occurring, literally, as we speak. This makes the field both exciting and rewarding; however, for those not firmly grounded in its fundamentals, it can also be a confusing and overwhelming subject matter. Fortunately, the fundamentals required in understanding and keeping on top of ongoing developments vary at a much slower pace, and it is these fundamentals that will form the skeleton of the course, with technological advances providing further grounding and context.

This course is a ``modern'' introduction to computer networks, stressing the logical organization of the three networking features, architecture, algorithms, and implementations. Special emphasis will be given to performance issues which will be a recurring and, to some extent, unifying theme of the course. Ultimately, architecture, algorithm, and implemention are geared toward facilitating enhanced performance.

We will learn about the technology and control mechanisms underlying local area and wide area networks (LANs and WANs), the fundamentals of information transmission and coding which underlies all intelligible communication, the protocols that allow diverse networks to interoperate so that messages are seemlessly forwarded (internetworking), the role of data buffering and why, in spite of that, data is sometimes lost on its route from source to destination (a.k.a. queueing theory).

We will learn how to control the path and flow of data such that network performance is enhanced (routing and congestion control), special problems arising in high bandwidth networks including the principles underlying Asynchronous Tranfer Mode (ATM) networks, issues surrounding multimedia communication (audio/voice, video/image, bulk/interactive data) and their facilitation, high-level transparent network services including network file systems (NFS), remote procedure calls (RPC), domain name system (DNS), hypertext transfer protocol (HTTP), Web servers, Java and network computing.


Course Outline :