Unlike priority queuing (which will always empty higher-priority queues first), custom queuing allows you to assign bandwidth to different types of traffic based on criteria like protocol and port number. Custom queuing works in a round-robin fashion, moving from queue to queue, ensuring that each is allocated their apportioned bandwidth.
Custom queuing defines a transmission size for each queue in bytes. For example, FTP traffic may be assigned a byte size of 3000, while telnet and HTTP traffic are each defined a byte size of 1500. This would effectively split the bandwidth up such that FTP would have approximately 50% of the bandwidth, while telnet and HTTP would each have approximately 25%. In cycling through the queues, custom queuing would access the FTP queue, send 3000 bytes of data (which would be rounded up to complete a packet if necessary), and then move on to the telnet queue, where it would send 1500 bytes, and so on. Up to 16 custom queues can be defined for a given interface