Comp 343/443 materials - Summer I, 2001

Peter Dordal, Loyola Univ Chicago Dept of Mathematical and Computer Sciences.

Class moved from Wed 6/20 to Fri 6/22

Here is an outline of the entire course.

The outline is in logical order; during summer 2001 we will jump around more.

The text is the new second edition of Peterson & Davie's Computer Networks, A Systems Approach.

Course groundrules. Exams will count for between 70% to 80% of your grade, with homework and programs making up the rest. The midterm will be June 11; the final will be June 27.

Office hours: Monday and Wednesday, 1:00-3:00 pm
Teaching Assistant: Greg Socha. His office hours are 5:30-8:30 Tues/Thurs evenings, in the labs. Look in DH341 first; he should have a sign. Email him at gsocha@perlprog.com. Greg has some additional network resources at www.networks.perlprog.com.


Final Exam information and study guide


click here for the programming project on a separate page
The summer schedule is very compressed. A class-by-class schedule appears below. In order to keep us all from getting lost, I'm dividing the material into three "tracks" that we'll alternate between, at will. I'll try not to cover much more than an hour's worth of material from any one track on any one day. Here are the tracks: This looks like the traditional four-layer model (LAN/IP/transit/application), but we're not really abiding by any strict layering. Here is further information about what will be covered in each track:

LAN basics

1.1 basics
1.2 layering
1.3 sockets programming intro
2.1 links basics
2.5 reliable transmission (moved up to accomodate TCP)
3.1 switching and forwarding (moved up to accomodate IP)
2.2 encoding
2.3 framing
2.4 error detection
2.6 Ethernet
3.2 bridged Ethernet
3.3 ATM

IP and routing

4.1 IP basics
4.2 Distance-Vector and Link-State Routing
4.3 Subnets, supernets, BGP, and IPv6; backbone structure; AADS v MAE EAST.

TCP and congestion

5.1 UDP
5.2 TCP
5.3 Remote Procedure Call (blast/chan v Sun) (not done)
6.1 Congestion issues
6.2 Queuing models
6.3 TCP congestion management: Reno and Tahoe
6.4 DECbit, RED, and TCP Vegas
6.5 Reservation-based approaches to congestion (not done)

