IP(TS) เจตเจนเจพเจ… เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ เจฒเจˆ TSDuck เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจ…เฉฑเจœ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, IP(TS) เจฆเฉ‡ เจชเฉเจฐเจตเจพเจน เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ (เจฎเจพเจฒเจ•เฉ€เจ…เจค) เจนเฉฑเจฒ เจนเจจ VB ะธ iQ, เจ‰เจนเจจเจพเจ‚ เจ•เฉ‹เจฒ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเจพ เจ•เจพเจซเจผเฉ€ เจ…เจฎเฉ€เจฐ เจธเจฎเฉ‚เจน เจนเฉˆ เจ…เจคเฉ‡ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจŸเฉ€เจตเฉ€ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจตเฉฑเจกเฉ‡ เจ“เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจ•เฉ‹เจฒ เจธเจฎเจพเจจ เจนเฉฑเจฒ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ‡เจน เจฒเฉ‡เจ– เจ‡เฉฑเจ• เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจ‡เฉฑเจ• เจนเฉฑเจฒ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจฆเจพ เจนเฉˆ TSDuck, CC (เจจเจฟเจฐเฉฐเจคเจฐเจคเจพ เจ•เจพเจŠเจ‚เจŸเจฐ) เจ•เจพเจŠเจ‚เจŸเจฐ เจ…เจคเฉ‡ เจฌเจฟเฉฑเจŸเจฐเฉ‡เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ IP(TS) เจตเจนเจพเจ… เจฆเฉ‡ เจจเจฟเจŠเจจเจคเจฎ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เฉฑเจ• เจธเฉฐเจญเจพเจตเจฟเจค เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ‡เฉฑเจ• เจฒเฉ€เจœเจผเจก L2 เจšเฉˆเจจเจฒ เจฆเฉเจ†เจฐเจพ เจชเฉˆเจ•เจŸเจพเจ‚ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ เจœเจพเจ‚ เจชเฉ‚เจฐเฉ‡ เจชเฉเจฐเจตเจพเจน เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐ เจฐเจนเฉ€ เจนเฉˆ (เจœเจฟเจธ เจฆเฉ€ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ•เจคเจพเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจจเฉเจ•เจธเจพเจจ เจฆเฉ‡ เจ•เจพเจŠเจ‚เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉœเฉเจน เจ•เฉ‡)เฅค

TSDuck เจฌเจพเจฐเฉ‡ เจฌเจนเฉเจค เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš

TSDuck เจ‡เฉฑเจ• เจ“เจชเจจ เจธเฉ‹เจฐเจธ (2-เจ•เจฒเจพเจœเจผ BSD เจฒเจพเจ‡เจธเฉˆเจ‚เจธ) เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจนเฉˆ (เจ•เฉฐเจธเฉ‹เจฒ เจ‰เจชเจฏเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจ…เจคเฉ‡ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจ†เจชเจฃเฉ€เจ†เจ‚ เจ‰เจชเจฏเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจœเจพเจ‚ เจชเจฒเฉฑเจ—เจ‡เจจเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€) TS เจธเจŸเฉเจฐเฉ€เจฎเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจ•เจฐเจจ เจฒเจˆเฅค เจ‡เฉฑเจ• เจ‡เฉฐเจชเฉเฉฑเจŸ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจ‡เจน IP (เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ/เจฏเฉ‚เจจเฉ€เจ•เจพเจธเจŸ), http, hls, dvb เจŸเจฟเจŠเจจเจฐ, dektec dvb-asi demodulator เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจ‡เฉฑเจ• เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ TS เจธเจŸเฉเจฐเฉ€เจฎ เจœเจจเจฐเฉ‡เจŸเจฐ เจนเฉˆ เจ…เจคเฉ‡ เจซเจพเจˆเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจฐเฉ€เจกเจฟเฉฐเจ— เจนเฉˆเฅค เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ, IP (เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ/เจฏเฉ‚เจจเฉ€เจ•เจพเจธเจŸ), hls, dektec dvb-asi เจ…เจคเฉ‡ HiDes เจฎเฉ‹เจกเจฟเจŠเจฒเฉ‡เจŸเจฐ, เจชเจฒเฉ‡เจ…เจฐ (mplayer, vlc, xine) เจ…เจคเฉ‡ เจกเฉเจฐเฉŒเจช เจฒเจˆ เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ— เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจ‡เจจเจชเฉเจŸ เจ…เจคเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ, เจคเฉเจธเฉ€เจ‚ เจตเฉฑเจ–-เจตเฉฑเจ– เจŸเฉเจฐเฉˆเจซเจฟเจ• เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉ€เจ†เจˆเจกเฉ€ เจจเฉ‚เฉฐ เจฐเฉ€เจฎเฉˆเจช เจ•เจฐเจจเจพ, เจธเจ•เฉเจฐเฉˆเจ‚เจฌเจฒเจฟเฉฐเจ—/เจกเฉˆเจธเจ•เฉเจฐเฉˆเจ‚เจฌเจฒเจฟเฉฐเจ— เจ•เจฐเจจเจพ, เจธเฉ€เจธเฉ€ เจ•เจพเจŠเจ‚เจŸเจฐเจพเจ‚ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเจจเจพ, เจฌเจฟเฉฑเจŸเจฐเฉ‡เจŸ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ TS เจธเจŸเฉเจฐเฉ€เจฎเจพเจ‚ เจฒเจˆ เจ–เจพเจธ เจนเฉ‹เจฐ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚เฅค

เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš, IP เจธเจŸเฉเจฐเฉ€เจฎเจœเจผ (เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ) เจจเฉ‚เฉฐ เจ‡เจจเจชเฉเจŸ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ, เจฌเจฟเฉฑเจŸเจฐเฉ‡เจŸ_เจฎเฉ‹เจจเฉ€เจŸเจฐ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ (เจจเจพเจฎ เจคเฉ‹เจ‚ เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เฉ€ เจนเฉˆ) เจ…เจคเฉ‡ เจจเจฟเจฐเฉฐเจคเจฐเจคเจพ (CC เจ•เจพเจŠเจ‚เจŸเจฐ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ) เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจธเจฎเฉฑเจธเจฟเจ† เจฆเฉ‡, เจคเฉเจธเฉ€เจ‚ IP เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ เจจเฉ‚เฉฐ TSDuck เจฆเฉเจ†เจฐเจพ เจธเจฎเจฐเจฅเจฟเจค เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจ‡เจจเจชเฉเจŸ เจ•เจฟเจธเจฎ เจจเจพเจฒ เจฌเจฆเจฒ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ‰เจชเจฒเฉฑเจฌเจง เจ…เจงเจฟเจ•เจพเจฐเจค เจฌเจฟเจฒเจก/เจชเฉˆเจ•เฉ‡เจœ เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจฎเฉŒเจœเฉ‚เจฆเจพ OS เจฒเจˆ TSDuck. เจกเฉ‡เจฌเฉ€เจ…เจจ เจฒเจˆ เจ•เฉ‹เจˆ เจตเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจ…เจธเฉ€เจ‚ เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจกเฉ‡เจฌเฉ€เจ…เจจ 8 เจ…เจคเฉ‡ เจกเฉ‡เจฌเฉ€เจ…เจจ 10 เจฒเจˆ เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจธเจฎเฉฑเจธเจฟเจ† เจฆเฉ‡ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจฐเจนเฉ‡เฅค

เจ…เฉฑเจ—เฉ‡, TSDuck เจธเฉฐเจธเจ•เจฐเจฃ 3.19-1520 เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจฒเฉ€เจจเจ•เจธ เจจเฉ‚เฉฐ OS เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจกเฉˆเจฌเฉ€เจ…เจจ 10 เจนเฉฑเจฒ เจคเจฟเจ†เจฐ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจ—เจฟเจ† เจธเฉ€, CentOS 7 เจ…เจธเจฒ เจตเจฐเจคเฉ‹เจ‚ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจ—เจฟเจ† เจธเฉ€)

TSDuck เจ…เจคเฉ‡ OS เจฆเฉ€ เจคเจฟเจ†เจฐเฉ€

เจ…เจธเจฒ เจตเจนเจพเจ… เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ•เจฟ TSDuck เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจฌเฉ‚เฉฐเจฆเจพเจ‚ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ•เจพเจฐเจก เจœเจพเจ‚ OS (เจธเจพเจ•เฉ‡เจŸ) เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจจเจนเฉ€เจ‚ เจ†เจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‡เจน เจ‡เจธ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจ‡เจน เจ…เฉฐเจฆเจพเจœเจผเจพ เจฒเจ—เจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจพ เจชเจตเฉ‡ เจ•เจฟ เจฌเฉ‚เฉฐเจฆเจพเจ‚ เจ•เจฟเฉฑเจฅเฉ‡ เจ†เจˆเจ†เจ‚ - เจจเฉˆเฉฑเจŸเจตเจฐเจ• 'เจคเฉ‡ เจœเจพเจ‚ "เจธเจฐเจตเจฐ เจฆเฉ‡ เจ…เฉฐเจฆเจฐเฅค" เจคเฉเจธเฉ€เจ‚ ethtool -S ethX เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ•เจพเจฐเจก เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจฌเฉ‚เฉฐเจฆเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจŸเจฟเจŠเจจเจฟเฉฐเจ— เจ‰เจธเฉ‡ เจˆเจฅเจŸเฉ‚เจฒ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ (เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ 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" เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเจฐ เจธเจ•เจฟเฉฐเจŸ เจฌเจฟเฉฑเจŸเจฐเฉ‡เจŸ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจ เจ…เจคเฉ‡ เจนเจฐ เจธเจ•เจฟเฉฐเจŸ เจฌเจฟเฉฑเจŸเจฐเฉ‡เจŸ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเจฟเจ–เจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ
เจ…เจธเฉ€เจ‚ 10 Mbit/s เจฆเฉ€ เจธเจชเฉ€เจก เจจเจพเจฒ เจ‡เฉฑเจ• เจŸเฉเจฐเฉˆเจซเจฟเจ• เจœเจจเจฐเฉ‡เจŸเจฐ เจฒเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

