Fast Retransmit Algorithm
If sender sends a segment: 1-5 and receiver sends ACK for 6. Senders sends 6-10 and 11-15. But the data (6-10) lost. After a certain time receiver will sends ACK for 6-10 and by this time 11-15 receive at receiver end. Receiver will send ACK for 6-10 again. This is third time ACK for 6-10. So this is waste of time. We don’t want this situation. That’s why if sender gets three ACK for same segments it use Fast Retransmit Algorithm.
If sender sends a segment: 1-5 and receiver sends ACK for 6. Senders sends 6-10 and 11-15. But the data (6-10) lost. After a certain time receiver will sends ACK for 6-10 and by this time 11-15 receive at receiver end. Receiver will send ACK for 6-10 again. This is third time ACK for 6-10. So this is waste of time. We don’t want this situation. That’s why if sender gets three ACK for same segments it use Fast Retransmit Algorithm.
Fast Retransmit:
If sender gets three duplicates ACK for
the same segment, then it uses fast
retransmit algorithm.
Fast
Retransmit Algorithm:
Event: ACK received, with ACK field value of y
if (y > SendBase)
{
SendBase = y
if (there are currently
unacknowledged segments)
start timer
}
else
{
increment count of dup
ACKs received for y
if (count of dup ACKs
received for y = =3)
{
TCP segment sent algorithm:
When data will receive from upper layer then
create TCP segment with sequence number PktNum
if (timer currently not running)
Start timer
Send segment
SegmentNum = SegmentNum + length(data)
That’s why it
initialize
SegmentNum=1
WindowBase-1
If timer is timeout then
retransmit not-yet-acknowledged segment with
smallest
sequence number
start timer
if ACK received, with ACK field value
of y then
if (y >
WindowBase) {
WindowBase =
y
if (there are currently
not-yet-acknowledged segments)
start timer
No comments:
Post a Comment