āĻāĻ, āĻāĻāĻĒāĻŋ(āĻāĻŋāĻāĻ¸) āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°ā§āĻĄāĻŋāĻŽā§āĻĄ (āĻŽāĻžāĻ˛āĻŋāĻāĻžāĻ¨āĻž) āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ
TSDuck āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻā§āĻŦ āĻ¸āĻāĻā§āĻˇā§āĻĒā§
TSDuck āĻāĻāĻāĻŋ āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ (2-āĻā§āĻ˛āĻ BSD āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸) āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° (āĻāĻ¨āĻ¸ā§āĻ˛ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻāĻŦāĻ āĻāĻžāĻ¸ā§āĻāĻŽ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦāĻž āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ) TS āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻāĻāĻāĻŋ āĻāĻ¨āĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻāĻŋ āĻāĻāĻĒāĻŋ (āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ/āĻāĻāĻ¨āĻŋāĻāĻžāĻ¸ā§āĻ), http, hls, dvb āĻāĻŋāĻāĻ¨āĻžāĻ°, dektec dvb-asi demodulator āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻāĻāĻŋ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ TS-āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻ°āĻŋāĻĄāĻŋāĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻāĻĒā§āĻ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛, IP (āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ/āĻāĻāĻ¨āĻŋāĻāĻžāĻ¸ā§āĻ), hls, dektec dvb-asi āĻāĻŦāĻ HiDes āĻŽāĻĄā§āĻ˛ā§āĻāĻ°, āĻĒā§āĻ˛ā§āĻ¯āĻŧāĻžāĻ° (mplayer, vlc, xine) āĻāĻŦāĻ āĻĄā§āĻ°āĻĒā§ āĻ˛ā§āĻāĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ¨āĻĒā§āĻ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒāĻŋāĻāĻāĻĄāĻŋ āĻ°āĻŋāĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ, āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻŽā§āĻŦāĻ˛āĻŋāĻ/āĻĄā§āĻ¸āĻā§āĻ°ā§āĻ¯āĻžāĻŽā§āĻŦāĻ˛āĻŋāĻ, āĻ¸āĻŋāĻ¸āĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ, āĻŦāĻŋāĻāĻ°ā§āĻ āĻāĻŖāĻ¨āĻž āĻāĻŦāĻ āĻāĻŋāĻāĻ¸ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĨ¤
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻāĻĒāĻŋ āĻ¸ā§āĻā§āĻ°ā§āĻŽ (āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ) āĻāĻāĻāĻŋ āĻāĻ¨āĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§, āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° bitrate_monitor (āĻ¨āĻžāĻŽ āĻĨā§āĻā§āĻ āĻŦā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻāĻŋ āĻā§) āĻāĻŦāĻ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻž (CC āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻšāĻā§āĻ āĻāĻāĻĒāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ āĻāĻŋāĻāĻ¸āĻĄāĻŋāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻ āĻ¨ā§āĻ¯ āĻāĻ¨āĻĒā§āĻ āĻāĻžāĻāĻĒ āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ TSDuck 3.19-1520 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ OS āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ (āĻ¸āĻ˛āĻŋāĻāĻļāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĄā§āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ 10 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, CentOS 7 āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛)
TSDuck āĻāĻŦāĻ OS āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĒā§āĻ°āĻŦāĻžāĻš āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ TSDuck āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻā§ āĻāĻŦāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻžāĻ°ā§āĻĄ āĻŦāĻž OS (āĻ¸āĻā§āĻ) āĻ¸ā§āĻ¤āĻ°ā§ āĻā§āĻ¨ āĻĄā§āĻ°āĻĒ āĻ¨ā§āĻāĨ¤ āĻĄā§āĻ°āĻĒāĻā§āĻ˛āĻŋ āĻā§āĻĨāĻžāĻ¯āĻŧ āĻāĻā§āĻā§ āĻ¤āĻž āĻĒāĻ°ā§ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ - āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻŦāĻž "āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§"āĨ¤ āĻāĻĒāĻ¨āĻŋ ethtool -S ethX āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻžāĻ°ā§āĻĄ āĻ¸ā§āĻ¤āĻ°ā§ āĻĄā§āĻ°āĻĒāĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻāĻ ethtool āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŋāĻāĻ¨āĻŋāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤, āĻāĻĒāĻ¨āĻžāĻā§ RX āĻŦāĻžāĻĢāĻžāĻ° (-G) āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻāĻŋāĻā§ āĻ āĻĢāĻ˛ā§āĻĄ (-K) āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§)āĨ¤ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻž āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻā§āĻ°āĻšāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĒā§āĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻĻāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧ, āĻāĻāĻŋ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻā§āĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻāĻžāĻ°āĻŖā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ āĻĒā§āĻ°ā§āĻā§ āĻ āĻŋāĻ āĻ¯ā§ āĻĄā§āĻ°āĻĒāĻāĻŋ āĻāĻā§āĻā§ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻŽāĻŋāĻĨā§āĻ¯āĻž āĻāĻ¤āĻŋāĻŦāĻžāĻāĻāĻ¤āĻžāĻā§āĻ˛āĻŋāĻā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻ¨āĻž āĻšāĻ¯āĻŧ (āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻ āĻ¸āĻš āĻāĻāĻāĻŋ āĻŽāĻŋāĻ¨āĻŋ-āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°/NUC āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ), āĻ¤āĻŦā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻāĻāĻŋ āĻ¯ā§ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¤āĻžāĻ° āĻŦāĻžāĻāĻŋāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻž āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻā§āĻ° āĻ āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦāĻžāĻā§āĻāĻ¨ā§āĻ¯āĻŧāĨ¤ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§, āĻāĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ āĻŦāĻ˛āĻŽā§āĻŦāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĢāĻŋāĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻĒā§āĻ°ā§āĻ āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻˇ āĻšāĻāĻ¯āĻŧāĻž āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĄā§āĻ°āĻĒāĻā§āĻ˛āĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§āĻ¨āĨ¤
āĻšā§āĻ¸ā§āĻā§āĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻŦāĻžāĻšā§āĻ° āĻĒā§āĻ°āĻāĻ¨ā§āĻŽ āĻāĻŦāĻ āĻ āĻā§āĻ¯āĻ°ā§āĻĨāĻ¨āĻž
TSDuck āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ§āĻžāĻĒ āĻšāĻŋāĻ¸ā§āĻŦā§, āĻāĻŽāĻ°āĻž netns āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻšā§āĻ¸ā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ āĻāĻŦāĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŦāĨ¤
āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻŋ:
ip netns add P #ŅОСдаŅĐŧ netns P, в ĐŊŅĐŧ ĐąŅĐ´ĐĩŅ ĐŋŅОиŅŅ
ОдиŅŅ Đ°ĐŊĐ°ĐģиС ŅŅĐ°ŅиĐēĐ°
ip link add type veth #ŅОСдаŅĐŧ veth-ĐŋĐ°ŅŅ - veth0 ĐžŅŅавĐģŅĐĩĐŧ в netns ĐŋĐž ŅĐŧĐžĐģŅĐ°ĐŊиŅ (в ŅŅĐžŅ иĐŊŅĐĩŅŅĐĩĐšŅ ĐąŅĐ´ĐĩŅ ĐŗĐĩĐŊĐĩŅиŅОваŅŅŅŅ ŅŅĐ°ŅиĐē)
ip link set dev veth1 netns P #veth1 - ĐŋĐžĐŧĐĩŅĐ°ĐĩĐŧ в netns P (ĐŊĐ° ŅŅĐžĐŧ иĐŊŅĐĩŅŅĐĩĐšŅĐĩ ĐąŅĐ´ĐĩŅ ĐŋŅиŅĐŧ ŅŅĐ°ŅиĐēĐ°)
ip netns exec P ifconfig veth1 192.0.2.1/30 up #ĐŋОдĐŊиĐŧĐ°ĐĩĐŧ IP ĐŊĐ° veth1, ĐŊĐĩ иĐŧĐĩĐĩŅ СĐŊĐ°ŅĐĩĐŊиŅ ĐēĐ°ĐēОК иĐŧĐĩĐŊĐŊĐž
ip netns exec P ip ro add default via 192.0.2.2 #ĐŊĐ°ŅŅŅаиваĐĩĐŧ ĐŧĐ°ŅŅŅŅŅ ĐŋĐž ŅĐŧĐžĐģŅĐ°ĐŊиŅ вĐŊŅŅŅи nents P
sysctl net.ipv6.conf.veth0.disable_ipv6=1 #ĐžŅĐēĐģŅŅĐ°ĐĩĐŧ IPv6 ĐŊĐ° veth0 - ŅŅĐž Đ´ĐĩĐģĐ°ĐĩŅŅŅ Đ´ĐģŅ ŅĐžĐŗĐž, ŅŅОйŅ в ŅŅŅŅŅиĐē TX ĐŊĐĩ ĐŋĐžĐŋĐ°Đ´Đ°Đģ ĐŋĐžŅŅĐžŅĐžĐŊĐŊиК ĐŧŅŅĐžŅ
ifconfig veth0 up #ĐŋОдĐŊиĐŧĐ°ĐĩĐŧ иĐŊŅĐĩŅŅĐĩĐšŅ veth0
ip route add 239.0.0.1 dev veth0 #ŅОСдаŅĐŧ ĐŧĐ°ŅŅŅŅŅ, ŅŅОйŅ ĐĐĄ ĐŊĐ°ĐŋŅавĐģŅĐģĐ° ŅŅĐ°ŅиĐē Đē 239.0.0.1 в ŅŅĐžŅĐžĐŊŅ veth0
āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĨ¤ āĻāĻŽāĻ°āĻž āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ:
ip netns exec P tsp --realtime -t
-I ip 239.0.0.1:1234
-P continuity
-P bitrate_monitor -p 1 -t 1
-O drop
āĻ¯ā§āĻāĻžāĻ¨ā§ "-p 1 -t 1" āĻāĻ° āĻ
āĻ°ā§āĻĨ āĻšāĻ˛ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻŦāĻŋāĻāĻ°ā§āĻ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻŦāĻŋāĻāĻ°ā§āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻŽāĻ°āĻž 10Mbps āĻāĻ¤āĻŋāĻ¤ā§ āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻŋ:
tsp -I craft
-P regulate -b 10000000
-O ip -p 7 -e --local-port 6000 239.0.0.1:1234
āĻ¯ā§āĻāĻžāĻ¨ā§ "-p 7 -e" āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻā§ 7 āĻāĻŋ āĻāĻŋāĻāĻ¸ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§ 1āĻāĻŋ āĻāĻāĻĒāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻā§ āĻĒā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻ ā§āĻ°āĻāĻžāĻŦā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (-e), āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻāĻāĻŋ āĻāĻāĻĒāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻāĻā§ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻļā§āĻˇ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻĨā§āĻā§ 7 āĻāĻŋ āĻāĻŋāĻāĻ¸ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨āĨ¤
āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°ā§:
* 2020/01/03 14:55:44 - bitrate_monitor: 2020/01/03 14:55:44, TS bitrate: 9,970,016 bits/s
* 2020/01/03 14:55:45 - bitrate_monitor: 2020/01/03 14:55:45, TS bitrate: 10,022,656 bits/s
* 2020/01/03 14:55:46 - bitrate_monitor: 2020/01/03 14:55:46, TS bitrate: 9,980,544 bits/s
āĻāĻāĻ¨ āĻāĻŋāĻā§ āĻĢā§āĻāĻāĻž āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨:
ip netns exec P iptables -I INPUT -d 239.0.0.1 -m statistic --mode random --probability 0.001 -j DROP
āĻāĻŦāĻ āĻāĻ āĻŽāĻ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ:
* 2020/01/03 14:57:11 - continuity: packet index: 80,745, PID: 0x0000, missing 7 packets
* 2020/01/03 14:57:11 - continuity: packet index: 83,342, PID: 0x0000, missing 7 packets
āĻ¯āĻž āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤āĨ¤ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ˛āĻ¸ āĻ āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ (ip netns exec P iptables -F) āĻāĻŦāĻ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻŦāĻŋāĻāĻ°ā§āĻ 100Mbps-āĻ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨āĨ¤ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ 75 āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻā§āĻā§āĻ CC āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 100 āĻāĻŽāĻŦāĻŋāĻĒāĻŋāĻāĻ¸ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž āĻā§ āĻĻāĻžāĻ¯āĻŧā§ āĻ¤āĻž āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻāĻŋ - āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ āĻŦāĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨ā§āĻ, āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻā§āĻ¯āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ (700000 TS āĻĒā§āĻ¯āĻžāĻā§āĻ = 100000 IP āĻĒā§āĻ¯āĻžāĻā§āĻ):
# ifconfig veth0 | grep TX
TX packets 151825460 bytes 205725459268 (191.5 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# tsp -I craft -c 700000 -P regulate -b 100000000 -P count -O ip -p 7 -e --local-port 6000 239.0.0.1:1234
* count: PID 0 (0x0000): 700,000 packets
# ifconfig veth0 | grep TX
TX packets 151925460 bytes 205861259268 (191.7 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻ āĻŋāĻ 100000 āĻāĻāĻĒāĻŋ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ (151925460-151825460)āĨ¤ āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻ¸ā§āĻ¨ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§ āĻāĻāĻā§ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ, āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž veth1-āĻ RX āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŋ, āĻāĻāĻŋ āĻāĻ ā§āĻ°āĻāĻžāĻŦā§ veth0-āĻāĻ° TX āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻžāĻ¨, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻ°āĻž āĻ¸āĻā§āĻ āĻ¸ā§āĻ¤āĻ°ā§ āĻā§ āĻāĻāĻā§ āĻ¤āĻž āĻĻā§āĻāĻŋ:
# ip netns exec P cat /proc/net/udp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
133: 010000EF:04D2 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 72338 2 00000000e0a441df 24355
āĻāĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻĄā§āĻ°āĻĒā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž = 24355 āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨āĨ¤ TS āĻĒā§āĻ¯āĻžāĻā§āĻā§, āĻāĻāĻŋ 170485-āĻāĻ° 24.36 āĻŦāĻž 700000%, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ āĻ¯ā§ āĻšāĻžāĻ°āĻžāĻ¨ā§ āĻŦāĻŋāĻāĻ°ā§āĻā§āĻ° āĻāĻāĻ 25% āĻāĻāĻĄāĻŋāĻĒāĻŋ āĻ¸āĻā§āĻā§ āĻĄā§āĻ°āĻĒāĨ¤ āĻāĻāĻāĻŋ UDP āĻ¸āĻā§āĻā§ āĻĄā§āĻ°āĻĒ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻžāĻĢāĻžāĻ°ā§āĻ° āĻ āĻāĻžāĻŦā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻāĻā§, āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¸āĻā§āĻ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻāĻžāĻ° āĻāĻŦāĻ āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻ¸āĻā§āĻ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻāĻžāĻ° āĻĻā§āĻā§āĻ¨:
# sysctl net.core.rmem_default
net.core.rmem_default = 212992
# sysctl net.core.rmem_max
net.core.rmem_max = 212992
āĻāĻāĻāĻžāĻŦā§, āĻ¯āĻĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻāĻžāĻ°ā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¨āĻž āĻāĻ°ā§, āĻ¤āĻžāĻšāĻ˛ā§ 208 KB āĻāĻ° āĻāĻāĻāĻŋ āĻŦāĻžāĻĢāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ°āĻž āĻāĻ°āĻ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°ā§, āĻ¤āĻŦā§ āĻ¤āĻžāĻ°āĻž āĻāĻāĻ¨āĻ āĻ¯āĻž āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¤āĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŦā§ āĻ¨āĻžāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻĒāĻŋ āĻāĻ¨āĻĒā§āĻ (-āĻŦāĻžāĻĢāĻžāĻ°-āĻ¸āĻžāĻāĻ) āĻāĻ° āĻāĻ¨ā§āĻ¯ tsp-āĻ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¸āĻā§āĻ āĻāĻāĻžāĻ° āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻŦ āĻ¨āĻž, āĻ¤āĻŦā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻ¸āĻā§āĻ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°āĻŦ āĻāĻŦāĻ tsp āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻŦ:
sysctl net.core.rmem_max=8388608
ip netns exec P tsp --realtime -t -I ip 239.0.0.1:1234 -b 8388608 -P continuity -P bitrate_monitor -p 1 -t 1 -O drop
āĻ¸āĻā§āĻ āĻŦāĻžāĻĢāĻžāĻ°ā§āĻ° āĻāĻ āĻāĻŋāĻāĻ¨āĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§, āĻāĻāĻ¨ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻŦāĻŋāĻāĻ°ā§āĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 100Mbps, āĻā§āĻ¨ CC āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¨ā§āĻāĨ¤
āĻ¸āĻŋāĻĒāĻŋāĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻŋāĻāĻ¸āĻĒāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¨āĻŋāĻā§āĻāĨ¤ āĻāĻāĻāĻŋ āĻā§āĻ° i5-4260U CPU @ 1.40GHz, 10Mbps āĻĢā§āĻ˛ā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ 3-4% CPU, 100Mbps - 25%, 200Mbps - 46% āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§ā§ˇ % āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ˛āĻ¸ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, CPU-āĻ¤ā§ āĻ˛ā§āĻĄ āĻāĻžāĻ°ā§āĻ¯āĻ¤ āĻŦāĻžāĻĄāĻŧā§ āĻ¨āĻž (āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ¤ā§ āĻĒāĻžāĻ°ā§)āĨ¤
āĻ āĻ§āĻŋāĻ āĻā§āĻĒāĻžāĻĻāĻ¨āĻļā§āĻ˛ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§, āĻā§āĻ¨ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻžāĻĄāĻŧāĻžāĻ 1Gb/s āĻāĻ° āĻŦā§āĻļāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻŋāĻ˛āĨ¤
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻžāĻ°ā§āĻĄā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻāĻāĻŋ āĻā§āĻĨ āĻĒā§āĻ¯āĻŧāĻžāĻ°ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻšā§āĻ¸ā§āĻā§āĻ° āĻĻā§āĻāĻŋ āĻšā§āĻ¸ā§āĻ āĻŦāĻž āĻĻā§āĻāĻŋ āĻĒā§āĻ°ā§āĻ āĻ¨āĻŋāĻ¤ā§ āĻšāĻŦā§, āĻĒā§āĻ°ā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻāĻāĻŋāĻ¤ā§ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋāĻ¤ā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻāĨ¤ āĻāĻāĻžāĻ¨ā§ āĻā§āĻ¨ āĻāĻļā§āĻāĻ°ā§āĻ¯ āĻāĻŋāĻ˛ āĻ¨āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ¸āĻ˛ā§ āĻāĻāĻŋ āĻ¸āĻŦ āĻ˛ā§āĻšāĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻĻā§āĻ°ā§āĻŦāĻ˛, āĻāĻ°ā§ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻāĻŋ āĻāĻāĻžāĻ¨ā§ āĻšāĻŦā§āĨ¤
āĻŽāĻ¨āĻŋāĻāĻ°āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĄā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž (Zabbix)
tsp āĻāĻ° SNMP āĻŦāĻž āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻā§āĻ¨ āĻŽā§āĻļāĻŋāĻ¨-āĻĒāĻ āĻ¨āĻ¯ā§āĻā§āĻ¯ API āĻ¨ā§āĻāĨ¤ āĻ¸āĻŋāĻ¸āĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻā§ āĻāĻŽāĻĒāĻā§āĻˇā§ 1 āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻā§āĻˇāĻ¤āĻŋāĻ° āĻāĻā§āĻ āĻļāĻ¤āĻžāĻāĻļā§āĻ° āĻ¸āĻžāĻĨā§, āĻŦāĻŋāĻāĻ°ā§āĻā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻļāĻ¤/āĻšāĻžāĻāĻžāĻ°/āĻšāĻžāĻāĻžāĻ° āĻšāĻžāĻāĻžāĻ° āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§)āĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻāĻ¯āĻŧ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ CC āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻŦāĻŋāĻāĻ°ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻžāĻĢ āĻāĻāĻāĻž āĻāĻŦāĻ āĻāĻŋāĻā§ āĻ§āĻ°āĻŖā§āĻ° āĻĻā§āĻ°ā§āĻāĻāĻ¨āĻž āĻāĻāĻžāĻ¤ā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§:
- tsp āĻāĻ° āĻāĻāĻāĻĒā§āĻ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĻ¨ (CC āĻĻā§āĻŦāĻžāĻ°āĻž), āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻāĻ¸āĻ āĻāĻāĻžāĻ°ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĻ¨āĨ¤
- tsp āĻ¨āĻŋāĻā§āĻ āĻāĻŦāĻ/āĻ āĻĨāĻŦāĻž āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ bitrate_monitor āĻāĻŦāĻ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻž āĻļā§āĻˇ āĻāĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻŽāĻ¨āĻŋāĻāĻ°āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻāĻāĻŋ āĻŽā§āĻļāĻŋāĻ¨-āĻĒāĻžāĻ āĻ¯ā§āĻā§āĻ¯ āĻāĻāĻžāĻ°ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤
- tsduck āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻāĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŦā§āĻĻāĻ¨āĻāĻŋ āĻ˛āĻŋāĻā§āĻ¨āĨ¤
āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻ, āĻŦāĻŋāĻāĻ˛ā§āĻĒ 1 āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻĻāĻŋāĻ āĻĨā§āĻā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ, āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§ āĻ¯ā§ tsduck āĻ¨āĻŋāĻā§āĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° (āĻāĻ§ā§āĻ¨āĻŋāĻ āĻŽāĻžāĻ¨ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§) āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧā§āĻā§ (C ++)
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻžāĻļ āĻĒāĻžāĻ°ā§āĻ¸āĻžāĻ°+āĻāĻā§āĻ°āĻŋāĻā§āĻāĻ° āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻāĻŋ 10Mbps āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻāĻŦāĻ 50% āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ˛āĻ¸ (āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻžāĻ°āĻžāĻĒ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§), āĻŦā§āĻ¯āĻžāĻļ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ tsp āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻā§āĻ¯āĻŧā§ 3-4 āĻā§āĻŖ āĻŦā§āĻļāĻŋ CPU āĻāĻ°āĻ āĻāĻ°ā§āĨ¤ āĻāĻ āĻĻā§āĻļā§āĻ¯āĻāĻ˛ā§āĻĒ āĻ āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯. āĻāĻ¸āĻ˛ā§ āĻ¨ā§āĻā§āĻ° āĻāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻāĻāĻāĻŋ āĻā§āĻāĻ°āĻž
āĻāĻĒāĻ°ā§ āĻ¨ā§āĻĄāĻ˛āĻ¸
#!/usr/bin/env bash
missingPackets=0
ccErrorSeconds=0
regexMissPackets='^* (.+) - continuity:.*missing ([0-9]+) packets$'
missingPacketsTime=""
ip netns exec P tsp --realtime -t -I ip -b 8388608 "239.0.0.1:1234" -O drop -P bitrate_monitor -p 1 -t 1 -P continuity 2>&1 |
while read i
do
#line example:* 2019/12/28 23:41:14 - continuity: packet index: 6,078, PID: 0x0100, missing 5 packets
#line example 2: * 2019/12/28 23:55:11 - bitrate_monitor: 2019/12/28 23:55:11, TS bitrate: 4,272,864 bits/s
if [[ "$i" == *continuity:* ]]
then
if [[ "$i" =~ $regexMissPackets ]]
then
missingPacketsTimeNew="${BASH_REMATCH[1]}" #timestamp (seconds)
if [[ "$missingPacketsTime" != "$missingPacketsTimeNew" ]] #new second with CC error
then
((ccErrorSeconds += 1))
fi
missingPacketsTime=$missingPacketsTimeNew
packets=${BASH_REMATCH[2]} #TS missing packets
((missingPackets += packets))
fi
elif [[ "$i" == *bitrate_monitor:* ]]
then
: #...
fi
done
āĻ
āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻ§ā§āĻ° āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āĻŦā§āĻ¯āĻžāĻļā§ āĻā§āĻ¨ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻĨā§āĻ°ā§āĻĄ āĻ¨ā§āĻ, āĻŦā§āĻ¯āĻžāĻļ āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻĒā§āĻĨāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž, āĻāĻŦāĻ āĻāĻŽāĻžāĻā§ āĻĒāĻžāĻ°ā§āĻļā§āĻŦ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻĒāĻ° āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻāĻāĻŦāĻžāĻ° āĻ
āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻŽāĻžāĻ¨ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ (āĻ¯āĻāĻ¨ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻŦāĻŋāĻāĻ°ā§āĻ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻāĻ¸ā§)āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŦāĻžāĻļāĻā§ āĻāĻāĻž āĻā§āĻĄāĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻāĻŦāĻ āĻā§āĻ˛āĻ-āĻ āĻāĻāĻāĻŋ āĻŽā§āĻĄāĻŧāĻ (āĻĒāĻžāĻ°ā§āĻ¸āĻžāĻ° + āĻ
ā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻāĻ°) āĻ˛ā§āĻāĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻ
āĻ¨ā§āĻ°ā§āĻĒ āĻā§āĻ˛āĻ āĻā§āĻĄā§āĻ° CPU āĻāĻ°āĻ tsp āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻā§āĻ¯āĻŧā§ 4-5 āĻā§āĻŖ āĻāĻŽāĨ¤ āĻā§āĻ˛āĻžāĻā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻžāĻļ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻ°ā§āĻ¯āĻžāĻĒāĻžāĻ°ā§āĻ° āĻāĻ¤āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 16 āĻŦāĻžāĻ° āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯ (āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻžāĻ°āĻžāĻĒ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ CPU āĻāĻāĻžāĻ°āĻšā§āĻĄ 25%)āĨ¤ āĻā§āĻ˛āĻ āĻ¸ā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤
āĻŽā§āĻĄāĻŧāĻ āĻāĻžāĻ˛āĻžāĻ¨
āĻŽā§āĻĄāĻŧāĻ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ (
āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ systemctl enable āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻšāĻŦā§ [āĻāĻŽā§āĻ˛ āĻ¸ā§āĻ°āĻā§āĻˇāĻŋāĻ¤]:1234 āĻ¤āĻžāĻ°āĻĒāĻ° systemctl start āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻžāĻ˛āĻžāĻ¨ [āĻāĻŽā§āĻ˛ āĻ¸ā§āĻ°āĻā§āĻˇāĻŋāĻ¤]: 1234āĨ¤
Zabbix āĻĨā§āĻā§ āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ°
zabbix āĻāĻ˛āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
Zabbix āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻā§āĻāĻ˛āĻŋāĻ¸ā§āĻ (āĻāĻžāĻ˛, āĻ¯āĻĻāĻŋ āĻā§āĻ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻ¯āĻŧ)
- āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ tsp "āĻāĻĻāĻ°ā§āĻļ" āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĢā§āĻ˛ā§ āĻ¨āĻž (āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤), āĻ¯āĻĻāĻŋ āĻĄā§āĻ°āĻĒ āĻĨāĻžāĻā§, āĻ āĻ¨ā§āĻā§āĻā§āĻĻ 2 āĻŦāĻž āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻĒāĻžāĻ ā§āĻ¯ āĻĻā§āĻā§āĻ¨āĨ¤
- āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻ¸āĻā§āĻ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻŋāĻāĻ¨āĻŋāĻ āĻāĻ°ā§āĻ¨ (net.core.rmem_max=8388608)āĨ¤
- tsduck-stat.go āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°ā§āĻ¨ (tsduck-stat.go āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨)āĨ¤
- āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻā§āĻŽāĻĒā§āĻ˛ā§āĻāĻāĻŋ /lib/systemd/system-āĻ āĻ°āĻžāĻā§āĻ¨āĨ¤
- Systemctl āĻĻāĻŋāĻ¯āĻŧā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨, āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻā§ (grep "" /dev/shm/tsduck-stat/*)āĨ¤ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ āĻ¸ā§āĻā§āĻ°ā§āĻŽā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻāĻžāĻ¸ā§āĻ āĻā§āĻ°ā§āĻĒā§ āĻāĻāĻāĻŋ āĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¸āĻŽā§āĻāĻŦāĻ¤ rp_filter āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻŦāĻž āĻā§āĻ¸ ip-āĻ āĻāĻāĻāĻŋ āĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- Discovery.sh āĻāĻžāĻ˛āĻžāĻ¨, āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻāĻŋ json āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
- zabbix āĻāĻā§āĻ¨ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨, zabbix āĻāĻā§āĻ¨ā§āĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻ°āĻŽā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
- zabbix-āĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨, āĻāĻāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšā§āĻ¸ā§āĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ zabbix-āĻāĻā§āĻ¨ā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻā§, āĻĒā§āĻ°āĻžāĻ¯āĻŧ 5 āĻŽāĻŋāĻ¨āĻŋāĻ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨, āĻĻā§āĻā§āĻ¨ āĻ¨āĻ¤ā§āĻ¨ āĻāĻāĻā§āĻŽ, āĻā§āĻ°āĻžāĻĢ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻāĻžāĻ° āĻāĻā§ āĻāĻŋāĻ¨āĻžāĨ¤
āĻĢāĻ˛
āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻā§āĻˇāĻ¤āĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻžāĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¯āĻĨā§āĻˇā§āĻ, āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻŋ āĻā§āĻ¨āĻ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖā§āĻ° āĻā§āĻ¯āĻŧā§ āĻāĻžāĻ˛āĨ¤
āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻāĻŋāĻĄāĻŋāĻ āĻāĻŖā§āĻĄāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ CC "āĻā§āĻˇāĻ¤āĻŋ" āĻāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻ¯āĻ¤āĻĻā§āĻ° āĻāĻŽāĻŋ āĻāĻžāĻ¨āĻŋ, āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻĢā§āĻĄāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻŋāĻāĻŋ āĻā§āĻ¨ā§āĻĻā§āĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻāĻžāĻŦā§ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ āĻ°ā§āĻĨāĻžā§ āĻ¸āĻŋāĻ¸āĻŋ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ° āĻĒā§āĻ¨āĻāĻāĻŖāĻ¨āĻž āĻ¨āĻž āĻāĻ°ā§), āĻāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻŽāĻžāĻ˛āĻŋāĻāĻžāĻ¨āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻā§āĻ˛āĻŋ SCTE-35 āĻ˛ā§āĻŦā§āĻ˛ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°ā§ (āĻ¯āĻĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ) āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻāĻāĻļāĻŋāĻāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§ āĻāĻ°ā§ā§ˇ
āĻĒāĻ°āĻŋāĻŦāĻšāĻ¨ āĻŽāĻžāĻ¨ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻŋāĻāĻžāĻ° āĻŽāĻ¨āĻŋāĻāĻ°āĻŋāĻ (āĻāĻāĻāĻāĻŋ) āĻāĻ° āĻ āĻāĻžāĻŦ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŋāĻāĻŋ āĻ¸āĻ°āĻā§āĻāĻžāĻŽā§āĻ° (āĻ¸ā§āĻāĻŋ āĻŽāĻĄā§āĻ˛ā§āĻāĻ° āĻŦāĻž āĻļā§āĻˇ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻ āĻšā§āĻ) āĻāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻŋāĻāĻŦāĻžāĻĢāĻžāĻ°āĻā§ āĻ āĻ¨āĻ¨ā§āĻ¤ā§ āĻ¸ā§āĻĢā§āĻ¤ āĻāĻ°āĻž āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽā§āĻāĻŦ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻŦāĻ āĻāĻŋāĻāĻžāĻ° āĻāĻžāĻ¸āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻāĻ¨ āĻŦāĻĄāĻŧ āĻŦāĻžāĻĢāĻžāĻ° āĻ¸āĻš āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋ āĻā§āĻ°āĻžāĻ¨āĻāĻŋāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ QoS āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž āĻŦāĻž āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ°āĻŋāĻ¯āĻŧā§āĻ˛āĻāĻžāĻāĻŽ āĻā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ āĻĒā§āĻ°ā§āĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com