通用流量×××(以后简称GTS)可以对不规则或不符合预定流量特性的流量进行×××,以利于网络上下游之间的带宽匹配。
GTS与CAR一样,均采用了令牌桶技术来控制流量。GTS与CAR的主要区别在于:利用CAR进行报文流量控制时,对不符合流量特性的报文进行丢弃;而GTS对于不符合流量特性的报文则是进行缓冲,减少了报文的丢弃,同时满足报文的流量特性。
GTS的基本处理过程如图14所示,其中用于缓存报文的队列称为GTS队列。
GTS处理过程示意图
GTS可以对接口上指定的报文流或所有报文进行×××。当报文到来的时候,首先对报文进行分类,如果报文不需要进行GTS处理,就继续发送,不需要经过令牌桶的处理;如果报文需要进行GTS处理,则与令牌桶中的令牌进行比较。 令牌桶按用户设定的速度向桶中放置令牌,如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被继续发送下去,同时,令牌桶中的令牌量按报文的长度做相应的减少。当令牌桶中的令牌少到报文不能再发送时,报文将被缓存入GTS队列中。当GTS队列中有报文的时候,GTS按一定的周期从队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较,直到令牌桶中的令牌数减少到队列中的报文不能再发送或是队列中的报文全部发送完毕为止。
为了减少报文的丢失,可以在路由器1的出口对报文进行GTS处理,对于超出GTS流量特性的报文,将在路由器1中缓冲。当可以继续发送下一批报文时,GTS再从缓冲队列中取出报文进行发送。这样,发往路由器2的报文将都符合路由器2的流量规定,从而减少报文在路由器2上的丢弃。相反,如果不在路由器1的出口做GTS处理,则所有超出路由器2的CAR流量特性的报文将被路由器2丢弃。