There are a variety of traffic engineering methods that are used to regulate network traffic. Mostly dealing with queuing, they ensure that transmitted data are received in a timely manner. Following are the common methods. See traffic engineering, traffic shaping and traffic policing. First-In, First-Out (FIFO) Queuing First-Come, First-Served (FCFS) Queuing The simplest queuing method. Packets are placed into a single queue and serviced in the order they were received. Priority Queuing (PQ) Each packet is assigned a priority and placed into a hierarchy of queues based on priority. When there are no more packets in the highest queue, the next-lower queue is serviced. The problem with this method is that lower-priority packets may get little attention. Fair Queuing (FQ) Each packet is assigned a type (flow) and placed into the queue for that type. All queues are serviced round-robin: a packet from one queue, a packet from the next and so on. FQ provides a more uniform service to all packet types than priority queuing (PQ). Weighted Fair Queuing (WFQ) Similar to fair queuing (FQ), except that queues are given priorities and can support variable-length packets. Hierarchical Weighted Fair Queuing (HWFQ) Similar to WFQ, but monitors traffic and evaluates current conditions to adjust queues. Uses worst-case packet delay as its evaluation metric. Weighted Round Robin (WRR) Class-Based Queuing (CBQ) Custom Queuing (CQ) Similar to fair queuing, packets are assigned a class (real time, file transfer, etc.) and placed into the queue for that class of service. Packets are accessed round-robin style, but classes can be given priorities. For example, four packets from a high-priority class might be serviced, followed by two from a middle-priority class and then one from a low-priority class. Deficit Weighted Round Robin (DWRR) A weighted round-robin (WRR) method that uses a deficit counter. A maximum packet size number is subtracted from the packet length, and packets that exceed that number are held back until the next visit of the scheduler. TCP Rate Shaping (TRS) This non-queuing method dynamically adjusts the TCP window size based on real-time evaluation of the traffic flows.