tsp -I craft 
 -P regulate -b 10000000 
 -O ip -p 7 -e --local-port 6000 239.0.0.1:1234

เจœเจฟเฉฑเจฅเฉ‡ "-p 7 -e" เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ 7 TS เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจจเฉ‚เฉฐ 1 IP เจชเฉˆเจ•เฉ‡เจŸ เจตเจฟเฉฑเจš เจชเฉˆเจ• เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจธเจ–เจผเจค (-e), เจฏเจพเจจเฉ€. เจ‡เฉฑเจ• IP เจชเฉˆเจ•เฉ‡เจŸ เจฌเจฃเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเจฎเฉ‡เจธเจผเจพ เจ†เจ–เจฐเฉ€ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจคเฉ‹เจ‚ 7 TS เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เจฐเฉ‹เฅค

เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจ• เจ‰เจฎเฉ€เจฆ เจ•เฉ€เจคเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ:

* 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) เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจœเจจเจฐเฉ‡เจŸเจฐ เจฌเจฟเฉฑเจŸเจฐเฉ‡เจŸ เจจเฉ‚เฉฐ 100 Mbit/s เจคเฉฑเจ• เจตเจงเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจ• 75 เจฆเฉ€ เจฌเจœเจพเจ CC เจ—เจฒเจคเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจฒเจ—เจญเจ— 100 Mbit/s เจฆเฉ€ เจฐเจฟเจชเฉ‹เจฐเจŸ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ•เฉŒเจฃ เจฆเฉ‹เจธเจผเฉ€ เจนเฉˆ - เจœเจจเจฐเฉ‡เจŸเจฐ เจšเจพเจฒเฉ‚ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ เจœเจพเจ‚ เจธเจฎเฉฑเจธเจฟเจ† เจ‡เจธ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฌเจฃเจพเจ‰เจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจฆเฉ€ เจธเจฅเจฟเจฐ เจธเฉฐเจ–เจฟเจ† (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 IP เจชเฉˆเจ•เฉ‡เจŸ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเจจ (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 เจธเจพเจ•เจŸ เจตเจฟเฉฑเจš เจคเฉเจชเจ•เฉ‡ เจนเจจเฅค UDP เจธเจพเจ•เจŸ 'เจคเฉ‡ เจคเฉเจชเจ•เฉ‡ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจซเจฐ เจฆเฉ€ เจ˜เจพเจŸ เจ•เจพเจฐเจจ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ, เจ†เจ“ เจฆเฉ‡เจ–เฉ€เจ เจ•เจฟ เจกเจฟเจซเจพเจฒเจŸ เจธเจพเจ•เจŸ เจฌเจซเจฐ เจฆเจพ เจ†เจ•เจพเจฐ เจ…เจคเฉ‡ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเจพเจ•เจŸ เจฌเจซเจฐ เจ†เจ•เจพเจฐ เจ•เฉ€ เจนเจจ:

# sysctl net.core.rmem_default
net.core.rmem_default = 212992
# sysctl net.core.rmem_max
net.core.rmem_max = 212992

เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจœเฉ‡เจ•เจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจซเจฐ เจธเจพเจˆเจœเจผ เจฆเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจคเจพเจ‚ เจธเจพเจ•เจŸ 208 KB เจฌเจซเจฐ เจจเจพเจฒ เจฌเจฃเจพเจ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจชเจฐ เจœเฉ‡เจ•เจฐ เจ‰เจน เจนเฉ‹เจฐ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจคเจพเจ‚ เจตเฉ€ เจ‰เจน เจชเฉเจฐเจพเจชเจค เจจเจนเฉ€เจ‚ เจ•เจฐเจจเจ—เฉ‡ เจœเฉ‹ เจ‰เจนเจจเจพเจ‚ เจจเฉ‡ เจฌเฉ‡เจจเจคเฉ€ เจ•เฉ€เจคเฉ€ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ tsp เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ IP เจ‡เฉฐเจชเฉเฉฑเจŸ (--buffer-size) เจฒเจˆ เจฌเจซเจฐ เจธเจพเจˆเจœเจผ เจธเฉˆเจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ…เจธเฉ€เจ‚ เจกเจฟเจซเจพเจฒเจŸ เจธเจพเจ•เจŸ เจธเจพเจˆเจœเจผ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจ›เฉ‚เจนเจพเจ‚เจ—เฉ‡, เจชเจฐ เจธเจฟเจฐเจซ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเจพเจ•เจŸ เจฌเจซเจฐ เจธเจพเจˆเจœเจผ เจธเฉˆเฉฑเจŸ เจ•เจฐเจพเจ‚เจ—เฉ‡ เจ…เจคเฉ‡ 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 เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเจนเฉ€เจ‚ เจนเจจเฅค

tsp เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉเจ†เจฐเจพ เจ–เฉเจฆ CPU เจฆเฉ€ เจ–เจชเจค 'เจคเฉ‡ เจ…เจงเจพเจฐเจคเฅค เจ‡เฉฑเจ• เจ•เฉ‹เจฐ i5-4260U CPU @ 1.40GHz เจฆเฉ‡ เจธเจฌเฉฐเจง เจตเจฟเฉฑเจš, เจ‡เฉฑเจ• 10Mbit/s เจชเฉเจฐเจตเจพเจน เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเจจ เจฒเจˆ, CPU เจฆเฉ‡ 3-4% เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡เจ—เฉ€, 100Mbit/s - 25%, 200Mbit/s - 46%เฅค เจœเจฆเฉ‹เจ‚ % เจชเฉˆเจ•เฉ‡เจŸ เจจเฉเจ•เจธเจพเจจ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ CPU เจฒเฉ‹เจก เจ…เจฎเจฒเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจจเจนเฉ€เจ‚ เจตเจงเจฆเจพ (เจชเจฐ เจ˜เจŸ เจธเจ•เจฆเจพ เจนเฉˆ)เฅค

เจตเจงเฉ‡เจฐเฉ‡ เจ‰เจคเจชเจพเจฆเจ• เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ 'เจคเฉ‡, เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจธเจฎเฉฑเจธเจฟเจ† เจฆเฉ‡ 1Gb/s เจคเฉ‹เจ‚ เจตเฉฑเจง เจฆเฉ€เจ†เจ‚ เจธเจŸเฉเจฐเฉ€เจฎเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃเจพ เจ…เจคเฉ‡ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจธเฉ€เฅค

เจ…เจธเจฒเฉ€ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ•เจพเจฐเจก 'เจคเฉ‡ เจŸเฉˆเจธเจŸเจฟเฉฐเจ—

เจตเฉˆเจฅ เจœเฉ‹เฉœเจพ 'เจคเฉ‡ เจŸเฉˆเจธเจŸ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจนเฉ‹เจธเจŸ เจฆเฉ‡ เจฆเฉ‹ เจนเฉ‹เจธเจŸ เจœเจพเจ‚ เจฆเฉ‹ เจชเฉ‹เจฐเจŸเจพเจ‚ เจฒเฉˆเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจชเฉ‹เจฐเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจจเจพเจฒ เจœเฉ‹เฉœเจจเจพ, เจ‡เฉฑเจ• 'เจคเฉ‡ เจœเจจเจฐเฉ‡เจŸเจฐ เจšเจฒเจพเจ‰เจฃเจพ, เจ…เจคเฉ‡ เจฆเฉ‚เจœเฉ‡ 'เจคเฉ‡ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจ•. เจ‡เฉฑเจฅเฉ‡ เจ•เฉ‹เจˆ เจนเฉˆเจฐเจพเจจเฉ€ เจจเจนเฉ€เจ‚ เจธเฉ€, เจชเจฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เจน เจธเจญ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจน เจœเจฟเฉฐเจจเจพ เจ•เจฎเจœเจผเฉ‹เจฐ เจนเฉˆ, เจ“เจจเจพ เจนเฉ€ เจฆเจฟเจฒเจšเจธเจช เจนเฉ‹เจตเฉ‡เจ—เจพ.

เจฎเจพเจจเฉ€เจŸเจฐเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ (เจœเจผเฉˆเจฌเจฟเจ•เจธ) เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

tsp เจ•เฉ‹เจฒ เจ•เฉ‹เจˆ เจตเฉ€ เจฎเจธเจผเฉ€เจจ-เจชเฉœเฉเจนเจจ เจฏเฉ‹เจ— API เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ SNMP เจœเจพเจ‚ เจธเจฎเจพเจจเฅค CC เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฑเจš เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ 1 เจธเจ•เจฟเฉฐเจŸ เจ‡เจ•เฉฑเจ เฉ‡ เจ•เฉ€เจคเฉ‡ เจœเจพเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ (เจชเฉˆเจ•เฉ‡เจŸ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ เจฆเฉ€ เจ‰เฉฑเจš เจชเฉเจฐเจคเฉ€เจธเจผเจคเจคเจพ เจฆเฉ‡ เจจเจพเจฒ, เจฌเจฟเฉฑเจŸเจฐเฉ‡เจŸ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡, เจธเฉˆเจ‚เจ•เฉœเฉ‡/เจนเจœเจผเจพเจฐเจพเจ‚/เจนเจœเจผเจพเจฐเจพเจ‚ เจชเฉเจฐเจคเฉ€ เจธเจ•เจฟเฉฐเจŸ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ)เฅค

เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเฉ‚เฉฐ เจฌเจšเจพเจ‰เจฃ เจ…เจคเฉ‡ CC เจ—เจฒเจคเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจฌเจฟเฉฑเจŸเจฐเฉ‡เจŸ เจฒเจˆ เจ—เฉเจฐเจพเจซ เจ–เจฟเฉฑเจšเจฃ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจฆเฉเจฐเจ˜เจŸเจจเจพเจตเจพเจ‚ เจ•เจฐเจจ เจฒเจˆ, เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจตเจฟเจ•เจฒเจช เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ:

  1. tsp เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ…เจคเฉ‡ เจเจ—เจฐเฉ€เจ—เฉ‡เจŸ (CC เจฆเฉเจ†เจฐเจพ) เจ•เจฐเฉ‹, i.e. เจ‡เจธ เจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฌเจฆเจฒเฉ‹.
  2. tsp เจ†เจชเจฃเฉ‡ เจ†เจช เจ…เจคเฉ‡/เจœเจพเจ‚ bitrate_monitor เจ…เจคเฉ‡ เจจเจฟเจฐเฉฐเจคเจฐเจคเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจชเจฒเฉฑเจ—เจ‡เจจ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹ เจคเจพเจ‚ เจ•เจฟ เจจเจคเฉ€เจœเจพ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจชเฉเจฐเจฃเจพเจฒเฉ€ เจฒเจˆ เจขเฉเจ•เจตเฉ‡เจ‚ เจฎเจธเจผเฉ€เจจ-เจชเฉœเฉเจนเจจ เจฏเฉ‹เจ— เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจนเฉ‹เจตเฉ‡เฅค
  3. เจ†เจชเจฃเฉ€ เจ…เจฐเจœเจผเฉ€ tsduck เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจฒเจฟเจ–เฉ‹เฅค

เจธเจชเฉฑเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡, เจฒเฉ‡เจฌเจฐ เจฆเฉ€ เจฒเจพเจ—เจค เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš, เจตเจฟเจ•เจฒเจช 1 เจธเจญ เจคเฉ‹เจ‚ เจธเจฐเจฒ เจนเฉˆ, เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ เจ•เจฟ tsduck เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ˜เฉฑเจŸ-เจชเฉฑเจงเจฐ (เจ†เจงเฉเจจเจฟเจ• เจฎเจฟเจ†เจฐเจพเจ‚ เจฆเฉเจ†เจฐเจพ) เจญเจพเจธเจผเจพ (C++) เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค

เจฌเฉˆเจธเจผ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจชเจพเจฐเจธเจฐ + เจเจ—เจฐเฉ€เจ—เฉ‡เจŸเจฐ เจฆเฉ‡ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจจเฉ‡ เจฆเจฟเจ–เจพเจ‡เจ† เจ•เจฟ 10 Mbit/s เจฆเฉ‡ เจ‡เฉฑเจ• เจชเฉเจฐเจตเจพเจน เจ…เจคเฉ‡ 50% เจชเฉˆเจ•เฉ‡เจŸ เจจเฉเจ•เจธเจพเจจ (เจธเจญ เจคเฉ‹เจ‚ เจฎเจพเฉœเฉ€ เจธเจฅเจฟเจคเฉ€) 'เจคเฉ‡, bash เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‡ 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

เจ‡เจธ เจคเฉฑเจฅ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจ•เจฟ เจ‡เจน เจ…เจธเจตเฉ€เจ•เจพเจฐเจจเจฏเฉ‹เจ— เจคเฉŒเจฐ 'เจคเฉ‡ เจนเฉŒเจฒเฉ€-เจนเฉŒเจฒเฉ€ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, bash เจตเจฟเฉฑเจš เจ•เฉ‹เจˆ เจ†เจฎ เจฅเฉเจฐเฉˆเฉฑเจก เจจเจนเฉ€เจ‚ เจนเจจ, bash เจจเฉŒเจ•เจฐเฉ€เจ†เจ‚ เจธเฉเจคเฉฐเจคเจฐ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจนเจจ เจ…เจคเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจธเจพเจˆเจก เจ‡เจซเฉˆเจ•เจŸ (เจœเจฆเฉ‹เจ‚ เจฌเจฟเฉฑเจŸเจฐเฉ‡เจŸ เจธเฉเจจเฉ‡เจนเฉ‡ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจนเจฐ เจธเจ•เจฟเฉฐเจŸ เจตเจฟเฉฑเจš เจ†เจ‰เจ‚เจฆเฉ‡ เจนเจจ) 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเจ•เจฟเฉฐเจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจพเจฐ เจ—เฉเฉฐเจฎ เจชเฉˆเจ•เฉ‡เจŸ เจฎเฉเฉฑเจฒ เจฒเจฟเจ–เจฃเจพ เจชเฉˆเจ‚เจฆเจพ เจธเฉ€เฅค เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจฌเจพเจธเจผ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจฒเจพ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจ…เจคเฉ‡ เจ—เฉ‹เจฒเฉฐเจ— เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฐเฉˆเจชเจฐ (เจชเจพเจฐเจธเจฐ + เจเจ—เจฐเฉ€เจ—เฉ‡เจŸเจฐ) เจฒเจฟเจ–เจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจ—เจฟเจ†เฅค เจ—เฉ‹เจฒเจพเจ‚เจ— เจตเจฟเฉฑเจš เจธเจฎเจพเจจ เจ•เฉ‹เจก เจฆเฉ€ CPU เจ–เจชเจค tsp เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจคเฉ‹เจ‚ 4-5 เจ—เฉเจฃเจพ เจ˜เฉฑเจŸ เจนเฉˆเฅค เจฌเฉˆเจธเจผ เจจเฉ‚เฉฐ เจ—เฉ‹เจฒเฉฐเจ— เจจเจพเจฒ เจฌเจฆเจฒ เจ•เฉ‡ เจฐเฉˆเจชเจฐ เจฆเจพ เจชเฉเจฐเจตเฉ‡เจ— เจฒเจ—เจญเจ— 16 เจ—เฉเจฃเจพ เจธเฉ€ เจ…เจคเฉ‡ เจ•เฉเฉฑเจฒ เจฎเจฟเจฒเจพ เจ•เฉ‡ เจจเจคเฉ€เจœเจพ เจธเจตเฉ€เจ•เจพเจฐเจฏเฉ‹เจ— เจนเฉˆ (เจธเจญ เจคเฉ‹เจ‚ เจฎเจพเฉœเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš CPU เจ“เจตเจฐเจนเฉˆเฉฑเจก 25%)เฅค เจ—เฉ‹เจฒเฉฐเจ— เจธเจฐเฉ‹เจค เจซเจพเจˆเจฒ เจธเจฅเจฟเจค เจนเฉˆ เจ‡เฉฑเจฅเฉ‡.

เจฐเฉˆเจชเจฐ เจฒเจพเจ‚เจš เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจฐเฉˆเจชเจฐ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ, systemd เจฒเจˆ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจธเฉ‡เจตเจพ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจธเฉ€ (เจ‡เฉฑเจฅเฉ‡). เจ‡เจน เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจฐเฉˆเจชเจฐ เจจเฉ‚เฉฐ เจ–เฉเจฆ เจ‡เฉฑเจ• เจฌเจพเจˆเจจเจฐเฉ€ เจซเจพเจˆเจฒ (go build tsduck-stat.go) เจตเจฟเฉฑเจš เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจœเฉ‹ /opt/tsduck-stat/ เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจนเฉˆเฅค เจ‡เจน เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ—เฉ‹เจฒเฉฐเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฎเฉ‹เจจเฉ‹เจŸเฉ‹เจจเจฟเจ• เจ•เจฒเจพเจ• เจธเจชเฉ‹เจฐเจŸ (>=1.9) เจจเจพเจฒ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจธเฉ‡เจตเจพ เจ‰เจฆเจพเจนเจฐเจจ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ systemctl enable เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ [เจˆเจฎเฉ‡เจฒ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค]:1234, เจซเจฟเจฐ systemctl เจธเจŸเจพเจฐเจŸ เจจเจพเจฒ เจšเจฒเจพเจ“ [เจˆเจฎเฉ‡เจฒ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค]: 1234

เจœเจผเฉˆเจฌเจฟเจ•เจธ เจคเฉ‹เจ‚ เจ–เฉ‹เจœ

เจคเจพเจ‚ เจœเฉ‹ เจœเจผเฉˆเจฌเจฟเจ•เจธ เจšเฉฑเจฒ เจฐเจนเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐ เจธเจ•เฉ‡, เจธเจฎเฉ‚เจน เจธเฉ‚เจšเฉ€ เจœเจจเจฐเฉ‡เจŸเจฐ (discovery.sh), Zabbix เจ–เฉ‹เจœ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš, เจ‡เจน เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ‰เจธเฉ‡ เจฅเจพเจ‚ 'เจคเฉ‡ เจธเจฅเจฟเจค เจนเฉˆ - /opt/tsduck-stat เจตเจฟเฉฑเจšเฅค เจœเจผเฉˆเจฌเจฟเจ•เจธ-เจเจœเฉฐเจŸ เจฆเฉเจ†เจฐเจพ เจ–เฉ‹เจœ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ .conf เจซเจพเจˆเจฒ เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจœเฉ‹เฉœเจจ เจฒเจˆ zabbix-agent เจธเฉฐเจฐเจšเจจเจพ เจจเจพเจฒ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš.

เจœเจผเฉˆเจฌเจฟเจ•เจธ เจŸเฉˆเจฎเจชเจฒเฉ‡เจŸ

เจŸเฉˆเจฎเจชเจฒเฉ‡เจŸ เจฌเจฃเจพเจ‡เจ† (tsduck_stat_template.xml) เจตเจฟเฉฑเจš เจ†เจŸเฉ‹เจกเจฟเจธเจ•เจตเจฐเฉ€ เจจเจฟเจฏเจฎ, เจคเฉฑเจค, เจ—เฉเจฐเจพเจซ, เจ…เจคเฉ‡ เจŸเฉเจฐเจฟเจ—เจฐ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจธเจผเจพเจฎเจฒ เจนเจจเฅค

เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจšเฉˆเจ•เจฒเจฟเจธเจŸ (เจ•เฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพ เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจ‡เจธเจจเฉ‚เฉฐ เจตเจฐเจคเจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เจฐเจฆเจพ เจนเฉˆ)

  1. เจ‡เจน เจธเฉเจจเจฟเจธเจผเจšเจฟเจค เจ•เจฐเฉ‹ เจ•เจฟ tsp "เจ†เจฆเจฐเจธเจผ" เจธเจฅเจฟเจคเฉ€เจ†เจ‚ (เจœเจจเจฐเฉ‡เจŸเจฐ เจ…เจคเฉ‡ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจ• เจธเจฟเฉฑเจงเฉ‡ เจœเฉเฉœเฉ‡ เจนเฉ‹เจ เจนเจจ) เจฆเฉ‡ เจ…เจงเฉ€เจจ เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจ›เฉฑเจกเจฆเจพ, เจœเฉ‡เจ•เจฐ เจฌเฉ‚เฉฐเจฆเจพเจ‚ เจนเจจ, เจคเจพเจ‚ เจชเฉเจ†เจ‡เฉฐเจŸ 2 เจœเจพเจ‚ เจ‡เจธ เจฎเจพเจฎเจฒเฉ‡ 'เจคเฉ‡ เจฒเฉ‡เจ– เจฆเจพ เจชเจพเจ  เจตเฉ‡เจ–เฉ‹เฅค
  2. เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเจพเจ•เจŸ เจฌเจซเจฐ เจฆเฉ€ เจŸเจฟเจŠเจจเจฟเฉฐเจ— เจ•เจฐเฉ‹ (net.core.rmem_max=8388608)เฅค
  3. เจ•เฉฐเจชเจพเจ‡เจฒ tsduck-stat.go (go build tsduck-stat.go)เฅค
  4. เจธเจฐเจตเจฟเจธ เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจจเฉ‚เฉฐ /lib/systemd/system เจตเจฟเฉฑเจš เจฐเฉฑเจ–เฉ‹เฅค
  5. systemctl เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‹, เจœเจพเจ‚เจš เจ•เจฐเฉ‹ เจ•เจฟ เจ•เจพเจŠเจ‚เจŸเจฐ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจฃ เจฒเฉฑเจ—เฉ‡ เจนเจจ (grep "" /dev/shm/tsduck-stat/*)เฅค เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ เจธเจŸเฉเจฐเฉ€เจฎ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจฆเฉเจ†เจฐเจพ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ†เฅค เจ‡เฉฑเจฅเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเจฒเจŸเฉ€เจ•เจพเจธเจŸ เจธเจฎเฉ‚เจน เจฒเจˆ เจ‡เฉฑเจ• เจฐเฉ‚เจŸ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ, เจธเจผเจพเจ‡เจฆ rp_filter เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐเฉ‹ เจœเจพเจ‚ เจธเจฐเฉ‹เจค ip เจฒเจˆ เจ‡เฉฑเจ• เจฐเฉ‚เจŸ เจฌเจฃเจพเจ“เฅค
  6. Discovery.sh เจšเจฒเจพเจ“, เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ“ เจ•เจฟ เจ‡เจน json เจคเจฟเจ†เจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  7. เจœเจผเฉˆเจฌเจฟเจ•เจธ เจเจœเฉฐเจŸ เจธเฉฐเจฐเจšเจจเจพ เจฐเฉฑเจ–เฉ‹, เจœเจผเฉˆเจฌเจฟเจ•เจธ เจเจœเฉฐเจŸ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹เฅค
  8. เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจจเฉ‚เฉฐ เจœเจผเฉˆเจฌเจฟเจ•เจธ 'เจคเฉ‡ เจ…เจชเจฒเฉ‹เจก เจ•เจฐเฉ‹, เจ‡เจธ เจจเฉ‚เฉฐ เจนเฉ‹เจธเจŸ 'เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ‹ เจœเจฟเจธ 'เจคเฉ‡ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจœเจผเฉˆเจฌเจฟเจ•เจธ-เจเจœเฉฐเจŸ เจธเจฅเจพเจชเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจฒเจ—เจญเจ— 5 เจฎเจฟเฉฐเจŸ เจ‰เจกเฉ€เจ• เจ•เจฐเฉ‹, เจฆเฉ‡เจ–เฉ‹ เจ•เจฟ เจจเจตเฉ‡เจ‚ เจกเฉ‡เจŸเจพ เจคเฉฑเจค, เจ—เฉเจฐเจพเจซ เจ…เจคเฉ‡ เจŸเจฐเจฟเจ—เจฐ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฑเจคเฉ‡ เจนเจจเฅค

เจ‡เจธ เจฆเจพ เจจเจคเฉ€เจœเจพ

IP(TS) เจตเจนเจพเจ… เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ เจฒเจˆ TSDuck เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจชเฉˆเจ•เฉ‡เจŸ เจฆเฉ‡ เจจเฉเจ•เจธเจพเจจ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เจฐเจจ เจฆเฉ‡ เจ•เฉฐเจฎ เจฒเจˆ, เจ‡เจน เจฒเจ—เจญเจ— เจ•เจพเจซเจผเฉ€ เจนเฉˆ, เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ‡เจน เจฌเจฟเจจเจพเจ‚ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจคเฉ‹เจ‚ เจฌเจฟเจนเจคเจฐ เจนเฉˆ.

เจตเจพเจธเจคเจต เจตเจฟเฉฑเจš, CC "เจจเฉเจ•เจธเจพเจจ" เจ‰เจฆเฉ‹เจ‚ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจตเจฟเจกเฉ€เจ“ เจฆเฉ‡ เจŸเฉเจ•เฉœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉฐเจกเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจœเจฟเฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจฎเฉˆเจจเฉ‚เฉฐ เจชเจคเจพ เจนเฉˆ, เจฐเฉ‚เจธเฉ€ เจซเฉˆเจกเจฐเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจธเจฅเจพเจจเจ• เจŸเฉˆเจฒเฉ€เจตเจฟเจœเจผเจจ เจ•เฉ‡เจ‚เจฆเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจธเฉฐเจฎเจฟเจฒเจจ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจญเจพเจต CC เจ•เจพเจŠเจ‚เจŸเจฐ เจฆเฉ€ เจฎเฉเฉœ เจ—เจฃเจจเจพ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚), เจ‡เจธ เจจเฉ‚เฉฐ เจฏเจพเจฆ เจฐเฉฑเจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจฎเจฒเจ•เฉ€เจ…เจค เจฆเฉ‡ เจนเฉฑเจฒเจพเจ‚ เจตเจฟเฉฑเจš, เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจ…เฉฐเจธเจผเจ• เจคเฉŒเจฐ 'เจคเฉ‡ SCTE-35 เจŸเฉˆเจ—เจธ (เจœเฉ‡ เจ‰เจน เจธเจŸเฉเจฐเฉ€เจฎ เจœเจจเจฐเฉ‡เจŸเจฐ เจฆเฉเจ†เจฐเจพ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ) เจฆเจพ เจชเจคเจพ เจฒเจ—เจพ เจ•เฉ‡ เจฐเฉ‹เจ•เจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ†เจตเจพเจœเจพเจˆ เจฆเฉ€ เจ—เฉเจฃเจตเฉฑเจคเจพ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจฆเฉ‡ เจฆเฉเจฐเจฟเจธเจผเจŸเฉ€เจ•เฉ‹เจฃ เจคเฉ‹เจ‚, เจœเจฟเจŸเจฐ เจจเจฟเจ—เจฐเจพเจจเฉ€ (เจ†เจˆเจเจŸเฉ€) เจ•เจพเจซเจผเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจŸเฉ€เจตเฉ€ เจธเจพเจœเจผเฉ‹-เจธเจพเจฎเจพเจจ (เจญเจพเจตเฉ‡เจ‚ เจฎเฉ‹เจกเจฟเจŠเจฒเฉ‡เจŸเจฐ เจœเจพเจ‚ เจ…เฉฐเจคเจฎ เจ‰เจชเจ•เจฐเจฃ) เจฒเจˆ เจ‡เจธ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฒเจˆ เจฒเฉ‹เฉœเจพเจ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจœเฉ€เจคเจฌเจซเจฐ เจจเฉ‚เฉฐ เจ…เจฃเจฎเจฟเฉฑเจฅเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจตเจงเจพเจ‰เจฃเจพ เจนเจฎเฉ‡เจธเจผเจพ เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพเฅค เจ…เจคเฉ‡ เจœเจฟเจŸเจฐ เจซเจฒเฉ‹เจŸ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจŸเฉเจฐเจพเจ‚เจœเจผเจฟเจŸ เจตเฉฑเจกเฉ‡ เจฌเจซเจฐเจพเจ‚ เจตเจพเจฒเฉ‡ เจธเจพเจœเจผเฉ‹-เจธเจพเจฎเจพเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ QoS เจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจฟเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจœเจพเจ‚ เจ…เจœเจฟเจนเฉ‡ เจฐเฉ€เจ…เจฒเจŸเจพเจˆเจฎ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจธเฉฐเจšเจพเจฐเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