An apparatus for controlling a flow of variable-length packets through a multiport switch comprising: means for receiving a packet that is part of said flow of variable-length packets wherein said packet includes packet-specific header information related to layer 3 and layer 4 protocols; memory having searchable registers that store flow-specific packet forwarding information including application protocol information contained in said layer 4 protocol and a time select vector that indicates consecutive bits of a system counter that are selected to define a pre-established time interval; means for locating, within said memory, flow-specific packet forwarding information specific to said flow of variable-length packets that said received packet is part of, based at least partially on said application protocol information, the forwarding information including a time select vector that is specific to said flow of variable-length packets; means, formed in circuitry that is specific to packet flow control, for comparing the time said received packet arrived in said switch to the time that said flow-specific packet forwarding information specific to said flow was previously accessed by another packet to determine if said pre-established time interval, which is defined by said time select vector, has expired; means, formed in circuitry that is specific to packet flow control, for comparing a credit bucket value that indicates a maximum size packet to the size of said received packet and for forwarding said received packet when the size of said received packet is less than or equal to said credit bucket value that indicates said maximum size packet, and for dropping or limiting said forwarding of said received packet when said received packet is larger than said credit bucket value that indicates said maximum size packet; and means for decrementing said credit bucket value each time a packet from said flow of variable-length packets is forwarded and for refreshing said credit bucket value back to a pre-established credit bucket value each time it is determined that said pre-established time interval has expired. means for receiving a packet that is part of said flow of variable-length packets wherein said packet includes packet-specific header information related to layer 3 and layer 4 protocols; memory having searchable registers that store flow-specific packet forwarding information including application protocol information contained in said layer 4 protocol and a time select vector that indicates consecutive bits of a system counter that are selected to define a pre-established time interval; means for locating, within said memory, flow-specific packet forwarding information specific to said flow of variable-length packets that said received packet is part of, based at least partially on said application protocol information, the forwarding information including a time select vector that is specific to said flow of variable-length packets; means, formed in circuitry that is specific to packet flow control, for comparing the time said received packet arrived in said switch to the time that said flow-specific packet forwarding information specific to said flow was previously accessed by another packet to determine if said pre-established time interval, which is defined by said time select vector, has expired; means, formed in circuitry that is specific to packet flow control, for comparing a credit bucket value that indicates a maximum size packet to the size of said received packet and for forwarding said received packet when the size of said received packet is less than or equal to said credit bucket value that indicates said maximum size packet, and for dropping or limiting said forwarding of said received packet when said received packet is larger than said credit bucket value that indicates said maximum size packet; and means for decrementing said credit bucket value each time a packet from said flow of variable-length packets is forwarded and for refreshing said credit bucket value back to a pre-established credit bucket value each time it is determined that said pre-established time interval has expired.