Controlling the flow of information in a system is vital to successful operation. Much like the rules of the road which keep drivers safe while using roads and highways, PCI Express has a well defined set of rules that control the flow of information. However, there is much flexibility built into the protocol, allowing developers some freedom in choosing how to implement flow control for their own devices.