New Reno Sack

download New Reno Sack

of 13

Transcript of New Reno Sack

  • 8/11/2019 New Reno Sack

    1/13

    1Spring Semester 2009, Dept. of Computer Science, Technion

    Internet Networking

    recitation #9

    TCP New Reno Vs. Reno

  • 8/11/2019 New Reno Sack

    2/13

    2

    Internet Networking

    Introduction Packet Loss Management

    TCP Reno (RFC 2581) can manage a loss of at most onepacket from a single window of data

    TCP NewReno (RFC 2582) can manage a loss of morethan one packet without changing the TCP message

    structure

    TCP SACK (RFC 2018) enables to cope with a loss of morethan one packet by changing message structure (using

    TCP options)

  • 8/11/2019 New Reno Sack

    3/13

  • 8/11/2019 New Reno Sack

    4/13

    4

    Internet Networking

    012

    Ack(1)

    3456

    Ack(1)Ack(1)Ack(1)

    78

    Initial state

    cwnd=7

    Slow start

    cwnd=8

    Fast Retransmit

    cwnd=8/2+3=7

    ssthresh=8/2=4

    => Fast Recovery

    Ack(1)Ack(1)

    Ack(1)

    Ack(1)

    Ack(9)cwnd=8cwnd=9 9

    cwnd=10 10cwnd=11 11

    Exit Fast Recovery

    cwnd=ssthresh=4

    => Congestion Avoidance

    Ack(10)

    1

    12

  • 8/11/2019 New Reno Sack

    5/13

    5

    Internet Networking

    Limitation of TCP Reno algorithm

    If cwnd size is too small (smaller than 4 packets) then its notpossible to get 3 duplicate acks and run the algorithm

    The algorithm can not manage a loss of multiple packets from asingle window of data

    It will cause a use of retransmission time out

    The algorithm doesnt manage a loss of packets during the FastRecovery stage

    Not a loss of the retransmitted packet

    There is no recursive run of the Fast Retransmit

  • 8/11/2019 New Reno Sack

    6/13

    6

    Internet Networking

    Sender Receiver

    012

    Ack(1)

    3456

    Ack(1)

    Ack(1)

    78

    Initial State

    cwnd=7

    Slow Start

    cwnd=8

    1Fast Retransmitcwnd=8/2+3=7

    ssthresh=8/2=4

    => Fast Recovery

    Ack(1)

    Ack(1)Ack(1)

    Ack(3)cwnd=8

    Exit Fast Recovery

    cwnd=ssthresh=4=> Congestion Avoidance

    Ack(3)

    Flight Size =No. of

    Unacknowledged

    segments

    Flight Size > cwnd

    => No new segments

    cwnd=9 9

    The algorithm doesnt

    know which segments

    were acknowledged

    What was happen

    if this packet was lost?

  • 8/11/2019 New Reno Sack

    7/13

    7

    Internet Networking

    TCP NewReno

    The Idea: If the sender remembers the number of the last segmentthat was sent before entering the Fast Retransmit phase

    Then it can deal with a situation when a new ACK (which is not

    duplicate ACK) does not cover the last remembered segment

    (partial ACK)

    This is a situation when more packets were lost before entering the

    Fast Retransmit.

    After discovering such situation the sender will retransmit the newlost packet too and will stay at the Fast Recovery stage

    The sender will finish the Fast Recovery stage when it will get ACKthat covers last segment sent before the Fast Retransmit

  • 8/11/2019 New Reno Sack

    8/13

    8

    Internet Networking

    TCP NewReno Retransmission Process (I)

    Set ssthresh to max (FlightSize / 2, 2*MSS)

    Record to Recovery variable the highest sequence numbertransmitted

    Retransmit the lost segment and set cwnd to ssthresh + 3*MSS.

    The congestion window is increased by the number of segments (three)

    that were sent and buffered by the receiver.

    For each additional duplicate ACK received, increment cwnd byMSS.

    Thus, the congestion window reflects the additional segment that has

    left the network.

    Transmit a segment, if allowed by the new value of cwnd and thereceiver's advertised window.

  • 8/11/2019 New Reno Sack

    9/13

    9

    Internet Networking

    TCP NewReno Retransmission Process (II)

    When a partial ACK is received retransmit the first unacknowledged segment

    deflate the congestion window by the amount of new acknowledged data,

    then add back one MSS

    send a new segment if permitted by the new value of cwnd

    When an acknowledge of all of the data up to and including "recoverarrives:

    In our example: Set cwnd to ssthresh

  • 8/11/2019 New Reno Sack

    10/13

  • 8/11/2019 New Reno Sack

    11/13

    11

    Internet Networking

    When a sender should reset the Retransmit Timer ?

    In the Impatient variant reset the timer only after the firstPartial ACK.

    As the result, invoking Slow-Start when retransmit timer will

    expire, especially when there are several packet lost and RTO

    is not much larger than RTT

    This approach causes fast retransmission of many packets

    (Slow Start) and its appropriate for the case of multiple packet

    drops

    TCP NewReno

    Resetting the Retransmit Timer

  • 8/11/2019 New Reno Sack

    12/13

    12

    Internet Networking

    TCP NewReno

    Resetting the Retransmit Timer

    When a sender should reset the Retransmit Timer ?

    In the Slow and Steady variant reset the timer after eachPartial ACK

    As the result, remaining in Fast Recovery for a long time,especially when there are multiple packet drops and RTO is

    much larger than RTT

  • 8/11/2019 New Reno Sack

    13/13

    13

    Internet Networking

    TCP NewReno Summary

    Neither of the retransmit timers resetting variants is optimal.

    If the SACK option is available, the TCP sender always has theinformation to make intelligent decisions about which packets to

    retransmit and which packets not to retransmit during Fast

    Recovery.

    It is worthwhile to combine NewReno in the standard togetherwith the SACK option, because it demands the algorithm change

    only at the sender side, without changing a message structure

    and therefore enables to improve TCP effectiveness also for

    receivers that dont support SACK.