Data Communications and Networks

 Fall 2003  

Syllabus and Reading Assignments


Revision Date:  11/24/2003



In the sections that follow, the topics for the lecture on the given date are provided under the heading Description.

The material listed for Reading is to be read PRIOR to the date of the lecture (except for the first lecture).

Make sure that you always read the short introduction for each chapter before you read the assigned sections.

September 4 


I will go over administrative details for the course and try to give you some idea of what you should expect, and what I expect from you.  I will introduce you to the key elements of communications and networking, and provide an overview of the tasks communications systems must handle.


Chapter 1





            Chapter 2






September 11 


       Fundamental data structures used in communications protocols: Finite State Machines, Queues, Ring Buffers.

       Data encoding and transmission concepts, error detection.


Chapter 3

[3.1] pp 56 - 60 (stop at Frequency-Domain Concepts)

[3.2] all


Chapter 5

[5.1] pp 130 - 140 (stop at Scrambling Techniques)

[5.2] all


Chapter 6

[6.1] all

[6.2] all

[6.3] all




September 18


Data Link Control Part 1

       Flow Control (Stop-Wait, Sliding Window)

       Error Control (Stop-Wait, Go-back-N, Selective-Reject)



Chapter 7


[7.1] all

[7.2] all

[7.3] all


September 25


       Data Link Control Part 2 -Performance of link protocols

       Introduction to the C-Net Simulator.


Chapter 7

[Appendix A] all

                        C-Net Documentation


October 2


Networks:  Multiplexing (cursory), circuit switching (cursory), packet switching (principles, routing).

NOTE: if you are overwhelmed by the amount of reading, make sure that you at least read the sections from Chapter 10 (Packet Switching).


Chapter 8


[8.1] pp 243 - 244 (stop at end of p. 244)

[8.2] pp 250 - 253 (stop at "Framing")

[8.3] pp 260 - 262 (stop at "Performance")


Chapter 10

[Intro], [10.1], [10.2], [10.6]


Chapter 12

[Intro], [12.1], [12.2]


October 9




Networks:  X.25 and ATM.  One old (X.25) and one (relatively) new protocol network protocol.




Chapter 10

[10.7] (X.25)


Chapter 11


 [13.1], [13.2], [13.3], [13.5], [13.6]



October 16




Congestion in Data Networks.


Invariably every network suffers from too little capacity to handle the load offered to it.  This condition, congestion, is a fundamental networking problem.  We will take a look at the nature of congestion, and the characteristics desired of a congestion control policy.  We will compare the congestion control approaches used by ATM and TCP.




Chapter 13

[13.1], [13.2], [13.3]



October 23


Routing in Packet Switching Networks

How do routers decide where to send packets? What are the algorithms and protocols they use and how do we handle the problems of scale (millions of routers)?  Tonight we discuss the fundamental algorithms and protocols used to route packets (datagrams) in the Internet.


Chapter 12

[12.3] (Dijkstra's Algorithm)

Chapter 19


Lecture notes on Routing (Please read these at least once!)


October 30


Completion of routing lecture:  Link State and Distance Vector routing algorithms.


The Internet:  Architecture and protocols (IP, ICMP, ARP)

The Internet from both an architecture and service view, the Internet Protocol (IP), IP addressing, IP Packet format, fragmentation and reassembly, ICMP, and ARP.


Chapter 2


Chapter 15

[18.1], [18.2], 18.3], [18.4]


November 6


The Internet Transport Protocols: UDP, TCP


                        Chapter 20 [all]


November 13


Sockets (C and JAVA Socket programming)


Any book on sockets (Internetworking with TCP/IP: Volume III: Client-Server Programming and Applications, BSD socket version, is very good).   Here is a link to the JAVA Sockets tutorial, and a link to a tutorial for sockets in C (PDF file)


November 20


TCP Operation; Review of Distance Vector Routing; Final Project Discussion

We look at the complete TCP state diagram and finish our discussion of TCP by looking at the close sequence.

We also review how distance vector routing works and present the final project.



RFC 1058

Review chapter 20 - connection establishment.


November 27


Thanksgiving - no class


December 4


IP multicast, multicast routing, reliable multicast

IP multicast allows a sender to broadcast a message to a group of interested parties anywhere on the Internet, but like IP unicast, it is unreliable.  The problems one faces when designing a reliable multicast protocol are very different than for a point to point protocol.  We look at IP Multicast, including a Java example, then we look at two approaches to reliable IP multicast: PGM (Pragmatic General Multicast,) and if time permits, a very neat approach based on token passing.


IP Multicast Backgrounder (PDF File)

Chapter 19 - multicast and IGMP

RFC 1022 (IP Multicast Extensions)

RFC 3208 (PGM)


December 9 (Thursday classes are held on Tuesday)


A Little Queuing Theory, Final Project Q&A

Performance of client server systems is typically a function of load (frequency of requests). Tonight, we will take a look at how queuing theory can help us to understand client - server behavior under load.


I will also provide time for questions about the final project.