CS 5283 Computer Network Programming

Spring 2004

Instructor: Dr. Venkatesh Sarangan
Email: saranga_at_cs.okstate.edu
Office: 212 MSCS
Office Hours: M,W: 2.00 PM - 3.00 PM, and by appointment
Phone: 405-744-5672
Class web-site: http://www.cs.okstate.edu/~saranga/Spring2004/CS5283/cs5283.html

Teaching Assistant: Mr. Sudheer Krishna

Email: chimbli_at_okstate.edu
Stillwater Office: 222 MSCS
Stillwater Office Hours: Tue, 10:30 - 12:30
Stillwater Phone: 405-744-8515

Tulsa Office: 384 North Hall
Tulsa Office Hours: Fri, 2:00 - 4:00 PM
Tulsa Phone: 918-594-8495

Course Goals:

The last few years have witnessed an unprecedented growth of the WWW. The Internet has been widely accepted as a prospective commercial infrastructure, rather than a network dedicated for research activities alone. It is very hard to come across a person who is not accustomed to the Internet! Yet, only a small percentage of the population understands how the net works. This course is designed for understanding the latest network technologies that make the Internet what it is today. Problems that confront the network engineer today are the need to support multimedia and real-time traffic, the need to control congestion, and the need to provide different levels of quality of service (QoS) to different applications. We will discuss the above issues in detail in this course.

Prerequisites:

Since this is an advanced graduate course in computer networks, the student is expected to know the basics of networking such as the TCP/IP protocol stack, routing basics, elementary graph theory, probability theory, Calculus and Algebra.

Though the course has been titled 'Computer Network Programming', this course is more oriented towards providing an up-to-date survey of the technological developments in the Internet, rather than network programming. Hence, students who do not have any background in network (socket) programming need not feel dis-heartened by the course title. However, there will be few assignment problems and a final project involving socket programming. Socket programming is easy to understand and there are a plethora of material available in the web. In addition, the TA will help the students with whatever questions they may have on the above topic. It is expected that the students will use the above resources, and develop the level of expertise in socket programming required to do the assignments/projects. This topic may not be discussed during the regular lecture.

Proficiency in some programming language such as C/C++/JAVA may be helpful. If you have any questions regarding the pre-requisites, please contact the instructor.

Required text:

"High speed Networks and Internets - Performance and Quality of Service", 2nd ed., by William Stallings, Prentice Hall, 2002. ISBN 0130322210

Additional references such as Journal, and Conference Papers will supplement the text book for the course material. These will be made available on the class home page at the appropriate times.

Course Content

The following is a tentative list of topics we will cover in this course (updated on 02/17/04):
  • High Speed LANs. (Ch 6)
  • Internet Routing Protocols: RIP, OSPF, BGP. (Ch 15,16).
  • Integrated Service/Differentiated Services. (Ch 17, 18).
  • TCP Details/Implementation. (Ch 12).
  • High-Speed Transport Protocols (references to be provided).
  • Mobility Management: Mobile IP. (references to be provided).
  • Multicasting. (Ch 16).
  • MPLS, RTP/RTCP (Ch 18)
  • Review of Probability theory and Stochastic Processes. (Ch 7).
  • Queueing Analysis. (Ch 8).
  • Self-similar Traffic. (Ch 9) (if time permits).
Based on the availability of time, we may either add/remove some topics to/from the above list.

Lecture Slides

  • (01/13/04). Lecture 1. Course Organization, Classical Ethernet.
  • (01/20/04). Lecture 2. Fast Ethernet, Gigabit Ethernet, Wireless LANs. The reference for wireless LANs can be found here.
  • (01/27/04). Lecture 3. IP Routing, RIP, OSPF.
  • (02/03/04). Lecture 4. BGP, Integrated Services, Differentiated Services. The reference material for DiffServ is this paper on a two-bit DS architecture.
  • (02/10/04). Lecture 5. Continuation of lecture 4 on RSVP, DiffServ, and RED/RIO.
  • (02/17/04). Lecture 6. Continuation of DiffServ, Overview of socket programming, TCP Implementation.
  • (02/24/04). Lecture 7. TCP Window and Timer management, High-Speed TCP. The reference material for high-speed TCP is this paper.
  • (03/02/04). Lecture 8. Mobility Management in IPv4 (Mobile IP). The reference material for this lecture is this paper.
  • (03/09/04). Mid-term exam.
  • (03/16/04). Spring break.
  • (03/23/04). Lecture 9. Multicasting: Concept, Routing Protocols.
  • (03/30/04). Lecture 10. Multicasting: continued from previous lecture. The reference material can be found here. Special thanks are due to the student who digitized the material.
  • (04/06/04). Lecture 11. MPLS (Multi-Protocol Label Switching), RTP/RTCP. Reference material (in addition to the text book) can be found here. Special thanks are due to the student who digitized the material.
  • (04/13/04). Lecture 12. Random Variables and Stochastic Processes. Additional Reference: Any standard text book on Probability theory and Stochastic processes.
  • (04/20/04). Lecture 13. Stochastic Processes (contd.) and Queuing Analysis.
  • (04/27/04). Lecture 14. Queueing Analysis (contd.) and Review Problems.

