ns-3 เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒเฅค เจ…เจงเจฟเจ†เจ‡ 5

ns-3 เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒเฅค เจ…เจงเจฟเจ†เจ‡ 5
เจ…เจงเจฟเจ†เจ‡ 1,2
เจ…เจงเจฟเจ†เจ‡ 3
เจ…เจงเจฟเจ†เจ‡ 4

5 เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚
5.1 เจฒเฉŒเจ—เจฟเฉฐเจ— เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ
5.1.1 เจฒเฉŒเจ—เจฟเฉฐเจ— เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€
5.1.2 เจฒเฉŒเจ—เจฟเฉฐเจ— เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“
5.1.3 เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจฒเฉŒเจ—เจฟเฉฐเจ— เจœเฉ‹เฉœเจจเจพ
5.2 เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ
5.2.1 เจชเฉ‚เจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เจฐเจจเจพ
5.2.2 เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจ–เฉเจฆ เจฆเฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉˆเจชเจšเจฐ เจ•เจฐเจจเจพ
5.3 เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ
5.3.1 ASCII เจŸเจฐเฉ‡เจธเจฟเฉฐเจ—
ASCII เจŸเจฐเฉ‡เจธ เจชเจพเจฐเจธ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ
5.3.2 PCAP เจŸเจฐเฉ‡เจธ

เจ…เจงเจฟเจ†เจ‡ 5

เจตเจฟเจตเจธเจฅเจพ

5.1 เจฒเฉŒเจ—เจฟเฉฐเจ— เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจ•เฉ‡ ns-3 เจฒเฉŒเจ—เจฟเฉฐเจ— เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เจฟเจ† เจนเฉˆ first.cc. เจ‡เจธ เจ…เจงเจฟเจ†เจ‡ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจฒเฉŒเจ—เจฟเฉฐเจ— เจธเจฌ-เจธเจฟเจธเจŸเจฎ เจฒเจˆ เจธเฉฐเจญเจพเจตเจฟเจค เจตเจฐเจคเฉ‹เจ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• เจกเฉ‚เฉฐเจ˜เจพเจˆ เจจเจพเจฒ เจตเจฟเจšเจพเจฐ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

5.1.1 เจฒเฉŒเจ—เจฟเฉฐเจ— เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€

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

ns-3 เจตเจฟเฉฑเจš เจตเจฐเจคเจฟเจ† เจœเจพเจฃ เจตเจพเจฒเจพ subHRD เจ‡เจน เจฎเฉฐเจจเจฆเจพ เจนเฉˆ เจ•เจฟ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ‡ เจ‡เจน เจธเจพเจฐเฉ‡ เจชเฉฑเจงเจฐ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเจจ, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจธเฉฐเจฆเฉ‡เจธเจผ เจฒเฉŒเจ—เจฟเฉฐเจ— เจฒเจˆ เจ‡เฉฑเจ• เจšเฉ‹เจฃเจตเฉ€เจ‚, เจชเฉฑเจงเจฐเฉ€ เจชเจนเฉเฉฐเจš เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจฒเฉŒเจ—เจฟเฉฐเจ— เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ…เจฏเฉ‹เจ— เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจชเฉเจฐเจคเฉ€-เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจ†เจงเจพเจฐ 'เจคเฉ‡, เจœเจพเจ‚ เจตเจฟเจธเจผเจต เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจธเจฎเจฐเฉฑเจฅ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจ‰เจฆเฉ‡เจธเจผ เจฒเจˆ, เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒ เจชเฉฑเจงเจฐเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค ns-3 เจฒเฉŒเจ—เจฟเฉฐเจ— เจฎเฉ‹เจกเฉ€เจŠเจฒ เจคเฉเจนเจพเจกเฉ‡ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเจพ เจ‡เฉฑเจ• เจฎเฉเจ•เจพเจฌเจฒเจคเจจ เจธเจงเจพเจฐเจจ เจคเจฐเฉ€เจ•เจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

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

เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš, เจธเจฟเจธเจŸเจฎ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ‡ เจตเจงเจฆเฉ‡ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจฒเจพเจ— เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจฆเฉ‡ เจธเฉฑเจค เจชเฉฑเจงเจฐเจพเจ‚ (เจ•เจฟเจธเจฎเจพเจ‚) เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค

  • LOG_ERROR - เจฒเจพเจ—เจฟเฉฐเจ— เจ—เจฒเจคเฉ€ เจธเฉเจจเฉ‡เจนเฉ‡ (เจธเจฌเฉฐเจงเจค เจฎเฉˆเจ•เจฐเฉ‹: NS_LOG_ERROR);
  • LOG_WARN - เจฒเฉŒเจ— เจšเฉ‡เจคเจพเจตเจจเฉ€ เจธเฉฐเจฆเฉ‡เจธเจผ (เจธเจฌเฉฐเจงเจค เจฎเฉˆเจ•เจฐเฉ‹: NS_LOG_WARN);
  • LOG_DEBUG - เจฎเฉเจ•เจพเจฌเจฒเจคเจจ เจฆเฉเจฐเจฒเฉฑเจญ เจตเจฟเจธเจผเฉ‡เจธเจผ เจกเฉ€เจฌเฉฑเจ— เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจฒเฉŒเจ— เจ•เจฐเฉ‹ (เจธเจฌเฉฐเจงเจค เจฎเฉˆเจ•เจฐเฉ‹: NS_LOG_DEBUG);
  • LOG_INFO - เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเฉ€ เจชเฉเจฐเจ—เจคเฉ€ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเฉฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ€ เจฐเจœเจฟเจธเจŸเฉเจฐเฉ‡เจธเจผเจจ (เจธเจฌเฉฐเจงเจค เจฎเฉˆเจ•เจฐเฉ‹: NS_LOG_INFO);
  • LOG_FUNCTION - เจนเจฐเฉ‡เจ• เจซเฉฐเจ•เจธเจผเจจ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจฒเฉŒเจ— เจธเฉเจจเฉ‡เจนเฉ‡ (เจฆเฉ‹ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจฎเฉˆเจ•เจฐเฉ‹: NS_LOG_FUNCTION, เจฎเฉˆเจ‚เจฌเจฐ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฒเจˆ เจตเจฐเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ NS_LOG_FUNCTION_NOARGS, เจธเจฅเจฟเจฐ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฒเจˆ เจตเจฐเจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ);
  • LOG_LOGIC - เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ (เจธเจฌเฉฐเจงเจค เจฎเฉˆเจ•เจฐเฉ‹: NS_LOG_LOGIC);
  • LOG_ALL - เจ‰เฉฑเจชเจฐ เจฆเฉฑเจธเฉ€ เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจฒเฉŒเจ— เจ•เจฐเฉ‹ (เจ•เฉ‹เจˆ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจฎเฉˆเจ•เจฐเฉ‹ เจจเจนเฉ€เจ‚)เฅค
    เจนเจฐเฉ‡เจ• เจ•เจฟเจธเจฎ (LOG_TYPE) เจฒเจˆ เจ‡เฉฑเจ• LOG_LEVEL_TYPE เจตเฉ€ เจนเฉˆ เจœเฉ‹, เจœเฉ‡เจ•เจฐ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธเจฆเฉ‡ เจ†เจชเจฃเฉ‡ เจชเฉฑเจงเจฐ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ เจ‡เจธเจฆเฉ‡ เจ‰เฉฑเจชเจฐเจฒเฉ‡ เจธเจพเจฐเฉ‡ เจชเฉฑเจงเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉŒเจ— เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค (เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, LOG_ERROR เจ…เจคเฉ‡ LOG_LEVEL_ERROR, เจ…เจคเฉ‡ LOG_ALL เจ…เจคเฉ‡ LOG_LEVEL_ALL เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจคเฉŒเจฐ 'เจคเฉ‡ เจฌเจฐเจพเจฌเจฐ เจนเจจเฅค) เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, LOG_INFO เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจจเจพเจฒ เจธเจฟเจฐเจซ NS_LOG_INFO เจฎเฉˆเจ•เจฐเฉ‹ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ‡ เจ—เจ เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฎเจฟเจฒเฉ‡เจ—เฉ€, เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจจเจพเจฒ LOG_LEVEL_เจธเฉฐเจฌเฉฐเจงเฉ€ เจธเฉฐเจฆเฉ‡เจธเจผ เจตเฉ€ เจธเจผเจพเจฎเจฒ เจนเฉ‹เจฃเจ—เฉ‡เฅค LOG_WARN เจ…เจคเฉ‡ NS_LOG_ERRORเฅค

เจ…เจธเฉ€เจ‚ เจฌเจฟเจจเจพเจ‚ เจธเจผเจฐเจค เจฒเฉŒเจ—เจฟเฉฐเจ— เจฎเฉˆเจ•เจฐเฉ‹ เจตเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจœเฉ‹ เจนเจฎเฉ‡เจธเจผเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจฒเฉŒเจ—เจฟเฉฐเจ— เจชเฉฑเจงเจฐ เจœเจพเจ‚ เจšเฉ‹เจฃ เจนเจฟเฉฑเจธเฉ‡ เจฆเฉ€ เจชเจฐเจตเจพเจน เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚เฅค

  • NS_LOG_UNCOND - เจธเฉฐเจฌเฉฐเจงเจฟเจค เจธเฉเจจเฉ‡เจนเฉ‡ เจฆเฉ€ เจฌเจฟเจจเจพเจ‚ เจธเจผเจฐเจค เจฒเฉŒเจ—เจฟเฉฐเจ— (เจ•เฉ‹เจˆ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจฒเฉŒเจ—เจฟเฉฐเจ— เจชเฉฑเจงเจฐ เจจเจนเฉ€เจ‚)เฅค

เจนเจฐเฉ‡เจ• เจชเฉฑเจงเจฐ เจจเฉ‚เฉฐ เจตเฉฑเจ–เจฐเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจœเจพเจ‚ เจธเฉฐเจšเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจฒเฉŒเจ—เจฟเฉฐเจ— เจจเฉ‚เฉฐ sh เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ NS_LOG เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจœเจพเจ‚ เจธเจฟเจธเจŸเจฎ เจซเฉฐเจ•เจธเจผเจจ เจ•เจพเจฒ เจจเฉ‚เฉฐ เจฒเฉŒเจ— เจ•เจฐเจ•เฉ‡ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเจนเจฟเจฒเจพเจ‚ เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ, เจฒเฉŒเจ—เจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจกเฉŒเจ•เจธเฉ€เจœเจจ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจนเจจ เจ…เจคเฉ‡ เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจนเฉˆ เจคเจพเจ‚ เจ‡เจธเจฆเฉ€ เจธเจฎเฉ€เจ–เจฟเจ† เจ•เจฐเจจ เจฆเจพ เจนเฉเจฃ เจตเจงเฉ€เจ† เจธเจฎเจพเจ‚ เจนเฉˆเฅค

เจนเฉเจฃ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจกเฉŒเจ•เฉ‚เจฎเฉˆเจ‚เจŸเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจตเจฟเจธเจฅเจพเจฐ เจจเจพเจฒ เจชเฉœเฉเจน เจฒเจฟเจ† เจนเฉˆ, เจ†เจ“ เจ‰เจธ เจ—เจฟเจ†เจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ‰เจฆเจพเจนเจฐเจฃ เจธเจ•เฉเจฐเจฟเจชเจŸ เจคเฉ‹เจ‚ เจ•เฉเจ เจฆเจฟเจฒเจšเจธเจช เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ•เจฐเฉ€เจเฅค scratch/myfirst.ccเจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐ เจšเฉเฉฑเจ•เฉ‡ เจนเฉ‹เฅค

5.1.2 เจฒเฉŒเจ—เจฟเฉฐเจ— เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“

เจšเจฒเฉ‹ เจ•เฉเจ เจนเฉ‹เจฐ เจฒเฉŒเจ—เจธ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ NS_LOG เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ€เจ, เจชเจฐ เจชเจนเจฟเจฒเจพเจ‚, เจธเจฟเจฐเจซเจผ เจ†เจชเจฃเฉ€ เจฌเฉ‡เจ…เจฐเจฟเฉฐเจ— เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ, เจชเจฟเจ›เจฒเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจšเจฒเจพเจ“ เจœเจฟเจตเฉ‡เจ‚ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ•เฉ€เจคเจพ เจธเฉ€,

$ ./waf --run scratch/myfirst

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ‡ ns-3 เจ‰เจฆเจพเจนเจฐเจจ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจคเฉ‹เจ‚ เจœเจพเจฃเฉ‚ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ

$ Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build' 'build'
finished successfully (0.413s)
Sent 1024 bytes to 10.1.1.2
Received 1024 bytes from 10.1.1.1
Received 1024 bytes from 10.1.1.2

เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ "เจญเฉ‡เจœเฉ‡" เจ…เจคเฉ‡ "เจชเฉเจฐเจพเจชเจค" เจธเฉเจจเฉ‡เจนเฉ‡ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ‰เฉฑเจชเจฐ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เจธ เจคเฉ‹เจ‚ เจฒเฉŒเจ— เจ•เฉ€เจคเฉ‡ เจธเฉเจจเฉ‡เจนเฉ‡ เจนเจจ UdpEchoClientApplication ะธ UdpEchoServerApplication. เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ•เจฒเจพเจ‡เฉฐเจŸ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ NS_LOG เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฆเฉเจ†เจฐเจพ เจ‡เจธเจฆเฉ‡ เจฒเฉŒเจ—เจฟเฉฐเจ— เจชเฉฑเจงเจฐ เจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเจ•เฉ‡ เจตเจพเจงเฉ‚ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจฟเฉฐเจŸ เจ•เจฐเจจ เจฒเจˆ เจ•เจนเจฟ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค

เจนเฉเจฃ เจคเฉ‹เจ‚, เจฎเฉˆเจ‚ เจ‡เจน เจฎเฉฐเจจเจฃ เจœเจพ เจฐเจฟเจนเจพ เจนเจพเจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• sh-like เจธเจผเฉˆเฉฑเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹ เจœเฉ‹ "variable=value" เจธเฉฐเจŸเฉˆเจ•เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ csh-เจตเจฐเจ—เฉ‡ เจธเจผเฉˆเฉฑเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจธเจผเฉˆเฉฑเจฒเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ "setenv เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฎเฉเฉฑเจฒ" เจธเฉฐเจŸเฉˆเจ•เจธ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃเจพ เจชเจตเฉ‡เจ—เจพเฅค

เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจš, UDP เจˆเจ•เฉ‹ เจ•เจฒเจพเจ‡เฉฐเจŸ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ•เฉ‹เจก เจฆเฉ€ เจนเฉ‡เจ  เจฆเจฟเฉฑเจคเฉ€ เจฒเจพเจˆเจจ เจฆเจพ เจœเจตเจพเจฌ เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ scratch/myfirst.cc,

LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);

