public class SenderReno extends Sender
SenderNewReno
bytestream, congWindow, currentState, dupACKcount, dupACKthreshold, idleConnectionTimer, idleConnectionTimerHandle, lastByteAcked, lastByteSent, lastByteSentBefore3xDupAcksRecvd, localEndpoint, MSS, rcvWindow, rtoEstimator, rtoTimer, rtoTimerHandle, SSThresh, TIMER_DEFAULT
Constructor and Description |
---|
SenderReno(Endpoint localTCPendpoint_)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
onExpiredRTOtimer()
This method resets the sender's parameters when a
RTO timer timed out.
|
(package private) void |
onThreeDuplicateACKs()
This method performs the so-called Fast Retransmit
to retransmit the oldest outstanding segment because
after
Sender.dupACKthreshold dupACKs,
it is presumably lost. |
cancelRTOtimer, getOldestUnacknowledgedSegment, getTotalBytesTransmitted, handle, resetParametersToSlowStart, send, startIdleConnectionTimer, startRTOtimer, timerExpired
public SenderReno(Endpoint localTCPendpoint_)
localTCPendpoint_
- The local TCP endpoint
object that contains this module.void onExpiredRTOtimer()
SenderTahoe.onExpiredRTOtimer()
, but only
slightly different in how it calculates SSThresh
.onExpiredRTOtimer
in class Sender
SenderState
void onThreeDuplicateACKs()
Sender.dupACKthreshold
dupACKs,
it is presumably lost. It is similar to
SenderTahoe.onThreeDuplicateACKs()
, but
different in how it calculates the sender's parameters.
Unlike Tahoe, TCP Reno sender considers the number of
duplicate ACKs in excess of the first Sender.dupACKthreshold
dupACKs.
onThreeDuplicateACKs
in class Sender
SenderStateFastRecovery.handleDupACK(Segment)