Back to index
Hari Balakrishnan, Srinivasan Seshan, and Randy H. Katz
One-line summary:
Soft-state in BS's (the snoop agent) are used to perform local
retransmissions across a wireless link to avoid end-to-end
congestion control and retransmissions; IP-multicast is used
to allow secondary BS's to cache packets destined to a MH in
case that MH hands off to one of the secondary BS's.
Overview/Main Points
- Motivation: The usual TCP problems over wireless links
are given as motivation for this work. Also, interruption
during handoff further exascerbates TCP performance.
- Snoop agent:
- FH->MH:For data transfer from a fixed host (FH) to a
mobile host (MH), the base-station routing code is
modified by adding a network-level snoop module. Snoop
keeps a cache
of unacknowledged FH->MH packets. When packet loss is
detected
(duplicate acknowledgement or local timeout), snoop
retransmits
the lost packet, hiding the FH from duplicate
acknowledgements,
thereby preventing congestion control from kicking in.
If a new, in-sequence packet arrives from the FH, it is
cached and
forwarded to the MH. If an old packet rearrives,
it is a sender retransmission, and is forwarded
to the mH, and the snoop retransmit counter reset.
If a new, out-of-sequence packet arrives, it is marked
as having experienced congestion loss, and is
forwarded.
A new ACK from the MH allows snoop to clean its
cache, update its RTT estimate, and relay the ACK
to the sender. A spurious ack is ignored. A
duplicate ack for a packet not in the snoop cache
or marked as retransmitted by the sender is
forwarded to the, since the FH TCP stack maintains
state based on this ACK. A duplicate ack that
snoop doesn't expect indicates loss on the wireless
link - the lost packet is retransmitted with high
priority. A duplicate ack that snoop does expect
(based on the highest expected received sequence
number) is discarded; such expected dupacks occur
after snoop has retransmitted a packet but before
the MH sequence numbers reflect the retransmitted packet.
- MH->FH: Modification to the TCP state at the MH
was done to process TCP negative acknowledgements
(NACKs), which are generated at the BS for packets
lost within a transmission window. The MH uses these
NACKs to selectively retransmit lost packets.
- Routing for Handoff: A mobile-IP like strategy is
used. The major difference is that each MH is assigned
a home address and a temporary IP multicast address,
instead of a home address and a foreign address. Packets
are forwarded from the HA to the MH's primary
BS, which forwards them to the MH. Secondary
BSs that are identified as potential handoff targets
also are asked join the multicast group, and buffer
packets for the MH in case the MH hand-offs to its cell.
Data "in flight" to the MH during a handoff is
thus delivered directly fromthe new primary's buffered
packets instead of causing data loss or forwarding delays.
The new primary BS determines the first packet to forward
based on the first ack recieved from the MH. The BS
also maintains a finite-sized FIFO queue of buffered packets
instead of keeping all of them; the size of the queue is
determined by the expected handoff delay.
- Interaction: The new primary BS's snoop agent
may not have cached all packets, since not all packets
may have been buffered due to losses. Since snoop does
not change TCP semantics, it is resistant to such gaps.
- Performance: Performance is strictly improved
using these schemes, both in terms of handoff delay and
throughput.
Relevance
This method solves the wireless TCP problems, and does so without changing
TCP semantics, inducing significant processing overhead, or requiring
recompilation of clients or modifications of FH's TCP stacks.
Flaws
- Invariably, some overhead is incurred by a scheme such as snoop,
although it does perform without extra packet copying.
- State and resources must be maintained by secondary BS's for
the handoff routing to work.
- IP multicast must be used for the handoff routing to work - how
much more expensive than plain multicast is IP multicast?
- The TCP stack on the MH had to be modified to get the fully
snoop optimization.
Back to index