Exam Questions with Correct
Solutions||100% Guaranteed
Pass||A+ GRADED||UPDATED
2026/2027 SYLLABUS||RECENT
VERSION
What is congestion control? - ANSWER ✓ Congestion control controls the
transmission rate to protect the network from congestion to avoid longer queues
and packet drops
● What are the goals of congestion control? - ANSWER ✓ Efficiency. We should
get high throughput or utilization of the network should be high.
Match the load to available capacity.
Fairness. Each user should have its fair share of the network bandwidth. The notion
of fairness is dependent on the network policy. For this context, we will assume
that every flow under the same bottleneck link should get equal bandwidth.
Low delay. In theory, it is possible to design protocols that have consistently high
throughput assuming infinite buffer. Essentially, we could just keep sending the
packets to the network and they will get stored in the buffer and will eventually get
delivered. However, it will lead to long queues in the network leading to delays.
Thus, applications that are sensitive to network delays such as video conferencing
will suffer. Thus, we want the network delays to be small.
Fast convergence. The idea here is that a flow should be able to converge to its fair
allocation fast. This is important as a typical network's workload is composed of a
lot of short flows and few long flows. If the convergence to fair share is not fast
enough, the network will still be unfair for these short flows.
● What is network-assisted congestion control? - ANSWER ✓ In this we rely on
the network layer to provide explicit feedback to the sender about congestion in the
network.
,For instance, routers could use ICMP source quench to notify the source that the
network is congested.
However, under severe congestion, even the ICMP packets could be lost, rendering
the network feedback ineffective.
● What is end-to-end congestion control? - ANSWER ✓ E2E does not provide
any explicit feedback about congestion to the end hosts. Instead, the hosts infer
congestion from the network behavior and adapt the transmission rate.
Eventually, TCP ended up using the end-to-end approach. This largely aligns with
the end-to-end principle adopted in the design of the networks. Congestion control
is a primitive provided in the transport layer, whereas routers operate at the
network layer. Therefore, the feature resides in the end nodes with no support from
the network. Note that this is no longer true as certain routers in the modern
networks can provide explicit feedback to the end-host by using protocols such as
ECN and QCN.
● How does a host infer congestion? - ANSWER ✓ The host infer congestion
from the network behavior mainly through 2 signals:
First is the packet delay. As the network gets congested, the queues in the router
buffers build up. This leads to increased packet delays. Thus, an increase in the
round-trip time, which can be estimated based on ACKs, can be an indicator of
congestion in the network. However, it turns out that packet delay in a network
tends to be variable, making delay-based congestion inference quite tricky.
Another signal for congestion is packet loss. As the network gets congested,
routers start dropping packets. Note that packets can also be lost due to other
reasons such as routing errors, hardware failure, TTL expiry, error in the links, or
flow control problems, although it is rare.
● How does a TCP sender limit the sending rate? - ANSWER ✓ TCP uses a
congestion window which is similar to the receive window used for flow control. It
represents the maximum number of unacknowledged data that a sending host can
have in transit (sent but not yet acknowledged).
TCP uses a probe-and-adapt approach in adapting the congestion window. Under
regular conditions, TCP increases the congestion window trying to achieve the
available throughput. Once it detects congestion then the congestion window is
decreased.
, In the end, the number of unacknowledged data that a sender can have is the
minimum of the congestion window and the receive window.
● Explain Additive Increase/Multiplicative Decrease (AIMD) in the context of
TCP. - ANSWER ✓ TCP decreases the window when the level of congestion goes
by halving the window size, and it increases the window when the level of
congestion goes down by adding to the window size. This causes convergence to
the optimal bandwidth by quickly cutting use in times of congestion while slowly
increasing utilization when the congestion clears.
The idea behind additive increase is to increase the window by one packet every
RTT (Round Trip Time).
Once TCP Reno detects congestion, it reduces the rate at which the sender
transmits. So, when the TCP sender detects that a timeout occurred, then it sets the
CongestionWindow (cwnd) to half of its previous value.
● What is a slow start in TCP? - ANSWER ✓ Slow start is called "slow" start
despite using an exponential increase because in the beginning it sends only one
packet and starts doubling it after each RTT.
● Is TCP fair in the case where two connections have the same RTT? Explain.
Different RTT? - ANSWER ✓ In TCP, fairness means: for k-connections passing
through one common link with capacity R bps, each connection gets an average
throughput of R/k
If two connections have the same RTT then the throughput for each should sum up
to R.
Since TCP relies on acknowledgements of received packets, RTT (round trip time)
affects the connection speed. In AIMD, a connection with a faster RTT would be
able to ramp faster than another connection with slower RTT.
(alt answer)
If the RTT's are different, the connections with smaller RTT values would increase
their congestion window faster than the ones with longer RTT values which leads
to an unequal sharing of the bandwidth.
● Explain how TCP CUBIC works. - ANSWER ✓ CUBIC uses a cubed
polynomial as its growth function. To maintain the TCP fairness it uses a
multiplicative decrease and reduces the window to half.