Sunday, September 28, 2008

Wireless TCP

So, this paper was focused on the ways to allow TCP to run over a wireless network.

I'm intrigued that there was so much work on mechanisms that clearly violate the end-to-end principle. I'm guessing that a big reason for this is that the wireless link is the last hop. It's not like we're doing anything to the internals of the network. This also might help with mobility.

The end-to-end paper does give reasons to push functionality into the network, but not at the transport layer. The point of it is to push functionality down into lower layers if necessary, not push layers down, as some of these solutions have done. This is the link-layer solution that is actually used.

So, as to why this is a great idea. An interesting point is that wired and wireless networks are different. One reason not to push reliable transmission into a wired network is that it requires state at the router. This isn't possible at the high speed required of wired networks. However, wireless has a much lower bitrate, so we presumably have excess computation power (maybe we should have used it to save power...) This power is used to store and process these packets and retransmissions.

The only thing I had not contemplated about this work before is the effect of reordering. It's not obvious to me that the link requires in-order processing, but it seems as though TCP has become dependent on a property of classical internetworking that perhaps it should not have. I'm not sure of the implications of that, but it's at least a clear indicator that this is the case.

4 comments:

Ari Rabkin said...

One of the weaknesses of the end-to-end argument is that it assumes we have equal control of the ends and the middle. We don't. In reality, we usually get one or the other, and not both. :(

Yanpei Chen said...

Also, one of the results showed that basically vanilla TCP Reno basically fails even at very low error rates. So need the link layer stuff to not fully supplant TCP reliable delivery, but to in fact make it possible.

Kurtis said...

Ari-> No it doesn't it assumes we have no control over the middle. We do need it on both ends, which we have.

Matthias Goerner said...

Yeah, I think that TCP should be made to forgive a small amount of reordering.
And I also think that instead of violating the layered structure by making one layer look into the headers of another layer, there should be explicit reoder bits which are set if a packet traverses a link which might introduce reordering.