|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
processing
ACKs from MH:
|
|
|
|
– |
new
ACK: common case, initiates cleaning up of snoop cache,
|
|
|
update
estimate of round-trip time for wireless link, forward ACK
|
|
to FH
|
|
|
– |
spurious
ACK: less than last ACK seen, happens rarely. Just drop
|
|
|
ACK
and continue
|
|
|
– |
duplicate
ACK: indicates packet loss, one of several actions:
|
|
|
n |
packet
either not in cache or marked as retransmitted: pass duplicate
|
|
|
ACK on
to FH
|
|
|
n |
first
duplicated ACK for cached packet: retransmit cached packet
|
|
|
|
immediately
and at high priority, estimate number of expected
|
|
|
duplicate
ACKs, based on # of packets sent after missing one
|
|
|
n |
expected
successive duplicate ACKs: ignore, we already initiated
|
|
|
retransmission.
Since retransmission happens at higher priority, we
|
|
|
|
might
not see total number of expected duplicate ACKs
|
|