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 

Description

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.

Reading

Chapter 1

[1.1]

[1.2]

[1.3]

 

            Chapter 2

[2.1]

[2.2]

[2.3]

 

 


September 11 

Description

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

       Data encoding and transmission concepts, error detection.

Reading

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

Description

Data Link Control Part 1

       Flow Control (Stop-Wait, Sliding Window)

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

       HDLC.

Reading

Chapter 7

Introduction

[7.1] all

[7.2] all

[7.3] all

 


September 25

Description

       Data Link Control Part 2 -Performance of link protocols

       Introduction to the C-Net Simulator.

Reading

Chapter 7

[Appendix A] all

                        C-Net Documentation

 


October 2

Description

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).

Reading

Chapter 8

[Intro]

[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

 

Description

 

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

 

Reading

 

Chapter 10

[10.7] (X.25)

 

Chapter 11

[Intro]

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

 

 


October 16

 

Description

 

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.

 

Readings

 

Chapter 13

[13.1], [13.2], [13.3]

 

           


October 23

Description

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.

Reading

Chapter 12

[12.3] (Dijkstra's Algorithm)

Chapter 19

[19.2]

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

 


October 30

Description

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.

Reading

Chapter 2

[2.4]

Chapter 15

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

 


November 6

Description

The Internet Transport Protocols: UDP, TCP

Reading

                        Chapter 20 [all]

 


November 13

Description

Sockets (C and JAVA Socket programming)

Reading

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

Description

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.

 

Reading

RFC 1058

Review chapter 20 - connection establishment.

                       


November 27

 

Thanksgiving - no class

 


December 4

Description

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.

Reading

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)

Description

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.

Reading

                        None