เจ‡เจน เจฒเฉŒเจ—เจฟเฉฐเจ— เจชเฉฑเจงเจฐ LOG_LEVEL_INFO เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฒเฉŒเจ—เจฟเฉฐเจ— เจชเฉฑเจงเจฐ เจซเจฒเฉˆเจ— เจชเจพเจธ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจธเฉ€เจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‰เจธ เจชเฉฑเจงเจฐ เจ…เจคเฉ‡ เจธเจพเจฐเฉ‡ เจนเฉ‡เจ เจฒเฉ‡ เจชเฉฑเจงเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ NS_LOG_INFO, NS_LOG_DEBUG, NS_LOG_WARN เจ…เจคเฉ‡ NS_LOG_ERROR เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‡เจ† เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ NS_LOG เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจธเฉˆเจŸ เจ•เจฐเจ•เฉ‡, เจฒเฉŒเจ—เจฟเฉฐเจ— เจชเฉฑเจงเจฐ เจจเฉ‚เฉฐ เจตเจงเจพ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจฐเฉ€เจ•เฉฐเจชเจพเจˆเจฒเฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจนเฉ‹เจฐ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚:

$ export NS_LOG=UdpEchoClientApplication=level_all

เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ sh เจธเจผเฉˆเฉฑเจฒ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ NS_LOG เจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจฎเฉเฉฑเจฒ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ เจนเฉˆ,

UdpEchoClientApplication=level_all

เจ…เจธเจพเจˆเจจเจฎเฉˆเจ‚เจŸ เจฆเฉ‡ เจ–เฉฑเจฌเฉ‡ เจชเจพเจธเฉ‡ เจฒเฉŒเจ— เจ•เฉ€เจคเฉ‡ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจฆเจพ เจจเจพเจฎ เจนเฉˆ เจœเจฟเจธ เจจเฉ‚เฉฐ เจ…เจธเฉ€เจ‚ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจธเฉฑเจœเฉ‡ เจชเจพเจธเฉ‡ เจซเจฒเฉˆเจ— เจนเฉˆ เจœเจฟเจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจฒเจˆ เจ…เจชเจฒเจพเจˆ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจกเฉ€เจฌเฉฑเจ—เจฟเฉฐเจ— เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจชเฉฑเจงเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจœเจพ เจฐเจนเฉ‡ เจนเจพเจ‚เฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ NS_LOG เจธเฉˆเฉฑเจŸ เจจเจพเจฒ เจ‡เจธ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ ns-3 เจฒเฉŒเจ—เจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ‡เจ–เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ:

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.404s)
UdpEchoClientApplication:UdpEchoClient()
UdpEchoClientApplication:SetDataSize(1024)
UdpEchoClientApplication:StartApplication()
UdpEchoClientApplication:ScheduleTransmit()
UdpEchoClientApplication:Send()
Sent 1024 bytes to 10.1.1.2
Received 1024 bytes from 10.1.1.1
UdpEchoClientApplication:HandleRead(0x6241e0, 0x624a20)
Received 1024 bytes from 10.1.1.2
UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()

เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจตเจงเฉ€เจ• เจกเฉ€เจฌเจ—เจฟเฉฐเจ— เจœเจพเจฃเจ•เจพเจฐเฉ€ เจนเฉเจฃ NS_LOG_FUNCTION เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจนเฉˆเฅค เจ‡เจน เจธเจ•เฉเจฐเจฟเจชเจŸ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉŒเจฐเจพเจจ เจซเฉฐเจ•เจธเจผเจจ เจ•เจพเจฒ เจฆเฉ€ เจนเจฐ เจ‰เจฆเจพเจนเจฐเจจ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจ†เจฎ เจจเจฟเจฏเจฎ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡, เจตเจฟเจงเฉ€ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจฌเจฟเจนเจคเจฐ เจนเฉˆ (เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ)NS_LOG_FUNCTION (this). เจตเจฐเจคเฉ‹ NS_LOG_FUNCTION_NOARGS ()
เจธเจฟเจฐเจซเจผ เจธเจฅเจฟเจฐ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจšเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจฏเจพเจฆ เจฐเฉฑเจ–เฉ‹ เจ•เจฟ ns-3 เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจฒเจพเจ—เจฟเฉฐเจ— เจ•เจพเจฐเจœเจธเจผเฉ€เจฒเจคเจพ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจ•เจฟเฉฐเจจเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฐเจฟเจ•เจพเจฐเจก เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจซเฉˆเจธเจฒเจพ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจฎเจพเจกเจฒ เจกเจฟเจตเฉˆเจฒเจชเจฐ 'เจคเฉ‡ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจˆเจ•เฉ‹ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš, เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจš เจฒเฉŒเจ—เจฟเฉฐเจ— เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจ‰เจชเจฒเจฌเจง เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃ เจซเฉฐเจ•เจธเจผเจจ เจ•เจพเจฒเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจฒเฉŒเจ— เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจธเจจเฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจงเจฟเจ†เจจ เจจเจพเจฒ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจฒเจพเจˆเจจ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐ เจ‡เฉฑเจ• เจ•เฉŒเจฒเจจ เจตเฉ‡เจ–เฉ‹เจ—เฉ‡ UdpEchoClientApplication เจ…เจคเฉ‡ เจตเจฟเจงเฉ€ เจฆเจพ เจจเจพเจฎ, เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ C++ เจธเจ•เฉ‹เจช เจ†เจชเจฐเฉ‡เจŸเจฐ (: :) เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจน เจœเจพเจฃเจฌเฉเฉฑเจ เจ•เฉ‡ เจนเฉˆเฅค

เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ•เจฒเจพเจธ เจฆเจพ เจจเจพเจฎ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจฒเฉŒเจ—เจฟเฉฐเจ— เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจฆเจพ เจจเจพเจฎ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค เจซเจพเจˆเจฒ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจ•เจฒเจพเจธ เจฆเฉ‡ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฎเฉ‡เจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฒเจพเจธ เจฆเจพ เจจเจพเจฎ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจธเจฎเจเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ•เจฒเจพเจธ เจฆเจพ เจจเจพเจฎ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจกเจฌเจฒ เจ•เฉ‹เจฒเจจ เจฆเฉ€ เจฌเจœเจพเจ เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ เจ•เฉ‹เจฒเฉ‹เจจ เจนเฉˆเฅค เจ‡เจน เจฒเฉŒเจ—เจฟเฉฐเจ— เจฌเฉ€เจจ เจจเจพเจฎ เจจเฉ‚เฉฐ เจ•เจฒเจพเจธ เจฆเฉ‡ เจจเจพเจฎ เจคเฉ‹เจ‚ เจฎเฉเจ•เจพเจฌเจฒเจคเจจ เจธเฉ‚เจ–เจฎ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจตเฉฑเจ– เจ•เจฐเจจ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐเจจ เจฆเจพ เจ‡เฉฑเจ• เจคเจฐเฉ€เจ•เจพ เจนเฉˆเฅค

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ•เฉเจ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจ‡เจน เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจ•เจฐเจจเจพ เจฎเฉเจธเจผเจ•เจฒ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจฒเฉŒเจ— เจธเฉเจจเฉ‡เจนเฉ‡ เจจเฉ‚เฉฐ เจ•เจฟเจนเฉœเฉ€ เจตเจฟเจงเฉ€ เจคเจฟเจ†เจฐ เจ•เจฐ เจฐเจนเฉ€ เจนเฉˆเฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‰เจชเจฐเฉ‹เจ•เจค เจŸเฉˆเจ•เจธเจŸ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจนเฉˆเจฐเจพเจจ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจฒเจพเจˆเจจ เจ•เจฟเฉฑเจฅเฉ‡ เจนเฉˆ "Received 1024 bytes from 10.1.1.2" เจคเฉเจธเฉ€เจ‚ เจชเฉฑเจงเจฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจ•เฉ‡ เจ‡เจธ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ prefix_func NS_LOG เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจฒเจˆเฅค เจนเฉ‡เจ  เจฒเจฟเจ–เจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ…เจœเจผเจฎเจพเจ“:

$ export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func'

เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจนเจตเจพเจฒเจพ เจšเจฟเฉฐเจจเฉเจน เจœเจผเจฐเฉ‚เจฐเฉ€ เจนเจจ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจตเจฐเจŸเฉ€เจ•เจฒ เจฌเจพเจฐ เจœเฉ‹ เจ…เจธเฉ€เจ‚ OR เจ“เจชเจฐเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจฃ เจฒเจˆ เจตเจฐเจคเจฆเฉ‡ เจนเจพเจ‚ เจ‰เจน เจตเฉ€ เจ‡เฉฑเจ• เจฏเฉ‚เจจเจฟเจ•เจธ เจชเจพเจˆเจช เจ•เจจเฉˆเจ•เจŸเจฐ เจนเฉˆเฅค เจนเฉเจฃ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ–เฉ‹เจ—เฉ‡ เจ•เจฟ เจฒเฉŒเจ—เจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจฒเฉŒเจ— เจตเจฟเฉฑเจš เจนเจฐเฉ‡เจ• เจธเฉฐเจฆเฉ‡เจธเจผ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจจเจพเจฎ เจฆเฉ‡ เจจเจพเจฒ เจ…เจ—เฉ‡เจคเจฐ เจนเฉˆเฅค

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.417s)
UdpEchoClientApplication:UdpEchoClient()
UdpEchoClientApplication:SetDataSize(1024)
UdpEchoClientApplication:StartApplication()
UdpEchoClientApplication:ScheduleTransmit()
UdpEchoClientApplication:Send()
UdpEchoClientApplication:Send(): Sent 1024 bytes to 10.1.1.2
Received 1024 bytes from 10.1.1.1
UdpEchoClientApplication:HandleRead(0x6241e0, 0x624a20)
UdpEchoClientApplication:HandleRead(): Received 1024 bytes from 10.1.1.2
UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()

เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ UDP เจˆเจ•เฉ‹ เจ•เจฒเจพเจ‡เฉฐเจŸ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ เจธเจพเจฐเฉ‡ เจธเฉเจจเฉ‡เจนเฉ‡ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจชเจ›เจพเจฃเฉ‡ เจ—เจ เจนเจจเฅค เจธเฉเจจเฉ‡เจนเจพ"Received 1024 bytes from 10.1.1.2" เจนเฉเจฃ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจˆเจ•เฉ‹ เจ•เจฒเจพเจ‡เฉฐเจŸ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจ†เจ‰เจฃ เจตเจœเฉ‹เจ‚ เจชเจ›เจพเจฃเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค เจฌเจพเจ•เฉ€ เจฌเจšเจฟเจ† เจธเฉเจจเฉ‡เจนเจพ UDP เจˆเจ•เฉ‹ เจธเจฐเจตเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจ†เจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ NS_LOG เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจฟเฉฑเจš เจญเจพเจ—เจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจ•เฉ‹เจฒเฉ‹เจจ-เจตเฉฑเจ– เจ•เฉ€เจคเฉ€ เจธเฉ‚เจšเฉ€ เจฆเจพเจ–เจฒ เจ•เจฐเจ•เฉ‡ เจ‡เจธ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค

$ export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func:
               UdpEchoServerApplication=level_all|prefix_func'

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

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.406s)
UdpEchoServerApplication:UdpEchoServer()
UdpEchoClientApplication:UdpEchoClient()
UdpEchoClientApplication:SetDataSize(1024)
UdpEchoServerApplication:StartApplication()
UdpEchoClientApplication:StartApplication()
UdpEchoClientApplication:ScheduleTransmit()
UdpEchoClientApplication:Send()
UdpEchoClientApplication:Send(): Sent 1024 bytes to 10.1.1.2
UdpEchoServerApplication:HandleRead(): Received 1024 bytes from 10.1.1.1
UdpEchoServerApplication:HandleRead(): Echoing packet
UdpEchoClientApplication:HandleRead(0x624920, 0x625160)
UdpEchoClientApplication:HandleRead(): Received 1024 bytes from 10.1.1.2
UdpEchoServerApplication:StopApplication()
UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoServerApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()
UdpEchoServerApplication:~UdpEchoServer()