FINAL PROJECT

Here is the final project description with the grading split-up. Updated on April 08.


Due to the high running time, it is enough if you run the program for file sizes from 1MB to 5MB. YOU NEED NOT RUN IT FOR FILE SIZES 6MB to 10 MB. - Updated on April 08.


NOTE: Please sign up for the project demonstration. The time slots available are put up on the door of the instructor's office (212 MSCS). You to have enter your name(s) against the time slot you want. Slots will be allocated on a first-come first-serve basis. This sign up sheet is only for Stillwater students. Tulsa students can e-mail the TA directly and set up the demo time. Remote site students need not give a demo. - Updated on April 14.

Assignments

  • Assignment 1. Due on Feb 3. The progamming assignment is available here, and is due on Feb 6 (Fri) by 5.00 PM CST. The paper for next week's reading assignment is this.
  • Assignment 2. Due on Feb 24. The programming assignment is available here and has been modified to include the evaluation criteria. The program is due on Feb 27 (Fri) by 5.00 PM CST.
  • Assignment 3. Due on April 13.
  • Assignment 4. Due to requests from a number of students, the deadline for assignment #4 has been postponed to Friday, April 30. Solution for problems 7.10, 7.14 and 7.16 is available here. You need NOT submit these three problems for grading. Solutions for this assignment are available here.
  • Optional extra Credit Assignment for a maximum of 5%. Due on May 4 during the finals.

Evaluation and Grading

The class evalution policy is as follows:
  • Assignments : 25% (tentative frequency: Biweekly)
  • Mid-term exam : 25% (tentative date: first class after the Spring break).
  • Final exam : 25% (on the date set by the University)
  • Programming project: 25% (due during the last two weeks of classes).
All the above work are to be done individually. The usual grading divisions apply in this course.
  • 90 - 100: A
  • 80 - 90 : B
  • 70 - 80 : C
  • 60 - 70 : D
  • < 60 : F
The instructor reserves the right to modify the grading scale as long as it does not reduce any student's grade.

Policy on attendance

Students are expected to attend all the classes. They are responsible for all the materials covered in the class in their presence and absence. The students are expected to check the class home page often. Since the class meets only once a week, if needed, important communication from the instructor will be posted in the class web page.

Policy on late assignments

Assignments are due on the specified date before the start of the class. All assignments submitted after this will be penalized at 10% per day. Submissions beyond a delay of three days will not be accepted.

Policy on Drop/Add

Students will be allowed to drop as long as the university permits them to do so. A grade of W or F will be determined on the basis of points earned until that time. For a list of the relevant important dates, please visit http://www.okstate.edu/acadaffr/facultystaff/spring_04_syllabus_attachment.htm .

Policy on Plagiarism/Academic mis-conduct

As a good rule of thumb, you may discuss any problem in the course as long as no one is using a writing implement (computers included) nor looking at any source code for the assignment. That is, any group work must be verbal only. Obviously you may look at the textbook or class handouts/class notes together. One exception to this rule is that when a friend is having trouble with a small bug, and you notice a typo or other "silly little mistake", you may point it out to them. More substantive assistance is definitely not allowed, from any source whatsoever, including tutors or friends not enrolled in the course. The professor or teaching assistants will be able to give more help if you are stuck with concepts. A student attempting to gain unfair advantage by keeping an examination paper longer than the time permitted is guilty of academic misconduct. Any misrepresentation of fact in order to gain advantage or to avoid a penalty, either for one's self or another, is academic dishonesty.

All academic work must be your own. Collaboration, usually evidenced by unjustifiable similarity in assignments, is never allowed. The departmental policy for academic misconduct and dishonesty applies to this class. For a copy of the university policy on academic mis-conduct/dis-honesty, please visit http://home.okstate.edu/policy.nsf/0/3222fe17f2bfca56862562e0005edef6?OpenDocument . The students are expected to go through the above policy. Please meet with the instructor if you have any questions.

Students with disabilities

OSU's policy on accomodating students with disabilities will be followed in this class. Any student who needs special accomodation on account of a disability should meet with the instructor at the earliest possible opportunity.

The instructor and the computer science department reserve the right to change any of the above without notice at any time.