Buffer credits, also called buffer-to-buffer credits (BBCs), allow data communication in a Fibre Channel storage area network (SAN) where there are long spans of fiber optic cable. Unless storage distance extension is employed, latency (the time required for an impulse to make a round trip) imposes a distance limitation of a few kilometers between the source and the destination in the network. If the length of the fiber optic cable span exceeds this limit, the throughput drops sharply. The buffer-credit method, a form of storage distance extension, gets around this problem, making it possible to use offsite storage facilities hundreds of kilometers from the work site.
In buffer-credit flow control, the source and destination set the number of unacknowledged frames (buffer credits) allowed to accumulate before the source stops sending data. This is a power of 2, such as 4, 8, or 16. In some SANs it can range higher, but it is rare to have more than 256 buffer credits because of cost constraints. A counter at the source keeps track of the number of buffer credits. Each time a frame is sent by the source, the counter increments by 1. Each time the destination receives a frame, it sends an acknowledgment back to the source, which decrements the counter by 1. If the number of buffer credits reaches the maximum, the source stops transmission until it receives the next acknowledgement from the destination. This prevents loss of frames that may result if the source races too far ahead of the destination.
As the length of a fiber optic cable span increases for a given throughput, the number of buffer credits required to ensure optimum performance increases in direct proportion. Also, as the throughput increases for a given span of fiber optic cable, the required number of buffer credits increases in direct proportion.
Storage area networks with large buffers, or other methods of storage distance extension, are expected to become increasingly common as the demand for long-distance, high-volume, high-speed offsite storage increases.