Data Communications and Networks
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.
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.
· Fundamental data structures used in communications protocols: Finite State Machines, Queues, Ring Buffers.
· Data encoding and transmission concepts, error detection.
[3.1] pp 56 - 60 (stop at Frequency-Domain Concepts)
[5.1] pp 130 - 140 (stop at Scrambling Techniques)
Data Link Control Part 1
· Flow Control (Stop-Wait, Sliding Window)
· Error Control (Stop-Wait, Go-back-N, Selective-Reject)
· Data Link Control Part 2 -Performance of link protocols
· Introduction to the C-Net Simulator.
[Appendix A] all
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).
[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")
[Intro], [10.1], [10.2], [10.6]
[Intro], [12.1], [12.2]
Networks: X.25 and ATM. One old (X.25) and one (relatively) new protocol network protocol.
[13.1], [13.2], [13.3], [13.5], [13.6]
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.
[13.1], [13.2], [13.3]
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.
[12.3] (Dijkstra's Algorithm)
Lecture notes on Routing (Please read these at least once!)
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.
[18.1], [18.2], 18.3], [18.4]
The Internet Transport Protocols: UDP, TCP
Chapter 20 [all]
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)
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.
Review chapter 20 - connection establishment.
Thanksgiving - no class
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.
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.