เจ‡เจน เจ•เจˆ เจตเจพเจฐ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจธเจฎเจพเจ‚ เจฆเฉ‡เจ–เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจตเฉ€ เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจœเจฟเจธ 'เจคเฉ‡ เจฒเฉŒเจ— เจธเฉเจจเฉ‡เจนเจพ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค เจคเฉเจธเฉ€เจ‚ OR เจฌเจฟเฉฑเจŸ เจœเฉ‹เฉœ เจ•เฉ‡ เจ…เจœเจฟเจนเจพ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ prefix_time:

$ export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func|prefix_time: UdpEchoServerApplication=level_all|prefix_func|prefix_time'

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

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.418s)
0s UdpEchoServerApplication:UdpEchoServer()
0s UdpEchoClientApplication:UdpEchoClient()
0s UdpEchoClientApplication:SetDataSize(1024)
1s UdpEchoServerApplication:StartApplication()
2s UdpEchoClientApplication:StartApplication()
2s UdpEchoClientApplication:ScheduleTransmit()
2s UdpEchoClientApplication:Send()
2s UdpEchoClientApplication:Send(): Sent 1024 bytes to 10.1.1.2
2.00369s UdpEchoServerApplication:HandleRead(): Received 1024 bytes from 10.1.1.1
2.00369s UdpEchoServerApplication:HandleRead(): Echoing packet
2.00737s UdpEchoClientApplication:HandleRead(0x624290, 0x624ad0)
2.00737s UdpEchoClientApplication:HandleRead(): Received 1024 bytes from 10.1.1.2
10s UdpEchoServerApplication:StopApplication()
10s UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoServerApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()
UdpEchoServerApplication:~UdpEchoServer()

เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจงเจฟเจ†เจจ เจฆเจฟเจ“ เจ•เจฟ เจ•เฉฐเจธเจŸเจฐเจ•เจŸเจฐ เจฒเจˆ UdpEchoServer เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ 0 เจธเจ•เจฟเฉฐเจŸ เจฆเฉŒเจฐเจพเจจ เจ•เจพเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€เฅค เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจตเจพเจชเจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจธเจฎเจพเจ‚ เจœเจผเฉ€เจฐเฉ‹ เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจœเฉ‹เจ‚ เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค เจ•เฉฐเจธเจŸเจฐเจ•เจŸเจฐ เจธเฉฐเจฆเฉ‡เจธเจผ เจฒเจˆ เจตเฉ€ เจ‡เจนเฉ€ เจธเฉฑเจš เจนเฉˆ UdpEchoClient.

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.418s)
0s UdpEchoServerApplication:UdpEchoServer()
0s UdpEchoClientApplication:UdpEchoClient()
0s UdpEchoClientApplication:SetDataSize(1024)
1s UdpEchoServerApplication:StartApplication()
2s UdpEchoClientApplication:StartApplication()
2s UdpEchoClientApplication:ScheduleTransmit()
2s UdpEchoClientApplication:Send()
2s UdpEchoClientApplication:Send(): Sent 1024 bytes to 10.1.1.2
2.00369s UdpEchoServerApplication:HandleRead(): Received 1024 bytes from 10.1.1.1
2.00369s UdpEchoServerApplication:HandleRead(): Echoing packet
2.00737s UdpEchoClientApplication:HandleRead(0x624290, 0x624ad0)
2.00737s UdpEchoClientApplication:HandleRead(): Received 1024 bytes from 10.1.1.2
10s UdpEchoServerApplication:StopApplication()
10s UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoServerApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()
UdpEchoServerApplication:~UdpEchoServer()

เจฏเจพเจฆ เจ•เจฐเฉ‹ เจ•เจฟ เจธเจ•เฉเจฐเจฟเจชเจŸ scratch/first.cc เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• เจธเจ•เจฟเฉฐเจŸ เจชเจนเจฟเจฒเจพเจ‚ เจˆเจ•เฉ‹ เจธเจฐเจตเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเฉ€เฅค เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจคเจฐเฉ€เจ•เจพ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจฐเฉฐเจญ เจ•เจฐเฉ‹ เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเฉ‡ เจธเจ•เจฟเฉฐเจŸ เจตเจฟเฉฑเจš เจฌเฉเจฒเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจตเฉ€ เจจเฉ‹เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจˆเจ•เฉ‹ เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจฆเฉ‡ เจฆเฉ‚เจœเฉ‡ เจธเจ•เจฟเฉฐเจŸ เจตเจฟเฉฑเจš เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจชเฉเฉฑเจ›เจฟเจ† เจนเฉˆเฅค

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

เจ‡เจธ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš, เจคเฉเจนเจพเจกเฉ‡ เจงเจฟเจ†เจจ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจฌเจนเฉเจค เจ•เฉเจ เจตเจพเจชเจฐเจฆเจพ เจนเฉˆเฅค เจชเจฐ เจคเฉเจธเฉ€เจ‚ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ เจฒเฉŒเจ—เจฟเฉฐเจ— เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจ•เฉ‡ เจชเฉ‚เจฐเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจฌเจนเฉเจค เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจŸเจฐเฉˆเจ• เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค NS_LOG เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจฎเฉเฉฑเจฒ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹,

$ export 'NS_LOG=*=level_all|prefix_func|prefix_time'

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

$ ./waf --run scratch/myfirst > log.out 2>&1

เจฎเฉˆเจ‚ เจจเจฟเฉฑเจœเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจฒเฉŒเจ—เจฟเฉฐเจ— เจฆเฉ‡ เจ‡เจธ เจฌเจนเฉเจค เจนเฉ€ เจตเจฐเจฌเฉ‹เจธ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจธเจฎเฉฑเจธเจฟเจ† เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจชเจคเจพ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพ เจ•เจฟ เจšเฉ€เจœเจผเจพเจ‚ เจ•เจฟเฉฑเจฅเฉ‡ เจ—เจฒเจค เจนเฉ‹เจˆเจ†เจ‚ เจนเจจเฅค เจฎเฉˆเจ‚ เจฌเฉเจฐเฉ‡เจ•เจชเฉเจ†เจ‡เฉฐเจŸ เจธเฉˆเจŸ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ…เจคเฉ‡ เจกเฉ€เจฌเจ—เจฐ เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจฆเฉเจ†เจฐเจพ เจ•เจฆเจฎ เจšเฉเฉฑเจ•เจฃ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚เฅค เจฎเฉˆเจ‚ เจธเจฟเจฐเจซเจผ เจ†เจชเจฃเฉ‡ เจฎเจจเจชเจธเฉฐเจฆ เจธเฉฐเจชเจพเจฆเจ• เจตเจฟเฉฑเจš เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‰เจน เจฆเฉ‡เจ– เจธเจ•เจฆเจพ เจนเจพเจ‚ เจœเฉ‹ เจฎเฉˆเจ‚ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ•เฉเจ เจ…เจœเจฟเจนเจพ เจนเฉเฉฐเจฆเจพ เจฆเฉ‡เจ– เจธเจ•เจฆเจพ เจนเจพเจ‚ เจœเจฟเจธเจฆเฉ€ เจฎเฉˆเจ‚ เจ‰เจฎเฉ€เจฆ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจธเฉ€เฅค เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ†เจฎ เจตเจฟเจšเจพเจฐ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจ—เจฒเจค เจนเฉ‹ เจฐเจฟเจนเจพ เจนเฉˆ, เจคเจพเจ‚ เจฎเฉˆเจ‚ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจกเฉ€เจฌเจ—เจฐ เจตเจฟเฉฑเจš เจ›เจพเจฒ เจฎเจพเจฐเจฆเจพ เจนเจพเจ‚เฅค เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเฉ€ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจตเจฟเจธเจผเฉ‡เจธเจผ เจคเฉŒเจฐ 'เจคเฉ‡ เจฒเจพเจญเจฆเจพเจ‡เจ• เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉเจนเจพเจกเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจจเจพเจฒ เจ…เจšเจพเจจเจ• เจ•เฉเจ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจกเฉ€เจฌเจ—เจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ‡เฉฑเจ• เจฎเฉ‹เฉœ เจคเฉ‹เจ‚ เจ–เฉเฉฐเจ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจฐเจœเจฟเจธเจŸเจฐเฉ‡เจธเจผเจจ เจ…เจœเจฟเจนเฉ‡ เจฎเฉ‹เฉœเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฏเฉ‹เจ— เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค

5.1.3 เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจฒเฉŒเจ—เจฟเฉฐเจ— เจœเฉ‹เฉœเจจเจพ

เจคเฉเจธเฉ€เจ‚ เจฎเจฒเจŸเฉ€เจชเจฒ เจฎเฉˆเจ•เจฐเฉ‹เจœเจผ เจคเฉ‹เจ‚ เจฒเฉŒเจ— เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจ•เฉ‡ เจ†เจชเจฃเฉ‡ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจจเจตเฉ€เจ†เจ‚ เจเจ‚เจŸเจฐเฉ€เจ†เจ‚ เจธเจผเจพเจฎเจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจšเจฒเฉ‹ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจ•เจฐเฉ€เจ myfirst.cc, เจœเฉ‹ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ "เจ•เจฒเฉ€เจจ" เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจนเฉˆเฅค เจฏเจพเจฆ เจ•เจฐเฉ‹ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ‡เจธ เจฆเฉเจฐเจฟเจธเจผ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฒเฉŒเจ—เจฟเฉฐเจ— เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจนเฉˆ:

NS_LOG_COMPONENT_DEFINE ("FirstScriptExample");

เจคเฉเจธเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ NS_LOG เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉฑเจงเจฐเจพเจ‚ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เจฐเจ•เฉ‡ เจ‡เจธ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจคเฉ‹เจ‚ เจธเจพเจฐเฉ‡ เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจฆเฉ€ เจฒเจพเจ—เจฟเฉฐเจ— เจจเฉ‚เฉฐ เจฏเฉ‹เจ— เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจšเจฒเฉ‹ เจ…เฉฑเจ—เฉ‡ เจตเจงเฉ€เจ เจ…เจคเฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจ•เฉเจ เจเจ‚เจŸเจฐเฉ€เจ†เจ‚ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ€เจเฅค เจฒเฉŒเจ— เจตเจฟเฉฑเจš เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉฑเจงเจฐ เจฆเฉ‡ เจธเฉเจจเฉ‡เจนเฉ‡ เจœเฉ‹เฉœเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจฃ เจตเจพเจฒเจพ เจฎเฉˆเจ•เจฐเฉ‹ NS_LOG_INFO เจนเฉˆเฅค เจšเจฒเฉ‹ เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจœเฉ‹เฉœเจฆเฉ‡ เจนเจพเจ‚ (เจจเฉ‹เจก เจฌเจฃเจพเจ‰เจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚) เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเจฆเจพ เจนเฉˆ เจ•เจฟ เจธเจ•เฉเจฐเจฟเจชเจŸ "เจŸเฉŒเจชเฉ‹เจฒเฉ‹เจœเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ" เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจนเฉˆเฅค เจ‡เจน เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ•เฉ‹เจก เจธเจจเจฟเฉฑเจชเจŸ เจตเจฟเฉฑเจš เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ,
เจ–เฉ‹เจฒเฉ‹ scratch/myfirst.cc เจ†เจชเจฃเฉ‡ เจฎเจจเจชเจธเฉฐเจฆ เจธเฉฐเจชเจพเจฆเจ• เจตเจฟเฉฑเจš เจ…เจคเฉ‡ เจฒเจพเจˆเจจ เจœเฉ‹เฉœเฉ‹,
NS_LOG_INFO ("Creating Topology");
เจฒเจพเจˆเจจเจพเจ‚ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚,

NodeContainer nodes;
nodes.Create (2);

เจนเฉเจฃ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเฉ‹ waf, เจ…เจคเฉ‡ เจฒเจพเจ—เจฟเฉฐเจ— เจธเจŸเฉเจฐเฉ€เจฎ เจจเฉ‚เฉฐ เจ…เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจฒเจˆ NS_LOG เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจธเจพเจซเจผ เจ•เจฐเฉ‹ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฏเฉ‹เจ— เจ•เฉ€เจคเจพ เจธเฉ€:

$ ./waf
$ export NS_LOG=
ะขะตะฟะตั€ัŒ, ะตัะปะธ ะฒั‹ ะทะฐะฟัƒัั‚ะธั‚ะต ัะบั€ะธะฟั‚,
$ ./waf --run scratch/myfirst

เจคเฉเจธเฉ€เจ‚ เจจเจตเจพเจ‚ เจธเฉเจจเฉ‡เจนเจพ เจจเจนเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เฉ‹เจ—เฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจฒเฉŒเจ—เจฟเฉฐเจ— เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ (FirstScriptExample) เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ†เจชเจฃเจพ เจธเฉเจจเฉ‡เจนเจพ เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฒเฉŒเจ—เจฟเฉฐเจ— เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจชเจนเจฟเจฒเฉ€ เจธเจ•เฉเจฐเจฟเจชเจŸ เจ‰เจฆเจพเจนเจฐเจจ NS_LOG_INFO เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจจเจพ เจนเฉ‹เจฃ เจตเจพเจฒเฉ‡ เจชเฉฑเจงเจฐ เจฆเฉ‡ เจจเจพเจฒเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจ‡เจธ เจ–เจพเจธ เจฒเฉŒเจ—เจฟเฉฐเจ— เจชเฉฑเจงเจฐ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฏเฉ‹เจ— เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹,

$ export NS_LOG=FirstScriptExample=info

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจนเฉเจฃเฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจธเฉเจจเฉ‡เจนเจพ เจตเฉ‡เจ–เฉ‹เจ‚เจ—เฉ‡ "เจŸเฉŒเจชเฉ‹เจฒเฉ‹เจœเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ",

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.404s)
Creating Topology
Sent 1024 bytes to 10.1.1.2
Received 1024 bytes from 10.1.1.1
Received 1024 bytes from 10.1.1.2

