Solution to CSE 489/589Homework Assignment 2
Prepared by Hung Q. Ngo
*
October 18, 2010
Problem 1
(Birthday attack)
.
To poison the cache of a DNS server, in the old days the attacker only
needed to match the Query ID, which is a 16bit number. Let
n
= 2
16
be the size of this ”sample space”.
The attacker sends
m
DNS requests (for the same domain), which will trigger
m
DNS queries with
different (presumably randomized) IDs being sent, and then the attacker sends
k
faked replies whose IDs
are chosen randomly in the set
[
n
] =
{
1
,
· · ·
, n
}
. The probability that no (faked) reply has a matching
ID with a query was shown in class to be
(
1

m
n
)
k
≤
e

mk/n
. So the attacker’s failure probability can
be approximated to be
e

mk/n
.
Generally, the attacker wants to minimize the total number of packets he has to send (that’s
m
+
k
)
and mimimize the chance of failure too. For
n
= 2
16
, to guarantee at most a
1
/
1000
chance of failure,
what’s the minimum number of packets he has to send? (Use
e

mk/n
as the failure probability.)
Repeat the quesiton for
n
= 2
32
, which is the case with randomized port numbers and Query IDs.
Answer.
We want to minimize
m
+
k
subject to
e

mk/n
≤
1
/
1000
, which is equivalent to
mk
≥
n
ln 1000
. For a fixed integer
m
, the number of packets sent is at least
f
(
m
) =
m
+
n
ln 1000
m
. The
function is minimized at
m
≈
√
n
ln 1000
for a total of roughly
2
√
n
ln 1000
. (We will be off by
±
1
at
most, due to integral rounding. So, it’s ok for your answer to be within
±
1
of the given answers below.
The entire process is an approximation anyway because we have used
e

x
to approximate
1

x
.)
When
n
= 2
16
,
2
√
n
ln 1000
is approximately
1346
.
When
n
= 2
32
,
2
√
n
ln 1000
is approximately
344
,
491
.
Problem 2.
Suppose we run the GoBackN protocol for a channel with endtoend delay
30
ms (typical
for coasttocoast). Suppose the window size is
2
16
bytes long. (This number is indeed the maximum
TCP window size without window scale option). The channel is perfectly reliable with bit rate
10
Gbps.
What is the maximum utilization theoretically achievable? (Assume ACK transmission time is negligi
ble.)
Answer.
The amount of time it takes to send a full window is only
65536
·
8
10
10
= 524
,
288
·
10

7
ms, much
less than RTT =
60
ms. The maximum utilization is the maximum fraction of time the channel is busy
within an RTT, which is
524
,
288
·
10

7
60
= 0
.
000873813333
.
This is horrible, illustrating the need for the Window Scale Option.
Problem 3.
In this problem, we attempt to derive a highly simplified “macroscopic” model for the
steadystate behavior of TCP. The major question we’d like to answer is: given a certain loss rate, what’s
the maximum throughput TCP (Reno) can achieve. For simplicity, we will assume that all losses are
signaled by the receipts of triple duplicate ACKs. (If there was a timeout event, slowstart with recover
*
Please let me know of any mistake/typo ASAP.
This preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
This is the end of the preview.
Sign up
to
access the rest of the document.
 Fall '10
 hungngo
 Networking, Transmission Control Protocol, Parity bit, Measuring network throughput, RTTs, Goodput

Click to edit the document details