Package | Description |
---|---|
sime.tcp |
Modifier and Type | Class and Description |
---|---|
class |
SenderStateCongestionAvoidance
This class defines how a TCP sender behaves in
the congestion avoidance state.
There are some subtleties in the actual TCP standard that are not implemented here. |
class |
SenderStateFastRecovery
TCP Reno sender's state Fast Recovery.
|
class |
SenderStateSlowStart
This class defines how a TCP sender behaves in the slow start state.
|
Modifier and Type | Field and Description |
---|---|
protected SenderState |
SenderState.after3xDupACKstate |
protected SenderState |
SenderState.congestionAvoidanceState |
protected SenderState |
Sender.currentState
Sender's current state.
|
protected SenderState |
SenderState.slowStartState |
Modifier and Type | Method and Description |
---|---|
SenderState |
SenderStateFastRecovery.handleDupACK(Segment dupAck_)
This method handles a duplicate acknowledgment
during fast recovery.
|
SenderState |
SenderState.handleDupACK(Segment dupAck_)
Counts a duplicate ACK and checks if the count equals 3.
|
SenderState |
SenderState.handleNewACK(Segment ack_)
Processes a single new (i.e., not duplicate) acknowledgment.
|
SenderState |
SenderState.handleRTOtimeout(Segment oldestUnackedSeg_)
Processes the TCP sender reaction to a retransmission timer (RTO) timeout.
Method called on the expired retransmission timeout (RTO) timer. |
protected SenderState |
SenderStateSlowStart.lookupNextStateAfterNewAck()
Helper method to look-up the next state
that the sender will transition to after this one.
|
protected SenderState |
SenderStateFastRecovery.lookupNextStateAfterNewAck()
Helper method to return the next state after a "new ACK".
|
protected SenderState |
SenderStateCongestionAvoidance.lookupNextStateAfterNewAck()
Helper method to look-up the next state
that the sender will transition to after this one.
|
protected abstract SenderState |
SenderState.lookupNextStateAfterNewAck()
Helper method to look-up the next state
that the sender will transition to after it received
a "new ACK".
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
SenderStateSlowStart.setAfter3xDupACKstate(SenderState after3xDupACKstate)
|
(package private) void |
SenderStateCongestionAvoidance.setAfter3xDupACKstate(SenderState after3xDupACKstate)
The reason for this method is that the constructors
SenderStateCongestionAvoidance and SenderStateFastRecovery
need each other, so one has to be created first, and then
the other will be set using this method.Thus package visibility only. |
(package private) void |
SenderStateSlowStart.setCongestionAvoidanceState(SenderState congestionAvoidanceState)
The reason for this method is that the constructors TCPSenderStateSlowStart
and TCPSenderStateCongestionAvoidance need each other, so one has to be
created first, and then the other will be set using this method.
Thus package visibility only. |
Constructor and Description |
---|
SenderStateCongestionAvoidance(Sender sender,
SenderState slowStartState,
SenderState after3xDupACKstate)
Constructor for the congestion avoidance state of a TCP sender.
|
SenderStateFastRecovery(Sender sender,
SenderState slowStartState,
SenderState congestionAvoidanceState)
Constructor for the fast recovery state of a TCP Reno sender.
|
SenderStateSlowStart(Sender sender,
SenderState congestionAvoidanceState,
SenderState after3xDupACKstate)
Constructor for the slow start state of a TCP sender.
|