5.2 เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

5.2.1 เจชเฉ‚เจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เจฐเจจเจพ

เจธเฉฐเจชเจพเจฆเจจ เจœเจพเจ‚ เจฌเจฟเจฒเจกเจฟเฉฐเจ— เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ ns-3 เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉ‡ เจตเจฟเจนเจพเจฐ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเจพ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจคเจฐเฉ€เจ•เจพ เจนเฉˆ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพเฅค เจ…เจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจงเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจธเจฅเจพเจจเจ• เจ…เจคเฉ‡ เจ—เจฒเฉ‹เจฌเจฒ เจตเฉ‡เจฐเฉ€เจเจฌเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเจพ เจชเจนเจฟเจฒเจพ เจ•เจฆเจฎ เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจชเจพเจฐเจธเจฐ เจ˜เฉ‹เจธเจผเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆเฅค เจ‡เจน เจ•เจฐเจจเจพ เจฌเจนเฉเจค เจ†เจธเจพเจจ เจนเฉˆ (เจคเฉเจนเจพเจกเฉ‡ เจฎเฉเฉฑเจ– เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจตเจฟเฉฑเจš), เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ•เฉ‹เจก เจตเจฟเฉฑเจš,

int
main (int argc, char *argv[])
{
...
CommandLine cmd;
cmd.Parse (argc, argv);
...
}

เจ‡เจน เจธเจงเจพเจฐเจจ เจฆเฉ‹-เจฒเจพเจˆเจจ เจธเจจเจฟเฉฑเจชเจŸ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเฉˆ. เจ‡เจน ns-3 เจ—เจฒเฉ‹เจฌเจฒ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจ…เจคเฉ‡ เจเจŸเจฐเฉ€เจฌเจฟเจŠเจŸ เจธเจฟเจธเจŸเจฎ เจฆเจพ เจฆเจฐเจตเจพเจœเจผเจพ เจ–เฉ‹เจฒเฉเจนเจฆเจพ เจนเฉˆเฅค เจ†เจ‰ เจฎเฉเฉฑเจ– เจธเจ•เจฐเจฟเจชเจŸ เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจฆเฉ€เจ†เจ‚ เจฆเฉ‹ เจฒเจพเจˆเจจเจพเจ‚ เจœเฉ‹เฉœเฉ€เจ scratch/myfirst.cc. เจ…เฉฑเจ—เฉ‡ เจตเจงเจฆเฉ‡ เจนเฉ‹เจ, เจ…เจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚, เจœเจฆเฉ‹เจ‚ เจšเฉฑเจฒเจฆเฉ‡ เจนเจพเจ‚ เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจ…เจจเฉเจธเจพเจฐ เจฎเจฆเจฆ เจฒเจˆ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚,

$ ./waf --run "scratch/myfirst --PrintHelp"

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

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.413s)
TcpL4Protocol:TcpStateMachine()
CommandLine:HandleArgument(): Handle arg name=PrintHelp value=
--PrintHelp: Print this help message.
--PrintGroups: Print the list of groups.
--PrintTypeIds: Print all TypeIds.
--PrintGroup=[group]: Print all TypeIds of group.
--PrintAttributes=[typeid]: Print all attributes of typeid.
--PrintGlobals: Print the list of globals.

เจนเฉเจฃ เจตเจฟเจ•เจฒเจช เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ -เจชเฉเจฐเจฟเฉฐเจŸ เจ—เฉเจฃ. เจชเจนเจฟเจฒเฉ€.cc เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเจพ เจ…เจงเจฟเจเจจ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ ns-3 เจ—เฉเจฃ เจชเฉเจฐเจฃเจพเจฒเฉ€ เจฆเจพ เจœเจผเจฟเจ•เจฐ เจ•เจฐ เจšเฉเฉฑเจ•เฉ‡ เจนเจพเจ‚เฅค เจ…เจธเฉ€เจ‚ เจ•เฉ‹เจก เจฆเฉ€เจ†เจ‚ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจตเฉ‡เจ–เฉ€เจ†เจ‚ เจนเจจ,

PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));
pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));

เจ…เจคเฉ‡ เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‡ เจ•เจฟเจนเจพ เจกเจพเจŸเจพ เจฆเจฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ—เฉเจฃ เจนเฉˆ PointToPointNetDevice. เจ†เจ‰ เจ—เฉเจฃเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฃ เจฒเจˆ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจชเจพเจฐเจธเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ€เจ PointToPointNetDevice. เจฎเจฆเจฆ เจธเฉ‚เจšเฉ€ เจฆเฉฑเจธเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจธเจพเจจเฉ‚เฉฐ เจ•เฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจŸเจพเจˆเจช เจ†เจˆ.เจกเฉ€. เจ‡เจน เจ‰เจธ เจตเจฐเจ— เจฆเจพ เจจเจพเจฎ เจนเฉˆ เจœเจฟเจธ เจจเจพเจฒ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจธเจฌเฉฐเจงเจค เจนเจจเฅค เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจ‡เจน เจนเฉ‹เจตเฉ‡เจ—เจพ ns3::PointToPointNetDevice. เจ†เจ“ เจ…เฉฑเจ—เฉ‡ เจตเจงเจฆเฉ‡ เจฐเจนเฉ€เจ, เจฆเจพเจ–เจฒ เจนเฉ‹เจˆเจ,

$ ./waf --run "scratch/myfirst --PrintAttributes=ns3::PointToPointNetDevice"

เจธเจฟเจธเจŸเจฎ เจ‡เจธ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจกเจฟเจตเจพเจˆเจธ เจ•เจฟเจธเจฎ เจฆเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฟเฉฐเจŸ เจ•เจฐเฉ‡เจ—เจพเฅค เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ–เฉ‹เจ—เฉ‡ เจ•เจฟ เจธเฉ‚เจšเฉ€ เจตเจฟเจšเจฒเฉ‡ เจ—เฉเจฃ เจนเจจ,

--ns3::PointToPointNetDevice::DataRate=[32768bps]:
The default data rate for point to point links

เจ‡เจน เจกเจฟเจซเฉŒเจฒเจŸ เจฎเฉเฉฑเจฒ เจนเฉˆ เจœเฉ‹ เจธเจฟเจธเจŸเจฎ เจฆเฉเจ†เจฐเจพ เจ†เจฌเจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡ เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ PointToPointNetDevice. เจ…เจธเฉ€เจ‚ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เจธ เจกเจฟเจซเฉŒเจฒเจŸ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เจฐเจพเจ‚เจ—เฉ‡ เจ—เฉเจฃ ะฒ PointToPointHelper เจ‰เฉฑเจšเจพ เจ†เจ‰ เจชเฉเจ†เจ‡เฉฐเจŸ-เจŸเฉ‚-เจชเฉเจ†เจ‡เฉฐเจŸ เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจ…เจคเฉ‡ เจšเฉˆเจจเจฒเจพเจ‚ เจฒเจˆ เจกเจฟเจซเฉŒเจฒเจŸ เจฎเฉเฉฑเจฒเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ€เจเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ•เจพเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡ SetDeviceAttribute ะธ SetChannelAttribute เจคเฉฑเจ• myfirst.cc, เจœเฉ‹ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจธเจพเจซเจผ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจนเฉˆเฅค

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

...
NodeContainer nodes;
nodes.Create (2);
PointToPointHelper pointToPoint;
NetDeviceContainer devices;
devices = pointToPoint.Install (nodes);
...

เจ…เฉฑเจ—เฉ‡ เจตเจงเฉ‹ เจ…เจคเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฌเจฃเจพเจ“ เจตเจพเจซ (./waff) เจ…เจคเฉ‡ เจ†เจ“ เจตเจพเจชเจธ เจšเฉฑเจฒเฉ€เจ เจ…เจคเฉ‡ UDP เจˆเจ•เฉ‹ เจธเจฐเจตเจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเฉ‹เจ‚ เจ•เฉเจ เจเจ‚เจŸเจฐเฉ€ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ€เจ เจ…เจคเฉ‡ เจธเจฎเจพเจ‚ เจ…เจ—เฉ‡เจคเจฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ€เจเฅค

$ export 'NS_LOG=UdpEchoServerApplication=level_all|prefix_time'

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฆเฉ‡เจ–เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ:

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.405s)
0s UdpEchoServerApplication:UdpEchoServer()
1s UdpEchoServerApplication:StartApplication()
Sent 1024 bytes to 10.1.1.2
2.25732s Received 1024 bytes from 10.1.1.1
2.25732s Echoing packet
Received 1024 bytes from 10.1.1.2
10s UdpEchoServerApplication:StopApplication()
UdpEchoServerApplication:DoDispose()
UdpEchoServerApplication:~UdpEchoServer()

เจฏเจพเจฆ เจ•เจฐเฉ‹ เจ•เจฟ เจชเจฟเจ›เจฒเฉ€ เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฟเจ† เจธเฉ€, เจœเจฟเจธ เจชเจฒ เจˆเจ•เฉ‹ เจธเจฐเจตเจฐ เจฆเฉเจ†เจฐเจพ เจชเฉˆเจ•เฉ‡เจŸ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจ‡เจน 2,00369 เจธเจ•เจฟเฉฐเจŸ เจธเฉ€เฅค

2.00369s UdpEchoServerApplication:HandleRead(): Received 1024 bytes from 10.1.1.1

เจนเฉเจฃ เจ‰เจน 2.25732 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจชเฉˆเจ•เฉ‡เจŸ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ‡เจธ เจฒเจˆ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ PointToPointNetDevice เจกเจพเจŸเจพ เจฐเฉ‡เจŸ เจจเฉ‚เฉฐ เจชเฉฐเจœ เจฎเฉˆเจ—เจพเจฌเจพเจˆเจŸ เจชเฉเจฐเจคเฉ€ เจธเจ•เจฟเฉฐเจŸ เจคเฉ‹เจ‚ เจกเจฟเจซเฉŒเจฒเจŸ เจฎเฉเฉฑเจฒ 'เจคเฉ‡ เจฐเฉ€เจธเฉˆเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจœเฉ‹ เจ•เจฟ 32768 เจฌเจฟเฉฑเจŸ เจชเฉเจฐเจคเฉ€ เจธเจ•เจฟเฉฐเจŸ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจกเฉ‡เจŸเจพเจฐเฉ‡เจŸ เจฌเจฆเจฒเจฃเจพ เจธเฉ€, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจคเฉ‡เจœเจผ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจฎเจฆเจฆ เจคเฉฑเจค เจฆเฉเจ†เจฐเจพ เจฆเจฐเจธเจพเจ เจ—เจ เจซเจพเจฐเจฎเฉ‚เจฒเฉ‡ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจ…เจธเฉ€เจ‚ เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡:

$ ./waf --run "scratch/myfirst --ns3::PointToPointNetDevice::DataRate=5Mbps"

เจ‡เจน เจกเฉˆเจŸเจพเจฐเฉ‡เจŸ เจ—เฉเจฃ เจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ‡ เจกเจฟเจซเจพเจฒเจŸ เจฎเฉเฉฑเจฒ เจชเฉฐเจœ เจฎเฉˆเจ—เจพเจฌเจฟเจŸ เจชเฉเจฐเจคเฉ€ เจธเจ•เจฟเฉฐเจŸ เจตเจฟเฉฑเจš เจตเจพเจชเจธ เจ•เจฐ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค เจ•เฉ€ เจคเฉเจธเฉ€เจ‚ เจจเจคเฉ€เจœเฉ‡ เจคเฉ‹เจ‚ เจนเฉˆเจฐเจพเจจ เจนเฉ‹? เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ‡ เจ…เจธเจฒเฉ€ เจตเจฟเจตเจนเจพเจฐ เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจ•เจฐเจจ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ เจชเฉเจฐเจ•เจพเจธเจผ เจฆเฉ€ เจ—เจคเฉ€ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ•เจฐเจจ เจฒเจˆ เจšเฉˆเจจเจฒ เจฆเฉ‡เจฐเฉ€ เจจเฉ‚เฉฐ เจตเฉ€ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจšเฉˆเจจเจฒ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฟเฉฐเจŸ เจ•เจฐเจจ เจฒเจˆ เจ•เจนเจฟ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจจเฉˆเจŸเจตเจฐเจ• เจกเจฟเจตเจพเจˆเจธ เจฒเจˆ เจ•เฉ€เจคเจพ เจธเฉ€:

$ ./waf --run "scratch/myfirst --PrintAttributes=ns3::PointToPointChannel"

เจธเจพเจจเฉ‚เฉฐ เจชเจคเจพ เจฒเฉฑเจ—เฉ‡เจ—เจพ เจ•เจฟ เจšเฉˆเจจเจฒ เจฆเฉ‡เจฐเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจ…เจจเฉเจธเจพเจฐ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ:

--ns3::PointToPointChannel::Delay=[0ns]:
Transmission delay through the channel

เจ…เจธเฉ€เจ‚ เจซเจฟเจฐ, เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจธเจฟเจธเจŸเจฎ เจฐเจพเจนเฉ€เจ‚, เจ‡เจนเจจเจพเจ‚ เจฆเฉ‹เจจเจพเจ‚ เจฎเฉ‚เจฒ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค

$ ./waf --run "scratch/myfirst
--ns3::PointToPointNetDevice::DataRate=5Mbps
--ns3::PointToPointChannel::Delay=2ms"

เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ‰เจธ เจธเจฎเฉ‡เจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจฌเจนเจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฐเฉ‡เจŸ เจ…เจคเฉ‡ เจฆเฉ‡เจฐเฉ€ เจจเฉ‚เฉฐ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ เจธเฉ€:

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.417s)
0s UdpEchoServerApplication:UdpEchoServer()
1s UdpEchoServerApplication:StartApplication()
Sent 1024 bytes to 10.1.1.2
2.00369s Received 1024 bytes from 10.1.1.1
2.00369s Echoing packet
Received 1024 bytes from 10.1.1.2
10s UdpEchoServerApplication:StopApplication()
UdpEchoServerApplication:DoDispose()
UdpEchoServerApplication:~UdpEchoServer()

เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจชเฉˆเจ•เฉ‡เจŸ เจธเจฐเจตเจฐ เจฆเฉเจ†เจฐเจพ 2,00369 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจฌเจพเจ…เจฆ เจฆเฉเจฌเจพเจฐเจพ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ‡ เจ—เจ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ—เฉเจฃ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡, เจ…เจธเฉ€เจ‚ เจฎเฉˆเจ•เจธเจชเฉˆเจ•เฉ‡เจŸ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ—เฉˆเจฐ-เจ‡เจ• เจฎเฉเฉฑเจฒเจพเจ‚ เจฒเจˆ เจธเฉˆเฉฑเจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚ UdpEchoClient.

เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเจฐเจคเฉ‹เจ—เฉ‡? เจ‡เจธ เจจเฉ‚เฉฐ เจ…เจœเจผเจฎเจพเจ“เฅค เจฏเจพเจฆ เจฐเฉฑเจ–เฉ‹ เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจธ เจฅเจพเจ‚ 'เจคเฉ‡ เจŸเจฟเฉฑเจชเจฃเฉ€ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจชเฉ‚เจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจฎเฉˆเจ•เจธ เจชเฉˆเจ•เฉ‡เจŸ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš. เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจกเจฟเจซเฉŒเจฒเจŸ เจเจŸเจฐเฉ€เจฌเจฟเจŠเจŸ เจฎเฉเฉฑเจฒ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฒเจˆ เจธเฉฐเจŸเฉˆเจ•เจธ เจฎเจฆเจฆ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเจฎเจ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ 'เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ…เจงเจฟเจเจจ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจฒเฉ‹เจ• เจนเจพเจ‚, เจธเจพเจกเฉ€ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

$ ./waf --run "scratch/myfirst
--ns3::PointToPointNetDevice::DataRate=5Mbps
--ns3::PointToPointChannel::Delay=2ms
--ns3::UdpEchoClient::MaxPackets=2"

เจ‡เจธ เจฎเฉŒเจ•เฉ‡ เจชเฉˆเจฆเจพ เจนเฉ‹เจฃ เจตเจพเจฒเจพ เจ•เฉเจฆเจฐเจคเฉ€ เจธเจตเจพเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจจเฉเจนเจพเจ‚ เจธเจพเจฐเฉ‡ เจ—เฉเจฃเจพเจ‚ เจฆเฉ€ เจนเฉ‹เจ‚เจฆ เจฌเจพเจฐเฉ‡ เจ•เจฟเจตเฉ‡เจ‚ เจœเจพเจฃเจฟเจ† เจœเจพเจตเฉ‡เฅค เจฆเฉเจฌเจพเจฐเจพ เจซเจฟเจฐ, เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจ‡เจธ เจฎเจพเจฎเจฒเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจฎเจฆเจฆ เจซเฉฐเจ•เจธเจผเจจ เจนเฉˆเฅค เจœเฉ‡ เจ…เจธเฉ€เจ‚ เจฎเจฆเจฆ เจฒเจˆ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจชเฉเฉฑเจ›เจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจธเจพเจจเฉ‚เฉฐ เจ‡เจน เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

$ ./waf --run "scratch/myfirst --PrintHelp"
myfirst [Program Arguments] [General Arguments]
General Arguments:
--PrintGlobals: Print the list of globals.
--PrintGroups: Print the list of groups.
--PrintGroup=[group]: Print all TypeIds of group.
--PrintTypeIds: Print all TypeIds.
--PrintAttributes=[typeid]: Print all attributes of typeid.
--PrintHelp: Print this help message.

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ "เจชเฉเจฐเจฟเฉฐเจŸ เจ—เจฐเฉเฉฑเจช" เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจšเฉเจฃเจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจพเจฐเฉ‡ เจฐเจœเจฟเจธเจŸเจฐเจก เจ—เจฐเฉเฉฑเจชเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจฆเฉ‡เจ–เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจŸเจพเจˆเจช เจ†เจˆ.เจกเฉ€. เจธเจฎเฉ‚เจน เจฆเฉ‡ เจจเจพเจฎ เจธเจฐเฉ‹เจค เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฎเฉ‹เจกเฉ€เจŠเจฒเจพเจ‚ เจฆเฉ‡ เจจเจพเจตเจพเจ‚ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเฉ‡ เจนเจจ (เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ•เฉˆเจชเฉ€เจŸเจฒเจพเจˆเจœเจผเจก)เฅค เจธเจพเจฐเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจพเจฐ เจตเจฟเฉฑเจš เจ›เจพเจชเจฃเจพ เจฌเจนเฉเจค เจตเฉฑเจกเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ‡เจธเจฒเจˆ เจธเจฎเฉ‚เจน เจฆเฉเจ†เจฐเจพ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจฟเฉฐเจŸ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเจพเจงเฉ‚ เจซเจฟเจฒเจŸเจฐ เจ‰เจชเจฒเจฌเจง เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจฆเฉเจฌเจพเจฐเจพ เจชเฉเจ†เจ‡เฉฐเจŸ-เจŸเฉ‚-เจชเฉเจ†เจ‡เฉฐเจŸ เจฎเฉ‹เจกเฉ€เจŠเจฒ 'เจคเฉ‡ เจงเจฟเจ†เจจ เจ•เฉ‡เจ‚เจฆเจฐเจค เจ•เจฐเจจเจพ:

./waf --run "scratch/myfirst --PrintGroup=PointToPoint"
TypeIds in group PointToPoint:
ns3::PointToPointChannel
ns3::PointToPointNetDevice
ns3::PointToPointRemoteChannel
ns3::PppHeader

เจ‡เฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจเจŸเจฐเฉ€เจฌเจฟเจŠเจŸ เจฒเฉเฉฑเจ•เจ…เฉฑเจช เจฒเจˆ เจ‰เจชเจฒเจฌเจง TypeId เจจเจพเจฎ เจฒเฉฑเจญ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจตเจฟเฉฑเจš
--PrintAttributes = ns3 :: PointToPointChannelเจœเจฟเจตเฉ‡เจ‚ เจ‰เฉฑเจชเจฐ เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค

เจ—เฉเจฃเจพเจ‚ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจจ เจฆเจพ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจคเจฐเฉ€เจ•เจพ Doxygen ns-3 เจฆเฉเจ†เจฐเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจชเฉฐเจจเจพ เจนเฉˆ เจœเฉ‹ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจตเจฟเฉฑเจš เจฐเจœเจฟเจธเจŸเจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉ‚เจšเฉ€เจฌเฉฑเจง เจ•เจฐเจฆเจพ เจนเฉˆ.

5.2.2 เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจ–เฉเจฆ เจฆเฉ€เจ†เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉˆเจชเจšเจฐ เจ•เจฐเจจเจพ

เจคเฉเจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจธเจฟเจธเจŸเจฎ เจฐเจพเจนเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ–เฉเจฆ เจฆเฉ‡ เจนเฉเฉฑเจ• เจตเฉ€ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจน เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจชเจพเจฐเจธเจฐ เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเจนเฉเจค เจ…เจธเจพเจจเฉ€ เจจเจพเจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจฎเฉเฉฑเจฒ เจœเฉ‹เฉœเฉ‹.
เจ†เจ‰ เจ‡เจธ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจตเฉฑเจ–เจฐเฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจฃ เจตเจพเจฒเฉ‡ เจชเฉˆเจ•เฉ‡เจœเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฒเจˆ เจ•เจฐเฉ€เจเฅค เจ†เจ‰ เจ‡เฉฑเจ• เจฒเฉ‹เจ•เจฒ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจœเฉ‹เฉœเฉ€เจ เจœเจฟเจธเจจเฉ‚เฉฐ เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚ nเจชเฉˆเจ•เฉ‡เจŸ เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจฎเฉเฉฑเจ–. เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเจพเจกเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจกเจฟเจซเฉŒเจฒเจŸ เจตเจฟเจตเจนเจพเจฐ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจชเจพเจฐเจธเจฐ เจจเฉ‚เฉฐ เจ‡เจธ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเฉ‡เจฃ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ เจชเจพเจฐเจธเจฐ เจตเจฟเฉฑเจš เจ‡เจธ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจ•เฉˆเจชเจšเจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ•เจพเจฒ เจœเฉ‹เฉœ เจ•เฉ‡ เจ…เจœเจฟเจนเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจฎเฉเฉฑเจฒ เจœเฉ‹เฉœเฉ‹. เจœเจพเจ“ เจ…เจคเฉ‡ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฌเจฆเจฒเฉ‹ scratch/myfirst.cc เจ‡เจธ เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจ•เฉ‹เจก เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ,

int
main (int argc, char *argv[])
{
uint32_t nPackets = 1;
CommandLine cmd;
cmd.AddValue("nPackets", "Number of packets to echo", nPackets);
cmd.Parse (argc, argv);
...

เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจ‰เจธ เจฌเจฟเฉฐเจฆเฉ‚ เจคเฉฑเจ• เจนเฉ‡เจ เจพเจ‚ เจธเจ•เฉเจฐเฉ‹เจฒ เจ•เจฐเฉ‹ เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ MaxPackets เจ—เฉเจฃ เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฌเจฆเจฒเจฆเฉ‡ เจนเจพเจ‚ เจคเจพเจ‚ เจ•เจฟ เจ‡เจน เจธเจฅเจฟเจฐ 1 เจฆเฉ€ เจฌเจœเจพเจ nPackets เจตเฉ‡เจฐเฉ€เจเจฌเจฒ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจนเฉ‹เจตเฉ‡, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค

echoClient.SetAttribute ("MaxPackets", UintegerValue (nPackets));

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

$ ./waf --run "scratch/myfirst --PrintHelp"
Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.403s)
--PrintHelp: Print this help message.
--PrintGroups: Print the list of groups.
--PrintTypeIds: Print all TypeIds.
--PrintGroup=[group]: Print all TypeIds of group.
--PrintAttributes=[typeid]: Print all attributes of typeid.
--PrintGlobals: Print the list of globals.
User Arguments:
--nPackets: Number of packets to echo

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ - -nPackets เจธเฉˆเฉฑเจŸ เจ•เจฐเจ•เฉ‡ เจ…เจœเจฟเจนเจพ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

$ ./waf --run "scratch/myfirst --nPackets=2"

เจนเฉเจฃ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเฉเจฃ เจฆเฉ‡เจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ

Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
'build' finished successfully (0.404s)
0s UdpEchoServerApplication:UdpEchoServer()
1s UdpEchoServerApplication:StartApplication()
Sent 1024 bytes to 10.1.1.2
2.25732s Received 1024 bytes from 10.1.1.1
2.25732s Echoing packet
Received 1024 bytes from 10.1.1.2
Sent 1024 bytes to 10.1.1.2
3.25732s Received 1024 bytes from 10.1.1.1
3.25732s Echoing packet
Received 1024 bytes from 10.1.1.2
10s UdpEchoServerApplication:StopApplication()
UdpEchoServerApplication:DoDispose()
UdpEchoServerApplication:~UdpEchoServer()

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

5.3 เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจฎเจพเจกเจฒเจฟเฉฐเจ— เจฆเจพ เจชเฉ‚เจฐเจพ เจฌเจฟเฉฐเจฆเฉ‚ เจ…เจ—เจฒเฉ‡ เจ…เจงเจฟเจเจจ เจฒเจˆ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจชเฉˆเจฆเจพ เจ•เจฐเจจเจพ เจนเฉˆ, เจ…เจคเฉ‡ ns-3 เจŸเจฐเฉ‡เจธ เจธเจฟเจธเจŸเจฎ เจ‡เจธ เจฒเจˆ เจฎเฉเฉฑเจ– เจตเจฟเจงเฉ€ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ ns-3 เจ‡เฉฑเจ• C++ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจนเฉˆ, เจ‡เฉฑเจ• C++ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจคเฉ‹เจ‚ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจชเฉˆเจฆเจพ เจ•เจฐเจจ เจฆเฉ‡ เจฎเจฟเจ†เจฐเฉ€ เจธเจพเจงเจจ เจตเจฐเจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ:

#include <iostream>
...
int main ()
{
...
std::cout << "The value of x is " << x << std::endl;
...
}

เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจนเฉฑเจฒ เจตเจฟเฉฑเจš เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจขเจพเจ‚เจšเจพ เจœเฉ‹เฉœเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฒเฉŒเจ—เจฟเฉฐเจ— เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจธ เจชเจนเฉเฉฐเจš เจฆเฉ‡ เจ•เจพเจฐเจจ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจœเจพเจฃเฉ€เจ†เจ‚-เจชเจ›เจพเจฃเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ‡เจธเจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ†เจฎ เจ˜เจŸเจจเจพ เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจ‰เจช-เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเจพ เจนเฉˆเฅค

