Data Communications and Networks

 Fall 2004  
 
 

Syllabus and Reading Assignments

 

Revision Date:  December 2, 2004

 

 

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

 


September 9 

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 some of the key elements of communications and networking, and provide an overview of Internet from a structural and service perspective.  Some of the key concepts we'll cover are:

·       Network delay and loss

·       Layered protocol model

·       Packet switched and circuit switched networks

·       Multiplexing

This overview is very broad and will span both the first and second lectures.

Reading          Chapter 1 (ALL)

 

 


September 16

Description

·       Completion of overview.

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

Reading          Chapter 1 (ALL)

 

 

           


September 23

Description

·       Application Level Protocols (HTTP, SMTP, FTP)

·       Tonight we will take at three of the most widely used application Protocols: HTTP, SMTP, and FTP.  Though designed for very different purposes, these three protocols follow a very similar (and simple) request/response model.  We will also take very brief look at the RFCs that define them to get some idea of how the specifications for these protocols are written.

·        

·       All of the Internet RFCs are available at http://www.ietf.org/rfc.html.  RFC 2616 (HTTP), RFC 959 (FTP), RFC 2821 (SMTP).  Try reading the introductions to each of these.

·        

Reading          Chapter 2, sections 2.1 through 2.4 (ALL)

 


September 30

Description

·       Applications Protocols Part 2 (DNS, P2P), and Java Socket Programming

 

Continuing the discussion of application protocols, we will see how the DNS protocol, although not an application in the same sense as those we've studied so far, provides the foundation for associating names with IP addresses.  We will also look briefly at the peer-to-peer communication model used by "file sharing" Internet applications like Gnutella and KaZaA.

 

All of the application protocols, whether client-server or peer-to-peer model, use the Socket abstraction to access the Internet transport protocols TCP and UDP.  In the second half of the class we look at the Java classes for Socket programming.

 

Reading          Chapter 2, sections 2.5 through 2.9 and if you have time, the JavaDocs for the Socket and DatagramSocket classes.

 


October 7

Description

·       Transport Protocols: Multiplexing and Reliable Data Transfer (RDT).  Multiplexing is a means by which a single medium can be used to carry independent streams of data (more or less) simultaneously.  The Internet provides no particular means for end-to-end transmission of data between two applications.  This is the function of the transport protocols.  We will see how UDP and TCP, when combined with the Socket abstraction enable application-to-application sessions to be multiplexed over the Internet

 

·       Reliable Data Transfer (RDT) between communicating entities is one of the most important topics in communications.  Once we define what RDT is, we will examine three fundamental protocols: Stop and Wait, Go Back n, and Selective Repeat.  During the discussion of this topic we will use FSMs to represent our protocols.

 

Reading          Chapter 3, sections 3.1 through 3.4.

 


October 14

 Description

·       TCP in detail:  We make a thorough examination of the TCP connection management, flow control, and error detection/correction protocols, and in particular, use TCP as a practical implementation of a sliding window protocol.  When we are finished with this topic, you should be able to examine a TCP session trace and understand exactly what is happening.

Reading          Chapter 3, section 3.5 ; RFC 793 (intro, sections 1 and 2)

 


October 21

                    Same as last week (TCP)

 


October 28

Description

·       Congestion Control:  Congestion control is a top issue in network design.  We examine the causes, effects, and approaches to congestion control.  We will discuss TCP congestion control presently in use (AIMD) and try to determine if this "self-policing" approach leads to fair use of the Internet.

Reading          Chapter 3, section 3.6 ; 3.7; RFC 2581

 


November 4

Description

·       Finish congestion control from last week

·       Networks, Part 1: Routing and forwarding functions; IPV4, IPV6, and ICMP

Reading          Chapter 4 sections 4.1 - 4.4

 


November 11

Description

·       Networks, Part 2: Routing algorithms and protocols.  Tonight we will discuss two common routing algorithms: Link State and Distance Vector.  Following that we look at how the problem of route administration is handled by a hierarchical approach to routing in the Internet.

Reading          Chapter 4 sections 4.5, 4.6

 


November 18

Description

·       Networks, Part 3: Networks:  X.25 and ATM.  One old (X.25) and one (relatively) new protocol VC network protocol.

 

Reading          No Reading.


November 25

 

Thanksgiving - no class

                       


December 2

Description

·       Link Layer

§       Error detection and correction

§       Multiple access protocols

§       Link-Layer Addressing

§       Ethernet

 

 

Reading          Chapter 5, sections 5.1 through 5.5

 

 


December 9

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

 


December 14 (TUESDAY!)

 

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 4, section 4.7 - multicast routing

RFC 1022 (IP Multicast Extensions) (optional)

RFC 3208 (PGM) (optional)