|
Data Communications and Networks
Fall 2004 Thursday 7:00 PM – 9:00 PM WWH 109
|
Instructor Information
|
Instructor: |
Joseph P. Conron |
|
Office: |
WWH 401 |
|
Email: |
jconron@cs.nyu.edu |
|
Hours: |
Thursdays 6:00 - 6:50 by appointment please |
TA Information
Jeremy Weinberger (jeremy at cs)
Course
Description
This course is a
one semester introductory course that introduces the student to a broad range
of topics fundamental to computer communications. We will approach the subject by taking a top-down approach -
introducing some important application-level protocols, then proceeding down
the stack to from the transport to the data
A significant
element of the course is protocol architecture and design. We will use the Internet and its major
protocols (IP and TCP) as the basis for our studies. The student will become very familiar with the concept of
protocol layers and packet formats. We
will look closely at how TCP handles the problems of flow control and
congestion control as well as how routing algorithms and protocols work to
deliver packets from end to end.
Multimedia
applications have certain performance requirements that the Internet does not
inherently handle very well. We'll see
how new protocols and algorithms have been developed to provide performance
"guarantees" over an unpredictable network. We will contrast this approach to that of circuit switched
networks when we look at the ATM model.
Homework will
consist of some written assignments based upon problems from the book and some
small programming assignments. The
programming assignments show you how to use sockets in UDP and TCP and will
introduce you to the use of finite state machines in protocol design. A final project will require the student to
develop a fairly complete implementation of RFC 793.
All programming assignments will be written in JAVA, as will be the final project.
There will be no
examinations and no final examination.
Topics
we will cover are:
·
Fundamental Data
Structures: queues, ring buffers, finite state machines
·
Data Encoding and
Transmission
·
Data Link Control
·
Packet Switching
·
OSI and Internet
Protocol Architecture
·
Congestion Control and
Flow Control Methods
·
Internet Protocols (IP,
ARP, UDP, TCP)
·
Network (packet) Routing
Algorithms (OSPF, Distance Vector)
·
IP Multicast
·
Sockets
·
Multimedia Networking
(RTP, RTSP, RSVP)
Prerequisites
You must have completed Programming Languages
AND Fundamental
Algorithms (or have a working knowledge
of data structures and associated algorithms and be proficient in either C++ or
JAVA (preferably JAVA). I will go over
some fundamental data structures: FSM, Queues, Ring Buffers, that are common to
communications protocol implementation, but it will help if you've had some
exposure to them.
If you are new to
JAVA, the following text is a good JAVA introduction and reference. Be warned
though, that it does not teach object-oriented programming.
The Java
Programming Language, Third Edition, Ken Arnold, James Gosling, David Holmes Addison-Wesley Pub Co; ISBN:
0201704331
If you need a JAVA
tutorial that includes an introduction to object oriented programming, try the
free JAVA Tutorial at http://www.javasoft.com/docs/books/tutorial.
Required Text
We will be using the following book as our primary reference in class
Computer Networking: A
Top-Down Approach Featuring the Internet, 3rd Edition
James Kurose and Keith Ross, Addison Wesley, 2004, ISBN: 0-321-22735-2
|
NOTE: Changes
and corrections to the text book are here: Errata |
Recommended
Texts
Other
communications networking texts that you may find useful in your work or future
studies:
Data & Computer
Communications Seventh Edition,
William Stallings, Prentice
Hall, 2003, ISBN 0131006819
Computer
Networks And Internets with Internet Applications, 3rd Edition,
Douglas
Comer, Prentice Hall, ISBN 0130914495
Internetworking
with TCP/IP: Volume III: Client-Server Programming and Applications, BSD socket version,
Second
Edition, Comer, D.E. and Stevens, D.L. Prentice Hall, ISBN 0-13-260969-X
Syllabus (the
course Syllabus, including weekly readings)
Lectures (links
to lectures)
The course grade
will be based on 5 homework assignments
|
Assignment |
Percentage |
Due Date |
Group A |
Group B |
|
15 |
Sep 27 |
|
|
|
|
15 |
Oct 14 |
Jeremy |
Professor |
|
|
15 |
Oct 28 |
Professor |
Jeremy |
|
|
15 |
Nov 18 |
Jeremy |
Professor |
|
|
40 |
Dec 16 |
Professor |
Professor |
* There is no late period for the final assignment. It must be submitted by 11:59 PM
on Dec 16 without exception.
Grades will be
given according to the following schedule:
A 93 - 100
A- 90 - 92.9
B+ 87 - 89.9
B 83 - 86.9
B- 80 - 82.9
C+ 75 - 79.9
C 70 - 74.9
C- 60 - 69.9
I am defining two
(2) grading groups, Group A and Group B:
These groups are organized
alphabetically as follows:
Group A: LAST name begins with letters Aa through Hr
Group B: LAST name begins with letters Hs through Zz
You must submit
your assignment to the grader assigned to your group for the given assignment. The grader assignments are listed in the
assignments table above.
When a given
assignment is due, you must email the required items to the grader for your
group. I will be grading the final
assignment so EVERYONE will send that to me for grading. When you submit an assignment by email you
MUST write the subject as follows:
G22.2262 Assignment N
Where N is the
assignment number [1 – 5]
If you are
submitting attachments of any kind (source files, text files, any MS documents,
etc), I prefer that you put all
attachments into a WinZip file else they may rejected by the virus scanner.
You will be
required to use the Solaris systems in CIMS network for some of your
programming assignments. All students taking
graduate CS courses should have a CIMS network account. If you do not already have one, please send
an email to Maria Lucia Petagna (petagna@cs.nyu.edu)
to request one. Include the following
information:
·
Name
·
Student
ID
·
Identify
your degree program
·
List
the courses in the CS department for which you've registered this semester.
1. Unless stated otherwise in
the assignment, all assignments must be done individually (see Cheating
below).
2. Unless stated otherwise in
the assignment, all writing and coding must be original.
3. All assignments must be
emailed to the appropriate grader. To
avoid problems with "lost emails" ("the Internet ate my
homework") you should save a copy of your EMAIL (not simply the assignment
itself).
Late
assignments will be not be accepted UP TO ONE WEEK LATE, subject to a 10%
penalty. That is, if the maximum score
for an assignment is N, then you will lose N/10 points. Assignments will not be accepted later than
one week from the due date.
Since
we will go over the answers to assignments in class, NO credit will be given
for ANY assignment submitted later than one week from the due date. Late assignments MUST be submitted before
the start of the next class following the due date. This applies to the final assignment as well, even though we will
not go over that assignment in class.
You should NOT:
The penalty for ANY cheating offense is a grade of F for the course.
Class Email List
All students should register themselves with the class list, which is used for all technical discussions concerning the course. To register, go to the following web page, and follow the instructions:
http://cs.nyu.edu/mailman/listinfo/g22_2262_001_fa04
Please send your questions to this list (NOT TO ME) so that everyone may participate in the discussion.