NS-3 เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฆเฉ‡ เจฎเฉเฉฑเจ– เจŸเฉ€เจšเฉ‡ เจนเจจ:

  • เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจ•เจพเจฐเจœเจพเจ‚ เจฒเจˆ, เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจฐเฉ‹เจคเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจฎเจฟเจ†เจฐเฉ€ เจŸเจฐเฉ‡เจธ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจŸเจฐเฉ‡เจธ เจชเฉˆเจฆเจพ เจ•เจฐเจจ เจตเจพเจฒเฉ€เจ†เจ‚ เจตเจธเจคเฉ‚เจ†เจ‚ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ;

  • เจ‡เฉฐเจŸเจฐเจฎเฉ€เจกเฉ€เจเจŸ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจ•เฉ‹เจฐ เจจเฉ‚เฉฐ เจธเฉ‹เจงเฉ‡ เจฌเจฟเจจเจพเจ‚, เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจซเจพเจฐเจฎเฉˆเจŸ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจœเจพเจ‚ เจจเจตเฉ‡เจ‚ เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจฎเจฟเจฒเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ;

  • เจ‰เฉฑเจจเจค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเจตเฉ‡เจ‚ เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจคเจพเจ‚ เจ…เจคเฉ‡ เจธเจฟเฉฐเจ• เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฒเจˆ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจ•เฉ‹เจฐ เจจเฉ‚เฉฐ เจธเฉฐเจธเจผเฉ‹เจงเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค ns-3 เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจธเฉเจคเฉฐเจคเจฐ เจŸเจฐเฉˆเจ•เจฟเฉฐเจ— เจธเจฐเฉ‹เจคเจพเจ‚ เจ…เจคเฉ‡ เจฐเจฟเจธเฉ€เจตเจฐเจพเจ‚ เจฆเฉ‡ เจธเจฟเจงเจพเจ‚เจคเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเจพเจฒ เจœเฉ‹เฉœเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฏเฉ‚เจจเฉ€เจซเจพเจˆเจก เจตเจฟเจงเฉ€ 'เจคเฉ‡ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค

ns-3 เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจธเฉเจคเฉฐเจคเจฐ เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจธเจฐเฉ‹เจคเจพเจ‚ เจ…เจคเฉ‡ เจฐเจฟเจธเฉ€เจตเจฐเจพเจ‚ เจฆเฉ‡ เจธเจฟเจงเจพเจ‚เจคเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจฐเจฟเจธเฉ€เจตเจฐเจพเจ‚ เจจเจพเจฒ เจœเฉ‹เฉœเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฏเฉ‚เจจเฉ€เจซเจพเจˆเจก เจตเจฟเจงเฉ€ 'เจคเฉ‡ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจค เจ‰เจน เจตเจธเจคเฉ‚เจ†เจ‚ เจนเจจ เจœเฉ‹ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš เจนเฉ‹เจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจ˜เจŸเจจเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจ•เฉ‡เจค เจ•เจฐ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฆเฉ‡ เจ…เฉฐเจกเจฐเจฒเจพเจˆเฉฐเจ— เจกเฉ‡เจŸเจพ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจชเฉเจฐเจฆเจพเจจ เจ•เจฐ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจค เจ‡เจน เจฆเจฐเจธเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจจเฉˆเจŸเจตเจฐเจ• เจกเจฟเจตเจพเจˆเจธ เจ‡เฉฑเจ• เจชเฉˆเจ•เฉ‡เจŸ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฃ เจตเจพเจฒเฉ‡ เจŸเจฐเฉ‡เจธ เจฐเจฟเจธเฉ€เจตเจฐเจพเจ‚ เจฒเจˆ เจ‰เจชเจฒเจฌเจง เจ•เจฐเจตเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ†เจชเจฃเฉ‡ เจ†เจช 'เจคเฉ‡ เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจค เจฌเฉ‡เจ•เจพเจฐ เจนเจจ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ‰เจน เจ•เฉ‹เจก เจฆเฉ‡ เจฆเฉ‚เจœเฉ‡ เจนเจฟเฉฑเจธเจฟเจ†เจ‚ เจจเจพเจฒ "เจœเฉ‹เฉœเฉ‡" เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจธเจฟเฉฐเจ• เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉเจ เจฒเจพเจญเจฆเจพเจ‡เจ• เจ•เจฐเจฆเฉ‡ เจนเจจ. เจŸเจฐเฉ‡เจธเจฐ เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ‡ เจ‡เจตเฉˆเจ‚เจŸเจพเจ‚ เจ…เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจ–เจชเจคเจ•เจพเจฐ เจนเฉเฉฐเจฆเฉ‡ เจนเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจŸเจฐเฉ‡เจธ เจธเจฟเฉฐเจ• เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ (เจœเจฆเฉ‹เจ‚ เจชเจฟเจ›เจฒเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจฆเฉ‡ เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจค เจจเจพเจฒ เจœเฉเฉœเจฟเจ† เจนเฉ‹เจตเฉ‡) เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฆเฉ‡ เจญเจพเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฟเฉฐเจŸ เจ•เจฐเฉ‡เจ—เจพเฅค

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

เจ‡เจธ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจ•เฉเจ เจชเฉ‚เจฐเจต-เจชเฉเจฐเจญเจพเจธเจผเจฟเจค เจธเจฐเฉ‹เจคเจพเจ‚ เจ…เจคเฉ‡ เจธเจฟเฉฐเจ•เจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจพเจ‚เจ—เฉ‡ เจ…เจคเฉ‡ เจฆเจฟเจ–เจพเจตเจพเจ‚เจ—เฉ‡ เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ 'เจคเฉ‡ เจ˜เฉฑเจŸ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจฎเจฟเจนเจจเจค เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‰เฉฑเจจเจค เจŸเจฐเฉ‡เจธ เจธเฉฐเจฐเจšเจจเจพ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฒเจˆ ns-3 เจฎเฉˆเจจเฉเจ…เจฒ เจœเจพเจ‚ เจ•เจฟเจตเฉ‡เจ‚-เจ•เจฐเจจ เจธเฉˆเจ•เจธเจผเจจ เจตเฉ‡เจ–เฉ‹, เจœเจฟเจธ เจตเจฟเฉฑเจš เจŸเจฐเฉ‡เจธ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจจเจตเฉ‡เจ‚ เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจค เจฌเจฃเจพเจ‰เจฃเจพ เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค

5.3.1 ASCII เจŸเจฐเฉ‡เจธเจฟเฉฐเจ—

ns-3 เจธเจนเจพเจ‡เจ• เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจธเจงเจพเจฐเจจ เจชเฉˆเจ•เฉ‡เจŸ เจŸเจฐเฉ‡เจธ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ˜เฉฑเจŸ-เจชเฉฑเจงเจฐเฉ€ เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ ASCII เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจตเฉ‡เจ–เฉ‹เจ—เฉ‡เฅค ns-2 เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจคเฉ‹เจ‚ เจœเจพเจฃเฉ‚ เจฒเฉ‹เจ•เจพเจ‚ เจฒเจˆ, เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเจพ เจŸเจฐเฉ‡เจธ เจธเจฎเจพเจจ เจนเฉˆ out.tr, เจœเฉ‹ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจšเจฒเฉ‹ เจ•เจพเจฐเฉ‹เจฌเจพเจฐ 'เจคเฉ‡ เจ‰เจคเจฐเฉ€เจ เจ…เจคเฉ‡ เจธเจพเจกเฉ€ scratch/myfirst.cc เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจ•เฉเจ ASCII เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจจเจคเฉ€เจœเฉ‡ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ€เจเฅค เจ•เจพเจฒ เจคเฉ‹เจ‚ เจ เฉ€เจ• เจชเจนเจฟเจฒเจพเจ‚ Simulator :: Run (), เจ•เฉ‹เจก เจฆเฉ€เจ†เจ‚ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจœเฉ‹เฉœเฉ‹:
AsciiTraceHelper ascii;

pointToPoint.EnableAsciiAll (ascii.CreateFileStream ("myfirst.tr"));

เจ•เจˆ เจนเฉ‹เจฐ ns-3 เจฎเฉเจนเจพเจตเจฐเจฟเจ†เจ‚ เจตเจพเจ‚เจ—, เจ‡เจน เจ•เฉ‹เจก ASCII เจŸเจฐเฉ‡เจธ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจนเจพเจ‡เจ• เจตเจธเจคเฉ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฆเฉ‚เจœเฉ€ เจฒเจพเจˆเจจ เจตเจฟเฉฑเจš เจฆเฉ‹ เจจเฉ‡เจธเจŸเจก เจขเฉฐเจ— เจ•เจพเจฒเจพเจ‚ เจนเจจเฅค "เจ…เฉฐเจฆเจฐ" เจขเฉฐเจ— เจซเจพเจˆเจฒเจธเจŸเฉเจฐเฉ€เจฎ เจฌเจฃเจพเจ“() เจธเจŸเฉˆเจ• 'เจคเฉ‡ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจธเจŸเฉเจฐเฉ€เจฎ เจ†เจฌเจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ…เจ—เจฟเจ†เจค เจ†เจฌเจœเฉˆเจ•เจŸ เจฎเฉเจนเจพเจตเจฐเฉ‡ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ (เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจตเจธเจคเฉ‚ เจฆเฉ‡ เจจเจพเจฎ เจฆเฉ‡) เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจจเจพเจฎเฉ€ เจตเจฟเจงเฉ€ เจตเจฟเฉฑเจš เจชเจพเจธ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจญเจตเจฟเฉฑเจ– เจตเจฟเฉฑเจš เจ‡เจธเจฆเฉ€ เจกเฉ‚เฉฐเจ˜เจพเจˆ เจตเจฟเฉฑเจš เจœเจพเจตเจพเจ‚เจ—เฉ‡, เจชเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจธเจฎเฉ‡เจ‚ เจธเจฟเจฐเจซ เจ‡เจน เจœเจพเจฃเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจธเจคเฉ‚ เจฌเจฃเจพ เจฐเจนเฉ‡ เจนเฉ‹ เจœเฉ‹ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ myfirst.tr เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ ns-3 เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเฉ‹เฅค เจ…เจธเฉ€เจ‚ ns-3 เจจเฉ‚เฉฐ เจ‰เจธ เจฆเฉ‡ เจชเฉ‚เจฐเฉ‡ เจœเฉ€เจตเจจ เจ•เจพเจฒ เจฒเจˆ เจฌเจฃเจพเจˆ เจ—เจˆ เจตเจธเจคเฉ‚ เจฆเฉ€ เจฆเฉ‡เจ–เจญเจพเจฒ เจ•เจฐเจจ เจฒเจˆ เจธเฉŒเจ‚เจชเจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธ เจฆเฉŒเจฐเจพเจจ เจ‡เจน C++ เจธเจŸเฉเจฐเฉ€เจฎ เจ†เจฌเจœเฉˆเจ•เจŸ เจ•เจพเจชเฉ€ เจ•เฉฐเจธเจŸเจฐเจ•เจŸเจฐเจพเจ‚ เจจเจพเจฒ เจœเฉเฉœเฉ€ เจฅเฉ‹เฉœเฉ€-เจœเจพเจฃเฉ€เจ†เจ‚ (เจœเจพเจฃ-เจฌเฉเฉฑเจ เจ•เฉ‡) เจธเฉ€เจฎเจพเจตเจพเจ‚ เจ•เจพเจฐเจจ เจนเฉ‹เจฃ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจฌเจพเจนเจฐเฉ€ เจ•เจพเจฒ AsciiAll() เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“ เจธเจนเจพเจ‡เจ• เจจเฉ‚เฉฐ เจฆเฉฑเจธเจฆเจพ เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจธเจพเจฐเฉ‡ เจชเฉเจ†เจ‡เฉฐเจŸ-เจŸเฉ‚-เจชเฉเจ†เจ‡เฉฐเจŸ เจกเจฟเจตเจพเจˆเจธ เจ•เจจเฉˆเจ•เจธเจผเจจเจพเจ‚ เจฒเจˆ เจ†เจชเจฃเฉ‡ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจตเจฟเฉฑเจš ASCII เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจธเจผเจพเจฎเจฒ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‡เจน เจ•เจฟ เจคเฉเจธเฉ€เจ‚ ASCII เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจชเฉˆเจ•เฉ‡เจŸ เจฎเฉ‚เจตเจฎเฉˆเจ‚เจŸ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเฉ‚เฉฐ เจฐเจฟเจ•เจพเจฐเจก เจ•เจฐเจจ เจฒเจˆ (เจจเจฟเจฐเจงเจพเจฐเจฟเจค) เจŸเจฐเฉ‡เจธ เจฐเจฟเจธเฉ€เจตเจฐ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค

ns-2 เจคเฉ‹เจ‚ เจœเจพเจฃเฉ‚ เจฒเฉ‹เจ•เจพเจ‚ เจฒเจˆ, เจŸเจฐเฉˆเจ• เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ˜เจŸเจจเจพเจตเจพเจ‚ เจœเจพเจฃเฉ‡-เจชเจ›เจพเจฃเฉ‡ เจŸเจฐเฉ‡เจธเจชเฉเจ†เจ‡เฉฐเจŸเจพเจ‚ เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ เจนเจจ เจœเฉ‹ เจ˜เจŸเจจเจพเจตเจพเจ‚ "+", "-", "d" เจ…เจคเฉ‡ "r" เจจเฉ‚เฉฐ เจฒเฉŒเจ— เจ•เจฐเจฆเฉ‡ เจนเจจเฅค
เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจคเฉ‹เจ‚ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

$ ./waf --run scratch/myfirst

