Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠΎΡΠ½ΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΏΠΎΠΊΡΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠ². ΠΠΎ Π΄Π°ΠΆΠ΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠΌ Π² ΡΡΠΊΠ°Ρ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ±ΠΎΠΉ Π»ΠΈΡΡ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ. Π Π΄ΠΎΠΊΠ»Π°Π΄Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Next Hop 2020 Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΡΠ΅ΡΠΈ ΠΠ¦, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ β Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡ Π»Π΅ΡΠΈΡ ΡΠ΅Π±Ρ ΡΠ°ΠΌ Π·Π° ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ. Π’ΠΎΡΠ½Π΅Π΅, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΡΠΈΠ½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ Π΅Π΅ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ.
ΠΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² ΡΠ΅ΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Ρ ToR, ΡΠΎ ΡΠ²ΠΈΡΡΠ° Π² ΡΡΠΎΠΉΠΊΠ΅. ToR ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° Π»ΠΈΠ½ΠΊΠΎΠ². ΠΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ ΠΈΠ΄ΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ, Π΄ΡΡΠ³ΠΈΠ΅ β ΠΈΡ Π² N ΡΠ°Π· Π±ΠΎΠ»ΡΡΠ΅ β ΠΈΠ΄ΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΠΏΠ°ΠΉΠ½ΠΎΠ² ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠΎ Π΅ΡΡΡ ΠΊ Π΅Π³ΠΎ Π°ΠΏΠ»ΠΈΠ½ΠΊΠ°ΠΌ. ΠΠΏΠ»ΠΈΠ½ΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠ°Π²Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠΌΠΈ, ΠΈ ΡΡΠ°ΡΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρ Π°ΠΏΠ»ΠΈΠ½ΠΊΠ°ΠΌΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Ρ Π΅ΡΠ° ΠΎΡ 5-tuple, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΎΠ΄ΡΡ proto, src_ip, dst_ip, src_port, dst_port. ΠΠ΄Π΅ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΡΠΏΡΠΈΠ·ΠΎΠ².
ΠΠ°Π»ΡΡΠ΅, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠ»Π΅ΠΉΠ½ΠΎΠ²? Π‘ΠΏΠ°ΠΉΠ½Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ, Π° ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΡΠΏΠ΅ΡΡΠΏΠ°ΠΉΠ½ΠΎΠ². ΠΠ° ΡΡΠΏΠ΅ΡΡΠΏΠ°ΠΉΠ½Ρ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π±ΡΠΊΠ²Π° X, ΠΎΠ½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΊ ΠΊΡΠΎΡΡΠΊΠΎΠ½Π½Π΅ΠΊΡ.
Π ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΡΡΠΎ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠΏΠ°ΠΉΠ½Π°ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠΎΡΡ. Π§ΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π½Π° ΡΡΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅? ΠΡΠ»ΠΈ Ρ Π½Π°Ρ ΠΈΠ΄Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠΉΠΊΠΈ, ΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· ToR. ΠΡΠ»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈΠ΄Π΅Ρ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠΏΠ°ΠΉΠ½Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΡΠ»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ β ΠΊΠ°ΠΊ Π·Π΄Π΅ΡΡ, ToR 1 ΠΈ ToR 2, β ΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠΏΠ°ΠΉΠ½Ρ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ, ΡΠ°ΠΊ ΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΠΊΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΠΎΡΡΠΎΠ²Π°Ρ Π΅ΠΌΠΊΠΎΡΡΡ, Π·Π°ΠΏΠ°Ρ ΠΌΠ΅ΡΡΠ° Π² Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ΅ ΠΈ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π²ΠΎΠ»ΠΎΠΊΠ½ΠΎ, ΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ»Π΅ΠΉΠ½ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ°ΡΡΠΈΡΡ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ²ΡΡΠ°Ρ ΠΎΠ±ΡΡΡ Π΅ΠΌΠΊΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ° Π±ΡΠΌΠ°Π³Π΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ. ΠΡΠ»ΠΎ Π±Ρ ΡΠ°ΠΊ Π² ΠΆΠΈΠ·Π½ΠΈ. ΠΠΎ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ ΡΠ°ΡΡΠΊΠ°Π· Π½Π΅ ΠΎΠ± ΡΡΠΎΠΌ.
Π― Ρ ΠΎΡΡ, ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ. Π£ Π½Π°Ρ Π²Π½ΡΡΡΠΈ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠ΅ΠΉ. ΠΠ½ΠΈ ΡΡΠ»ΠΎΠ²Π½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ. ΠΠ΄ΠΈΠ½ ΠΏΡΡΡ Π²Π½ΡΡΡΠΈ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ToR. ΠΠ½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ Π½Π°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΡΠ΅ΠΉ ΡΠ°Π²Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΏΠ»Π΅ΠΉΠ½ΠΎΠ². ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΡΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° ΠΏΠ»Π΅ΠΉΠ½ΠΎΠ² Π½Π° ΡΠΈΡΠ»ΠΎ ΡΡΠΏΠ΅ΡΡΠΏΠ°ΠΉΠ½ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ»Π΅ΠΉΠ½Π΅. Π§ΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΠ°Π±, Ρ Π΄Π°ΠΌ ΡΠΈΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²Ρ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ² Π―Π½Π΄Π΅ΠΊΡΠ°.
ΠΠ»Π΅ΠΉΠ½ΠΎΠ² Π²ΠΎΡΠ΅ΠΌΡ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ»Π΅ΠΉΠ½Π΅ 32 ΡΡΠΏΠ΅ΡΡΠΏΠ°ΠΉΠ½Π°. Π ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π²Π½ΡΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΠΎΡΠ΅ΠΌΡ ΠΏΡΡΠ΅ΠΉ, Π° ΠΏΡΠΈ ΠΌΠ΅ΠΆΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΈΡ ΡΠΆΠ΅ 256.
Π’ΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ Cookbook, ΠΏΡΡΠ°Π΅ΠΌΡΡ Π½Π°ΡΡΠΈΡΡΡΡ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΡΡΠΎΠΈΡΡ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΠ΅ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»Π΅ΡΠ°Ρ ΡΠ΅Π±Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΎ ΠΏΠ»Π΅ΠΉΠ½ΠΎΠ²Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° β ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅ΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ. ΠΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ
ΠΏΡΡΠ΅ΠΉ. ΠΡΡΠ°Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊ ΡΠ°ΠΊΠ°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΠ±ΠΎΠΈ? ΠΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ±ΠΎΠΈ. Π ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ.
ΠΡΡΡΡ Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΏΠ΅ΡΡΠΏΠ°ΠΉΠ½ΠΎΠ² Β«Π·Π°Π±ΠΎΠ»Π΅Π»Β». Π― Π·Π΄Π΅ΡΡ Π²Π΅ΡΠ½ΡΠ»ΡΡ ΠΊ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Π΄Π²ΡΡ
ΠΏΠ»Π΅ΠΉΠ½ΠΎΠ². Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° Π½ΠΈΡ
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΠΎΠΏΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ Π΄Π²ΠΈΠΆΡΡΠΈΡ
ΡΡ ΡΠ°ΡΡΠ΅ΠΉ. ΠΡΡΡΡ X11 Π·Π°Π±ΠΎΠ»Π΅Π». ΠΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΆΠΈΠ²ΡΡ Π²Π½ΡΡΡΠΈ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ²? ΠΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ±ΠΎΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅.
ΠΡΠ»ΠΈ ΡΠ±ΠΎΠΉ Ρ
ΠΎΡΠΎΡΠΈΠΉ, Π»ΠΎΠ²ΠΈΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠΊΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ BFD, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠΊΠ° ΡΠ°Π΄ΠΎΡΡΠ½ΠΎ ΠΊΠ»Π°Π΄Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠ΅ ΡΡΡΠΊΠΈ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠΎ Π²ΡΠ΅ Ρ
ΠΎΡΠΎΡΠΎ. Π£ Π½Π°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΡΠ΅ΠΉ, ΡΡΠ°ΡΠΈΠΊ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΡ, ΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅ΡΡΡ. ΠΡΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ.
ΠΠ»ΠΎΡ
ΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ β Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈ, ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠΊΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π΅Ρ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» TCP.
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ Π½ΠΈΠΊΠΎΠ³ΠΎ Π½Π΅ ΡΠΎΠΊΠΈΡΡΡ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ: TCP β ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ. Π’ΠΎ Π΅ΡΡΡ Π² ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π½Π°Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π²Π° ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π° Π½ΠΈΡ
ΠΊΡΠΌΡΠ»ΡΡΠΈΠ²Π½ΡΠΉ ack: Β«Π― ΠΏΠΎΠ»ΡΡΠΈΠ» Π΄Π²Π° ΠΏΠ°ΠΊΠ΅ΡΠ°Β».
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΎΡΠΏΡΠ°Π²ΠΈΡ Π΅ΡΠ΅ Π΄Π²Π° ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡΡ. Π― Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΡΡ ΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π·Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²Π΅ΡΠ½ΡΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ (ΡΠΈΡΠ»ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² ΠΏΠΎΠ»Π΅ΡΠ΅) ΡΠ°Π²Π½ΠΎ Π΄Π²ΡΠΌ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ. ΠΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΡΡΠ»ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π° Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ.
Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ 3? Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΡ 1, 2 ΠΈ 4. Π ΠΎΠ½ Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ SACK ΡΠΎΠΎΠ±ΡΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ: Β«Π’Ρ Π·Π½Π°Π΅ΡΡ, ΡΡΠΈ Π΄ΠΎΡΠ»ΠΎ, Π° ΡΠ΅ΡΠ΅Π΄ΠΊΠ° ΠΏΠΎΡΠ΅ΡΡΠ»Π°ΡΡΒ». ΠΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ: Β«Ack 2, SACK 4Β».
ΠΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ΅ΡΡΠ»ΡΡ.
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π² ΠΎΠΊΠ½Π΅, ΡΠΈΡΡΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΈΠ½Π°ΡΠ΅.
ΠΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΆΠ΄Π°ΡΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠΌ Π² TCP-ΡΡΠ΅ΠΊΠ° ΡΠ΄ΡΠ° Linux ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ ΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π΅ΡΠ»ΠΈ Π½Π΅Ρ ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²ΠΎ ΡΠ»Π°Π³Π°Ρ
, ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π»ΠΈΠ±ΠΎ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. ΠΠ½ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π΅Ρ, ΠΏΠΎΠΊΠ° ΠΈΡΡΠ΅ΡΠ΅Ρ Delayed ACK ΡΠ°ΠΉΠΌΠ°ΡΡ, ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΆΠ΄Π°ΡΡ. ΠΠ½ ΠΆΠ΅ Π½Π΅ Π·Π½Π°Π΅Ρ, ΠΏΠΎΡΠ΅ΡΡΠ»ΡΡ ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ»ΠΈ Π²ΠΎΡ-Π²ΠΎΡ Π΄ΠΎΠΉΠ΄Π΅Ρ. Π ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ ΡΠ΅ΡΡ, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ, ΡΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½, ΠΈΠ»ΠΈ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ RTO timeout.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ RTO timeout? ΠΡΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΠΎΡ Π²ΡΡΡΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ TCP-ΡΡΠ΅ΠΊΠΎΠΌ RTT ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. Π§ΡΠΎ ΡΡΠΎ Π·Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°, ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ.
ΠΠΎ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π½Π°ΠΌ ΡΠ½ΠΎΠ²Π° Π½Π΅ Π²Π΅Π·Π΅Ρ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ½ΠΎΠ²Π° ΡΠ΅ΡΡΠ΅ΡΡΡ, ΡΠΎ RTO ΡΠ΄Π²Π°ΠΈΠ²Π°Π΅ΡΡΡ. Π’ΠΎ Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄Π°Ρ Π½Π΅ΡΠ΄Π°ΡΠ½Π°Ρ ΠΏΠΎΠΏΡΡΠΊΠ° β ΡΡΠΎ ΡΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΠ΅ΠΌΡ ΠΆΠ΅ ΡΠ°Π²Π½Π° ΡΡΠ° Π±Π°Π·Π°. ΠΠΎ Π΄Π΅ΡΠΎΠ»ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ RTO ΡΠ°Π²Π΅Π½ 200 ΠΌΡ. ΠΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ RTO Π΄Π»Ρ Π΄Π°ΡΠ°-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠ»Ρ SYN-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΠ½ Π΄ΡΡΠ³ΠΎΠΉ, 1 ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, Π΄Π°ΠΆΠ΅ ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΏΠΎΡΠ»Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π² 100 ΡΠ°Π· Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ RTT Π²Π½ΡΡΡΠΈ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΡΡΠ΅Π½Π°ΡΠΈΡ. Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°? Π‘Π΅ΡΠ²ΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ΅ΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ. ΠΡΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ Π²Π½Π°ΡΠ°Π»Π΅ ΡΡΠ»ΠΎΠ²Π½ΠΎ Π²Π΅Π·Π΅Ρ ΠΈ ΡΠ΅ΡΡΠ΅ΡΡΡ ΡΡΠΎ-ΡΠΎ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΎΠΊΠ½Π°, ΡΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ SACK, ΠΏΠ΅ΡΠ΅ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈΡΡ.
ΠΠΎ Π΅ΡΠ»ΠΈ Π½Π΅Π²Π΅Π·Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ, ΡΠΎ Ρ Π½Π°Ρ ΡΠ»ΡΡΠ°Π΅ΡΡΡ RTO. Π§ΡΠΎ Π·Π΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ? ΠΠ°, Ρ Π½Π°Ρ Π² ΡΠ΅ΡΠΈ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠ΅ΠΉ. ΠΠΎ TCP-ΡΡΠ°ΡΠΈΠΊ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΈΠ΄ΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ Π±ΠΈΡΡΠΉ ΡΡΠ΅ΠΊ. ΠΠΎΡΠ΅ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΡΡΠΎΡ Π½Π°Ρ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΉ X11 Π½Π΅ Π³Π°ΡΠ½Π΅Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠ°ΡΠΈΠΊ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°Π΅Ρ Π² ΡΡΠ°ΡΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΌΠΈ. ΠΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ΅ΡΠ΅Π· ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ Π±ΠΈΡΡΠΉ ΡΡΠ΅ΠΊ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠ°ΡΠΊΠ°Π΄Π½ΠΎΠΌΡ ΠΎΡΠΊΠ°Π·Ρ: Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡ β ΡΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ ΡΠ°ΡΡΡ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π²ΡΠ΅Ρ
ΡΡΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°ΡΠΈΠ½Π°ΡΡ Π΄Π΅Π³ΡΠ°Π΄ΠΈΡΠΎΠ²Π°ΡΡ β ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΏΠ΅ΡΡΠΏΠ°ΠΉΠ½ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΠ¦. ΠΠ°ΠΊ Π² ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΊΠ΅: Π½Π΅ ΠΏΠΎΠ΄ΠΊΠΎΠ²Π°Π»ΠΈ Π»ΠΎΡΠ°Π΄Ρ β ΠΊΠΎΠ½Ρ Π·Π°Ρ
ΡΠΎΠΌΠ°Π»; ΠΊΠΎΠ½Ρ Π·Π°Ρ
ΡΠΎΠΌΠ°Π» β Π΄ΠΎΠ½Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ; Π΄ΠΎΠ½Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ β ΠΏΡΠΎΠΈΠ³ΡΠ°Π»ΠΈ Π²ΠΎΠΉΠ½Ρ. Π’ΠΎΠ»ΡΠΊΠΎ Π·Π΄Π΅ΡΡ ΡΡΠ΅Ρ ΠΈΠ΄Π΅Ρ Π½Π° ΡΠ΅ΠΊΡΠ½Π΄Ρ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄ΠΎ ΡΡΠ°Π΄ΠΈΠΈ Π΄Π΅Π³ΡΠ°Π΄Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡ ΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ. Π Π·Π½Π°ΡΠΈΡ ΡΡΠΎ-ΡΠΎ Π³Π΄Π΅-ΡΠΎ ΠΌΠΎΠ³ΡΡ Π½Π΅Π΄ΠΎΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ.
ΠΡΡΡ Π΄Π²Π° ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π° Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ. ΠΠ΅ΡΠ²ΠΎΠ΅ β ΡΡΠΎ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ΄Π»ΠΎΠΆΠΈΡΡ ΡΠΎΠ»ΠΎΠΌΠΊΠΈ ΠΈ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ°ΠΊ: Β«Π Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΌΡ ΠΏΠΎΠ΄ΠΊΡΡΡΠΈΠΌ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π² TCP-ΡΡΠ΅ΠΊΠ΅. Π Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ°ΠΉΠΌΠ°ΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ»Π³ΠΎ ΠΆΠΈΠ²ΡΡΠΈΠ΅ TCP-ΡΠ΅ΡΡΠΈΠΈ Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ health checksΒ». ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ: Π°) Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΡΡΡΡ; Π±) ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ
ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ. Π’ΠΎ Π΅ΡΡΡ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡ TCP-ΡΡΠ΅ΠΊ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π΅ΠΌΡ ΡΡΠ°Π»ΠΎ Π»ΡΡΡΠ΅, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΡΡΠΎ Π²ΡΡΠ΄ Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΡΠ΅Ρ
Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ², Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ
, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅Ρ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π° ΡΡΠΎ Π½Π΅Ρ. Π’ΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠ»ΠΎΡ
ΠΎ ΠΈ Π½Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ. Π Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΡΠΎ Π²ΠΈΠ½ΠΎΠ²Π°Ρ? ΠΠΎΠ½Π΅ΡΠ½ΠΎ, NOC. Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ NOC?
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π² NOC ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ. ΠΠΎ Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΠ΅ΡΡΠ½ΠΎ, Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ.
NOC Π² ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡ
Π΅ΠΌΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠ². ΠΡΠΎ ΠΊΠ°ΠΊ black box-ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΈ, ΡΠ°ΠΊ ΠΈ white box. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ black box-ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠΏΠ°ΠΉΠ½ΠΎΠ²
Π§ΡΠΎ ΠΎΡΠ΅Π½Ρ Π±Ρ Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ? Π£ Π½Π°Ρ ΠΆΠ΅ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠ΅ΠΉ. Π ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠΎΠ²Π½ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ TCP-ΠΏΠΎΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ Π²Π΅Π·Π΅Ρ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΌΠ°ΡΡΡΡΡ. ΠΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ°ΡΡΡΡΡΠΎΠ² Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡΡΡ TCP, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΊ ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ β multipath TCP, ΡΠΎ Π΅ΡΡΡ TCP Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΡΠ΅ΠΉ. ΠΡΠ°Π²Π΄Π°, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ ΠΎΠ½ Π΄Π»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ β Π΄Π»Ρ ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π²ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ². Π§ΡΠΎΠ±Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ primary/backup, Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² (ΡΠ΅Π°Π½ΡΠΎΠ²) ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠ±ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠ»ΠΈ, ΠΊΠ°ΠΊ Ρ ΡΠΊΠ°Π·Π°Π», ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΠΎΡΡ.
ΠΠΎ Π·Π΄Π΅ΡΡ Π΅ΡΡΡ Π½ΡΠ°Π½Ρ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, Π² ΡΠ΅ΠΌ ΠΎΠ½, Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠΈ.
ΠΠΎΡΠΎΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ½Π°ΡΠ°Π»Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΠΎΡΠΎΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΆΠ΅ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π° Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ. Π Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ, Π²ΡΠΎΡΡΠ΅ ΠΈ ΡΡΠ΅ΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ. Π’ΠΎ Π΅ΡΡΡ multipath TCP Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΠΎΡΠ΅ΡΡ SYN ΠΏΠ°ΠΊΠ΅ΡΠ° Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. Π Π΅ΡΠ»ΠΈ SYN ΡΠ΅ΡΡΠ΅ΡΡΡ, multipath TCP ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΎΠ±ΡΡΠ½ΡΠΉ TCP. Π Π·Π½Π°ΡΠΈΡ, Π² ΡΡΠ΅Π΄Π΅ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠΎΡΠ΅ΡΡ Π² ΡΠ°Π±ΡΠΈΠΊΠ΅ ΠΈ Π½Π°ΡΡΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΡΠ΅ΠΉ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΡΡ? ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π²Π°Ρ ΡΠΆΠ΅ Π΄ΠΎΠ³Π°Π΄Π°Π»ΠΈΡΡ ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΡ, ΡΡΠΎ Π²Π°ΠΆΠ½ΡΠΌ ΠΏΠΎΠ»Π΅ΠΌ Π² Π½Π°ΡΠ΅ΠΌ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π΅ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ»Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° IPv6 flow label. Π ΠΏΡΠ°Π²Π΄Π°, ΡΡΠΎ ΠΏΠΎΠ»Π΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² v6, Π΅Π³ΠΎ Π½Π΅Ρ Π² v4, ΠΎΠ½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 20 Π±ΠΈΡ, ΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈ ΡΠΏΠΎΡΡ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ β ΡΠΏΠΎΡΡ ΡΠ»ΠΈ, ΡΡΠΎ-ΡΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
RFC, Π° Π² Linux-ΡΠ΄ΡΠ΅ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΊ Π½ΠΈΠ³Π΄Π΅ ΠΈ Π½Π΅ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π°.
Π― ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π²Π°ΠΌ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΠΌΠ½ΠΎΠΉ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠ°ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΠ»ΠΎ Π² ΡΠ΄ΡΠ΅ Linux Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ.
2014 Π³ΠΎΠ΄. ΠΠ½ΠΆΠ΅Π½Π΅Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΡΡΠΏΠ½ΠΎΠΉ ΠΈ ΡΠ²Π°ΠΆΠ°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ΄ΡΠ° Linux Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ flow label ΠΎΡ Ρ
Π΅ΡΠ° ΡΠΎΠΊΠ΅ΡΠ°. Π§ΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΡΠ°Π»ΠΈΡΡ ΠΏΠΎΡΠΈΠ½ΠΈΡΡ? ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ RFC 6438, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠ½ΡΡΡΠΈ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° Π·Π°ΡΠ°ΡΡΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅ΡΡΡ IPv4 Π² ΠΏΠ°ΠΊΠ΅ΡΡ IPv6, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΌΠ° ΡΠ°Π±ΡΠΈΠΊΠ° β IPv6, Π½ΠΎ Π½Π°ΡΡΠΆΡ ΠΊΠ°ΠΊ-ΡΠΎ Π½Π°Π΄ΠΎ ΠΎΡΠ΄Π°ΡΡ IPv4. ΠΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎ ΡΠ²ΠΈΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π·Π°Π³Π»ΡΠ½ΡΡΡ ΠΏΠΎΠ΄ Π΄Π²Π° IP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΡΠ°ΡΡΡΡ Π΄ΠΎ TCP ΠΈΠ»ΠΈ UDP ΠΈ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΌ src_ports, dst_ports. ΠΠΎΠ»ΡΡΠ°Π»ΠΎΡΡ, ΡΡΠΎ Ρ
Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π΄Π²Π° ΠΏΠ΅ΡΠ²ΡΠ΅ IP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΎΠΊΠ°Π·ΡΠ²Π°Π»ΡΡ ΡΡΡΡ Π»ΠΈ Π½Π΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ. Π§ΡΠΎΠ±Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, ΡΡΠΎΠ±Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΠ°Π»Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ flow label Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Ρ
Π΅Ρ ΠΎΡ 5-tuple ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΡΡ
Π΅ΠΌ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠΈ, Π΄Π»Ρ UDP, Π΄Π»Ρ GRE, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ ΠΏΠΎΠ»Π΅ GRE Key. Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, Π·Π΄Π΅ΡΡ ΡΠ΅Π»ΠΈ ΠΏΠΎΠ½ΡΡΠ½Ρ. Π ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π½Π° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ.
Π 2015 Π³ΠΎΠ΄Ρ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ²Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ° ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΡ. ΠΠ½ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ. Π Π½Π΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ β ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ
Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ? ΠΡΠΎ RTO, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΡΠ°Π½Π΅Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΠ΅ΡΡ Ρ
Π²ΠΎΡΡΠ° ΠΎΠΊΠ½Π° β ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎΠ΅. ΠΡΠ°Π²Π΄Π°, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΎ.
2016 Π³ΠΎΠ΄, Π΄ΡΡΠ³Π°Ρ ΡΠ²Π°ΠΆΠ°Π΅ΠΌΠ°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, ΡΠΎΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ°Ρ. ΠΠ½Π° ΡΠ°Π·Π±ΠΈΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΡΡΡΠ»ΠΈ ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°ΠΊ, ΡΡΠΎ Ρ
Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ°Π½Π΅Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΡΠ°Π½ΡΠΌΠΈΡ SYN ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ RTO ΡΠ°ΠΉΠΌΠ°ΡΡΠ°. Π Π² ΡΡΠΎΠΌ ΠΏΠΈΡΡΠΌΠ΅ Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π· Π·Π²ΡΡΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠ΅Π»Ρ β ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΠΈΠΊ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅ΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΡΠ³ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΡΠ΅ΠΉ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π±ΡΠ»Π° ΠΌΠ°ΡΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ, Π²Ρ Π»Π΅Π³ΠΊΠΎ ΠΈΡ
ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ.
Π₯ΠΎΡΡ Π½Π΅Ρ, Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ Π½Π΅ Π±ΡΠ»ΠΎ. ΠΠΎ ΠΌΡ-ΡΠΎ Π·Π½Π°Π΅ΠΌ!
Π Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ, Ρ Π²Π°ΠΌ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ.
Π§ΡΠΎ ΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΠΊΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΡΠ΄ΡΠΎ Linux? txhash ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠ°Π½Π΄ΠΎΠΌΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ RTO. ΠΡΠΎΡ ΡΠΎΡ ΡΠ°ΠΌΡΠΉ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ. Π₯Π΅Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ txhash, Π° flow label Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ skb hash. ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌ, Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ»Π°ΠΉΠ΄ Π²ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΡ-ΡΠΎ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ ΠΏΠΎ ΠΊΠΎΠ΄Ρ ΡΠ΄ΡΠ° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ.
Π§ΡΠΎ Π·Π΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ? ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ flow label ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ RTO. ΠΠ°ΠΊ ΡΡΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π½Π°Ρ Π½Π΅ΡΡΠ°ΡΡΠ»ΠΈΠ²ΡΠΉ TCP-ΠΏΠΎΡΠΎΠΊ?
Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ SACK Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΡΠ»Π°ΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ. ΠΠΎΠΊΠ° Π²ΡΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ
ΠΎΡΠΎΡΠΎ.
ΠΠΎ Π² ΡΠ»ΡΡΠ°Π΅ RTO, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ flow label Π² Ρ
Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΡ Π½Π° ToR, ΡΡΠ°ΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΉΡΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΌΠ°ΡΡΡΡΡΠΎΠΌ. Π ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ»Π΅ΠΉΠ½ΠΎΠ², ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π½ΡΠΎΠ², ΡΡΠΎ ΠΎΠ½ Π½Π°ΠΉΠ΄Π΅Ρ ΠΏΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π·Π°ΡΡΠΎΠ½ΡΡ ΡΠ±ΠΎΠ΅ΠΌ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅.
ΠΡΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β RTO. ΠΡΡΠ³ΠΎΠΉ ΠΌΠ°ΡΡΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ, Π½ΠΎ ΡΠΆ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π° ΡΡΠΎ ΡΡΠ°ΡΠΈΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. 200 ΠΌΡ β ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ. Π‘Π΅ΠΊΡΠ½Π΄Π° β ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄ΠΈΠΊΠΎΡΡΡ. Π Π°Π½ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π» ΠΏΡΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ. Π’Π°ΠΊ Π²ΠΎΡ, ΡΠ΅ΠΊΡΠ½Π΄Π° β ΡΡΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈ Π² ΡΡΠΎΠΌ ΡΠ΅ΡΠ²ΠΈΡ Π±ΡΠ΄Π΅Ρ Π΄Π°ΠΆΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ°Π². ΠΡΠΈΡΠΎΠΌ, ΡΡΠΎ, ΠΏΠΎΠ²ΡΠΎΡΡΡΡ, Π½Π°ΡΡΠΎΡΡΠΈΠΉ RTT Π²Π½ΡΡΡΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° β Π² ΡΠ°ΠΉΠΎΠ½Π΅ 1 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ RTO-ΡΠ°ΠΉΠΌΠ°ΡΡΠ°ΠΌΠΈ? Π’Π°ΠΉΠΌΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° RTO Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΈΠ· user space: Π΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° IP, ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΅Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΅ΡΡΡ ΡΠΎΡ ΡΠ°ΠΌΡΠΉ rto_min. Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΠΊΡΡΡΠΈΡΡ RTO, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π½ΡΠΆΠ½ΠΎ Π½Π΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ, Π° Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΡΡ
ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠ², ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ°Π±ΠΎΡΠΈΠΌ.
ΠΡΠ°Π²Π΄Π°, Ρ SYN_RTO Π²ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ
ΡΠΆΠ΅. ΠΠ½ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ±ΠΈΡ Π³Π²ΠΎΠ·Π΄ΡΠΌΠΈ. Π ΡΠ΄ΡΠ΅ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β 1 ΡΠ΅ΠΊΡΠ½Π΄Π°, ΠΈ Π²ΡΡ. ΠΠ· user space Π΄ΠΎΡΡΠ½ΡΡΡΡΡ ΡΡΠ΄Π° Π½Π΅Π»ΡΠ·Ρ. ΠΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ±.
ΠΠ° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ eBPF. ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎ, ΡΡΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° C. ΠΡ
ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ Π² Ρ
ΡΠΊΠΈ Π² ΡΠ°Π·Π½ΡΡ
ΠΌΠ΅ΡΡΠ°Ρ
ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ° ΡΠ΄ΡΠ° ΠΈ TCP-ΡΡΠ΅ΠΊΠ°, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π°ΡΡΡΠΎΠ΅ΠΊ. ΠΠΎΠΎΠ±ΡΠ΅, eBPF β ΡΡΠΎ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΡΠΉ ΡΡΠ΅Π½Π΄. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΈΠ»ΠΈΡΡ Π΄Π΅ΡΡΡΠΊΠΈ Π½ΠΎΠ²ΡΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² sysctl ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ IP, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎΡΠΎΠ½Ρ eBPF ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ eBPF ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ΅Π½ΡΡΡ congestion controls ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ TCP.
ΠΠΎ Π½Π°ΠΌ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ SYN_RTO. ΠΡΠΈΡΠ΅ΠΌ Π΅ΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ Π²ΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
Π§ΡΠΎ ΠΌΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΠΌ? Π§ΡΠΎ ΠΏΠ»Π΅ΠΉΠ½ΠΎΠ²Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ, ΠΎΠ½Π° ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π°ΠΌ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ flow label Π½Π° ToR ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ. Π‘Π°ΠΌΡΠΉ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ½ΠΈΠ·ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ RTO ΠΈ SYN-RTO β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ eBPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΡΠ°Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡ: Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ flow label Π΄Π»Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ? Π Π·Π΄Π΅ΡΡ Π΅ΡΡΡ Π½ΡΠ°Π½Ρ.
ΠΡΡΡΡ Ρ Π²Π°Ρ Π² ΡΠ΅ΡΠΈ Π΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΆΠΈΠ²Π΅Ρ Π² anycast. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ anycast, Π½ΠΎ ΡΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ IP-Π°Π΄ΡΠ΅ΡΡ. Π Π·Π΄Π΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΡΠΎΠ±ΡΡΠΈΠ΅ RTO ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ΅ΡΠ΅Π· ΡΠ°Π±ΡΠΈΠΊΡ. ΠΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π±ΡΡΠ΅ΡΠ° ToR: ΠΊΠΎΠ³Π΄Π° ΡΠ»ΡΡΠ°Π΅ΡΡΡ incast-ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π΄Π°ΠΆΠ΅ Π½Π° Ρ
ΠΎΡΡΠ΅, ΠΊΠΎΠ³Π΄Π° Ρ
ΠΎΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΡΠΎΠ»ΠΈΠ²Π°Π΅Ρ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠ΅ RTO, ΠΈ ΠΎΠ½ΠΎ ΠΌΠ΅Π½ΡΠ΅Ρ flow label. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°ΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΏΠ°ΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ anycast instance. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ stateful anycast, ΠΎΠ½ Π΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ connection state β ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ L3 Balancer ΠΈΠ»ΠΈ Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ΅ΡΠ²ΠΈΡ. Π’ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ RTO TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»Π΅ΡΠ°Π΅Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ± ΡΡΠΎΠΌ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ. Π Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π½Π΅Ρ ΡΠ΅ΡΠΈΠ½Π³Π° ΡΡΠ΅ΠΉΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ anycast-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ°ΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ±ΡΠΎΡΠ΅Π½ ΠΈ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ²Π΅ΡΡΡ.
Π§ΡΠΎ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ? ΠΠ½ΡΡΡΠΈ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄Ρ, Π³Π΄Π΅ Π²Ρ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ flow label, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ flow label ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ anycast-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ. Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± β ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ΅ΡΠ΅Π· ΡΡ ΠΆΠ΅ eBPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎ Π·Π΄Π΅ΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ β ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅ΡΠ΅ Π½Π΅ ΡΠ΅ΡΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°, Π° ΡΠ²Π»ΡΠ΅ΡΠ΅ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ²ΡΠ·ΠΈ? ΠΡΠΎ ΠΈ Π²Π°ΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎΠΆΠ΅: Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π²Π΅ΡΡΠΈΠΉ Juniper ΠΈ Arista Π²ΠΊΠ»ΡΡΠ°ΡΡ flow label Π² Ρ
Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ Π΄Π΅ΡΠΎΠ»ΡΡ β ΡΠ΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ ΠΌΠ½Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ²Π°ΡΡ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈΠ΄ΡΡΠΈΡ
ΡΠ΅ΡΠ΅Π· Π²Π°ΡΡ ΡΠ΅ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Ρ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π²Π°ΡΠΈΡ
ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π² ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°ΠΌ.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ flow label Π½Π° ToR, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ eBPF Π°Π³Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΏΠ΅ΡΡ ΠΆΠΈΠ²Π΅Ρ Π½Π° Ρ
ΠΎΡΡΠ°Ρ
, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ±ΠΎΡ, Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΠ΅ Π²Π·ΡΡΠ²Ρ. ΠΡ Π²Π·ΡΠ»ΠΈ ToR, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΠ΅ Π°ΠΏΠ»ΠΈΠ½ΠΊΠ°, ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ
ΡΡΡΡΠΎΠΈΠ»ΠΈ Π΄ΡΠΎΠΏΡ. ΠΠ°ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΊΠ°Π·Π°Π»ΠΈ β ΡΠ΅ΠΏΠ΅ΡΡ ΡΡ ΡΠ΅ΡΡΠ΅ΡΡ Π²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ»Π΅Π²Π°, Ρ Π½Π°Ρ per-packet monitoring, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΠ΅Π» Π΄ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 75%, ΡΠΎ Π΅ΡΡΡ 25% ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ΅ΡΡΡΡΡΡ. Π‘ΠΏΡΠ°Π²Π° Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΠΆΠΈΠ²ΡΡΠΈΡ
Π·Π° ΡΡΠΈΠΌ ToR. ΠΠΎ ΡΡΡΠΈ ΡΡΠΎ Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΡΠ°ΡΠΈΠΊΠ° ΡΡΡΠΊΠΎΠ² Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠΉΠΊΠΈ. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΠΎΠ½ΠΈ ΠΏΡΠΎΡΠ΅Π»ΠΈ Π΄Π°ΠΆΠ΅ Π½ΠΈΠΆΠ΅. ΠΠΎΡΠ΅ΠΌΡ ΠΎΠ½ΠΈ ΠΏΡΠΎΡΠ΅Π»ΠΈ Π½ΠΈΠΆΠ΅ β Π½Π΅ Π½Π° 25%, Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
Π² 3β4 ΡΠ°Π·Π°? ΠΡΠ»ΠΈ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ Π²Π΅Π·Π΅Ρ, ΠΎΠ½ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π±ΠΈΡΡΠΉ ΡΡΡΠΊ. ΠΡΠΎ ΡΡΡΠ³ΡΠ±Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏΠΎΠ²ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ° Π²Π½ΡΡΡΠΈ ΠΠ¦ β Π½Π° ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ N Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, ΠΈ ΠΎΡΠ²Π΅Ρ ΡΠΉΠ΄Π΅Ρ ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΡΠ²Π΅ΡΡΡ Π²ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π΄Π°Π½Π½ΡΡ
, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΉΠΌΠ°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½. Π’ΠΎ Π΅ΡΡΡ Π²ΡΠ΅ Π²Π΅ΡΡΠΌΠ° ΠΈ Π²Π΅ΡΡΠΌΠ° ΠΏΠ»ΠΎΡ
ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ, Π½ΠΎ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ flow label. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΡΠ»Π΅Π²Π° Π½Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΏΡΠΎΡΠ΅Π» Π½Π° ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ 25%. ΠΡΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΎ ΡΠ΅ΡΡΠ°Π½ΡΠΌΠΈΡΠ°Ρ
, ΠΎΠ½ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΡΠΈΡΠ°Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ
ΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Π ΡΠΏΡΠ°Π²Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π³ΡΠ°ΡΠΈΠΊ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΡ Π·Π΄Π΅ΡΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΡΡΠ΅ΠΊΡΠ° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠΊΠ°. Π’ΡΠ°ΡΠΈΠΊ Π·Π° ΡΠ΅ ΡΠ°ΠΌΡΠ΅ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊ ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠΊΠ° Π² ΡΡΠΈ ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ Π°ΠΏΠ»ΠΈΠ½ΠΊΠ°, Π½Π΅ Π·Π°ΡΡΠΎΠ½ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π»Π΅ΡΠΈΡ ΡΠ΅Π±Ρ ΡΠ°ΠΌΠ°.
ΠΡΠΎ ΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π°ΠΉΠ΄, Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄Π²Π΅ΡΡΠΈ ΠΈΡΠΎΠ³ΠΈ. Π’Π΅ΠΏΠ΅ΡΡ, Ρ Π½Π°Π΄Π΅ΡΡΡ, Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΡΠΎΠΈΡΡ ΡΠ΅ΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°, ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΠΊ ΡΠ°ΠΌΠΎΠ»Π΅ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Ρ
ΠΎΠ΄ΠΈΡΡ ΠΏΠΎ Π°ΡΡ
ΠΈΠ²Ρ ΡΠ΄ΡΠ° Linux ΠΈ Π²ΡΠΈΡΠΊΠΈΠ²Π°ΡΡ ΡΠ°ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΡΠΈ, Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Flow label Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ. Π Ρ Π΅ΡΠ΅ ΡΠ°Π· ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ²ΡΠ·ΠΈ, Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ flow label Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Ρ
Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠ½Π°ΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ²Π°ΡΡ ΡΠ΅ΡΡΠΈΠΈ Π²Π°ΡΠΈΡ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Π£ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΄Π²ΠΈΠ³: ΡΠ΅ΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π½Π΅ Ρ ToR, Π½Π΅ Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π° Ρ Ρ ΠΎΡΡΠ°. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΡΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ eBPF ΠΈ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ RTO, ΠΈ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ flow label Π² ΡΡΠΎΡΠΎΠ½Ρ anycast-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
ΠΠ΅Ρ
Π°Π½ΠΈΠΊΠ° flow label, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ°ΡΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°ΠΌΠΈ, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠΊΡ ΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΠΌ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ. ΠΠΎ ΠΎΠ± ΡΡΠΎΠΌ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, Π½Π°Π΄Π΅ΡΡΡ, Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π·. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com