[Bloat] Jumbo frames and LAN buffers (was: RE: Burst Loss)
Jonathan Morton
chromatix99 at gmail.com
Sun May 15 14:28:57 EDT 2011
On 14 May, 2011, at 11:48 pm, Fred Baker wrote:
> My suspicion is that the right approach is something akin to 802.2 at the link layer, but with NACK retransmission - system A enumerates the data it sends to system B, and if system B sees a number skip it asks A to retransmit the indicated datagram. You might take a look at RFC 5401/5740/5776 for implementation suggestions.
This sounds like "reliable datagram" semantics to me. It also sounds a lot like ARQ as used in amateur packet radio. I believe similar mechanisms are built into 802.11.
The fundamental thing is that the sender must be able to know when sent frames can be flushed from the buffer because they don't need to be retransmitted. So if there's a NACK, there must also be an ACK - at which point the ACK serves the purpose of the NACK, as it does in TCP. The only alternative is a wall-time TTL, which is doable on single hops but requires careful design.
Let's face it. UDP is unreliable by design - applications using it *must* anticipate and cope with dropped and delayed packets, either by exponential RTO or ARQ or NACK or FEC, all at the application layer. And, in a congested network, some UDP packets *will* be lost.
TCP is reliable but needs to maintain appropriate window sizes - which it doesn't at present because a lossless network without ECN provides insufficient feedback (and AQM, which is required for good ECN signals, is usually absent), and in the quest for performance, the trend has been inexorably towards more aggressive window sizing (of which TCP-Fit is the latest example). At the receiver end, it is possible to restrain this trend by reducing the receive window.
Unfortunately, it's useless to expect Ethernet switches to turn on ECN. They operate at a lower stack level than IP, so they will not modify the IP TOS headers. However, recent versions of Ethernet *do* support a throttling feedback mechanism, and this can and should be exploited to tell the edge host or router that ECN *might* be needed. Also, with throttling feedback throughout the LAN, the Ethernet can for practical purposes be treated as almost-reliable. This is *better* in terms of packet loss than ARQ or NACK, although if the Ethernet's buffers are large, it will still increase delay. (With small buffers, it will just decrease throughput to the capacity, which is fine.)
- Jonathan
More information about the Bloat
mailing list