เจชเจนเจฟเจฒเจพเจ‚ เจฆเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เจˆ เจตเจพเจฐ, เจคเฉเจธเฉ€เจ‚ Waf เจคเฉ‹เจ‚ เจ•เจˆ เจธเฉเจจเฉ‡เจนเฉ‡ เจฆเฉ‡เจ–เฉ‹เจ—เฉ‡, เจ…เจคเฉ‡ เจซเจฟเจฐ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเฉ‡ เจ•เฉเจ เจธเฉฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ "'เจฌเจฟเจฒเจก' เจธเจซเจฒเจคเจพเจชเฉ‚เจฐเจตเจ• เจชเฉ‚เจฐเจพ เจนเฉ‹เจ‡เจ†"เฅค

เจœเจฆเฉ‹เจ‚ เจšเฉฑเจฒเจฆเจพ เจนเฉˆ, เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเจพเจฎ เจฆเฉ€ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจฌเจฃเจพเจเจ—เจพ myfirst.tr. เจ•เฉฐเจฎ เจฆเฉ‡ เจธเฉเจญเจพเจ… เจฆเฉ‡ เจ•เจพเจฐเจจ เจตเจพเจซ, เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจซเจพเจ‡เจฒ เจธเจฅเจพเจจเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚, เจธเจ—เฉ‹เจ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฆเฉ€ เจ‰เฉฑเจš-เจชเฉฑเจงเจฐเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฌเจฃเจพเจˆ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‰เจธ เจฎเจพเจฐเจ— เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจœเจฟเฉฑเจฅเฉ‡ เจŸเจฐเฉ‡เจธ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฒเจˆ Waf เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ --cwd. เจ…เจธเฉ€เจ‚ เจ…เจœเจฟเจนเจพ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจคเฉเจนเจพเจกเฉ‡ เจฎเจจเจชเจธเฉฐเจฆ เจธเฉฐเจชเจพเจฆเจ• เจตเจฟเฉฑเจš ASCII เจŸเจฐเฉ‡เจธ เจซเจพเจˆเจฒ myfirst.tr เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ€ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฆเฉ€ เจ‰เฉฑเจš-เจชเฉฑเจงเจฐเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจจเฉˆเจตเฉ€เจ—เฉ‡เจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€เฅค

ASCII เจŸเจฐเฉ‡เจธ เจชเจพเจฐเจธ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ

เจ‡เฉฑเจฅเฉ‡ เจ•เจพเจซเจผเฉ€ เจธเฉฐเจ˜เจฃเฉ€ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจนเฉˆ, เจชเจฐ เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ•เจฟ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจฒเจพเจˆเจจเจพเจ‚ เจนเจจเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจตเจฟเจŠเจ‡เฉฐเจ— เจตเจฟเฉฐเจกเฉ‹ เจจเฉ‚เฉฐ เจšเฉŒเฉœเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจคเจพเจ‚ เจ‡เจน เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค

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

+: เจกเจฟเจตเจพเจˆเจธ เจ•เจคเจพเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจ•เจคเจพเจฐเจฌเฉฐเจฆเฉ€ เจ•เจพเจฐเจตเจพเจˆ เจนเฉ‹เจˆ;
-: เจกเจฟเจตเจพเจˆเจธ เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจคเฉฑเจค เจชเฉเจฐเจพเจชเจคเฉ€ เจ•เจพเจฐเจตเจพเจˆ เจนเฉ‹เจˆ;
d: เจชเฉˆเจ•เฉ‡เจŸ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจธเฉ€, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ•เจคเจพเจฐ เจญเจฐเฉ€ เจนเฉ‹เจˆ เจธเฉ€;
r: เจชเฉˆเจ•เฉ‡เจŸ เจ‡เฉฑเจ• เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจกเจฟเจตเจพเจˆเจธ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค

เจ†เจ‰ เจŸเจฐเฉ‡เจธ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเฉ€ เจฒเจพเจˆเจจ เจคเฉ‡ เจ‡เฉฑเจ• เจกเฉ‚เฉฐเจ˜เจพเจˆ เจจเจพเจฒ เจตเจฟเจšเจพเจฐ เจ•เจฐเฉ€เจ. เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจญเจพเจ—เจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเจพเจ‚เจ—เจพ (เจธเจชเจธเจผเจŸเจคเจพ เจฒเจˆ เจ‡เฉฐเจกเฉˆเจ‚เจŸเฉ‡เจธเจผเจจ เจฆเฉ‡ เจจเจพเจฒ) เจ…เจคเฉ‡ เจ–เฉฑเจฌเฉ‡ เจชเจพเจธเฉ‡ เจฒเจพเจˆเจจ เจจเฉฐเจฌเจฐ:

0 +
1 2
2 /NodeList/0/DeviceList/0/$ns3::PointToPointNetDevice/TxQueue/Enqueue
3 ns3::PppHeader (
4   Point-to-Point Protocol: IP (0x0021))
6   ns3::Ipv4Header (
7     tos 0x0 ttl 64 id 0 protocol 17 offset 0 flags [none]
8     length: 1052 10.1.1.1 > 10.1.1.2)
9     ns3::UdpHeader (
10      length: 1032 49153 > 9)
11      Payload (size=1024)

เจ‡เจธ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจŸเจฐเฉ‡เจธ เจ˜เจŸเจจเจพ (เจฒเจพเจˆเจจ 0) เจฆเจพ เจชเจนเจฟเจฒเจพ เจญเจพเจ— เจ“เจชเจฐเฉ‡เจธเจผเจจ เจนเฉˆเฅค เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• + เจšเจฟเฉฐเจจเฉเจน เจนเฉˆ, เจœเฉ‹ เจชเฉเจฐเจธเจพเจฐเจฃ เจฒเจˆ เจ•เจคเจพเจฐ เจฆเฉ‡ เจธเฉฐเจšเจพเจฒเจจ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆเฅค เจฆเฉ‚เจœเจพ เจญเจพเจ— (เจฒเจพเจˆเจจ 1) เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจธเจฎเจพเจ‚ เจนเฉˆ, เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจฆเจฐเจธเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆเฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฏเจพเจฆ เจนเฉ‹เจตเฉ‡เจ—เจพ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ•เฉ€ เจชเฉเฉฑเจ›เจฟเจ† เจธเฉ€ UdpEchoClientApplication เจฆเฉ‹ เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจชเฉˆเจ•เฉ‡เจŸ เจญเฉ‡เจœเจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‹เฅค เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจชเฉเจธเจผเจŸเฉ€ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ‡เจน เจ…เจธเจฒ เจตเจฟเฉฑเจš เจนเฉ‹ เจฐเจฟเจนเจพ เจนเฉˆเฅค

เจŸเจฐเฉ‡เจธ เจ‰เจฆเจพเจนเจฐเจจ เจฆเจพ เจ…เจ—เจฒเจพ เจญเจพเจ— (เจฒเจพเจˆเจจ 2 เจคเฉ‹เจ‚) เจ‡เจน เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เจฟเจนเฉœเฉ‡ เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจค เจจเฉ‡ เจ‡เจธ เจ˜เจŸเจจเจพ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‡เจ† เจนเฉˆ (เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจŸเจฐเฉ‡เจธ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ)เฅค เจคเฉเจธเฉ€เจ‚ เจŸเจฐเฉ‡เจธ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจฌเจพเจฐเฉ‡ เจธเฉ‹เจš เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เฅค เจจเจพเจฎ-เจธเจฅเจพเจจ เจฆเจพ เจฎเฉ‚เจฒ เจนเฉˆ เจจเฉ‹เจกเจฒเจฟเจธเจŸ. เจ‡เจน เจฎเฉเฉฑเจ– NS-3 เจ•เฉ‹เจก เจตเจฟเฉฑเจš เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเจพเจฒ เจฎเฉ‡เจฒ เจ–เจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจตเจฟเฉฑเจš เจ‰เจน เจธเจพเจฐเฉ‡ เจจเฉ‹เจก เจนเจจ เจœเฉ‹ เจธเจ•เฉเจฐเจฟเจชเจŸ เจตเจฟเฉฑเจš เจฌเจฃเจพเจ เจ—เจ เจนเจจเฅค เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจฆเฉ‡ เจฐเฉ‚เจŸ เจตเจฟเฉฑเจš เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€เจ†เจ‚ เจนเฉ‹ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ, เจจเฉ‹เจกเจฒเจฟเจธเจŸ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจจเฉ‹เจก เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจ‡เจธ เจฒเจˆ เจฒเจพเจˆเจจ /NodeList/0 เจจเฉ‹เจกเจฒเจฟเจธเจŸ เจตเจฟเฉฑเจš เจจเจฒ เจจเฉ‹เจก เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ, เจœเจฟเจธเจจเฉ‚เฉฐ เจ…เจธเฉ€เจ‚ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ "เจจเฉ‹เจก 0" เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเฉ‹เจšเจฆเฉ‡ เจนเจพเจ‚เฅค เจนเจฐเฉ‡เจ• เจจเฉ‹เจก เจตเจฟเฉฑเจš เจœเฉฐเจคเจฐเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจเฅค เจ‡เจน เจธเฉ‚เจšเฉ€ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš เจ…เฉฑเจ—เฉ‡ เจธเจฅเจฟเจค เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เจน เจŸเจฐเฉ‡เจธ เจ˜เจŸเจจเจพ เจ†เจˆ เจกเจฟเจตเจพเจˆเจธเจฒเจฟเจธเจŸ/0, เจœเฉ‹ เจ•เจฟ เจจเฉ‹เจก เจตเจฟเฉฑเจš เจธเจฅเจพเจชเจฟเจค เจจเจฒ เจกเจฟเจตเจพเจˆเจธ เจนเฉˆเฅค

เจ…เจ—เจฒเฉ€ เจธเจฌเจธเจŸเจฐเจฟเฉฐเจ—, $ ns3 :: PointToPointNetDevice, เจฆเฉฑเจธเจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เจฟเจนเฉœเฉ€ เจกเจฟเจตเจพเจˆเจธ เจœเจผเฉ€เจฐเฉ‹ เจธเจฅเจฟเจคเฉ€ 'เจคเฉ‡ เจนเฉˆ: เจจเฉ‹เจก เจœเจผเฉ€เจฐเฉ‹ เจฆเฉ€ เจกเจฟเจตเจพเจˆเจธ เจธเฉ‚เจšเฉ€เฅค เจฏเจพเจฆ เจ•เจฐเฉ‹ เจ•เจฟ เจฒเจพเจˆเจจ 0 เจตเจฟเฉฑเจš เจชเจพเจ เจ—เจ + เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจกเจฟเจตเจพเจˆเจธ เจฆเฉ€ เจŸเฉเจฐเจพเจ‚เจธเจฎเจฟเจŸ เจ•เจคเจพเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจคเฉฑเจค เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค เจ‡เจน "เจŸเจฐเฉˆเจ• เจฎเจพเจฐเจ—" เจฆเฉ‡ เจ†เจ–เจฐเฉ€ เจญเจพเจ—เจพเจ‚ เจตเจฟเฉฑเจš เจชเฉเจฐเจคเฉ€เจฌเจฟเฉฐเจฌเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆ: TxQueue/Enqueue.

เจŸเจฐเฉ‡เจธ เจตเจฟเฉฑเจš เจฌเจพเจ•เฉ€ เจญเจพเจ— เจ•เจพเจซเจผเฉ€ เจ…เจจเฉเจญเจตเฉ€ เจนเฉ‹เจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจ. เจฒเจพเจˆเจจเจพเจ‚ 3-4 เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ เจ•เจฟ เจชเฉˆเจ•เฉ‡เจŸ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเฉเจ†เจ‡เฉฐเจŸ-เจŸเฉ‚-เจชเฉเจ†เจ‡เฉฐเจŸ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจฒเจพเจˆเจจเจพเจ‚ 5-7 เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ เจ•เจฟ เจชเฉˆเจ•เฉ‡เจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• IP4 เจธเฉฐเจธเจ•เจฐเจฃ เจนเฉˆเจกเจฐ เจนเฉˆ เจ…เจคเฉ‡ IP เจเจกเจฐเฉˆเฉฑเจธ เจตเจฟเฉฑเจš เจ‰เจคเจชเฉฐเจจ เจนเฉ‹เจ‡เจ† เจนเฉˆ 10.1.1.1 เจ…เจคเฉ‡ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ 10.1.1.2. เจฒเจพเจˆเจจเจพเจ‚ 8-9 เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ เจ•เจฟ เจ‡เจธ เจชเฉˆเจ•เฉ‡เจŸ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• UDP เจธเจฟเจฐเจฒเฉ‡เจ– เจนเฉˆ เจ…เจคเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจฒเจพเจˆเจจ 10 เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจชเฉ‡เจฒเฉ‹เจก เจธเฉฐเจญเจพเจตเจฟเจค 1024 เจฌเจพเจˆเจŸเจธ เจนเฉˆเฅค

เจŸเจฐเฉ‡เจธ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจ…เจ—เจฒเฉ€ เจฒเจพเจˆเจจ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจ‰เจนเฉ€ เจชเฉˆเจ•เฉ‡เจŸ เจ‰เจธเฉ‡ เจจเฉ‹เจก 'เจคเฉ‡ เจŸเฉเจฐเจพเจ‚เจธเจฎเจฟเจธเจผเจจ เจ•เจคเจพเจฐ เจคเฉ‹เจ‚ เจ–เจฟเฉฑเจšเจฟเจ† เจ—เจฟเจ† เจธเฉ€เฅค

