HOWTO ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ tcng ΠΈ HTB
ΠΠ΅ΡΡΠΈΡ 1.0
ΠΠ°ΡΡΠΈΠ½ Π. ΠΡΠ°ΡΠ½
Β© 2003, Martin A. Brown
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no invariant sections, with no Front-Cover Texts, with no Back-Cover Text. A copy of the license is located at www.gnu.org/copyleft/fdl.html.
1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ tcng (Traffic Control Next Generation) Ρ HTB (Hierarchical Token Bucket) Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° Linux-ΠΌΠ°ΡΠΈΠ½Π΅.
ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ²,
β’ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Ρ ΠΎΡΡ Π±Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ
β’ ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ iproute2 ΠΈ tcng ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠΌΠ΅ΡΡ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ RPMS ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ SRPM
β’ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΡΡΡ ΡΠ΄ΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ htb ΠΈ dsmark
β’ ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄ΡΠΎ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ htb ΠΈ dsmark
Note
ΠΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΡΠ΅Ρ Π½Π° ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ. ΠΠ²ΡΠΎΡ ΠΆΠ΄Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π½ΡΡ ΠΈ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΡΡ ΠΎΡΠΊΠ»ΠΈΠΊΠΎΠ² ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ < [email protected]>. ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ. ΠΡΠ΅Π³Π΄Π°.
1.1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ?
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ β Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ΅Π΅ Π² ΡΠ΅Π±Π΅ Π²ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π² ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ: ΠΊΠ»Π°ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (classification) β ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΈΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΡ; ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° (policing) β ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ Π±Π°ΠΉΡ Π² ΠΏΠΎΡΠΎΠΊΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ; ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (scheduling) β ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°ΡΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ; Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° (shaping) β ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΡΠ΅ ΡΡΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² (ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΠΎΠΊΠ΅Π½ΠΎΠ². Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΈ ΠΈΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΡΠ°ΡΠΈΠΊΠΎΠ² ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ Π±Π°ΠΉΡ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠΈΡ Π·Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ»ΠΈ Π±Π°ΠΉΡ (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΊΠ΅Π½Ρ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°Π»ΠΈΡΠΈΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π°. ΠΠ±ΡΠ΅Π΅ ΠΎΠ±ΡΠ°Π·Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠΎΠΊΠ΅Π½Ρ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π±ΡΡΠ΅ΡΠΎΠΌ (bucket). ΠΡΠ»ΠΈ ΠΊΡΠ°ΡΠΊΠΎ, ΡΠΎ Π±ΡΡΠ΅Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅Ρ Π΄Π²Π΅ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ: ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΊΠ΅Π½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ (ΡΠ°Π·ΠΌΠ΅Ρ Π±ΡΡΠ΅ΡΠ°) ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΡΠ΅Ρ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠΎΠΊΠ΅Π½Π°ΠΌΠΈ.
Π ΡΠ΅ΠΊΡΠΈΠΈ 1.2 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ Π±ΡΡΠ΅ΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ Π² Linux.
Π Linux, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°. ΠΠΎΠΌΠ°Π½Π΄Π° tc ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΎ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ ΡΠ΄ΡΠ°, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ°. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²Π΅ΡΡΠΌΠ° Π·Π°Π³Π°Π΄ΠΎΡΠ΅Π½. ΠΡΠΎΠ΅ΠΊΡ tcng ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π΄ΡΡΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊ ΡΠ°ΠΊΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΠ΅ ΠΊΠ°ΠΊ tc, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΡΠ²ΠΎΠΉ ΡΠ·ΡΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ, ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ, ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ.
1.2. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ htb?
Hierarchichal Token Bucket β ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΎΠ²Π°Ρ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ ΠΠ°ΡΡΠΈΠ½ΠΎΠΌ ΠΠ΅Π²Π΅ΡΠΎΠΌ (Martin Devera) Ρ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ CBQ. ΠΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠΎΡΠ΅ΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ HTB ΠΈ Π΅Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΡΠ΅ Π°Π²ΡΠΎΡΠ° ΠΈ ΡΠ°ΠΉΡΠ΅ Π‘ΡΠ΅ΡΠ° ΠΠΎΡΠ½Π° (Stef Coene). ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ HTB.
ΠΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ, HTB ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΡ Π±ΡΡΠ΅ΡΠΎΠ² ΡΠΎΠΊΠ΅Π½ΠΎΠ² (Π΄Π°, Π½Π°Π²Π΅ΡΠ½ΠΎ Π²Ρ ΠΈ ΡΠ°ΠΌΠΈ Π΄ΠΎΠ³Π°Π΄Π°Π»ΠΈΡΡ ΠΎΠ± ΡΡΠΎΠΌ [Π ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ HTB ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ "ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±ΡΡΠ΅Ρ ΡΠΎΠΊΠ΅Π½ΠΎΠ²" β ΠΡΠΈΠΌ.ΠΏΠ΅Ρ.]). ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. ΠΠ»Π°Π²Π½Π°Ρ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΡ ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ (root qdisc) .
ΠΠΎΡΠ½Π΅Π²Π°Ρ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ (Π² ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ ΠΊΠΎΡΠ½Π΅Π²Π°Ρ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ²). ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ HTB ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΄Π²ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²: rate ΠΈ ceil. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Π΄Π»Ρ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ Π·Π°Π΄Π°ΡΡ ΠΎΠ±ΡΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π°.
Π HTB, rate Π·Π°Π΄Π°Π΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π° ceil, ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ceiling, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ. ΠΡΠ±Π°Ρ ΠΏΠΎΠ»ΠΎΡΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠ°ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ rate ΠΈ ceil ΠΎΠ΄Π°Π»ΠΆΠΈΠ²Π°Π΅ΡΡΡ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΎΡΠΊΡΠ΄Π° Π²ΡΡΠ΅ΠΊΠ°Π΅Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² rate ΠΈ ceil Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
Π ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π£ ΠΊΠ»Π°ΡΡΠΎΠ²-ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ², Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² rate ΠΈ ceil Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ HTB ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎΠ»ΠΎΡΠ° ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ. ΠΡΠΎ ΡΡΠ°Π½Π΅Ρ ΡΡΠ½Π΅ΠΉ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
Hierarchical Token Bucket ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ²ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ Π² linux; ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ rate ΠΈ ceil Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΏΠΎΠ»ΠΎΡΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ Π·Π°Π΄Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΡΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ (Π΄ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ceil).
ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ (ΠΌΠ°ΡΠΈΠ½Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ β ΠΡΠΈΠΌ.ΠΏΠ΅Ρ.) ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΠΠ‘ ΠΈ Internet. ΠΠ±ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΡ ΠΈ ΠΎΡΠΈΡΠ½ΡΡ ΡΠ΅ΡΡΡ , Π³Π΄Π΅ Π²ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΡΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ DSLβ ΠΈΠ»ΠΈ T1-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ.
ΠΠ° Π΄Π΅Π»Π΅ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ°Π²Π½ΡΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΊΠ°Π½Π°Π»Π°, ΠΌΠΈΠ½ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ Π΅Π΅ ΡΠ°ΡΡΡ.
1.3. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ tcng?
Traffic Control Next Generation (tcng) β ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ ΠΠ΅ΡΠ½Π΅ΡΠ° ΠΠ»ΡΠΌΠ΅ΡΠ±Π΅ΡΠ³Π΅ΡΠ° (Werner Almesberger) ΠΏΡΠΈΠ·Π²Π°Π½Π½ΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΡΠ½ΡΠΉ, Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ tcc ΠΈΠ· Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° tcng ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠ·ΡΠΊ tcng Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, tcc ΡΠΈΡΠ°Π΅Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΠΉΠ» (ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠ»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²Π²ΠΎΠ΄) ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ tc (ΡΠΌΠΎΡΡΠΈΡΠ΅ Π½ΠΈΠΆΠ΅ iproute2) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ Π² ΡΠ΄ΡΠ΅.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΡ ΠΏΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ tcng Π·Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΠΆΠ°ΠΊΠΎΠ± Π’Π΅ΠΏΠ»ΠΈΡΡΠΊΠΈ (Jacob Teplitsky), Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΡΠ°ΡΡΠ½ΠΈΠΊ ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΡΡΡΠ»ΠΊΠΈ LARTC ΠΈ ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° tcng, Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ htb Π΄Π»Ρ tcng.
Π£ΡΠΈΠ»ΠΈΡΠ° tcc ΠΌΠΎΠΆΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², Π½ΠΎ Π² ΡΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΈ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ° Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ tcng ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ TCNG.