Hierarchical Token Bucket
! "# # $ % &! % '( !) #(#
! " !
# $ % &$ '( )
* + , - #. #
HTB (Hierarchical Token Bucket) bandwidth management implementation on Jenderal Soedirman University is an improvement from PCQ (Per Connection Queue) bandwidth management. PCQ divide traffic automatically based on active users, it's weakness is in dividing a large amount of active users. The HTB impelentation refers to Mikrotik RouterOS queue tree, consists of class and parent that is filled by outgoing*interface. Each parent is adjusted based on IP adress block on each node, and determine packet*mark through IP* firewall*mangle. From the implementation result, 2 Global*total or main parent can be obtained, Unsoed down and Unsoed up. 29 Global*in or parent child down and 29 Global* out or parent child up which each parent max*limit is determined by 17,5 Mbps. The users satisfaction based independent sample t*test give the mean value of HTB browsing is 2,823 and PCQ browsing is 2,79. The mean value of HTB downloading is 2,616 and PCQ downloading is 2,636. Those values show that theres no significant differences in Unsoed internet users satisfaction.
Keywords : Implementation of bandwidth, Mikrotik RouterOS, queue, parent.
$ % bandwidth /0 Per
Connection Queue! *
1 2client % user
1# 3 !
% . bandwidth bandwidth*
. real # 4
%
!
% bandwidth Hierarchical Token
Bucket)! % %
bandwidth
1 ! % 1
bandwidth %
1 % % #
1 1
bandwidth . %
% bandwidth /0
# 5
% bandwidth #
2
bandwidth #
6# Hierarchical Token Bucket
% link sharing
. # 7 link
sharing! % %
!
bandwidth 2
6 ! *''8 #
7 # & link sharing.
" Token Bucket Filter) estimator
# " setting!
Estimator
rate! rate
) Hierarchical Token Bucket) $ % Bandwidth Router)
intuitif %
bandwidth #
ceil bandwidth
base rate ceil rate* #
estimator !
% bandwidth bandwidth
ceil#
# ) $ % $
7 *#Packet marking.
5 packet marking
*! % 6 ! *''9 #
# Mangle queue#
*# Mangle chain prerouting
simple queue.
:# queue chain !
queue tree# ;. Mangle chain prerouting
1 input forward#
(# Mangle chain postrouting
1 output forward#
8# mangle chain forward,
queue global out interface
queue#
/. Router ) #Router
1 % !
%
% #
% !router
$ Router4 8 < )5
54$ / Personal
Computer#
* # $ Router 4 Queues
$ Router4 =!
> ?base network
router# 5
# 6
Windows Application @ ? #
feature
bandwidth $
Router4 6 ! *' ' #
$ )
!subnet!protokol!port#
$ #
$ .
browsing#
$ 2
#
. !
#
6# 2
#
# .
5 !
Hierarchical Token Bucket %
bandwidth %
# 2
#
# $ %
% bandwidth
network #
*# user 1 2
node bandwidth node#
:# bandwidth %
#
;# ) address
% #
(# $
% bandwidth#
# .
!
. #
# $ . bandwidth
2
node %
+
*# $ ) address
bandwidth# #
2 #
# $ queue tree $
class parent,
outgoing*interface#
*# $ packet*mark!
ip*firewall* mangle.
:# $ max*limit class
parent .
! % $)A
Maximum Information Rate# #
! %
% % bandwidth
% bandwidth
throuhgput node
#
%
B *' '
8#;9: users# &
! % 2 user 1
% **;users #
1 bandwidth *C
4 D : 3
*' ' #
# 3 2
parent % 'C#''2
B#'' @)
6#
!
0
% bandwidth
/0 router
# # /0
3 rate
$ !
user
%
bandwidth $ # 3
rate bandwidth
2 subqueue2
!
bandwidth
subqueue2 #
Queue type − Type name = PCQunsoed_down − Kind = pcq − Rate = 1 Mbps − Limit = 50
− Clasifier = dst*address
− Type name = PCQunsoed_up − Kind = pcq − Rate = 512 kbps − Limit = 50
− Clasifier = scr*address
/0 rate
$ !
%
. bandwidth
bandwidth* .
real #
*#
1 %
bandwidth router
:# throughput
avg rate
bandwidth 2 parent! 2
parent child % bandwidth
2 % 2 user 1
#
7 6E A67
F A
@ $ G*
B!(
! + '#'#'#'G 8 (;;!9( *8!:( '! B8*CB *!'(C(' 9
, - '# #'#'G 8 ''!8 ;!C: '!'* (8 ( '!:BB:*89
'#*#'#'G 8 8;!;: :! 9 '!' ;*;'; '!*;9*'B8
+& + '#:#'#'G 8 ((!B: B!8; '!':; '(8 '!(98C;C;
-! #+##& '#;#'#'G 8 9(! ;!:; '!' 9:B; '!::9';B;
. '#(#'#'G 8 :!8 '!8( '!''*9' B '!'('BB9
! #
' & # '#8#'#'G 8 B'!*9 C! 8 '!':8;*89 '!8:B;B (
+ & '#B#'#'G 8 C:!99 ;!'9 '!' C*(C '!: 9( B
+ # '#C#'#'G 8 B!CC (!8 '!'*(';:( '!;:C*8 B
'#9#'#'G 8 *:!;; ! ; '!''('C9 '!'C9'(C(
# *#
+ & '# '#'#'G 8 * C!;: '!(8 '!';B ;'C '!C*;98:*
!+! '# #'#'G 8 *B !BC :!'C '!'(C:9': !'* C*9;
) # '# *#'#'G 8 (B!8 *!B9 '!' *;(;C '!* B9(9
'# :#'#'G 8 :!B9 '!88 '!''*9;8: '!'( (8'*
'( '# ;#'#'G 8 :;(!8 8!B: '!'B;8C;* !:'89B*9
,# # '#:*#'#'G 8 B!;( '!:B '!'' 8( B '!'*C9'(
/ " '#::#'#'G 8 B8!8 ;!': '!' B99': '!: ;C*9B
#(# # '#:;#'#'G 8 :8!*B !9 '!''C(*8; '! ;9* *
&#+#& '#:(#'#'G 8 *' ! '!(C '!';B*: '!C*8(*(8
'#:8#'#'G 8 (;B!B9 *C!C: '! *C8998 *!*(**;:*
#& #& '#:B#'#'G 8 (;9!B( *C!9: '! *9 ;8 *!*8''((;
" ) '#:C#'#'G 8 :B:!;* 9!8( '!'CBB 9: !(:('CBB
# *#
# 0#&# '#:9#'#'G 8 *! (!9 '!'*8::C '!;8'9 89
, '#;'#'#'G 8 :!8 '!B* '!'':* ; '!'(8*;B(
(# #&
# # #+# '#; #'#'G 8 **!(9 ! 9 '!''(: *: '!'9*98;8
+#&#&
'#& "#! #& '#;*#'#'G 8 *(!8 !:( '!''8'*8( '! '(;8;
' + #& '#8;#'#'G 8 ' ' ' '
#" 1#+#" '#88#'#'G 8 8!9( '!C9 '!'':9B: '!'89(*C
+& +
! 1#" &))# '#8B#'#'G 8 C8!9: 9!C; '!';:9*88 '!B8CB (B
) Hierarchical Token Bucket) $ % Bandwidth Router)
7 :#Queue tree #
down parent !
max limit down B#(''
B!( $ throughput
8!B $ bandwidth
# Throughput parent child
2 !
parent child bandwidth
% min limit
# 6 bandwidth
! bandwidth
parent*parent service.
client !
client bandwidth # Max*limit
parent child max*limit
parent # % ! parent child
. max*limit! .
max*limit parent . max*limit
!"# $ % $&
& #
&# " # $'#& (#&
(#) #
*
# 6 1 /0
Router
*#Independent samples test
& $ 3 $ 5 # #
$
# /0 8(' :!'; ! 9* !';B
*# 8(' :! ! (8 !';(
# /0 8(' *!:B !'B* !';*
*# 8(' *!;; ! '( !';:
# /0 8(' *!98 ! 98 !';B
*# 8(' *!9* ! B* !';8
5
# /0 8(' *!BC !'(: !';
*# 8(' *!C; ! '' !';:
5
# /0 8(' *! 9 !':' !';'
*# 8(' *!:: !'8C !';*
5
# /0 8(' *!9; ! 8; !';8
*# 8(' *!8C ! *8 !';;
% #
H
% bandwidth /0 #
E + &
E + /0
% *#
# browsing '8#'' D
'#'' @) # 5 mean
% /0 .
:!'; I :!
. #
1 !
1
#
1 . 9(F#
*# browsing '#''
D 8#'' @) # 5 mean
% /0 .
*!:B I *!;;
. #
1 !
1
#
1 . 9(F#
:# browsing
8#'' @) # 5 mean
% /0
*!98 I *!9*
. #
1 ! /0
1
#
1 . 9(F#
;# download '8#''
D '#'' @) # 5 mean
% /0 .
*!BC I *!C;
. #
1 !
1
#
1 . 9(F#
(# download '#''
D 8#'' @) # 5 mean
% /0 .
*! 9 I *!::
. #
1 !
1
#
1 . 9(F#
8# download
8#'' @) # 5 mean
% /0
*!9; J *!8C
. #
1 ! /0
1
#
1 . 9(F#
/# 4 $ Shell Script> ?
%
. shell script bash
linux# #
# Shell script . file . # ?
backup system schedule#
22 H 22 HKK
1 +GG 9*# 8C#;#*(;G . # ?
*# $ % file
L 2 # .#
2 1 L 2 # .
. L 2 # .
. GL JJ L 2 # .
:# $ bandwidth 1
) address 2 node.
H B9*' H '#'# " H '# # $6 H '#*#
H '#:# H '#;#
;# $ % user 1#
?HM . # ? N . 2
O . M?
H?2(
5. $ user 1! %
bandwidth node.
HM . # ? N 2"
M N . 2
, HM .
K . H*PM Q ''GM K N .
, HM .
K . H'PM , QM G ''K N .
. K KH M !
M , F ! % H
M , &
8# $ % bandwidth node limit
at fileL 2 # .#
. 2 H' 2 H' 2
H' H 2 H' R JJ L 2
# .
. K ?2 H' H ,
H(2. H K JJ L 2
# .
B# $ upload
1 File Transfer Protocol
2A L 2 # .
1 +GG +- 9*# 8C#;#*(;
C# > system sechuduler
import file L 2 # .
queuetree % $ #
6# & 5
#
# ) % bandwidth
router * Global*
total paren ! down
up# *9Global*in parent child down
*9 Global*out parent child up
2 parent max*limit
B!( $ #
*# 2
% bandwidth
/0 2
mean! browsing
*!C*: browsing /0
*!B9# 2
download *!8 8
download /0 *!8:8#
5 2 browsing
download %
. 1
%
bandwidth #
#
# % user 1
% . ('' user!
bandwidth B!(
$ ! user 1 2
% bandwidth :(
bandwidth
user! user
2
bandwidth user #
% !
% bandwidth
#
*# 7 1 bandwidth node
script shell report .
% #
,
6 # *''8# Bandwidth Control# 6 !
+GG # #. G . G G*#9G
GL ,. #
: *' ' #
6 # *''9#MikroTik RouterOS Workshop : QoS
Best Practice. $ $ /S . A .#
+GG # #. G G/T
'9G0 ,$ # 1 :
*' ' #
6 # *' '# Manual Queue# 6 !
+GG # #. G G$ +0