Although quality of service (QoS) can be about many aspects of network performance, delay is a QoS parameter that can significantly impact real-time applications like interactive voice and video. Delay in a packet network arises from several different sources within the network. Some are constant and some are variable; some can be managed in real time, and some can be engineered into the network. The sources are listed below.
- Packetizing delay: This is the amount of time it takes to fill a packet. For pure data applications, packetizing delay is typically a non-issue. For real-time applications, the time it takes to fill a packet is governed by the rate at which the information can be gathered and the size of the packet to be built. For example, if we are packetizing pulse code modulated (PCM) voice, the process generates 8 bits (one octet) every 125 microseconds. If the packet to be filled is 1000 octets long, it will take .125 seconds (125 milliseconds) to fill the packet. For voice, that is near the maximum total end-to-end delay that can be sustained. Smaller packets are advised. It should also be noted that this is the only one of the five sources of delay that occurs only once: when the packet is first created.
- Serialization delay: Also known as transmission delay, this is the length of time it takes to completely transmit a packet onto a facility, which is a function of the transmit rate of the trunk. A 1000 octet packet (8000 bits) will take .125 seconds to transmit on a DS-0, and .0000008 seconds (.8 microseconds) to transmit onto an OC-192 facility (10 Gbps).
- Propagation delay: Once a packet is transmitted, the final bit has to flow the entire length of the facility to arrive at the receiver at the other end. The time it takes for this to occur is the same regardless of the transmission rate or nature of the medium. An electron or a photon flows down a piece of copper or fiber (respectively) at approximately the same rate: roughly one foot per nanosecond (about 2/3 the speed of light). Propagation delay is always a function of the length of the facility, plus a little more for any repeating nodes in the line.
- Processing delay: Once a packet is received, it will take a finite period of time for the switching node to give it attention, make a switching decision, and pass it through the switching fabric of the node. This is largely a function of the architecture of the switch.
- Queuing delay: Finally, once the switching decision is made and switching is accomplished, the packet is ready to be transmitted on the next facility. If the facility is currently in use, the packet has to wait in line to be transmitted. This line, called a queue, can be shorter or longer depending on the load arriving at the switching node to be forwarded on the next link. Thus queuing delay is a function of the load (percent utilization) of the trunk.
Total delay across the network is the sum of these five sources. Note that if the application is data, packetizing delay is virtually eliminated. If the packet has to traverse multiple links and nodes, the other four sources of delay are related for each link and node across the network.
Engineering the network for types of switches and routers, speed of the links, and paths the links take is about as much as can be done for serialization, propagation, and processing delay. Queuing delay, however, is the great source of variable delay. Managing these queues and access to the network as a whole is a major focus of QoS implementations.