เจŸเจฐเฉ‡เจธ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจคเฉ€เจœเฉ€ เจฒเจพเจˆเจจ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจชเฉˆเจ•เฉ‡เจŸ เจˆเจ•เฉ‹ เจธเจฐเจตเจฐ เจนเฉ‹เจธเจŸ เจ‰เฉฑเจคเฉ‡ เจ‡เฉฑเจ• เจจเฉˆเจŸเจตเจฐเจ• เจกเจฟเจตเจพเจˆเจธ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค เจฎเฉˆเจ‚ เจนเฉ‡เจ เจพเจ‚ เจ˜เจŸเจจเจพ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจนเฉˆเฅค

0 r
1 2.25732
2 /NodeList/1/DeviceList/0/$ns3::PointToPointNetDevice/MacRx
3   ns3::Ipv4Header (
4     tos 0x0 ttl 64 id 0 protocol 17 offset 0 flags [none]
5     length: 1052 10.1.1.1 > 10.1.1.2)
6     ns3::UdpHeader (
7       length: 1032 49153 > 9)
8       Payload (size=1024)

เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจŸเจฐเฉ‡เจธ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจนเฉเจฃ r เจนเฉˆ เจ…เจคเฉ‡ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจธเจฎเจพเจ‚ 2,25732 เจธเจ•เจฟเฉฐเจŸ เจคเฉฑเจ• เจตเจงเจพ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจฆเฉ€ เจงเจฟเจ†เจจ เจจเจพเจฒ เจชเจพเจฒเจฃเจพ เจ•เฉ€เจคเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจฆเฉ‡ เจกเฉ‡เจŸเจพเจฐเฉ‡เจŸ เจ…เจคเฉ‡ เจฒเจฟเฉฐเจ• เจฆเฉ‡เจฐเฉ€ เจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจกเจฟเจซเฉŒเจฒเจŸ เจฎเฉเฉฑเจฒเจพเจ‚ 'เจคเฉ‡ เจ›เฉฑเจก เจฆเจฟเฉฑเจคเจพ เจนเฉˆเฅค เจ‡เจน เจ•เจพเจฒ เจœเจพเจฃเฉ‚ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจชเจฟเจ›เจฒเฉ‡ เจญเจพเจ— เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เจฟเจ† เจธเฉ€เฅค

เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจค เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจเจ‚เจŸเจฐเฉ€ (เจฒเจพเจˆเจจ 2) เจจเฉ‚เฉฐ เจ‡เจน เจฆเจฐเจธเจพเจ‰เจฃ เจฒเจˆ เจธเฉฐเจธเจผเฉ‹เจงเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ•เจฟ เจ‡เจน เจ˜เจŸเจจเจพ เจจเฉ‹เจก 1 (/) เจคเฉ‹เจ‚ เจ‰เจคเจชเฉฐเจจ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเจจเฉ‹เจกเจฒเจฟเจธเจŸ/1) เจ…เจคเฉ‡ เจชเฉˆเจ•เฉ‡เจŸ เจŸเจฐเฉ‡เจธ เจธเจฐเฉ‹เจค เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (/เจฎเฉˆเจ•เจ†เจฐเจเจ•เจธ). เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจฌเจพเจ•เฉ€ เจฌเจšเฉ‡ เจŸเจฐเฉ‡เจธ เจจเฉ‚เฉฐ เจฆเฉ‡เจ– เจ•เฉ‡ เจŸเฉŒเจชเฉŒเจฒเฉ‹เจœเฉ€ เจฆเฉเจ†เจฐเจพ เจชเฉˆเจ•เฉ‡เจŸ เจฆเฉ€ เจ—เจคเฉ€ เจฆเจพ เจชเจพเจฒเจฃ เจ•เจฐเจจเจพ เจ•เจพเจซเจผเฉ€ เจ†เจธเจพเจจ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

5.3.2 PCAP เจŸเจฐเฉ‡เจธ

ns-3 เจกเจฟเจตเจพเจˆเจธ เจนเฉˆเจฒเจชเจฐเจพเจ‚ เจจเฉ‚เฉฐ .pcap เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจŸเจฐเฉ‡เจธ เจซเจพเจˆเจฒเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจตเฉ€ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจธเฉฐเจ–เฉ‡เจช pcap (เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ›เฉ‹เจŸเฉ‡ เจ…เฉฑเจ–เจฐเจพเจ‚ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ) เจฆเจพ เจ…เจฐเจฅ เจชเฉˆเจ•เฉ‡เจŸ เจ•เฉˆเจชเจšเจฐ เจนเฉˆ เจ…เจคเฉ‡ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• API เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš .pcap เจซเจพเจˆเจฒ เจซเจพเจฐเจฎเฉˆเจŸ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค เจธเจญ เจคเฉ‹เจ‚ เจชเฉเจฐเจธเจฟเฉฑเจง เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจœเฉ‹ เจ‡เจธ เจซเจพเจฐเจฎเฉˆเจŸ เจจเฉ‚เฉฐ เจชเฉœเฉเจน เจ…เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจตเจฐเจ…เจฐเจนเจพเจฐเจ• (เจชเจนเจฟเจฒเจพเจ‚ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจธเฉ€ เจ…เจฅเจพเจฐเจฟเจŸเฉ€). เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เฉฑเจฅเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจŸเจฐเฉ‡เจธ เจเจจเจพเจฒเจพเจˆเจœเจผเจฐ เจนเจจ เจœเฉ‹ เจ‡เจธ เจชเฉˆเจ•เฉ‡เจŸ เจซเจพเจฐเจฎเฉˆเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ…เจธเฉ€เจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ pcap เจŸเจฐเฉ‡เจธ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเจจ เจฒเจˆ เจ‰เจชเจฒเจฌเจง เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจธเจพเจงเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ เจ‰เจคเจธเจผเจพเจนเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ pcap เจŸเจฐเฉ‡เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ 'เจคเฉ‡ เจงเจฟเจ†เจจ เจ•เฉ‡เจ‚เจฆเจฐเจฟเจค เจ•เจฐเจพเจ‚เจ—เฉ‡ tcpdump.

pcap เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ‰เจฃเจพ เจ•เฉ‹เจก เจฆเฉ€ เจ‡เฉฑเจ• เจฒเจพเจˆเจจ เจจเจพเจฒ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

pointToPoint.EnablePcapAll ("myfirst");

เจ•เฉ‹เจก เจฆเฉ€ เจ‡เจธ เจฒเจพเจˆเจจ เจจเฉ‚เฉฐ ASCII เจŸเจฐเฉ‡เจธ เจ•เฉ‹เจก เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจชเฉ‡เจธเจŸ เจ•เจฐเฉ‹ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจนเฉเจฃเฉ‡ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจนเฉˆ scratch/myfirst.cc. เจจเฉ‹เจŸ เจ•เจฐเฉ‹ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ "myfirst" เจธเจŸเฉเจฐเจฟเฉฐเจ— เจชเจพเจธ เจ•เฉ€เจคเฉ€ เจนเฉˆ, "myfirst.pcap" เจœเจพเจ‚ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€ เจ•เฉ‹เจˆ เจšเฉ€เจœเจผ เจจเจนเฉ€เจ‚เฅค เจ‡เจน เจ‡เจธ เจฒเจˆ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจ‡เฉฑเจ• เจ…เจ—เฉ‡เจคเจฐ เจนเฉˆ, เจชเฉ‚เจฐเจพ เจซเจพเจˆเจฒ เจจเจพเจ‚ เจจเจนเฉ€เจ‚เฅค เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ, เจธเจนเจพเจ‡เจ• เจ…เจธเจฒ เจตเจฟเฉฑเจš เจนเจฐเฉ‡เจ• เจชเฉเจ†เจ‡เฉฐเจŸ-เจŸเฉ‚-เจชเฉเจ†เจ‡เฉฐเจŸ เจกเจฟเจตเจพเจˆเจธ เจฒเจˆ เจ‡เฉฑเจ• เจŸเจฐเฉ‡เจธ เจซเจพเจˆเจฒ เจฌเจฃเจพเจเจ—เจพ. เจซเจพเจ‡เจฒ เจจเจพเจ‚ เจ…เจ—เฉ‡เจคเจฐ, เจจเฉ‹เจก เจจเฉฐเจฌเจฐ, เจกเจฟเจตเจพเจˆเจธ เจจเฉฐเจฌเจฐ, เจ…เจคเฉ‡ เจชเจฟเจ›เฉ‡เจคเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเจฃเจพเจ เจœเจพเจฃเจ—เฉ‡ ".pcap".

เจธเจพเจกเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจˆ, เจ…เจธเฉ€เจ‚ "เจจเจพเจฎ เจฆเฉ€เจ†เจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡myfirst-0-0.pcap"เจ…เจคเฉ‡"myfirst-1-0.pcap", เจœเฉ‹ เจ•เจฟ เจ•เฉเจฐเจฎเจตเจพเจฐ เจจเฉ‹เจก 0-เจกเจฟเจตเจพเจˆเจธ 0 เจ…เจคเฉ‡ เจจเฉ‹เจก 1-เจกเจฟเจตเจพเจˆเจธ 0 เจฒเจˆ pcap เจŸเจฐเฉ‡เจธ เจนเจจเฅค เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ pcap เจŸเจฐเฉ‡เจธเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ‹เจก เจฆเฉ€ เจฒเจพเจˆเจจ เจœเฉ‹เฉœ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเฉ‚เฉฐ เจ†เจฎ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

$ ./waf --run scratch/myfirst

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจ เจฆเฉ€ เจธเจฟเจ–เจฐ-เจชเฉฑเจงเจฐเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจคเจฟเฉฐเจจ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ‡เจ–เจฃเฉ€เจ†เจ‚ เจšเจพเจนเฉ€เจฆเฉ€เจ†เจ‚ เจนเจจ: เจ‡เฉฑเจ• ASCII เจŸเจฐเฉ‡เจธ เจซเจพเจˆเจฒ myfirst.tr, เจœเจฟเจธเจฆเจพ เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ…เจงเจฟเจเจจ เจ•เฉ€เจคเจพ เจธเฉ€, เจซเจพเจˆเจฒเจพเจ‚ myfirst-0-0.pcap ะธ myfirst-1-0.pcap - เจจเจตเฉ€เจ†เจ‚ pcap เจซเจพเจˆเจฒเจพเจ‚ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจนเฉเจฃเฉ‡ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจนเจจเฅค

tcpdump เจจเจพเจฒ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจชเฉœเฉเจนเจจเจพ

เจนเฉเจฃ เจฒเจˆ, pcap เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจ†เจธเจพเจจ เจคเจฐเฉ€เจ•เจพ tcpdump เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจนเฉˆเฅค

$ tcpdump -nn -tt -r myfirst-0-0.pcap
reading from file myfirst-0-0.pcap, link-type PPP (PPP)
2.000000 IP 10.1.1.1.49153 > 10.1.1.2.9: UDP, length 1024
2.514648 IP 10.1.1.2.9 > 10.1.1.1.49153: UDP, length 1024
tcpdump -nn -tt -r myfirst-1-0.pcap
reading from file myfirst-1-0.pcap, link-type PPP (PPP)
2.257324 IP 10.1.1.1.49153 > 10.1.1.2.9: UDP, length 1024
2.257324 IP 10.1.1.2.9 > 10.1.1.1.49153: UDP, length 1024

เจกเฉฐเจช เจตเจฟเจš myfirst-0-0.pcap (เจ•เจฒเจพเจ‡เฉฐเจŸ เจกเจฟเจตเจพเจˆเจธ) เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจˆเจ•เฉ‹ เจชเฉˆเจ•เฉ‡เจŸ เจธเจฟเจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจฆเฉ‡ 2 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจฌเจพเจ…เจฆ เจญเฉ‡เจœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‚เจœเฉ‡ เจกเฉฐเจช เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹ (myfirst-1-0.pcap), เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ–เฉ‹เจ—เฉ‡ เจ•เจฟ เจชเฉˆเจ•เฉ‡เจŸ 2,257324 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ 'เจคเฉ‡ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจ‡เจ† เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจฆเฉ‚เจœเฉ‡ เจกเฉฐเจช เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เฉ‹เจ—เฉ‡ เจ•เจฟ เจชเฉˆเจ•เฉ‡เจŸ 2.257324 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจตเจพเจชเจธ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจ…เจคเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ‡เจน เจ•เจฟ เจชเฉˆเจ•เจŸ เจ—เจพเจนเจ• เจฆเฉเจ†เจฐเจพ 2.514648 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเฉ‡ เจกเฉฐเจช เจตเจฟเฉฑเจš เจตเจพเจชเจธ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค

เจตเจพเจ‡เจฐเจธเจผเจพเจฐเจ• เจจเจพเจฒ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจชเฉœเฉเจนเจจเจพ

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจœเจพเจฃเฉ‚ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจตเจฐเจ…เจฐเจนเจพเจฐเจ•, เจ‡เฉฑเจ• เจตเฉˆเจฌเจธเจพเจˆเจŸ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจ…เจคเฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹: http://www.wireshark.org/. เจตเจฐเจ…เจฐเจนเจพเจฐเจ• เจ‡เฉฑเจ• GUI เจนเฉˆ เจœเฉ‹ เจ‡เจนเจจเจพเจ‚ เจŸเจฐเฉ‡เจธ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจตเจพเจ‡เจฐเจธเจผเจพเจฐเจ• เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจŸเจฐเฉ‡เจธ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ–เฉ‹เจฒเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจฟเจตเฉ‡เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจชเฉˆเจ•เฉ‡เจŸ เจธเจจเจฟเจซเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเฉˆเจ•เฉ‡เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉˆเจชเจšเจฐ เจ•เฉ€เจคเจพ เจนเฉˆเฅค

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

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