I hope to cover some material on network security too (but we didn't).


Schedule

May 21, day 1

Chapter 1: resource sharing, requirements, delay, layering, etc

May 23, day 2

Ethernet
IP intro: addressing, routing, fragmentation

May 30, day 3

Ethernet: exponential backoff algorithm
Ethernet bridging
IP basics

June 1, day 4

ARP, 4.1.5; ICMP 4.1.6
Datagram, Virtual Circuit, and Source routing: 3.1
Encoding 2.2

June 4, day 5

Framing 2.3, error detection 2.4 except for CRC algorithm
Introduction of programming assignment. (not quite yet!)

June 6, day 6

sliding windows 2.5
UDP 5.1, TCP 5.2
Subnets 4.3.1

June 11, day 7

TCP 5.2
RPC 5.3
Midterm exam

June 13, day 8

IP routing, 5.3: distance-vector & link-state
TCP/RPC
ATM

June 18, day 9

More IP routing
TCP congestion: Issues, queuing basics

June 20, day 10

Supernets, BGP, global IP backbone structure
TCP congestion: TCP Tahoe

June 25, day 11

TCP congestion: new approaches: DECbit, RED, TCP Vegas
Network security

June 27, day 12

Final exam!


Homework 1:

Due Monday, June 4 (corrected)
Chapter 1: exercises 13, 14, 18,  26ab
Chapter 2: exercises 4, 34, 36
Chapter 3: exercises 4, 14, 16, 28


Midterm Exam Information

The midterm will cover the following sections. Sections in bold are the most important.

1.1 Foundations
1.2 Network architecture (eg layers)
2.5 Sliding windows
2.6 Ethernet (see also my ethernet notes)
3.1 Forwarding
3.2 Bridging (but not the spanning tree algorithm)
4.1 Basic IP
4.2.1 Routing-table basics
4.2.2 Distance Vector/RIP
4.3.1 Subnets
5.1 UDP; port-number abstraction

The homework problems assigned earlier are good to study. The following additional exercises would also be good to study; you shouldn't necessarily complete these, but you should study the text until you're reasonably confident you know how to approach them. Solutions are here.

Chapter 2:
 #30-32    Sliding windows and intermediate routers
 #33     Hint: Ethernet minimum packet size
 #39     Ethernet collision timeline
Chapter 3:
 #1     connections => VCI tables
 #2     datagram forwarding
 #3     datagram forwarding with DEFAULT entry
 #13   Ethernet learning bridges
Chapter 4:
 #1     IP addresses are per host, not per machine
 #2     Fragmentation, header layout issues
 #12   IP distance-vector routing, without link breaks.
 #14   IP forwarding
 #15   IP distance-vector routing, with link breaks.
 #16   IP forwarding again
 #32   Based on a real incident at Loyola. Aaargh!
 #34   subnets (skip the part about giving sample subnet assignments)

Here are two further study problems:

1. The following problem deals with IP routing tables as maintained by routers; machines A, B, C, D, etc. are routers. No host machines are shown. The special machine DEFAULT is also a router, but you need not give its routing table (it represents a default destination). Nets involved are all class C, with addresses 200.0.5, 200.0.6, 200.0.7, .... The following convention is used: machine A always has host portion of its address equal to 1; e.g. 200.0.5.1, 200.0.6.1, etc. Similarly, B has host portion 2, C has 3, D has 4. The special machine DEFAULT has host portion 100.

(a). Give the routing tables for the following connections. You may use symbolic names (A, B, C...) for routers instead of IP addresses. Use default routes whenever possible, but be sure that a packet destined for some net other than 200.0.x gets routed to machine DEFAULT.

  net               net               net                 net
200.0.5____A_____200.0.6_____B______200.0.7_______D____ 200.0.8______DEFAULT
                             |                                                                                                                   200.0.8.100
                        net 200.0.9
                             |
                             C
                             |
                        net 200.0.10

b. Do the same for the following configuration.
                               B
                         /            \
        net 200.0.5             net 200.0.6
     /                                           \
    A                                             D------------200.0.9
     \                                            /                              \
       net 200.0.7                net 200.0.8                        DEFAULT
                        \             /
                               C

c. Suppose two routers, A and B, have tables as below. What will happen to an IP packet sent from A to address 147.126.4.9?

     200.0.5----A----------------------B----200.0.6

A: ___________________              B: ___________________
   200.0.5  |  direct                  200.0.6  |  direct
   default  |   B                      default  |   A

======================================================================
2. In real implementations of ARP, hosts are allowed to extract address mapping info from any broadcast ARP query packet: every machine sending such a packet includes its own IP-to-physical address binding info, and every machine receiving such a broadcast (whether or not intended for that machine) adds the source IP-to-physical address info to its ARP cache. Thus, in the example above, not only would A get B's address info but also every machine on the net would get A's address info.

(a). Explain why this means that if
   1. A broadcasts an ARP query "where is B?"
   2. A sends B a regular IP packet
   3. B wants to send an IP packet in reply to A
then A's physical address will already be in B's ARP cache.

(b). Suppose A broadcasts a request "where is B", but inadvertently lists the physical address of another machine C instead of its own (i.e. the ARP packet has IP src=A, phys src = ethernet address of C).

What will happen? Specifically, will A get a reply? What entries will be made in the ARP caches on A, B, C, and a 4th machine D?

Suppose D uses its newly updated cache to send to A. Will the packet arrive at A? What if C tries to send to A?
 

Solutions are here!


Final Exam information

The final exam will be Wednesday, June 27.

The exam will cover material in the following sections. Some of the midterm study topics appear here, but some do not (and will thus not be on the final).

Chapter 2:	2.5: sliding windows

Chapter 3:	3.1: datagram routing

Chapter 4:	4.1: basic IP
		4.2: routing
		4.3: subnets, supernets, BGP, and the Internet
		     (omit 4.3.6, on IPv6)
                     There will be no questions on the specifics of BGP.

Chapter 5:	5.1: UDP
		5.2: TCP

Chapter 6:	6.1.2: Taxonomy
		6.3: TCP congestion control mechanisms
		    Slow Start
		    Congestion Avoidance phase - linear increase
		    Sawtooth graph (p 467, 471, 474)
		    Fast retransmit
		    Fast recovery
		6.4.1: DECbit
		6.4.2: RED
		6.4.3: General outline of TCP Vegas

WUMP		Protocol issues regarding the BUMP protocol,
		specifically regarding comparisons to TCP,
		and general implementation and design issues.
Here are some relevant exercises from the text. Answers are here.
Chapter 4:
6, 11ab, 27b, 32, 38, 39ab, 40
Chapter 5:
5, 21, 31, 34ab, 37
Chapter 6:
14, 20, 24, 25, 28, 39a

Some Ethernet sources of information.


Some selected links to networking info


The following paper has useful information about TCP/IP security: Security Problems in the TCP/IP Protocol Suite by Steve Bellovin.