TCP/IP (Transmission Control Protocol/Internet Protocol) is the transport mechanism underlying the Internet. It is also the underlying protocol for many intranets and business applications in existence today. TCP/IP was started as an educational and scientific network. It was not designed to handle high-volume traffic associated with a mixture of applications that have different service level requirements. Because of this design point, there were few effective measures incorporated into TCP/IP to handle applications with conflicting service level requirements.
Through the growth of the Internet, which includes the world wide web, requirements have arisen for better control of service levels for host TCP/IP networks. This has become especially true where the TCP/IP host controls business applications or transactions. The design of TCP/IP is such that each physical network interface adapter has associated with it an address. This is unique within the entire network and is the method by which all other devices communicate with the adapter or the devices connected through the adapter. If a given TCP/IP host has multiple interface adapters, the user communicating with the host must select an interface adapter which they chose to use. The user must then reference the host by the address of the particular adapter which the user has chosen to use. After the routing protocols have converged all the routing tables contained within hosts and routers throughout the network, they all will agree on one route for datagrams from one address on one host to one address on another host.
The above method works well when all applications executing on a given host at one time require the same level of service, or when the interface adapters are not highly utilized, or when the host has only one network interface adapter. However, in many cases a large host system simultaneously executes multiple applications with different service level requirements, has more than one interface adapter available, and highly utilizes some of those interface adapters. For example, when a file transfer protocol (FTP) server is transmitting enough traffic to almost fully utilize some network interface adapters on a host, TELNET (interactive) connections to that server that use those same highly utilized links may suffer from unacceptable interactive response time, because TELNET traffic may have to wait for the transmission across the network interface adapters of the much more voluminous FTP traffic.
Two methods have been proposed for dealing with different service level requirements in a TCP/IP host. First, the Internet Protocol header includes a field with which the host can indicate the type of service requested for the datagram associated with this header. If the Minimum Delay bit in that field is turned on, then all hosts and routers transmitting the datagram should try to transmit it with minimum delay. If the Maximum Throughput bit in that field is turned on, then all hosts and routers should try to transmit it via the highest bandwidth path available. (The header of an IP datagram should not have both the Minimum Delay and the Maximum Throughput bits turned on.) For example, if a host has two links, one a low-bandwidth terrestrial link and the other a high-bandwidth satellite link, the administrator may prefer for high-bandwidth FTP traffic to use the high-bandwidth satellite link despite its inherent delay, and for low-bandwidth but interactive TELNET traffic to use the inherently lower-delay terrestrial link. However, since very few hosts or routers consider the settings of these bits when making routing decisions, turning on either of these bits is not usually an effective procedure. For additional information on the minimum delay bit and the maximum throughput bit see RFC 791, "Internet Protocol".
The second method for addressing the problem is for some hosts have one output queue for datagrams from interactive applications, such as TELNET and rlogin, and another output queue for datagrams from all other applications, including FTP, and have the network interface layer assign datagrams to queues according to the datagram's TCP port number. In some cases, these hosts send out all the datagrams from the interactive queue before sending out any from the non-interactive queue. However, by forcing the high-bandwidth traffic to wait to use the same physical interface adapter as the low-bandwidth traffic, this process results in low throughput if the adapter is slow, or low utilization if the adapter is fast. Network administrators would prefer to have the more voluminous FTP traffic fully utilize a higher-bandwidth (and therefore more expensive) adapter, and have the less voluminous TELNET traffic experience smaller delays over a less highly utilized low-bandwidth adapter, where the lower utilization would matter less because the low-bandwidth adapter is less expensive. Current TCP/IP software limitation do not support traffic splitting, even in the presence of multiple network interface adapters that can reach a common destination. Therefore multiple queues for this purpose, in addition to multiple routes to a common destination are not allowed in the present implementation of TCP/IP. These limitations lead to traffic bottlenecks at the network interface adapters.