Comp 443 Midterm Exam Information

The midterm will cover the following sections (as numbered in the third and fourth edition of the text). Sections in bold are the most important. When a section is different in the 5th edition and the 4th edition, I've listed it as 5e/4e; eg, bridges are in §3.1.4 in the 5th edition and §3.2 in the 4th edition.

1.2  Requirements
1.3  Network architecture (eg layers)
1.5  Performance
2.1  Hardware Building Blocks (Nodes and Links)
2.2  Encoding: Manchester, 4B/5B, etc
2.3  Framing: byte-oriented, bit-oriented, Sonet
2.4  Error Detection
2.5  Sliding windows
2.6   Ethernet (see also my ethernet notes)
3.1  Switching and Forwarding: datagrams & virtual circuits
3.1.4/3.2  Bridges and LAN switching
3.2/4.1  Basic IP, ARP
3.2.4/4.2.1 Routing-table basics
3.3.2/4.2.2  Distance Vector/RIP
3.2.5/4.3.1  Subnets
5.1 UDP
5.2 TCP (exact content to be determined)

The following exercises from the book should give you a fair idea of what to expect on the exam; you shouldn't necessarily complete every detail of these, but you should study the text until you're reasonably confident you know how to approach them. I've given the number as 5th-edition / 4th-edition (these particular exercise numbers are the same for both the 4th edition and the 3rd edition).

The most important exercises are in bold. (This includes Further Study Problems #3.)

Solutions are here.

Chapter 1:
  #20 / #22    Network delivery times 
Chapter 2:
#36 / #36    Sliding windows and intermediate routers
#37 / #37    Sliding windows and intermediate router queues
[dropped] / #39    Ethernet minimum packet size: Why is it important for protocols configured on top of the Ethernet to have a length field in their header indicating how long the message is?
#46 / #47    Ethernet collision timeline: Suppose A, B, and C all make their first carrier sense, ....
Chapter 3:
#1 / #1     connections and VCI tables for virtual-circuit routing: Using the example network given in Figure 3.44/3.30, give the virtual circuit ...
#3 / #3    datagram forwarding: For the network given in Figure 3.45/3.31, give the datagram forwarding table ...
#4 / #4     datagram forwarding with DEFAULT entry: Give forwarding tables for switches S1-S4 in Figure 3.32....
#15 / #15   Ethernet learning bridges: Consider the arrangement of learning bridges shown in Figure 3.35....

Some problem like this last one will be on the exam.
Chapter 4 (or the second half of chapter 3 for the 5th edition):
Ch 3, #33 / Ch 4, #1     IP addresses are per host, not per machine: What aspect of IP addresses makes it necessary ...
Ch 3, #34 / Ch 4, #2     Fragmentation, header layout issues: Why does the Offset field in the IP header measure ....
Ch 3, #47 / Ch 4, #15   IP distance-vector routing, without link breaks: For the network given in Figure 4.50, give global distance-vector tables ....
Ch 3, #53 / Ch 4, #18   IP forwarding, sort of backwards: Suppose we have the forwarding tables shown in Table 3.17/4.12 ....
Ch 3, #54 / Ch 4, #20   IP distance-vector routing, with link breaks: For the network in Figure 4.50, suppose the forwarding tables are all established as in ....
Some problem like this will be on the exam.
Ch 3, #68 / Ch 4, #40   Subnets: An organization has a class C network 200.1.1 and want to form subnet for four departments .... [note that the 4e and 5e problems are not quite the same!]
Chapter 5:
#2 / #2   TFTP-style connection failure (TFTP itself was not covered in class): Consider a simple UDP-based protocol for requesting files ....
#8 / #8  sequence number rollover: The sequence number field in the TCP header is 32 bits long, ...
#14 / #14  Duplicate SYN: If host A receives two SYN packets from the same port from remote host B, ....

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 hostmachines are shown. The special machine DEFAULT is also a router, but youneed 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 portionof its address equal to 1; e.g. 200.0.5.1, 200.0.6.1, etc. Similarly, Bhas host portion 2, C has 3, D has 4. The special machine DEFAULT has hostportion 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 destinedfor 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 addressof 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?

(c). 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?


3. Suppose A and B create a TCP connection with ISNA=2000 and ISNB=5000. A sends three 1000-byte packets, and B ACKs each. Then B sends a 1000-byte packet to A and terminates the connection. List all packets, together with SEQ and ACK fields. The table below does not provide space for all ACKs at the end.

A sends   

A sends B Sends
SYN, ISNA=2000

SYN, ISNB=5000, ACK=_____________
ACK, SEQ=___________, ACK=_____________
Data1, SEQ=___________, ACK=_____________

ACK, SEQ=____________, ACK=____________
Data2, SEQ=___________, ACK=_____________

ACK, SEQ=____________, ACK=____________
Data3, SEQ=___________, ACK=_____________

ACK, SEQ=____________, ACK=____________

DataB, SEQ=___________, ACK=_____________

FIN, SEQ=____________, ACK=____________