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