Another in the series of chalk talks about parameters you’ll find in the Intel® PROSet for Windows* GUI to modify the behavior of the driver.
This time out: The impressive sounding, but misunderstood Adaptive Inter-Frame Spacing.
Here the shot from my desktop.
(Yes I have a laptop and a desktop. You should too. )
What is it?
Adaptive Inter-Frame Spacing is a logical way for the driver to modify the Inter-Frame Spacing as time goes by.
What is Inter-Frame Spacing?
Inter-Frame Spacing (IFS) is sometimes called wait after win, but it is really concerned about the space between Ethernet frames. Ethernet frames don’t run back to back without a gap; there is an idle gap required so the collision detection stuff back from its origins as a half duplex technology could work. The time between frames has a legal minimum, but since frames might be forever apart, there is no maximum. You just don’t get anymore frames. The minimum case is the interesting one for this discussion, because if you shorten the time between frames, you can fit more frames into a specific time period. Imagine cars moving down a busy highway. The cars are the Ethernet frames. The space between cars is the IFS. The driver in both cases can adjust the space between the cars or the frames. And just like in the highway, if you get the frames too close together you can’t tell where one begins and the other ends. On a highway this leads to crashes; in Ethernet it’s way less messy, but the frames can get concatenated and thereby discarded. And if there was a TCP/IP packet in the middle of a long file transfer and the transfer has to start over, then the extra packets gained by having less IFS is lost by having to retransmit the datagram. Don’t be tempted to be penny wise and pound foolish.
When should I turn it on?
Adaptive Inter-Frame Spacing is always ‘Disabled’ as the default. This isn’t because we don’t love the feature. We do. But Gigabit is a full duplex feature and the amount gained by turning it on is usually minor unless you’re doing full line rate for extended time periods. For a few bursts a day, the reliability outweighs the extra packets you could fit in. If you’re running that long at line rate, consider 10 Gigabit. Back in the 10/100 days, AIFS could can you a nice performance gain across your network, but in a switch environment it becomes more risk than reward. It can also lower latencies since the packets have less time between them.
What if I do turn it on?
If you do turn it on, know your infrastructure well. In a race course, race cars can get really close together, but that’s because it’s a bunch of well know pieces. If you know all the pieces of your infrastructure can handle a lower IFS, and you need the extra performance, turn on AIFS. But keep an eye on discards and other error counters to make sure the attempt at higher performance isn’t backfiring on you. Race cars can be that close together because there aren’t a lot of bumps in the road and all of the drivers are highly trained professionals. If you put me into the race track you’d better bet that everyone would give my car a bigger packet gap. Same rule applies on a network. If you don’t know it can take it, it’s not worth the risk.
Thanks for using Intel(R) Ethernet.