āĻ†āĻ‡āĻĒāĻŋ(āĻŸāĻŋāĻāĻ¸) āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ TSDuck āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž

āĻ†āĻœ, āĻ†āĻ‡āĻĒāĻŋ(āĻŸāĻŋāĻāĻ¸) āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ°ā§‡āĻĄāĻŋāĻŽā§‡āĻĄ (āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž) āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ VB и iQ, āĻ¤āĻžāĻĻā§‡āĻ° āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻŽā§‹āĻŸāĻžāĻŽā§āĻŸāĻŋ āĻ¸āĻŽā§ƒāĻĻā§āĻ§ āĻ¸ā§‡āĻŸ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŸāĻŋāĻ­āĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻŦāĻĄāĻŧ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ“āĻĒā§‡āĻ¨ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡ TSDuck, CC(āĻ•āĻ¨ā§āĻŸāĻŋāĻ¨āĻŋāĻ‰āĻŸāĻŋ āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ°) āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻāĻŦāĻ‚ āĻŦāĻŋāĻŸāĻ°ā§‡āĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž IP(TS) āĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻ˛āĻŋāĻœāĻĄ L2 āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸā§‡āĻ° āĻ•ā§āĻˇāĻ¤āĻŋ āĻŦāĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ•āĻ°āĻž (āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¸āĻžāĻ°āĻŋāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•ā§āĻˇāĻ¤āĻŋāĻ° āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻĒāĻĄāĻŧāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡)āĨ¤

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āĨ¤ āĻāĻ—ā§āĻ˛āĻŋ āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ•ā§‹āĻ¨āĻ“ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ 8 āĻāĻŦāĻ‚ āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ 10 āĻāĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒā§‡āĻ°ā§‡āĻ›āĻŋāĨ¤

āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€, āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 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 āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻāĻŦāĻ‚ āĻŦāĻŋāĻŸāĻ°ā§‡āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ—ā§āĻ°āĻžāĻĢ āĻ†āĻāĻ•āĻž āĻāĻŦāĻ‚ āĻ•āĻŋāĻ›ā§ āĻ§āĻ°āĻŖā§‡āĻ° āĻĻā§āĻ°ā§āĻ˜āĻŸāĻ¨āĻž āĻ˜āĻŸāĻžāĻ¤ā§‡, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ āĻĨāĻžāĻ•āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡:

  1. tsp āĻāĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĒāĻžāĻ°ā§āĻ¸ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨ (CC āĻĻā§āĻŦāĻžāĻ°āĻž), āĻ¯ā§‡āĻŽāĻ¨ āĻāĻŸāĻŋ āĻĒāĻ›āĻ¨ā§āĻĻāĻ¸āĻ‡ āĻ†āĻ•āĻžāĻ°ā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§āĻ¨āĨ¤
  2. tsp āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻŦāĻ‚/āĻ…āĻĨāĻŦāĻž āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ° āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ bitrate_monitor āĻāĻŦāĻ‚ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ¤āĻž āĻļā§‡āĻˇ āĻ•āĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§‡ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻŸāĻŋ āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻāĻ•āĻŸāĻŋ āĻŽā§‡āĻļāĻŋāĻ¨-āĻĒāĻžāĻ āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ†āĻ•āĻžāĻ°ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤
  3. 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%)āĨ¤ āĻ—ā§‹āĻ˛āĻ‚ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻāĻ–āĻžāĻ¨ā§‡.

āĻŽā§‹āĻĄāĻŧāĻ• āĻšāĻžāĻ˛āĻžāĻ¨

āĻŽā§‹āĻĄāĻŧāĻ• āĻļā§āĻ°ā§ āĻ•āĻ°āĻ¤ā§‡, āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻšāĻœ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ (āĻāĻ–āĻžāĻ¨ā§‡) āĻ°â€ā§āĻ¯āĻžāĻĒāĻžāĻ°āĻŸāĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¸āĻ‚āĻ•āĻ˛āĻŋāĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ•āĻĨāĻž (go build tsduck-stat.go) āĻ¯āĻž /opt/tsduck-stat/-āĻ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻāĻŸāĻž āĻ§āĻ°ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¯ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻ˜ā§‡āĻ¯āĻŧā§‡ āĻ˜āĻĄāĻŧāĻŋāĻ° (>=1.9) āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš āĻ—ā§‹āĻ˛āĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ›ā§‡āĻ¨āĨ¤

āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ systemctl enable āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻšāĻŦā§‡ [āĻ‡āĻŽā§‡āĻ˛ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻŋāĻ¤]:1234 āĻ¤āĻžāĻ°āĻĒāĻ° systemctl start āĻĻāĻŋāĻ¯āĻŧā§‡ āĻšāĻžāĻ˛āĻžāĻ¨ [āĻ‡āĻŽā§‡āĻ˛ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻŋāĻ¤]: 1234āĨ¤

Zabbix āĻĨā§‡āĻ•ā§‡ āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ°

zabbix āĻšāĻ˛āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻŸāĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ—ā§āĻ°ā§āĻĒ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸāĻ° (discovery.sh), Zabbix āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§‡, āĻāĻŸāĻž āĻ§āĻ°ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻ‡ āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ - /opt/tsduck-stat-āĻāĨ¤ zabbix-āĻāĻœā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ° āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ .conf āĻĢāĻžāĻ‡āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ zabbix-āĻāĻœā§‡āĻ¨ā§āĻŸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡āĨ¤

Zabbix āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ

āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ (tsduck_stat_template.xml) āĻ…āĻŸā§‹āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ, āĻ†āĻ‡āĻŸā§‡āĻŽ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻŸāĻžāĻ‡āĻĒ, āĻ—ā§āĻ°āĻžāĻĢ āĻāĻŦāĻ‚ āĻŸā§āĻ°āĻŋāĻ—āĻžāĻ° āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤

āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻšā§‡āĻ•āĻ˛āĻŋāĻ¸ā§āĻŸ (āĻ­āĻžāĻ˛, āĻ¯āĻĻāĻŋ āĻ•ā§‡āĻ‰ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§‡āĻ¯āĻŧ)

  1. āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨ āĻ¯ā§‡ tsp "āĻ†āĻĻāĻ°ā§āĻļ" āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸ āĻĢā§‡āĻ˛ā§‡ āĻ¨āĻž (āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸāĻ° āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻ• āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤), āĻ¯āĻĻāĻŋ āĻĄā§āĻ°āĻĒ āĻĨāĻžāĻ•ā§‡, āĻ…āĻ¨ā§āĻšā§āĻ›ā§‡āĻĻ 2 āĻŦāĻž āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻĒāĻžāĻ ā§āĻ¯ āĻĻā§‡āĻ–ā§āĻ¨āĨ¤
  2. āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻ¸āĻ•ā§‡āĻŸ āĻŦāĻžāĻĢāĻžāĻ° āĻŸāĻŋāĻ‰āĻ¨āĻŋāĻ‚ āĻ•āĻ°ā§āĻ¨ (net.core.rmem_max=8388608)āĨ¤
  3. tsduck-stat.go āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°ā§āĻ¨ (tsduck-stat.go āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨)āĨ¤
  4. āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸāĻŸāĻŋ /lib/systemd/system-āĻ āĻ°āĻžāĻ–ā§āĻ¨āĨ¤
  5. Systemctl āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ—ā§āĻ˛āĻŋ āĻļā§āĻ°ā§ āĻ•āĻ°ā§āĻ¨, āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§āĻ¨ āĻ¯ā§‡ āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĻ›ā§‡ (grep "" /dev/shm/tsduck-stat/*)āĨ¤ āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ•āĻžāĻ¸ā§āĻŸ āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻ•āĻžāĻ¸ā§āĻŸ āĻ—ā§āĻ°ā§āĻĒā§‡ āĻāĻ•āĻŸāĻŋ āĻ°ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ rp_filter āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻŦāĻž āĻ‰ā§ŽāĻ¸ ip-āĻ āĻāĻ•āĻŸāĻŋ āĻ°ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤
  6. Discovery.sh āĻšāĻžāĻ˛āĻžāĻ¨, āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨ āĻ¯ā§‡ āĻāĻŸāĻŋ json āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤
  7. zabbix āĻāĻœā§‡āĻ¨ā§āĻŸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨, zabbix āĻāĻœā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ†āĻ°āĻŽā§āĻ­ āĻ•āĻ°ā§āĻ¨āĨ¤
  8. zabbix-āĻ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨, āĻāĻŸāĻŋāĻ•ā§‡ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšā§‹āĻ¸ā§āĻŸā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ zabbix-āĻāĻœā§‡āĻ¨ā§āĻŸ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ†āĻ›ā§‡, āĻĒā§āĻ°āĻžāĻ¯āĻŧ 5 āĻŽāĻŋāĻ¨āĻŋāĻŸ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§āĻ¨, āĻĻā§‡āĻ–ā§āĻ¨ āĻ¨āĻ¤ā§āĻ¨ āĻ†āĻ‡āĻŸā§‡āĻŽ, āĻ—ā§āĻ°āĻžāĻĢ āĻāĻŦāĻ‚ āĻŸā§āĻ°āĻŋāĻ—āĻžāĻ° āĻ†āĻ›ā§‡ āĻ•āĻŋāĻ¨āĻžāĨ¤

āĻĢāĻ˛

āĻ†āĻ‡āĻĒāĻŋ(āĻŸāĻŋāĻāĻ¸) āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽ āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ TSDuck āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž

āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻŸā§‡āĻ° āĻ•ā§āĻˇāĻ¤āĻŋ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻ•āĻžāĻœāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯, āĻāĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¯āĻĨā§‡āĻˇā§āĻŸ, āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻāĻŸāĻŋ āĻ•ā§‹āĻ¨āĻ“ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻ­āĻžāĻ˛āĨ¤

āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻĒāĻ•ā§āĻˇā§‡, āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ–āĻŖā§āĻĄāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ CC "āĻ•ā§āĻˇāĻ¤āĻŋ" āĻ˜āĻŸāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ (āĻ¯āĻ¤āĻĻā§‚āĻ° āĻ†āĻŽāĻŋ āĻœāĻžāĻ¨āĻŋ, āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻĢā§‡āĻĄāĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻŸāĻŋāĻ­āĻŋ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§‡āĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻ¸āĻŋāĻ¸āĻŋ āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻĒā§āĻ¨āĻƒāĻ—āĻŖāĻ¨āĻž āĻ¨āĻž āĻ•āĻ°ā§‡), āĻāĻŸāĻŋ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻŽāĻžāĻ˛āĻŋāĻ•āĻžāĻ¨āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ—ā§āĻ˛āĻŋ SCTE-35 āĻ˛ā§‡āĻŦā§‡āĻ˛ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°ā§‡ (āĻ¯āĻĻāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ) āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ†āĻ‚āĻļāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§‹āĻ§ āĻ•āĻ°ā§‡ā§ˇ

āĻĒāĻ°āĻŋāĻŦāĻšāĻ¨ āĻŽāĻžāĻ¨ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻœāĻŋāĻŸāĻžāĻ° āĻŽāĻ¨āĻŋāĻŸāĻ°āĻŋāĻ‚ (āĻ†āĻ‡āĻāĻŸāĻŋ) āĻāĻ° āĻ…āĻ­āĻžāĻŦ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻŸāĻŋāĻ­āĻŋ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽā§‡āĻ° (āĻ¸ā§‡āĻŸāĻŋ āĻŽāĻĄā§āĻ˛ā§‡āĻŸāĻ° āĻŦāĻž āĻļā§‡āĻˇ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸āĻ‡ āĻšā§‹āĻ•) āĻāĻ‡ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻœāĻŋāĻŸāĻŦāĻžāĻĢāĻžāĻ°āĻ•ā§‡ āĻ…āĻ¨āĻ¨ā§āĻ¤ā§‡ āĻ¸ā§āĻĢā§€āĻ¤ āĻ•āĻ°āĻž āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽā§āĻ­āĻŦ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻŦāĻ‚ āĻœāĻŋāĻŸāĻžāĻ° āĻ­āĻžāĻ¸āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻ–āĻ¨ āĻŦāĻĄāĻŧ āĻŦāĻžāĻĢāĻžāĻ° āĻ¸āĻš āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻŸā§āĻ°āĻžāĻ¨āĻœāĻŋāĻŸā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ QoS āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž āĻŦāĻž āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ°āĻŋāĻ¯āĻŧā§‡āĻ˛āĻŸāĻžāĻ‡āĻŽ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻĒā§āĻ°ā§‡āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