CS 6250 CORE MAIN ANSWERS AND QUESTIONS SET
A+
✔✔What is Stop and Wait ARQ? - ✔✔also referred to as alternating bit protocol, is a
method in telecommunications to send information between two connected devices. It
ensures that information is not lost due to dropped packets and that packets are
received in the correct order. It is the simplest automatic repeat-request (ARQ)
mechanism. A stop-and-wait ARQ sender sends one frame at a time; it is a special case
of the general sliding window protocol with transmit and receive window sizes equal to
one in both cases. After sending each frame, the sender doesn't send any further
frames until it receives an acknowledgement (ACK) signal. After receiving a valid frame,
the receiver sends an ACK. If the ACK does not reach the sender before a certain time,
known as the timeout, the sender sends the same frame again. The timeout countdown
is reset after each frame transmission. The above behavior is a basic example of Stop-
and-Wait. However, real-life implementations vary to address certain issues of design.
https://en.wikipedia.org/wiki/Stop-and-wait_ARQ
✔✔What is Go-back-N? - ✔✔Now let's look at how does the receiver notify the sender
of a missing segment.
One way is for the receiver to send an ACK for the most recently received in-order
packet. The sender would then send all packets from the most recently received in-
order packet, even if some of them had been sent before. The receiver can simply
discard any out-of-order received packets.
✔✔What is selective ACKing? - ✔✔The sender retransmits only those packets that it
suspects were received in error. The receiver in this case would acknowledge a
correctly received packet even if it is not in order. The out-of-order packets are buffered
until any missing packets have been received at which point the batch of the packets
can be delivered to the application layer.
"The fourth extension allows TCP to augment its cumulative acknowledgment with
selective acknowledgments of any additional segments that have been received but
aren't contiguous with all previously received segments. This is the selective
acknowledgment, or SACK, option. When the SACK option is used, the receiver
continues to acknowledge segments normally—the meaning of the Acknowledge field
does not change—but it also uses optional fields in the header to acknowledge any
,additional blocks of received data. This allows the sender to retransmit just the
segments that are missing according to the selective acknowledgment." Peterson 5.3.8
"A proposed modification to TCP, the so-called selective acknowledgment [RFC 2018],
allows a TCP receiver to acknowledge out-of-order segments selectively rather than just
cumulatively acknowledging the last correctly received, in-order segment. When
combined with selective retransmission—skipping the retransmission of segments that
have already been selectively acknowledged by the receiver" Kurose 3.5.4
✔✔What is fast retransmit? - ✔✔When the sender receives 3 duplicate ACKs for a
packet, it considers the packet to be lost and will retransmit it instead of waiting for the
timeout.
✔✔What is transmission control and why do we need to control it? - ✔✔Transmission
control is implemented in the transport layer. It deals with issues of fairness in using the
network. Transmission control has two parts, flow control and congestion control.
✔✔What is flow control and why do we need to control it? - ✔✔Flow control is TCP's
rate control mechanism that helps match the sender's rate against the receiver's rate of
reading the data. The sending host maintains a "receive window" which provides the
sender an idea of how much data the receiver can handle at that moment.
"TCP provides a flow-control service to its applications to eliminate the possibility of the
sender overflowing the receiver's buffer. Flow control is thus a speed matching
service—matching the rate at which the sender is sending against the rate at which the
receiving application is reading." - Kurose 3.5.5
✔✔What is congestion control? - ✔✔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? - ✔✔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? - ✔✔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? - ✔✔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? - ✔✔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? - ✔✔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. -
✔✔TCP decreases the window when the level of congestion goes by halving the
A+
✔✔What is Stop and Wait ARQ? - ✔✔also referred to as alternating bit protocol, is a
method in telecommunications to send information between two connected devices. It
ensures that information is not lost due to dropped packets and that packets are
received in the correct order. It is the simplest automatic repeat-request (ARQ)
mechanism. A stop-and-wait ARQ sender sends one frame at a time; it is a special case
of the general sliding window protocol with transmit and receive window sizes equal to
one in both cases. After sending each frame, the sender doesn't send any further
frames until it receives an acknowledgement (ACK) signal. After receiving a valid frame,
the receiver sends an ACK. If the ACK does not reach the sender before a certain time,
known as the timeout, the sender sends the same frame again. The timeout countdown
is reset after each frame transmission. The above behavior is a basic example of Stop-
and-Wait. However, real-life implementations vary to address certain issues of design.
https://en.wikipedia.org/wiki/Stop-and-wait_ARQ
✔✔What is Go-back-N? - ✔✔Now let's look at how does the receiver notify the sender
of a missing segment.
One way is for the receiver to send an ACK for the most recently received in-order
packet. The sender would then send all packets from the most recently received in-
order packet, even if some of them had been sent before. The receiver can simply
discard any out-of-order received packets.
✔✔What is selective ACKing? - ✔✔The sender retransmits only those packets that it
suspects were received in error. The receiver in this case would acknowledge a
correctly received packet even if it is not in order. The out-of-order packets are buffered
until any missing packets have been received at which point the batch of the packets
can be delivered to the application layer.
"The fourth extension allows TCP to augment its cumulative acknowledgment with
selective acknowledgments of any additional segments that have been received but
aren't contiguous with all previously received segments. This is the selective
acknowledgment, or SACK, option. When the SACK option is used, the receiver
continues to acknowledge segments normally—the meaning of the Acknowledge field
does not change—but it also uses optional fields in the header to acknowledge any
,additional blocks of received data. This allows the sender to retransmit just the
segments that are missing according to the selective acknowledgment." Peterson 5.3.8
"A proposed modification to TCP, the so-called selective acknowledgment [RFC 2018],
allows a TCP receiver to acknowledge out-of-order segments selectively rather than just
cumulatively acknowledging the last correctly received, in-order segment. When
combined with selective retransmission—skipping the retransmission of segments that
have already been selectively acknowledged by the receiver" Kurose 3.5.4
✔✔What is fast retransmit? - ✔✔When the sender receives 3 duplicate ACKs for a
packet, it considers the packet to be lost and will retransmit it instead of waiting for the
timeout.
✔✔What is transmission control and why do we need to control it? - ✔✔Transmission
control is implemented in the transport layer. It deals with issues of fairness in using the
network. Transmission control has two parts, flow control and congestion control.
✔✔What is flow control and why do we need to control it? - ✔✔Flow control is TCP's
rate control mechanism that helps match the sender's rate against the receiver's rate of
reading the data. The sending host maintains a "receive window" which provides the
sender an idea of how much data the receiver can handle at that moment.
"TCP provides a flow-control service to its applications to eliminate the possibility of the
sender overflowing the receiver's buffer. Flow control is thus a speed matching
service—matching the rate at which the sender is sending against the rate at which the
receiving application is reading." - Kurose 3.5.5
✔✔What is congestion control? - ✔✔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? - ✔✔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? - ✔✔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? - ✔✔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? - ✔✔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? - ✔✔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. -
✔✔TCP decreases the window when the level of congestion goes by halving the