Solutions of All Homework Problems, CS/EE 143, Fall 2014 1

Solutions of All Homework Problems, CS/EE 143, Fall 2014
Prof. Steven Low. TAs: Changhong Zhao, Jianchi Chen
Last updated: 11/18/2014
1
Introduction to Internet
1.1
W&P, P1.1
2 Points. How many hosts can one have on the Internet if each one needs a distinct IP address?
[Solution] Since the IP(v4) address is 4-byte, there can potentially be 232 distinct addresses.
1.2
Adapted from W&P, P1.3
8 Points. Imagine that all routers have 17 ports. There are 216 hosts to be connected. Assume you
can organize the hosts and routers any way you like. Your goal is to design the network structure as
well as the assignment of addresses so as to (i) minimize the number of routers required, (ii) minimize
the size of the routing table required in each router.
(a) 4 Points. Describe your network structure and explain why your design gives the minimum number
of routers.
(b) 4 Points. Describe your scheme for assigning addresses and routing. Explain why your design
gives the minimum routing table size in each router.
[Solution] The routers will be arranged in a tree topology, with each of 16 of the ports representing
the next half-byte in the network address. The 17th port would be the link to the parent router. The
root router would have a dead 17th port, and so there would be a routing table of size 16 on the first
router, and 17 on every other router. This would be of the form:
• (prefix, halfbyte, unmatched) routes to the port indexed by halfbyte, where prefix is the total
specified address on the parent router that points to this router on its 17th port;
• default route goes to port 17;
• the root router is just: (halfbyte, unmatched) routes to the port indexed by halfbyte.
The total number of routers we use is 212 + 28 + 24 + 20 = 4369.
This is optimal because:
(a) Consider all the routers and hosts as vertex and links as edge. Then in the result graph, it should
be a tree, otherwise we can further remove edges and/or vertexes to simplify the graph. Assume we
have N routers. For each router, we have 17 ports. For each host, we have 1 port. The total number
of edges should be no less than the total number of vertex minus 1, which is (N + 216 − 1) to provide
1
connectivity. Also we have the number of edges should be no larger than half of the total ports, which
is (17N + 216 )/2. Hence we have (17N + 216 )/2 ≥ (N + 216 − 1), so N ≥ 4368.9.
(b) The routing table at every router except the root has only 17 entries, which is minimum with a
router fanout of 17.
1.3
W&P, P1.4
3 Points. Assume that a host A in Berkeley sends packets with a bit rate of 100Mbps to a host B
in Boston. Assume also that it takes 130ms for the first acknowledgment to come back after A sends
the first packet. Say that A sends one packet of 1Kbyte and then waits for an acknowledgment before
sending the next packet, and so on. What is the long-term average bit rate of the connection? Assume
now that A sends N packets before it waits for the first acknowledgment. Express the long-term average
bit rate of the connection as a function of N. [Note: 1 Mbps = 106 bits per second; 1 ms = 1 millisecond
= 10−3 second.]
[Solution] It takes 1KB/100Mbps = 0.08ms to transmit one packet. When N = 1, the connection
transfers 1 packet per RTT, i.e., 1KB per 130.08ms ∼ 130ms. This represents a throughput of 1KB/0.13s
= 61.5 kbps. (If you use 1KB = 1,024 bits instead of 1,000 bits, then the throughput will be 63 kbps.)
It is OK to ignore the packet transmission time (0.08ms) since it is order of magnitude smaller than
the propagation delay of 130ms.
When N is small enough (see below), the sender sends N packets, and then stops and waits for the first
ACK which arrives after one RTT of 130.08ms ∼ 130ms. Therefore the throughput is N KB/130ms =
61.5N kbps.
1 KB
≤ 130.08 ms, i.e., K = 1, 626. When N ≥ K, the
Let K be the largest integer such that K 100Mbps
sender would have already received the first ACK when it finishes transmitting N packets, and therefore
can immediately transmit the N + 1st packet. In this case, the throughput is 100Mbps.
In summary, the throughput is:
(
61.5N kbps
throughput =
100 Mbps
1.4
if N < 1, 626
if N ≥ 1, 626
= min {61.5N kbps, 100 Mbps}
B&G, 2.9: Horizontal and vertical parity checks
4 Points. A horizontal and vertical parity check of size K by L takes (K − 1) binary sequences each of
length (L − 1) bits and outputs K binary sequences each of length L bits such that if these sequences
are arranged into an K by L matrix, then each row and each column will have an even number of 1’s.
The parity check works as follows. To send (K − 1) data sequences each of length (L − 1) bits, the
sender sends the K by L matrix. The receiver checks the parity of each row and each column. If there
is any row or column that has odd parity, an error is detected.
(a) 2 Points. Give an example of a pattern of six errors that cannot be detected by horizontal and
vertical parity checks.
(b) 2 Points. Find the number of different patterns of four errors that will not be detected by horizontal
and vertical parity checks.
[Solution] (a) Any 6 bit errors in the following entry of the K × L matrix will not be detected: (i1 , j1 ),
(i1 , j2 ), (i2 , j2 ), (i2 , j3 ), (i3 , j3 ), (i3 , j1 ), because every row and every column has zero or 2 bit errors
which maintains valid parity of the matrix.
(b) Any 4 bit errors distributed such that every row and every column has zero or 2 bit errors will not
2
be detected. There are
1
K
L
= KL(K − 1)(L − 1)
2
2
4
such configurations.
1.5
Adapted from B&G, P3.1
2 Points. Customers arrive at a fast food restaurant at a rate of five per minute and wait to receive
their order for an average of 10 minutes. Customers eat in the restaurant with probability 1/2 and
carry out their order without eating with probability 1/2. A meal requires an average of 20 minutes.
What is the average number of customers in the restaurant?
[Solution] For customers who carry out their orders, the average time spent in the restaurant is 10
minutes; for those who eat in, the average time spent is 30 minutes. Therefore, the average time spent
in the restaurant over all customers equals 20 minutes. Applying Littles law, this means the average
number of customers in the restaurant equals 20 × 5 = 100.
1.6
Capacity constrained network design
3 Points. Two nodes A and B need to be connected via a communication link. On average, it is
estimated that 1000 packets will arrive at A destined for B each second, each packet having an average
size of 1 Kbyte. There are two design choices: (i) you build a single link with rate 10Mbps between
A and B, (ii) you build two parallel 5Mbps links, and send a packet arriving at A randomly via either
link. Assume each link is equipped with an infinite sized buffer. Assuming the M/M/1 formula for the
delay on a link, compute the average packet delay in each case. Which design choice is better? Can
you explain why? You may ignore packet propagation times.
[Solution] In case (i), the link service rate equals 10Mbps/8Kb = 1250 pkts/sec. Therefore, the mean
delay equals 1/(1250-1000) = 4 ms.
In case (ii), each link has a service rate of 625 pkts/sec, and sees an arrival rate of 500 pkts/sec. The
mean delay therefore is 1/(625-500) = 8ms.
The first design choice is better since if you double the arrival rate as well as the service rate in an
M/M/1 queue, the average waiting time decreases by a factor of 1/2.
1.7
W&P: P2.6
3 Points. Consider a router in the backbone of the Internet. Assume that the router has 24 ports,
each attached to a 1Gbps link. Say that each link is used at 15% of its capacity by connections that
have an average throughput of 200kbps. How many connections go through the router at any given
time? Say that the connections last an average of 1 minute. How many new connections are set up
that go through the router in any given second, on average?
[Solution] Aggregate average throughput per link is
1Gbps × 15% = 150Mbps.
Hence average number of connections per link is 150Mbps/200kbps = 750, and average number of
connections at the router is 750 × 24 = 18, 000.
Then Littles Law implies the number of new connections set up at the router:
λ = N/T = 18, 000/60 = 300 connections/sec.
3
CS/EE143 Networking WF: 10:30 – 11:55am Fall 2011 Professor Steven Low Aggregate average throughput per link = 1Gbps x 15% = 150Mbps. Hence, average #connections per link = 150Mbps / 200kbps = 750, and average #connections/router = 750 x 24 = 18,000. Little’s Law then implies:  = N / T = 18,000 / 60 = 300 connections/sec. 8. W&P, P2.7 [4 points] 1.8 W&P, We would like to transfer 20 KB (1 Byte=8 bits) file across a network from node A to node F. P2.7
Packets have a length of 1 KB (neglecting header). The path from node A to node F passes through 5 links, and 4 intermediate nodes. Each of the links is a 10 Km optical fiber with a rate 4 Points. We would
like to transfer 20 KB (1 Byte=8 bits) file across a network from node A to node
of 10 Mbps (assume speed of light in optical fiber is 2.0x108m/s). The 4 intermediate nodes are F. Packets have store‐and‐forward a length of 1 KB
(neglecting header). The path from node A to node F passes through
devices, and each intermediate node must perform a 50 s routing table 5 links, and 4 intermediate
nodes. Each of the links is a 10 Km optical fiber with a rate of 10 Mbps
look up after receiving a packet before it can begin sending it on the outgoing link. How long (assume speed ofdoes it take to send the entire file across the network? light in optical fiber is 2.0 × 108 m/s). The 4 intermediate nodes are store-and-forward
devices, and each
intermediate node must perform a 50 µs routing table look up after receiving a packet
before it can begin
sending it on the outgoing link. How long does it take to send the entire file across
[Solution] the network? Timing diagram: [Solution] Look
at the time diagram Figure 1.
A B 1 2 C D T1
T2
T3
T1
1
20 T2
T3
2
1
20
2
Let: link propagation delay = T1 = 10 km / (2x108 m/s) = 0.05 ms packet transmission time = T2 = 1 kB/10Mbps = 0.8 ms Figure 1: Time diagram of packets transferred through 5 links and 4 intermediate nodes.
5 Let:
link propagation delay = T1 = 10 km / (2 × 108 m/s) = 0.05 ms
packet transmission time = T2 = 1kB/10Mbps = 0.8 ms
node processing time = T3 = 0.05 ms.
Assume A starts transmission at time 0, then:
The time at which B receives and finishes processing first packet is TB = T1 + T2 + T3 .
The time at which C receives and finishes processing first packet is TC = TB + T1 + T2 + T3 = 2TB .
The time at which D receives and finishes processing first packet is TD = 3TB .
The time at which F receives the first packet is TF = 4TB + T1 + T2 since F does not need to look up
the routing table.
Therefore, the time at which F receives all 20 packets is
TF + 19T2
=
4(T1 + T2 + T3 ) + T1 + 20T2
=
5T1 + 24T2 + 4T3
=
5 × 0.05 + 24 × 0.8 + 4 × 0.05 = 19.65 ms.
4
1.9
W&P, P2.9
3 Points. Consider the case of GSM cell phones. GSM operates at 270.88 Kbps and uses a spectrum
spanning 200 KHz. What is the theoretical SNR (in dB) that these phones need for operation? In
reality, the phones use a SNR of 10 dB. Use Shannons theorem to calculate the theoretical capacity
of the channel, under this signal-to-noise ratio. How does the utilized capacity compare with the
theoretical capacity?
[Solution]
(a) By Shannon’s formula C = W log2 (1 + SNR), we have
270.88kbps = 200kHz log2 (1 + SNR).
Hence, required SNR is 2
270.88
200
− 1 = 1.557 = 10 log10 (1.557) dB = 1.9 dB.
(b) With SNR = 10 dB, Shannon capacity = 200kHz log2 (1 + 10) = 692 kbps. Therefore, the utilization
is 270.88/692 = 39%.
1.10
IP addresses
2 Points. Consider an IPv4 subnet with private IP address space 166.111.8.0/24. If each IP interface
in the subnet needs a distinct IP address, then how many IP interfaces can there be in the subnet?
[Hint: to obtain the right answer, please look up what is a broadcast address online.]
[Solution] There is a total of 28 = 256 IP addresses in this subnet. One of these IP addresses (the one
whose last 8 digits are all 1) should be reserved for broadcasting, leaving 255 IP addresses for physical
interfaces. Hence, a maximum number of 255 IP interfaces is allowed in the subnet.
1.11
Network operations
6 Points. Assume that host A sends a file of 20 KByte (1 Byte=8 bits) to host F. Host A segments the
file into 22 packets, each of 1 KB (why 22 packets instead of 20?). The path from A to F passes through
5 links and 4 routers. Each link is a 10km optical fiber with 10 Mbps capacity (the speed of light in an
optical fiber is 2.0 × 108 m/s). East router performs a 50µs routing table look up after receiving a whole
packet, before forwarding the packet to an output port. How long does it take for the file to reach F?
(Assume that a router can look up the routing table for multiple packets simultaneously.)
[Solution] The 20KByte file is segmented into 22 packets of 1KB instead of 20, since each packet has
header (so that the data in a packet is less than 1KB) and redundant packets may be introduced for
forward error correction.
Let B, C, D, E denote the four intermediate routers on the path from A to F, and let tp , ts , tl denote
the propagation time of a link, transmission time of a packet, and table lookup time respectively. The
timeline of the overall data transmission is shown in Figure 19. It is clear from the figure that the
overall transmission time is
T = 4(tp + ts + tl ) + tp + 22ts
= 5tp + 26ts + 4tl
10km
1KB
+ 26 ×
+ 4 × 50µs
= 5×
8
2 × 10 m/s
10Mbps
= 5 × 0.05ms + 26 × 0.8ms + 4 × 0.05ms
= 21.25ms.
5
A
B
C
1 tp
2 ts
tl
1 2 D
E
F
tp
ts
tl
1 tp
2 ts
tl
1 2 tp
ts
tl
1 tp
2 ts
ts
Figure 2: Timeline of the data transfer from A to F. Here B, C, D, E represent the four routers on the
path from A to F, and tp , ts , tl represent the propagation time of a link, transmission time of a packet,
and table lookup time, respectively.
6
2
Ethernet
2.1
W&P, P3.2
3 Points. Consider the Slotted ALOHA MAC protocol. There are N nodes sharing a medium, and
time is divided into slots. Each packet takes up a single slot. If a node has a packet to send, it
attempts transmission with a certain probability. The transmission succeeds if no other node attempts
transmission in that slot.
Now, suppose that we want to give differentiated services to these nodes, i.e., we want different nodes
to get a different share of the medium. The scheme we choose works as follows: If node i has a packet
to send, it will try to send the packet with probability pi . Assume that every node has a packet to
send all times. In such a situation, will the nodes indeed get a share of the medium in the ratio of their
probability of access?
[Solution] Consider a given slot. Since every node has a packet to send and transmits with probability
pi , the probability of success for any node i is
Y
pi
β
pi (1 − pj ) =
1 − pi
j6=i
where β :=
QN
j=1 (1
− pj ) is independent of any user j.
Therefore, the share of the media any user i gets is proportional to
2.2
pi
1−pi ,
not to pi .
W&P, P3.4
4 Points. Consider a commercial 10 Mbps Ethernet configuration with one hub (i.e., all end stations
are in a single collision domain).
(a) 2 Point. Find the Ethernet efficiency for transporting 512 byte packets (including Ethernet overhead) assuming that the propagation delay between the communicating end stations is always 25.6 µs,
and that there are many pairs of end stations trying to communicate.
(b) 2 Points. Recall that the maximum efficiency of Slotted Aloha is 1/e. Find the threshold for the
frame size (including Ethernet overhead) such that Ethernet is more efficient than Slotted Aloha if the
fixed frame size is larger than this threshold. Explain why Ethernet becomes less efficient as the frame
size becomes smaller.
[Solution]
(a) Following the derivation of efficiency of the text, we have
η=
1
1 + 3.4A
A :=
PROP
.
TRANS
where
Now
TRANS = packet transmission time =
Therefore A =
25.6 µs
409.6 µs
512 × 8 bits
= 409.6 µs.
10 Mbps
= 0.0625, and hence efficiency
η=
1
= 82%.
1 + 3.4 × 0.0625
7
(b) Let the Ethernet frame size be s bits, then
TRANS =
and
A=
PROP
10PROP
=
.
TRANS
s
η=
1
1 + 3.4 ×
We want s such that
which implies
s≥
s bits
s
=
µs
10 Mbps
10
10PROP
s
≥
1
e
34 PROP
34 × 25.6
=
= 506.6 bits.
e−1
2.718 − 1
A smaller frame size implies a larger A, which implies a smaller efficiency. Note that on average, an
interval of length 2(e − 1)PROP gets wasted between successful transmissions. A smaller frame size
implies therefore that the fraction of time spent transmitting data successfully is smaller.
2.3
W&P, P3.5
4 Point. Ethernet standards require a minimum frame size of 512 bits in order to ensure that a node
can detect any possible collision while it is still transmitting. This corresponds to the number of bits
that can be transmitted at 10 Mbps in one roundtrip time. It only takes one propagation delay, however,
for the first bit of an Ethernet frame to traverse the entire length of the network, and during this time,
256 bits are transmitted. Why, then, is it necessary that the minimum frame size be 512 bits instead
of 256?
[Solution] A station detects collision by listening and comparing what it hears on the wire with what
it transmits. Therefore, if it transmits for a round-trip time, it can compare the signal it detects on
the wire with what it just transmitted onto the wire, and a collision is detected if they are different. If
it transmits only for 12 RTT, it would have stopped transmitting before the signal from the other end
reaches it, and hence miss the detection. This is illustrated in Figure 3.
2.4
Switch vs Hub, W&P, P3.7
6 Points. In the network shown in Figure 4, all of the devices want to transmit at an average rate
of R Mbps, with equal amounts of traffic going to every other node. Assume that all of the links are
half-duplex and operate at 100Mbps and that the medium access control protocol is perfectly efficient.
Thus, each link can only be used in one direction at a time, at 100Mbps. There is no delay to switch
from one direction to the other.
(a) 3 Points. What is the maximum value of R?
(b) 3 Points. The hub is now replaced with another switch. What is the maximum value of R now?
[Solution] Denote the flows on links as in Figure 5.
(a) There are two potential bottlenecks: the switch-hub link or the hub.
Switch-hub link bottleneck:
Each node generates 7 flows, each of rate R/7, to each of the other nodes. Therefore the rate crossing
the link from switch to link is
R
16
X=
×4×4=
R.
7
7
8
CS/EE143 Networking WF: 10:30 – 11:55am Fall 2011 Professor Steven Low CS/EE143 Networking WF: 10:30 – 11:55am Fall 2011 Professor Steven Low from the root; the rest are all blocked ports), no LAN segment will use Bridge 8 to send or receive Ethernet frames. Therefore, removing Bridge 8 has no effect on the spanning tree, except that it has one fewer leaf node now. 5. W&P, P3.7 [4 points.] In the network shown below, all of the devices want to transmit at an average rate of R Mbps, with equal amounts of traffic going to every other node. Assume that all of the links are half‐
4. duplex and operate at 100 Mbps and that the media access control protocol is perfectly W&P, P3.6 [4 points] efficient. Thus, each link can only be used in one direction at a time, at 100 Mbps. There is no Consider the corporate Ethernet shown in the figure below. Each switch is labeled with its ID. Diagram
demonstrating why the minimum frame should be transmitted for RTT in
delay to switch from one direction to the other. Figure 3:
successfully detect collision.
order to
(a) What is the maximum value of R? [2 points] (a) Determine which links get deactivated after the Spanning Tree Algorithm runs, and indicate (b) The hub is now replaced with another switch. What is the maximum value of R now? [2 them on the diagram by putting a small X through the deactivated links. [3 points] points] Figure 4: An(b) A disgruntled employee wishes to disrupt the network, so she plans on unplugging central ethernet. Each circle represents a host, that wants to send an aggregate of R Mbps traffic,
[Solution] evenly to other
hosts.
Bridge 8. How does this affect the spanning tree and the paths that Ethernet frames follow? [1 point] [Solution] 10 12 Figure 5: Flows in the hub-switch ethernet.
9
The rate crossing the link from hub to switch is
Y = 4R
since the hub repeats all input flows on all links except from they come from. Then we have
X + Y ≤ 100 Mbps =⇒ R ≤ 15.9 Mbps.
Hub bottleneck:
Take any link, say, from hub to node A. The total rate of traffic on this link is the sum of all input
traffic to the link except its own:
SA = 3R + X = (3 +
16
37
)R =
R.
7
7
This traffic shares the link with the traffic from A to hub, which has the rate R. Therefore,
37
+ 1)R ≤ 100 Mbps =⇒ R ≤ 15.9 Mbps.
7
Hence, both bottlenecks impose the same upper bound for R.
SA + R ≤ 100 Mbps =⇒ (
(b) When the hub is replace with a switch, then X = Y and the switch-switch link is the only bottleneck.
2X =
2.5
32
R ≤ 100 Mbps =⇒ R ≤ 21.875 Mbps.
7
Spanning Tree Protocol, W&P, P3.6
6 Points. Consider the network topology shown in Figure 6, where 1, 2, . . . , 8 denote 8 switches
interconnecting 9 Ethernets.
Figure 6: Each circle represents a switch, interconnecting 9 Ethernets.
(a) 3 Points. Determine which links get deactivated after the Spanning Tree protocol runs, and indicate
them on the diagram by putting a small X through the deactivated links.
(b) 3 Points. A disgruntled employee wishes to disrupt the network, so she plans on unplugging central
bridge switch 8. How does this affect the spanning tree and the paths that Ethernet packets follow?
[Solution]
(a) The STP operates as follows:
10
CS/EE143 Networking WF: 10:30 – 11:55am Fall 2011 Professor Steven Low (a) The STP operates as follows: 1. The bridge with the smallest ID will be the root (Bridge 1) 1. The2.bridge
with the smallest ID will be the root (Bridge 1).
Each bridge finds a shortest path to the root, where link cost is simply hop count (# bridges en route to root). The port on a bridge through which it roots is called a root 2. Each bridge finds a shortest path to the root, where link cost is simply hop count (# bridges en
port (RP). route to root). The port on a bridge through which it roots is called a root port (RP).
3. A tie is broken by choosing the port / path where the next hop (bridge) has a smallest 3. A tie isID. broken by choosing the port / path where the next hop (bridge) has a smallest ID.
4. Each LAN segment will choose a bridge towards the root; the port on the bridge that’s 4. Each LAN
segment will choose a bridge towards the root; the port on the bridge thats chosen by
chosen by the LAN segment is called a designated port (DP). the 5.
LAN
segment is called a designated port (DP).
A tie is broken by the LAN choosing a bridge with the smallest ID. 5. A tie is broken by the LAN choosing a bridge with the smallest ID.
For the following figure, In Figure 7:
BP: blocked port BP: blocked port
DP: designated port (incoming chosen by LAN) DP: designated
port (incoming chosen by LAN)
RP: rootRP: root port (outgoing chosen by bridge) port (outgoing chosen by bridge).
Note that LAN chooses Bridge 2 over 8 become of smaller bridge ID. (b) Since Bridge 8 has no DP (it only has 1 RP which will be used by Bridge 8 to send / receive Figure 7: Spanning Tree Protocol.
11 Note that LAN chooses Bridge 2 over 8 because of smaller bridge ID.
(b) Since Bridge 8 has no DP (it only has 1 RP which will be used by Bridge 8 to send / receive from
the root; the rest are all blocked ports), no LAN segment will use Bridge 8 to send or receive Ethernet
frames. Therefore, removing Bridge 8 has no effect on the spanning tree, except that it has one fewer
leaf node now.
11
2.6
Aloha
(a) (Equal Share). Assume that n hosts share a medium using the slotted ALOHA protocol: at
every time slot, each host attempts to send a packet with probability p. A host succeeds to send a
packet at a given time slot if and only if it is the only host that sends a packet at that time slot.
1. 2 Points. What is the probability that a host sends a packet successfully at a give time slot?
2. 2 Points. What is the probability P{a packet sent} that a packet be sent at a given time slot?
3. 4 Points. What choice of p maximizes the probability P{a packet sent}? How does this maximum
probability behave as n → ∞?
(b) (Unequal Share). Assume that n hosts share a medium using the slotted ALOHA protocol, but
at every time slot, each host attempts to send a packet with a different probability. More specifically,
let N := {1, . . . , n} denote the collection of hosts and assume that host i attempts to send a packet
with probability pi ∈ (0, 1) at every time slot for i = 1, . . . , n.
1. 2 Points. What is the probability Pi := P{i sends a packet successfully} that host i ∈ N sends
a packet successfully at a given time slot?
2. 2 Points. What is the ratio P1 : P2 : P3 : · · · : Pn ? This ratio characterizes the share of medium
among the hosts. Is the share of medium proportional to the probabilities pi that hosts attempt
to send packets, i.e., is the ratio P1 : P2 : P3 : · · · : Pn equal to p1 : p2 : p3 : · · · : pn ?
Pn
Pn
3. (*) 5 Points. Assume i=1 pi = 1 and let P := i=1 Pi denote the probability that a packet gets
successfully transmitted at a given time slot. Prove that (p1 , p2 , p3 , . . . , pn ) = (1/n, 1/n, . . . , 1/n)
minimizes P , i.e., (1/n, 1/n, . . . , 1/n) is the solution to
min
n
X
i=1
pi
Y
(1 − pj )
j6=i
s.t. 0 ≤ pi ≤ 1,
n
X
pi = 1.
i = 1, . . . , n;
i=1
It means that equal share of the medium minimizes the throughput.
[Solution]
(a) Answers given in the lecture/textbook.
(b) 1–2 same answer as Problem 2.1 in this set;
3. Consider the nontrivial case where n ≥ 3. Let P (p) :=
p = (p1 , . . . , pn ) 6= ( n1 , . . . , n1 ) which satisfies
n
X
pi = 1
Pn
i=1
pi
Q
j6=i (1
− pj ). Consider any
and
i=1
0 ≤ pi ≤ 1,
∀i
Let M := maxi=1,...,n pi , and m := mini=1,...,n pi . Hence we have M > n1 > m. Without loss of
M +m
generality, let p1 = M and p2 = m, then p = (M, m, . . . , pn ). Let p0 = ( M +m
2 ,
2 , . . . , pn ). It is
12
sufficient to show P (p) > P (p0 ). We have


n
n


Y
X
Y
P (p) − P (p0 ) =
[M (1 − m) + (1 − M )m]
(1 − pj ) + (1 − m)(1 − M )
pi
(1 − pj )


j=3
i=3
j6=1,2,i


n
n


Y
M +m Y
M +m 2X
M +m
− 2×
(1 −
)
)
pi
(1 − pj ) + (1 −
(1 − pj )


2
2
2
i=3
j=3
j6=1,2,i


n
n
Y
X
Y
(M + m)2
− M m 2
=
(1 − pj ) −
pi
(1 − pj )
4
j=3
i=3
j6=1,2,i


n
n
n
X
Y
X
Y
(M + m)2
− M m 2
pi
(1 − pj ) −
>
pi
(1 − pj )
(1)
4
i=3
j=3
i=3
j6=1,2,i


n
n
X
Y
X
Y
(M + m)2
− M m 2
pi (1 − pi )
(1 − pj ) −
pi
(1 − pj )
=
4
i=3
i=3
j6=1,2,i
j6=1,2,i


n
X
Y
(M + m)2
=
(1 − pj )
− M m  (1 − 2pi )pi
4
i=3
j6=1,2,i
≥ 0
(2)
Pn
where the inequality in (1) is because (M + m)2 − 4M m > 0 for M 6= m and i=3 pi < 1, and the
inequality in (2) is because pi ≤ 21 since otherwise pi > M , which leads to a contradiction.
13
3
3.1
Routing
Longest prefix matching (exercise)
1 Point. Consider the following routing table.
IP
166.111.8.0/24
166.111.0.0/16
output port
1
2
Which outport should a packet be forwarded to, if its destination IP address is 166.111.8.28?
[Solution] The IP address 166.111.8.28 matches the first 24 bits of the first entry, and only 16 bits for
the second entry. Hence, the packet should be forwarded to port 1 according to longest prefix matching.
3.2
Static routing, W&P, P5.1
Consider the network topology depicted in Figure 8. Each link is marked with its weight/cost.
Figure 8: Network topology with link weights.
(a) 3 points. Run Dijkstras algorithm on the above network to determine the routing table for node
3.
(b) 3 points. Repeat (a) using Bellman-Ford algorithm.
[Solution]
(a) The steps of Dijkatra’s algorithm are:
steps
0
1
2
3
4
5
6
F
3
3,2
3,2,1
3,2,1,7
3,2,1,7,5
3,2,1,7,5,4
3,2,1,7,5,4,6
D1, pred
inf, –
3, 2
D2, pred
1, 3
D4, pred
8, 3
8, 3
8, 3
8, 3
8, 3
D5, pred
inf, –
inf, –
7, 1
7, 1
D6, pred
inf, –
inf, –
inf, –
10, 7
9, 5
9,5
D7, pred
inf, –
inf, –
6, 1
where F is the set of points for which the shortest distance and path to node 3 have been determined, Di
14
denotes the current-step shortest distance from node i to node 3, and “pred” stands for the predecessor
of node i on its shortest path to node 3. D3 = 0 at initialization.
Hence the routing table for node 3 is:
destination
1
2
4
5
6
7
next node
2
2
4
2
2
2
(b) The steps of Bellman-Ford algorithm are:
steps
0
1
2
3
4
D1, pred
inf, –
3, 2
3, 2
3, 2
3, 2
D2, pred
1, 3
1, 3
1, 3
1, 3
1, 3
D4, pred
8, 3
8, 3
8, 3
8, 3
8, 3
D5, pred
inf, –
9, 4
7, 1
7, 1
7, 1
D6, pred
inf, –
inf, –
11, 5
9, 5
9, 5
D7, pred
inf, –
inf, –
6, 1
6, 1
6, 1
where D3 = 0 at initialization. The resulting routing table of node 3 is the same as (a).
3.3
Dynamic routing
Consider 5 stations connected in a bi-directional ring, as shown in Figure 9. Suppose station 0 is
Figure 9: A bi-directional ring topology.
the only sender, and it sends packets to all other stations 1, 2, 3, 4 at rates 4, 3, 2, 1 packets/sec,
respectively. Note that these are end-to-end traffic rates between source 0 and all destinations, not
the link flow rates which depend on the routing. These end-to-end source-to-destination rates and the
routing decision jointly induce a traffic pattern on the network and hence flow rates on the links.
(a) 3 points. Table 1 shows the routing tables at each station. For each station, the first column is D
(destination) and the second column is NN (next node). Indicate in a diagram the routes from station
0 to stations 1, 2, 3, 4 as implemented by the routing table.
15
These end‐to‐end source‐to‐destination rates and the routing decision jointly induce a traffic pattern on the network and hence flow rates on the links. (a) The routing tables at each station is as shown below (for each station, the first column is D (destination) and the second column is NN (next node)). Table 1: Routing tables of stations
Station 0 Station 1 Station 2 Station
0 Station
1 Station
2 StationStation 3 3 Station Station 4 4
D NN D NN D NN D NN D NN D1 1 NN
D0 2 NN
D 0 3 NN
D 0 4 NN
D NN
0 0 2 1 2 2 1 3 1 4 1 1
0 2
0 3
0 4
0 1 0 0
3 1 3 2 3 3 2 4 2 0 2 1
24 2 2
1 4 3 3
1 4 4 4
1 3 0 0
4 1 Indicate in 3a diagram the 1
3 routes 2 from 3 station 3 0 to 2stations 4 1, 2, 2 3, 4 0 as implemented by the routing table. 4 1
4 2
4 3
4 4
3 0
(b) Suppose the flow rate on a link is used as the cost of that link (10 of them). Use the Dijkstra algorithm to compute the shortest paths from station 0 to all other stations. (b) 3 points. Suppose
the flow rate on a link is used as the cost of that link (there are 10 links in total).
Use the Dijkstra algorithm to compute the (new) shortest paths from station 0 to all other stations.
(c) Compute the new flow rates and then the shortest paths from station 0 to all other stations, (c) 3 points. using the Bellman‐Ford algorithm. Will the routing ever converge? Compute the new flow rates and then the shortest paths from station 0 to all other
stations, using the Bellman-Ford algorithm. If this procedure is repeated, will the routing ever converge?
[Solution] (a) The shortest-path
from station
0 is such that
all traffic
clockwise,
asclockwise, shown inas Fig.
(a) The tree
shortest‐path tree implemented by that
the routing table goes
is: all traffic goes shown: 10.
0 4 1 3 2 [Solution]
18 Figure 10: [Solution] Shortest-path tree in P3.3 (a).
(b) The costs (flow rates) on the links induced by the routing table are as shown in Fig. 11. Note that
all links in the counter-clockwise direction have zero costs. The steps of Dijkstra’s algorithm are shown
in the table below:
steps
0
1
2
3
4
F
0
0,4
0,4,3
0,4,3,2
0,4,3,2,1
D1, pred
10, 0
10, 0
10, 0
0, 2
D2, pred
inf, –
inf, –
0, 3
D3, pred
inf, –
0, 4
D4, pred
0, 0
Therefore, all traffic is routed in the counter-clockwise direction in the shortest-path tree, exactly
opposite to the routing used in (a), as shown in Fig. 12.
(c) The costs (flow rates) on the links induced by the routing in (b) are as shown in Fig. 13. Note that
all links in the clockwise direction have zero costs. The steps of Bellman-Ford algorithm are:
16
that all links in the counter‐clockwise direction have zero costs. 0 0 10 CS/EE143 Networking Fall 2011 0 WF: 10:30 – 11:55am Professor Steven Low 0 4 1 0 0 6 1 0 CS/EE143 Networking Fall 2011 3 2 0 WF: 10:30 – 11:55am Professor Steven Low 3 Dijkstra computation: 4 1 Figure 11: [Solution] Network topology with link costs (flow rates) in P3.3 (b).
t F D1, pred D2, pred D3, pred D4, pred
0 0 10, 0 Inf, ‐
Inf, ‐
0, 0
0 1 0, 4 10, 0 Inf, ‐
0, 3 2 4
2 0, 4, 3 0, 3
4 10, 0 1 3 0, 4, 3, 2 0, 2 4 0, 4, 3, 2, 1 (c) The costs (flow rates) on the links induced by the routing table are as shown below. Note that all links in the clockwise direction now have zero cost. 3 2 Therefore, all traffic is routed in the counter‐clockwise direction in the shortest‐path tree, exactly opposite to the routing used in the previous period, as shown: Figure 12: [Solution] New shortest path tree calculated in P3.3 (b).
(c) The costs (flow rates) on the links induced by the routing table are as shown below. Note 19 0 0 that all links in the clockwise direction now have zero cost. 0 0 10 4 1 9 4 0 0 7 0 0 0 3 2 10 0 0 4 1 Bellman‐Ford computation: Figure 13: [Solution] Network
link
9 topology
4 costs (flow rates) in P3.3 (c).
t D1, pred D2, pred D3, predwithD4, pred
0 0 7 0 0, 0 Inf, ‐ ‐
10, 0
steps D1,
pred Inf, D2, pred
D3, pred D4, pred
3 2 0
0, 0
inf, –
inf, –
10, 0
1
0, 0
0, 0 1
19, 4
10, 0
2
0, 0
0, 1
0, 2
10, 0
Bellman‐Ford computation: 3
0, 0
0, 1
0, 3
20 0, 2
4
0, 0
0, 1
0, 2
0, 3
t D1, pred D2, pred D3, pred D4, pred
0 0, 0 Inf, ‐ Inf, ‐ 17 10, 0
Therefore, all traffic is routed in the clockwise direction in the shortest-path tree, exactly the same as
the routing used in (a), as shown in Fig. 10. Indeed, the routing updates will continue to oscillate
across routing update periods, between the results of (a) and (b), and will never converge.
3.4
Dynamic routing (exercise)
Consider the case where H1 sends 2Mbps traffic to H2 via one of two links as in Figure 14, either
through R1 or through R2. Consider the dynamic routing case where the routing table is updated
every 3 minutes. When the routing table is updated, the link weight at a link is computed by the
following equation:
weight =
1Mbps + average throughput over the past 3 minutes
.
capacity
Assume that at t = 0, the routing table is updated, and at t = 1ms, H1 starts sending traffic to H2.
2Mbps
R1 2Mbps
H1 H2 4Mbps
R2 4Mbps
Figure 14: A sends packets of 1KB to B via a 1Mbps link with 20KB buffer.
Give the traffic throughput through Routers R1 and R2 at t = 1, 4, 7, . . . minutes.
[Solution] At t = 0, the traffic is 0 on both paths (H1→R1→H2 and H1→R2→H2). Therefore the link
weights are
t=0
R1
R2
H1
1/2
1/4
H2
1/2
1/4
After running the shortest algorithm, H1 decides to choose the path via R2, during 0∼3 minutes.
At t = 3, the traffic is 0 on the path via R1 and 2Mbps on the path via R2. Therefore the link weights
are
t=3
R1
R2
H1
1/2
3/4
H2
1/2
3/4
After running the shortest algorithm, H1 decides to choose the path via R1, during 3∼6 minutes.
At t = 6, the traffic is 2Mbps on the path via R1 and 0 on the path via R2. Therefore the link weights
are
t=6
R1
R2
H1
3/2
1/4
18
H2
3/2
1/4
After running the shortest algorithm, H1 decides to choose the path via R2, during 6∼9 minutes.
Then at t = 9, the situation is the same as t = 3, and routing starts oscillating every 6 minutes. As a
result, the traffic throughput is shown below.
t
R1
R2
3.5
1
0
2Mbps
4
2Mbps
0
7
0
2Mbps
10
2Mbps
0
13
0
2Mbps
···
···
···
Routing on a continuum of nodes (exercise)
Consider the network given in Figure 15. Each point represents a router, connected to its neighbors
Figure 15: Network topology for problem 3.5.
via links of capacity 1. The links form the ring. Lable the routers by x ∈ [0, 1), and give router 0 two
labels: 0 and 1. Assume that all traffic have the same destination: router 0. Let r(x) denote the source
rate at x for x ∈ [0, 1), and assume r(x) = 2x.
(a) (Static Routing). Consider the following static routing strategy: pick a y ∈ (0, 1), let every router
x ∈ (0, y) forwards packets clockwise, and every router x ∈ (y, 1) forwards packets counter-clockwise.
• What is the traffic throughput f − (x, y) at link x for x ∈ (0, y), and what is the traffic throughput
f + (x, y) at link x for x ∈ (y, 1)?
• Use the expression of the queueing delay for the M/M/1 queue. What is the queueing delay
+
d−
s (x, y) at link x for x ∈ (0, y), and what is the queueing delay ds (x, y) at link x for x ∈ (y, 1)?
−
−
Let ds (y) := supx∈(0,y) ds (x, y) denote the maximum queueing delay over links x ∈ (0, y), i.e.,
+
over the links that forward packets clockwise. And let d+
s (y) := supx∈(y,1) ds (x, y) denote the
maximum queueing delay over links x ∈ (y, 1), i.e., over the links that forward packets counter−
clockwise. What is d+
s (y) and ds (y)?
• Assume that the propagation delay d−
i (x) from x to 0 (clockwise) is x, and that the propagation
delay d+
i (x) from x to 1 (counter-clockwise) is 1 − x. Each router x has two paths, clockwise or
counter-clockwise, to forward packets to the destination—router 0(1). Label the clockwise path
by superscript - and the counter-clockwise path by superscript +, and define costs
D+ (x, y)
+
:= d+
s (y) + di (x),
D− (x, y)
−
:= d−
s (y) + di (x)
19
for the two paths. For what values of x is D+ (x, y) equal to D− (x, y)?
• Let x(y) denote the x where D+ (x, y) = D− (x, y). Use matlab (or other tools) to draw x(y) as y
increases from 0 to 1, when does the line intersect z(y) = y?
• Let y ∗ denote the y ∈ (0, 1) where x(y) intersects z(y). Show that
0<x<y
⇒
D− (x, y) < D+ (x, y),
y<x<1
⇒
D− (x, y) > D+ (x, y)
when y = y ∗ . That is, when x < y ∗ , the left path has smaller cost, and the right path has bigger
cost. This is considered “stationary.” Give an interpretation of why this is called “stationary”.
(b) (Dynamic Routing). Let’s extend (a) to the dynamic routing case where routing y is updated
over time. Let y k denote the routing strategy at time k = 0, 1, 2 . . . and assume y k+1 = x(y k ) for
k = 0, 1, 2, . . . For what initial values of y0 does the sequence {yk }y≥0 converge?
[Solution]
(a)
•
Z
−
y
f (x, y) =
f + (x, y =
Z xx
r(s)ds = y 2 − x2 ,
x ∈ (0, y)
r(s)ds = x2 − y 2 ,
x ∈ (y, 1)
y
.
•
d−
s (x, y) =
1
Hence we have
=
1
,
1 − y 2 + x2
1
1
=
,
d+
s (x, y) =
1 − f + (x, y)
1 − x2 + y 2
1−
f − (x, y)
x ∈ (0, y)
x ∈ (y, 1)
1
1 − y2
1
+
d+
s (y) = ds (1, y) = 2
y
−
d−
s (y) = ds (0, y) =
.
• Let
D− (x, y) =
1
1
+ x = 2 + 1 − x = D+ (x, y)
1 − y2
y
, and hence we have
x(y) =
.
1
1
1
(1 + 2 −
)
2
y
1 − y2
• See Fig. 16. The unique solution of x(y) = y on [0, 1] is y ∗ = 0.6756.
• When 0 < x < y ∗ we have
D− (x, y ∗ ) < D− (y ∗ , y ∗ ) = D− (x(y ∗ ), y ∗ ) = D+ (x(y ∗ ), y ∗ ) = D+ (y ∗ , y ∗ ) < D+ (x, y ∗ )
We can show D− (x, y ∗ ) > D+ (x, y ∗ ) when y ∗ < x < 1, in a similar way. When y = y ∗ , the
routing protocol happens to guarantee that all the nodes select the shorter path, and there is no
motivation for them to deviate to any other routing.
(b) Let y := sup{y ∈ [0, 1]|x(y) = 1} and y := inf{y ∈ [0, 1]|x(y) = 0}. From Fig. 16 we see that
|x0 (y)| > 1 for y ∈ [y, y], which implies that y k+1 = x(y k ) will not converge, unless y 0 = y ∗ .
20
1
0.9
0.8
X: 0.68
Y: 0.68
0.7
x
0.6
0.5
0.4
0.3
0.2
0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
y
Figure 16: [Solution] x(y) as a function of y.
3.6
Forward error correction code
The forward error correction code discussed in the lecture (and textbook) can be represented in the
matrix form as in Figure 17, i.e., C = P A, where C is a k ×m matrix that represents m encoded packets
C1 C2 C3
k
P1 P2 P3
Cm
=
Pn
A
Figure 17: Matrix representation of forward error correction.
each of k bits (the m columns of C), P is a k × n matrix that represents n original packets each of k
bits (the n column of P ), and A is an n × m 0-1 matrix that represents the coding Aij ∈ {0, 1}. For
example, the jth column of C is:
n
X
Cj =
Pi Aij
i=1
for j = 1, . . . , m.

1 1
0 1
Let A = 
0 0
1 0
Here the summation is elementwise XOR.

0 1 0 1
0 0 1 1

1 1 0 1
1 1 0 1
(a) 3 points. If packets C1 = [1 0 0 1]T , C2 = [0 0 1 1]T , C5 = [0 0 1 0]T , C6 = [1 1 1 1]T are received,
find the original packets P1 , P2 , P3 , P4 .
(b) 3 points. If another set of packets C1 = [1 0 0 1]T , C3 = [0 0 1 0]T , C4 = [1 0 1 0]T , C6 = [0 1 1 0]T
are received, find the original packets P1 , P2 , P3 , P4 .
[Solution]
21
(a) The corresponding matrices

1
0

0
1
are
0
0
1
1
0
0
1
0

1
1
 = C 0 = P A0 = P
1
1

1
0

0
1
1
1
0
0
0
1
0
0

1
1

1
1
where P is the 4 × 4 matrix whose j-th column is the original packet Pj . It amounts to inverting
A0 to obtain P , and can be done as follows. Note that P2 = C30 = [0 0 1 0]T , then C20 = P1 + P2
and hence P1 = C20 + P2 = [0 0 1 1]T + [0 0 1 0]T = [0 0 0 1]T . Similarly, C10 = P1 + P4 and
hence P4 = C10 + P1 = C10 + C20 + P2 = [1 0 0 1]T + [0 0 1 1]T + [0 0 1 0]T = [1 0 0 0]T . Finally,
C40 = P1 + P2 + P3 + P4 and hence P3 = C40 + P1 + P2 + P4 = [0 1 0 0]T . Hence


0 0 0 1
0 0 1 0

P =
0 1 0 0 .
1 0 0 0
(b) Similarly, the corresponding matrices are


1 0 1 0
0 0 0 1
00
00


0 1 1 1 = C = P A = P
1 0 0 0

1
0

0
1
0
0
1
1
1
0
1
1

1
1

1
1
Note that C100 = P1 + P4 and C300 = P1 + P3 + P4 , and hence P3 = C100 + C30 = [0 0 1 1]T . Then from
C200 = P3 + P4 we have P4 = C200 + P3 = [0 0 0 1]T . Then P1 = C100 + P4 = [1 0 0 0]T and, since
C400 = P1 + P2 + P3 + P4 , we have P2 = C400 + P1 + P3 + P4 = [1 1 0 0]T . Hence


1 1 0 0
0 1 0 0

P =
0 0 1 0 .
0 0 1 1
3.7
Network coding, W&P, P5.4
Consider a wireless network with nodes X and Y exchanging packets via an access point Z. For simplicity,
we assume that there are no link-layer acknowledgments. Suppose that X sends packets to Y at rate
2R packets/sec and Y sends packets to X at rate R packets/sec; all the packets are of the maximum
size allowed. The access point uses network coding. That is, whenever it can, it sends the “exclusive
or” of a packet from X and a packet from Y instead of sending the two packets separately.
(a) 2 points. What is the total rate of packet transmissions by the three nodes without network
coding?
(b) 2 points. What is the total rate of packet transmissions by the three nodes with network coding?
[Solution]
(a) Without network coding:
• X transmits at rate 2R to Z.
• Y transmits at rate R to Z.
22
• Z transmits at rate 3R to X, Y
Hence, total rate required = 6R.
(b) With network coding, in every 1 second, on average there is 0.5 second when Z broadcasts R packets
x+y to both X and Y. In the other 0.5 second, Z relays R packets from X to Y. Hence, total rate required
= 2R + R + (R+ R)/(0.5+0.5) = 5R.
23
4
4.1
Internetworking
W&P, P6.1
(a) 2 points. How many IP addresses need to be leased from an ISP to support a DHCP server (with
L ports) that uses NAT to service N clients, if every client uses at most P ports?
(b) 2 points. If M unique clients request an IP address every day from the above mentioned DHCP
server, what is the maximum lease time allowable to prevent new clients from being denied access
assuming that requests are uniformly spaced throughout the day, and that the addressing scheme used
supports a max of N clients?
[Solution]
(a) Consider the worst case that all the P ports of all the N clients are connected, i.e., there are
N P connections. To use NAT, the DHCP server must maintain an address translation table in which
every entry takes the form IPa , TCPb ↔ IPb , TCPm , where IPa is the IP address actually assigned
by ISP, TCPb is an port at the NAT server, IPb is the (virtual) IP of a client that is known only
by the NAT server, and TCPm is the actual port used by the client for a connection. Hence the
maximum number of entries in this table is restricted by the number L of ports of the NAT server
multiplied by the number S of assigned IPs, and must not be smaller than the number of connections,
i.e., SL ≥ #entries in the table ≥ N P , which implies S ≥ NLP . Therefore there should at least be
d NLP e IP addressed assigned by the ISP.
24
(b) Suppose all the IP addresses are available at the beginning of the day (time 0). Every M
hours
24N
there is a request of IP address from a new client, and therefore at time M hours a maximum number
of N clients are supported and there is no more IP address available. In that case the first client must
release the IP address it has been occupying to satisfy any new request. Hence the maximum lease time
is 24N
M hours.
4.2
Insufficient IP addresses (exercise): A variant of P4.1
(a) Consider a type D subnet (there are 256 IP addresses in a type D network, and one of these IP
addresses is used for broadcasting). Assume that 15 IP addresses are assigned to servers, then how
many hosts can this subnet support if there is no DHCP service nor NAT service?
(b) Assume that there is a DHCP server in the subnet, and that each host connects to the Internet 8
hours a day. How many hosts can this subnet support?
(c) Assume that the DHCP server also runs the NAT protocol, and can use up to 2000 TCP ports for
each dynamic IP address. Also assume that each host needs 20 TCP connections. How many hosts can
this subnet support?
[Solution]
(a) There is a total of 256-1-15=240 IP addresses that can be assigned to hosts. If there is no DHCP
service nor NAT service, then 1 IP address can be assigned to at most one host. Hence, this subnet can
only support 240 hosts.
(b) If the subnet runs DHCP, then 1 IP address can be assigned to different hosts if the hosts get online
at different times of a day. If each host connects to the Internet 8 hours a day, then 3 hosts can share
a single IP address. Hence, this subnet can support 240*3=720 hosts if DHCP service is enabled.
(c) If NAT protocol is run, then multiple hosts can use the same IP address simultaneously, as long as
they are assigned different port numbers. If 2000 TCP ports can be used for NAT and each host has
20 TCP connections, then 1 IP address can be shared by 2000/20=100 hosts. Hence, this subnet can
24
support 720*100=72000 hosts.
25
5
5.1
Transport
W&P, P7.1
(a) 2 points. Suppose you and two friends named Alice and Bob share a 200 Kbps DSL connection to
the Internet. You need to download a 100 MB file using FTP. Bob is also starting a 100 MB file transfer,
while Alice is watching a 150 Kbps streaming video using UDP. You have the opportunity to unplug
either Alice or Bob’s computer at the router, but you cannot unplug both. To minimize the transfer
time of your file, whose computer should you unplug and why? Assume that the DSL connection is the
only bottleneck link, and that your connection and Bob’s connection have a similar round trip time.
(b) 2 points. What if the rate of your DSL connection were 500 Kbps? Again, assuming that the DSL
connection were the only bottleneck link, which computer should you unplug?
[Solution] If I share with Bob, then each of us will get half of the link rate because we both use the
same TCP algorithm for file transfer and both have the same RTT. If I share with Alice, then Alice
will get 150kbps since she is using UDP without congestion control, and I will get the remaining link
rate. Therefore, to maximize my own throughput:
(a) I should unplug Alice, so I will get 100kbps.
(b) I should unplug Bob, so I will get 500 − 150 = 350 kbps, as opposed to 250kbps if sharing with Bob.
5.2
W&P, P7.2
As shown in Figure 18, station A has an unlimited amount of data to transfer to Station E. Station A
uses a sliding window transport protocol with a fixed window size. Thus, station A begins a new packet
transmission whenever the number of unacknowledged packets is less than W and any previous packet
being sent from A has finished transmitting.
The size of the packets is 10000 bits (neglect headers). So for example if W > 2, station A would start
sending packet 1 at time t = 0, and then would send packet 2 as soon as packet 1 finished transmission,
at time t = 0.33 ms. Assume that the speed of light is 3 × 108 meters/sec.
(a) 4 points. Suppose station B is silent, and that there is no congestion along the acknowledgement
path from C to A. (The only delay acknowledgements face is the propagation delay to and from the
satellite.) Plot the average throughput as a function of window size W . What is the minimum window
size that A should choose to achieve a throughput of 30 Mbps? Call this value W ∗ . With this choice
of window size, what is the average packet delay (time from leaving A to arriving at E)?
(b) 4 points. Suppose now that station B also has an unlimited amount of data to send to E, and that
station B and station A both use the window size W ∗ . What throughput would A and B get for their
flows? How much average delay do packets of both flows incur?
(c) 4 points. What average throughput and delays would A and B get for their flows if A and B both
used window size 0.5W ∗ ? What would be the average throughput and delay for each flow if A used a
window size of W ∗ and B used a window size of 0.5W ∗ ?
[Solution]
(a) Recalling that throughput is inverse proportional to the round-trip time, we start with calculating
the round-trip time of data transfer from A to E. The timeline of data transfer from A to E is shown in
Figure 19, where ts , tq , and tp denote the transmission time of a packet, queueing delay at the buffer of
C, and propagation delay on a space-to-ground link respectively. The transmission time of a packet is
ts = 0.33 ms.
26
Figure 18: Transmitting data from stations A, B to E.
A
C
1 D
E
ts
2 tq
1 tp
2 ts
1 2 tp
ts
tp
1 2 tp
Figure 19: [Solution] Timeline of data transfer from A to E.
When B does not transmit, the buffer at C is empty (since incoming traffic rate is limited by the capacity
of the link from A to C, which is no greater than the capacity of the output link from C to D), and
27
therefore the queueing delay at the buffer of C is tq = 0. The propagation delay on a space-to-ground
link is
5 ∗ 104 km
tp =
= 166.7ms.
3 ∗ 108 m/s
Hence, the round-trip time is
RTT = 3ts + tq + 4tp = 667.7ms.
The throughput is given by
x=
W ∗ pkt size
W ∗ 10, 000bits
30W
=
=
Mbps
RTT
667.7ms
2003
when 30W/2003 ≤ 30, i.e., W ≤ 2003. When W > 2003, the throughput is 30Mbps. Average
throughput as a function of the window size W is shown in Figure 20. The minimum window size to
throguhput (Mbps)
30
25
20
15
10
5
0
0
2003
window size (pkts)
Figure 20: [Solution P5.2] Throughput as a function of the window size.
achieve a throughput of 30Mbps is W ∗ = 2003 ≈ 2000. The average packet delay is
(average packet delay) = 3ts + tq + 2tp = 334.3ms.
(b) When A and B both use a window size of W ∗ , the buffer at C will build up, leading to a longer
round-trip time for both flows. This increased round-trip time will slow down the throughput of both
A and B. Eventually, the system comes to a steady state, where the round-trip time does not change.
Now compute the steady state. Let tq denote the steady-state queueing delay at the buffer of C, and
note that A and B have the same steady-state round-trip time
RTT = 3ts + tq + 4tp .
Then the steady state throughputs of A and B are
xA =
W ∗ × pkt size
= xB .
RTT
and therefore xA = xB = 15Mbps. We have
RTT =
W ∗ × pkt size
2000 ∗ 10, 000bits
=
= 1.333s.
xA
15Mbps
It follows that
tq = RTT − 3ts − 4tp = 1333.3 − 3 × 0.33 − 4 × 166.7 ≈ 665.7ms.
28
CS/EE143 Networking WF: 10:30 – 11:55am Fall 2011 Professor Steven Low Therefore the average packet delay is
(average packet delay) = 3ts + tq + 2tp = 1000ms
.
(c) When each has window size 0.5W ∗ , the two flows have combined window sizes that are sufficient
to keep the pipe full. Their combined throughput will be 30 Mbps, so by symmetry each will get 15
Mbps. The round-trip delay, which is the same for A and B, can be found by:
RTT =
0.5 × 2000 × 10, 000bits
= 666.7ms
15Mbps
Subtracting the delay on the reverse path, i.e., 2tp = 333.3ms, we get a forward path delay of 333.3ms,
which is exactly the propagation delay 2tp , i.e., the queueing delay is tq = 0 (we ignored the transmission
time 3ts from the RTT for simplicity).
When A’s window is W ∗ and B’s is 0.5W ∗ , the two flows have combined window sizes that are sufficient
to keep the pipe full. Their combined throughput will be 30Mbps. A will have twice as many packets
in the pipeline as B, so their throughputs will have a ratio of 2:1. Thus A gets 20 Mbps and B gets 10
Mbps. The roud-trip time for A and B is the same, which is found by:
0.5 × 2000 × 10, 000bits
1 × 2000 × 10, 000bits
=
= 1000ms
RTT =
(a) Suppose station B is silent, and that there is no congestion along the acknowledgement
path 20Mbps
10Mbps
from C to A. (The only delay acknowledgements face is the propagation delay to and from the Subtracting
the delay
on the reverse path, i.e.,
p = 333.3ms, we get a forward path delay of 666.7ms
satellite.) Plot the average throughput as a 2t
function of window size W. What is the minimum for both
A
and
B.
Their
queueing
delay
is
t
=
666.7
− 333.3 = 333.3ms (we ignored the transmission
q
window size that A should choose to achieve a throughput of 30 Mbps? Call this value W*. With time 3ts from the RTT for simplicity).
this choice of window size, what is the average packet delay (time from leaving A to arriving at E)? Suppose now that station B also has an unlimited amount of data to send to E, and that 5.3 (b) W&P,
P7.3
station B and station A both use the window size W*. What throughput would A and B get for As shown
Figure 21, flows 1 and 2 sharepackets of both
a link with capacity
C = 120 Kbps. There is no other
theirinflows? How much average delay do
flows incur? bottleneck.
The
round
trip
time
of
flow
1
is
0.1
sec
and
that
of
flow
is 0.2 sec.and B both used Let x1 and x2 denote
(c) What average throughput and delays would A and B get for their2 flows if A
the rates obtained by the two flows, respectively. The hosts use AIMD to regulate their flows. That
window size 0.5W*? What would be the average throughput and delay for each flow if A used a is, as long as x1 + x2 < C, the rates increase linearly over time: the window of a flow increases by one
window size of W* and B used a window
size of 0.5W*? packet every round trip time. Rates are estimated
as the window size divided by the round-trip time.
Assume that as soon as x1 + x2 > C, the hosts divide their rates x1 and x2 by the factor α = 1.1.
4. W&P: P7.3 [4 points] As shown in the figure, flows 1 and 2 share a link with capacity C = 120 Kbps. There is no other bottleneck. The round trip time of flow 1 is 0.1 sec and that of flow 2 is 0.2 sec. Let x1 and x2 Figure 21: Two flows sharing a link.
10 (a) 3 points.
Draw the evolution of the vector (x1 , x2 ) over time.
(b) 3 points. What is the approximate limiting value for the vector?
[Solution]
(a) Since flow 2’s RTT is twice that of flow 1’s RTT, and flow 1’s window increases at a pace that is
twice that of flow 2’s, then flow 1’s rate (=window/RTT) increases at a pace that is 4 times that of
flow 2’s. Hence on the plot, the rates increase along a line that has a slope of 1/4. When x1 + x2 = C,
29
[Solution] (a) Since B’s RTT is twice that of A’s RTT, A’s window increases at a pace that’s twice that of B’s, and A’s rate (=window/RTT) increases at a pace that’s 4 times that of B’s. Hence on the ( x1  x2 )  plot, the rates increase along a line that has a slope of ¼. When x1  x2  C, both divide their rates by 1.1 immediately without feedback dealy, i.e., their new rates are 90% of those before the multiplicative decrease. Therefore, the evolution of their rates is as shown. x2
C
slope = 1/4
0.9C
steady state
slope = 1/4
x1  x2  C 0.9C
C
x1
In the steady state, both rates increase at the rate of s/Ti2, where s = packet size in bits (b) of flow i, a and decrease (assuming use the same constant packet size and flows
Ti = RTT Figure both 22: [Solution]
Rates change
ofs) two
sharing
link.
multiplicatively by 10%. Therefore the rates oscillate along the double‐arrowed line segment indicated above, between the lines x1  x2  0.9C and x1  x2  C. To calculate the both divide their rates
by 1.1
immediately,
their new rates are (about) 90% of those before the
approximate steady‐state rates xi.e.,
1 , x2 , assume that x1  4x2 and x1  x2  C. Hence, multiplicative decrease.
Therefore,
the
evolution
of
x  4C / 5  96kbps and x  C / 5  24kbps. their rates is as shown in Fig. 22.
1
2
steady state,
(b) In the
the rates oscillate along the double-arrowed line segment indicated above,
between the lines x1 + x2 = 0.9C and x1 + x2 = C. To calculate the approximate steady-state rates
26 x1 , x2 , assume that
x1 + x2 = C. Since we also have x1 = 4x2 , we get x1 = 4C/5 = 96kbps and
x2 = C/5 = 24kbps.
5.4
W&P, P7.4
Consider a TCP connection between a client C and a server S.
(a) 3 points. Sketch a diagram of the window size of the server S as a function of time.
(b) 2 points. Using the diagram, argue that the time to transmit N packets from S to C is approximately equal to a + bN for large N .
(c) 3 points. Explain the key factors that determine the value of b in that expression for an Internet
connection.
[Solution] Here all reasonable answers are accepted.
(a) The graph depends on the protocol. But basically it looks like Figure 7.10 of the textbook, which
is also shown in Fig. 23.
(b) The total number of packets transmitted equals to the number of packets transmitted in the slow
start stage and the congestion avoidance stage. For the slow start stage, you are transferring lower than
the maximum rate possible, which cause a constant part a. In the congestion avoidance stage, you are
transferring at the maximum rate possible, say 1/b, which results in a linear part bN .
(c) Possible factors can be the maximum rate of Ethernet connection, efficiency of the Ethernet, RTT,
routing, etc.
5.5
Window size control (exercise)
Assume that a host A in Los Angeles sends packets, each of 1KByte, to a host B in San Francisco,
through a connection of 100Mbps capacity. Also assume that the round-trip time of each packet is a
30
(c) Explain the key factors that determine the value of b in that expression for an Internet connection. [Solution] Here all reasonable answers are accepted. (a) The graph depends on the protocol. But basically it looks like Figure 7.10 of the book. (b) The total number of packets transmitted equals to the number of packets transmitted in the Figure 23: [Solution] Window size in Figure 7.10 of the textbook, for P5.4.
slow start stage and the congestion avoidance stage. For the slow start stage, you are transferring lower than W
the maximum rate possible, which cause a constant part a. In the congestion avoidance stage, you are transferring at the maximum rate possible, say 1/b, which Wmax
results in a linear part bN. Wmin
(c) Possible factors can be the maximum rate of Ethernet connection, efficiency of the Ethernet, RTT, routing, etc. 2T
T
time
Figure 24: Window size W fluctuates piecewise linearly in time, from Wmin to Wmax , in periods of
length T , which is assumed to be much bigger than the round-trip time.
constant of 130ms (no jitter).
(a) If A uses the window flow control mechanism
27 with a constant window size W , then what is the
average
bit
rate
of
the
connection
as
a
function
of
W ? What happens as W increases to infinity?
(b) Now consider the case where W fluctuates, at a much slower timescale than the round-trip time
(this is not true in the TCP protocol) as in Figure 24. What is the average rate of the connection
assuming Wmax is “not too big”?
[Solution]
(a) When window size W is small, the average bit rate x is
W pkts ∗ packet size
round-trip time
W pkts ∗ 1KB/pkt
=
130ms
8W
=
Mbps
130
x =
This expression holds as long as 8W/130 ≤ 100,
When window size is big, more specifically, when 8W/130 > 100, W packets can no longer be sent
within a round-trip time. In this case, there will always be less than W unacknowledged packets after
A finish transmitting a packet, and therefore A will keep transmitting packets, at the link capacity.
31
To summarize, the average bit rate is
(
4W/65Mbps if 4W/65 ≤ 100,
x=
100Mbps
if 4W/65 > 100.
And the rate stablizes at 100Mbps as W tends to infinity.
(b) Let W (t) denote the window size at time t, then the instantaneous bit rate at time t is x(t) =
4W (t)/65Mbps provided W (t) is not too big (i.e., 4W (t)/65 ≤ 100). It follows that the average rate of
the connection is
Z T0
1
x = lim
x(t)dt
T0 →∞ T0 0
Z
1 T
=
x(t)dt
T 0
Z
1 T 4W (t)
=
dt
T 0
65
2(Wmin + Wmax )
=
Mbps.
65
5.6
TCP with AIMD (exercise), adapted from P5.3
Flows 1 and 2 share a link (the only bottleneck link) with capacity C = 20Mbps as in Figure 25. The
round-trip time of flow 1 is τ1 = 0.1s while that of flow 2 is τ2 = 0.2s (assume that there is no jitter).
Let x1 and x2 denote the throughput of flows 1 and 2 respectively. The hosts use AIMD to regulate
their flows:
• When x1 + x2 ≤ C, the throughput x1 and x2 increase linearly over time: the window of a flow
increases by one packet every round-trip time. Assume that the packet size is 1.5KBytes.
• When x1 + x2 > C, the hosts divide their window size by the factor α = 1.1. Assume that flow 1
and 2 decrease their window sizes at most once every 0.2ms.
Throughput is estimated as the window size divided by the round-trip time.
Host flow 1 R R Host Host flow 2 Host Figure 25: Two flows share a bottleneck link. The bottleneck link is highlighted in red.
(a) Assume that at time t = 0, the window size of both flows is 1. Draw the evolution of the vector
(x1 , x2 ) over time. [Hint: use matlab.]
(b) What is the approximate limiting behavior for the vector? You will notice that the end-point of
the vector moves on a line that go through the origin as time evolves, and you are required to give the
slope of this line.
32
(c) Repeat (a) and (b) for α = 1.2, 1.3, 1.4, 1.5. Can you find out how the slope depends on α?
[Solution]
(a)The evolution of the vector (x1 , x2 ) over time is shown in Figure 26. The matlab code is attached
throughput of flow 2 (Mbps)
alpha=1.1
throughput vector
line with slope 1/4
4
3
2
1
0
0
5
10
15
throughput of flow 1 (Mbps)
Figure 26: [Solution] The evolution of the vector (x1 , x2 ) over time with α = 1.1.
below.
clear a l l ; close a l l ; clc ;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% i n i t i a l i z a t i o n
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
t
t
t
i n i t i a l i z e time stamps
resolution = 0.1;
% l e n g t h o f a time stamp .
range = 60;
% f i n i s h i n g time .
count = floor ( t range / t r e s o l u t i o n ) ;
% number o f time stamps
% i n i t i a l i z e window s i z e
W1 = 1 ;
% window s i z e o f f l o w 1
W2 = 1 ;
% window s i z e o f f l o w 2
% i n t i a l i z e round−t r i p time
tau1 = 0 . 1 ;
% round−t r i p time o f f l o w 1
tau2 = 0 . 2 ;
% round−t r i p time o f f l o w 2
% i n i t i a l i z e throughput
x1 = zeros ( t c o u n t , 1 ) ;
x2 = zeros ( t c o u n t , 1 ) ;
% initialize
% a l l o c a t i n g space f o r throughput of flow 1
% a l l o c a t i n g space f o r thorughput of flow 2
link capacity
33
C = 20E6 ;
P = 1 . 5 E3 ∗ 8 ;
C = C / P;
% l i n k capacity in bps
% packet s i z e in b i t s
% l i n k capacity in pkt /s
% i n i t i a l i z e alpha
alpha = 1 . 1 ;
% b a c k o f f parameter used i n MD
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% time e v o l u a t i o n
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f o r t =1: t c o u n t
% compute c u r r e n t t h r o u g h p u t
x1 ( t ) = W1 / tau1 ;
% t h r o u g h p u t o f f l o w 1 a t ( t −1) ∗ t r e s o l u t i o n
x2 ( t ) = W2 / tau2 ;
% t h r o u g h p u t o f f l o w 2 a t ( t −1) ∗ t r e s o l u t i o n
% u p d a t e window s i z e
i f x1 ( t )+x2 ( t ) >= C
%
i f mod( t ,2)==0
%
W1 = W1 / a l p h a ;
W2 = W2 / a l p h a ;
end
else
W1 = W1 + 1 ;
%
i f mod( t ,2)==0
%
W2 = W2 + 1 ;
end
end
i f throughput exceeds l i n k capacity
d e c r e a s e window s i z e e v e r y 0 . 2 s e c o n d s
i n c r e a s e wndow s i z e by 1
i n c r e a e window s i z e e v e r y 0 . 2 s e c o n d s
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% p o s t p r o c e s s i n g
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% change u n i t s
x1 = x1 ∗P / 1E6 ;
x2 = x2 ∗P / 1E6 ;
% t h r o u g h p u t o f f l o w 1 i n Mbps
% t h r o u g h p u t o f f l o w 2 i n Mbps
% plot figure
f i g = figure ( 1 ) ; c l f ;
plot ( x1 , x2 , ’ l i n e w i d t h ’ , 2 ) ; hold on ;
set ( gca , ’ f o n t s i z e ’ , 2 4 ) ;
t i t l e ( s p r i n t f ( ’ a l p h a =%2.1 f ’ , a l p h a ) ) ;
xlabel ( ’ t h r o u g h p u t o f f l o w 1 ( Mbps ) ’ ) ;
ylabel ( ’ t h r o u g h p u t o f f l o w 2 ( Mbps ) ’ ) ;
set ( gca , ’ x l i m ’ , [ 0 1 8 ] ) ;
set ( gca , ’ y l i m ’ , [ 0 4 . 5 ] ) ;
plot ( [ 0 1 8 ] , [ 0 4 . 5 ] , ’ r−− ’ , ’ l i n e w i d t h ’ , 2 ) ; hold o f f ;
legend ( 2 , ’ t h r o u g h p u t v e c t o r ’ , ’ l i n e with s l o p e 1/4 ’ , ’ l o c a t i o n ’ , ’ n o r t h w e s t ’ ) ;
34
print ( f i g , s p r i n t f ( ’ a l p h a %d . e p s ’ , a l p h a ∗ 1 0 ) , ’−d e p s c ’ ) ;
(b) See P5.3.
(c) The plots are shown in Figure 27. It can be observed that the slope does not depend on α.
3
2
1
0
0
throughput of flow 2 (Mbps)
throughput vector
line with slope 1/4
throughput of flow 2 (Mbps)
4
4
throughput vector
line with slope 1/4
2
1
4
2
1
4
5
10
15
throughput of flow 1 (Mbps)
alpha=1.5
throughput vector
line with slope 1/4
3
2
1
0
0
5
10
15
throughput of flow 1 (Mbps)
throughput vector
line with slope 1/4
3
0
0
5
10
15
throughput of flow 1 (Mbps)
alpha=1.4
3
0
0
alpha=1.3
throughput of flow 2 (Mbps)
throughput of flow 2 (Mbps)
alpha=1.2
5
10
15
throughput of flow 1 (Mbps)
Figure 27: [Solution] The evolution of the vector (x1 , x2 ) over time with α = 1.2, 1.3, 1.4, 1.5.
5.7
TCP Vegas (exercise)
20KB
A 1Mbps
B Figure 28: A sends packets of 1KB to B via a 1Mbps link with 20KB buffer.
Consider the case where A sends packets of 1KB to B via a 1Mbps link with 20KB buffer as in Figure 28.
The propagation delay (round-trip time with the buffer being empty) is assumed to be 20ms. Assume
that A uses TCP Vegas as the transmission control protocol, i.e., it keeps track of the minimum round-
35
trip time τmin and the current round-trip time τ ,


W + 1
W ← W −1


W
and updates the window size W according to
if τW
−W
τ <
min
W
W
if τmin − τ >
otherwise
α
τmin
β
τmin
where α, β are TCP parameters. The parameters are chosen α < β to introduce hysteresis, which can
reduce the fluctuation in window size W .
Now we try to analyze the steady-state of this scenario. We start with making the following simplifications: at steady state, one has
W
W
(α + β)/2
−
=
.
τmin
τ
τmin
Assume α = 2.8 and β = 3.2.
(a) If τmin observed by A is equal to the round-trip time without queueing delay, which is 20ms, then
what is the window size W at steady state? How many packets are there in the buffer?
(b) If τmin observed by A is equal to the round-trip time without queueing delay, plus τe = 10ms, i.e.,
30ms, then what is the window size W at steady state? How many packets are there in the buffer?
(c) At what value of τe will the buffer be full? Let τe∗ denote this value. What happens if τe > τe∗ ?
[Solution]
(a) At steady state, the traffic throughput x = W P/τ , where P is the packet size, equals link capacity
C. Therefore
W
x
C
1Mbps
=
=
=
= 125pkt/s.
τ
P
P
1KB/pkt
Then,
W
W
(α + β)/2
−
=
τmin
τ
τmin
⇐⇒
W −3
W
=
τmin
τ
=⇒
W = 3 + τmin
The round-trip time is
τ=
W
= 3 + 20ms ∗ 125pkt/s = 5.5pkt.
τ
W
= 44ms
125pkt/s
and therefore the queuing time is tq = 44 − 20 = 24ms. Hence, the number of packets in the buffer is
(average number of packets in buffer) = tq ∗ 125pkt/s = 3pkt.
(b) One still have
W = 3 + τmin
W
= 3 + 30ms ∗ 125pkt/s = 6.75pkt.
τ
The round-trip time is
τ=
W
= 54ms
125pkt/s
and therefore the queuing time is tq = 54 − 20 = 34ms. Hence, the number of packets in the buffer is
(average number of packets in buffer) = tq ∗ 125pkt/s = 4.25pkt.
(c) For the buffer to be full, one needs
20pkt = tq ∗ 125pkt/s =⇒ tq = 160ms.
36
Then, the round-trip time is τ = 160 + 20 = 180ms. The window size would be
W = τ ∗ 125pkt/s = 22.5pkt.
Substitute in W = 3 + τmin W/τ to obtain
τmin =
W −3
τ = 156ms.
W
Then τe∗ = τmin − 20 = 136ms. When τe > τe∗ , the buffer will not be able to hold all packets, and has
to drop some packets. Then, TCP Vegas will work as TCP Reno (since packet drop occurs).
37