|
Data Communications and Networks
Fall 2003 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
Lee-Ad Gottlieb
Jeremy Weinberger
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 begin by studying the exchange of data between two directly
connected devices. In particular, we will examine aspects of data transmission,
interfacing, and link control.
Once we understand
how data can move reliably between two directly connected systems, we will
examine the problems that are inherent in networks that are comprised of tens
of millions of communicating devices.
A significant
element of the course is protocol architecture and design. We will study both the OSI protocol model
and the Internet Protocols (IP and TCP).
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.
We will be using a
very nice network simulator for which you will write programs in C. The simulator will allow you to implement
some of the algorithms we will study.
Since most students seem to prefer programming assignments to
question/answer assignments, you will write programs, particularly for the
simulator. All of the of simulator
programming will be done in C.
You will also write
some simple socket programs, as well as programs that demonstrate your
understanding of finite state machines, queues, and other structures commonly
used in protocol development.
I will introduce you to socket programming (in C and in JAVA). Socket programming is the most widely used abstraction for building applications that exchange data with other applications. You will have one or two assignments in this area.
There will be no
examinations and no final examination.
There will be moderate amount of homework, most of it in the form of program
development and analysis of problems.
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
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 C). 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.
Required Text
We will be using the following book as our primary reference in class
Data & Computer
Communications Seventh Edition,
William Stallings, Prentice
Hall, 2003, ISBN 0131006819
|
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:
Computer Networking: A
Top-Down Approach Featuring the Internet, 2nd Edition
James Kurose and Keith Ross, Addison Wesley, 2003, ISBN: 0201477114
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
The C-Net
Simulator
Some of the
assignments require that you use the C-Net Network Simulator.
·
The
documentation for C-Net is here
·
The
instructions to install C-Net in your home directory on the CS department
Solaris network are here.
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 |
|
10 |
Sep 25 |
Lee-Ad |
Jeremy |
|
|
15 |
Oct 16 |
Jeremy |
Lee-Ad |
|
|
25 |
Nov 13 (by 6pm) |
Lee-Ad |
Jeremy |
|
|
15 |
Nov 23 |
Jeremy |
Lee-Ad |
|
|
35 |
Dec 18 |
Professor |
Professor |
* There is no late period for the final assignment. It must be submitted by 11:59 PM
on Dec 18 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. You are assigned to one or the other group
for the entire semester based upon your student ID as follows:
· If your student ID is
000-00-0001 through 200-00-0000, then you are in Group A.
· If your student ID is
200-00-0001 through 999-99-9999, then you are in Group B.
You must submit
your assignment to the TA assigned to your group for the given assignment. The TA 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 – 6]
If you are
submitting attachments of any kind (source files, text files, any MS documents,
etc), you MUST zip all of them up into one zip file. The zip file should be named using your
student ID and assignment number as follows:
123456789_HWn.zip
Where 123456789
is your SID and n is the assignment number [1 – 6].
NOTE: ALL homework is due BEFORE
midnight on the given due date. This
includes the final assignment.
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 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.
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_fa03
Please send your questions to this list (NOT TO ME) so that everyone may participate in the discussion.