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