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 เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต
5.3.2 เดชเดฟเดธเดฟเดŽเดชเดฟ เดŸเตเดฐเต†เดฏเตเดธเต

เดšเดพเดชเตเดฑเตเดฑเตผ 5

เด•เดฎเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเต

5.1 เดฒเต‹เด—เดฟเด‚เด—เต เดฎเตŠเดกเตเดฏเต‚เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดจเต‹เด•เตเด•เดฟ เดžเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ ns-3 เดฒเต‹เด—เดฟเด‚เด—เต เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดฒเต‡เด•เตเด•เต เดšเตเดฐเตเด•เตเด•เดฎเดพเดฏเดฟ เดจเต‹เด•เตเด•เดฟ เด†เดฆเตเดฏเด‚.cc. เดˆ เด…เดงเตเดฏเดพเดฏเดคเตเดคเดฟเตฝ, เดฒเต‹เด—เดฟเด‚เด—เต เดธเดฌเตเดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตปเตเดฑเต† เดธเดพเดงเตเดฏเดฎเดพเดฏ เด‰เดชเดฏเต‹เด—เด™เตเด™เตพ เดžเด™เตเด™เตพ เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด‚.

5.1.1 เดฒเต‹เด—เดฟเด‚เด—เต เด…เดตเดฒเต‹เด•เดจเด‚

เดชเดฒ เดตเดฒเดฟเดฏ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเตเด‚ เดšเดฟเดฒ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฎเต†เดธเต‡เดœเต เดฒเต‹เด—เดฟเด‚เด—เต เดธเต—เด•เดฐเตเดฏเดคเตเดคเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† ns-3 เด’เดฐเต เด…เดชเดตเดพเดฆเดฎเดฒเตเดฒ. เดšเดฟเดฒ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ, "เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด•เตบเดธเต‹เดณเดฟเตฝ" เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดŽเดดเตเดคเตเด•เดฏเตเดณเตเดณเต‚ (เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ Unix-เด…เดงเดฟเดทเตเด เดฟเดค เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเดฟเตฝ 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_INFO-เด•เตพ เดจเตฝเด•เตเดจเตเดจ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚. NS_LOG_WARN, NS_LOG_ERROR เดŽเดจเตเดจเดฟเดต.

เดฒเต‹เด—เดฟเด‚เด—เต เดฒเต†เดตเดฒเต‹ เดธเต†เดฒเด•เตเดทเตป เด˜เดŸเด•เดฎเต‹ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดจเดฟเดฐเตเดชเดพเดงเดฟเด•เดฎเดพเดฏ เดฒเต‹เด—เดฟเด‚เด—เต เดฎเดพเด•เตเดฐเต‹เดฏเตเด‚ เดžเด™เตเด™เตพ เดจเตฝเด•เตเดจเตเดจเต.

  • NS_LOG_UNCOND - เด…เดจเตเดฌเดจเตเดง เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเตปเตเดฑเต† เดจเดฟเดฐเตเดชเดพเดงเดฟเด• เดฒเต‹เด—เดฟเด‚เด—เต (เด…เดจเตเดฌเดจเตเดง เดฒเต‹เด—เดฟเด‚เด—เต เดฒเต†เดตเดฒเดฟเดฒเตเดฒ).

เด“เดฐเต‹ เดฒเต†เดตเดฒเตเด‚ เดตเตเดฏเด•เตเดคเดฟเด—เดคเดฎเดพเดฏเต‹ เดธเดžเตเดšเดฟเดคเดฎเดพเดฏเต‹ เด…เดจเตเดตเต‡เดทเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต. sh เดŽเตปเดตเดฏเต‹เตบเดฎเต†เตปเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ NS_LOG เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต‹ เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดซเด‚เด—เตโ€Œเดทเตป เด•เต‹เตพ เดฒเต‹เด—เต เดšเต†เดฏเตโ€Œเดคเต‹ เดฒเต‹เด—เดฟเด‚เด—เต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดจเต‡เดฐเดคเตเดคเต† เด•เดพเดฃเดฟเดšเตเดšเดคเต เดชเต‹เดฒเต†, เดฒเต‹เด—เดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเต เดกเต‹เด•เตโ€Œเดธเดฟเดœเตป เดกเต‹เด•เตเดฏเตเดฎเต†เตปเตเดฑเต‡เดทเตป เด‰เดฃเตเดŸเต, เดจเดฟเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเต เด…เดตเดฒเต‹เด•เดจเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เดจเดฒเตเดฒ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต.

เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดกเต‹เด•เตเดฏเตเดฎเต†เตปเตเดฑเต‡เดทเตป เดตเดณเดฐเต† เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดพเดฏเดฟเดšเตเดšเตเด•เดดเดฟเดžเตเดžเต, เด‰เดฆเดพเดนเดฐเดฃ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดฐเดธเด•เดฐเดฎเดพเดฏ เดšเดฟเดฒ เดตเดฟเดตเดฐเด™เตเด™เตพ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฎเตเด•เตเด•เต เด† เด…เดฑเดฟเดตเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดธเตเด•เตเดฐเดพเดšเตเดšเต/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 เดŽเตปเดตเดฏเต‹เตบเดฎเต†เตปเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดตเดดเดฟ เด…เดคเดฟเตปเตเดฑเต† เดฒเต‹เด—เดฟเด‚เด—เต เดฒเต†เดตเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเต เด…เดงเดฟเด• เดตเดฟเดตเดฐเด™เตเด™เตพ เดชเตเดฐเดฟเตปเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เด•เตเดฒเดฏเตปเตเดฑเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเต‹เดŸเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเดพเด‚.

เด‡เดจเดฟ เดฎเตเดคเตฝ, "VARIABLE=value" เดตเดพเด•เตเดฏเด˜เดŸเดจ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต sh-เดชเต‹เดฒเตเดณเตเดณ เดทเต†เดฒเตเดฒเดพเดฃเต เดจเดฟเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดžเดพเตป เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เดพเตป เดชเต‹เด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เด’เดฐเต csh เดชเต‹เดฒเตเดณเตเดณ เดทเต†เดฒเตเดฒเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต†เด™เตเด•เดฟเตฝ, เด† เดทเต†เดฒเตเดฒเตเด•เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ "setenv เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดฎเต‚เดฒเตเดฏเด‚" เดตเดพเด•เตเดฏเด˜เดŸเดจเดฏเดฟเดฒเต‡เด•เตเด•เต เดŽเตปเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เตพ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดจเดฟเดฒเดตเดฟเตฝ, UDP เดŽเด•เตเด•เต‹ เด•เตเดฒเดฏเตปเตเดฑเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เต‹เดกเดฟเดจเต‹เดŸเต เดชเตเดฐเดคเดฟเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต เดธเตเด•เตเดฐเดพเดšเตเดšเต/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" เดฒเต†เดตเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดˆ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ เดชเตเดฐเดฟเดซเดฟเด•เตเดธเต_เดซเด™เตเด•เต NS_LOG เดŽเตปเดตเดฏเต‹เตบเดฎเต†เตปเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเต‡เด•เตเด•เต. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•:

$ export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func'

OR เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต† เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดฒเด‚เดฌ เดฌเดพเดฑเตเด‚ เด’เดฐเต Unix เดชเตˆเดชเตเดชเต เด•เดฃเด•เตเดŸเตผ เด†เดฏเดคเดฟเดจเดพเตฝ เด‰เดฆเตเดงเดฐเดฃเดฟ เด…เดŸเดฏเดพเดณเด™เตเด™เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดคเดจเตเดจเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฒเต‹เด—เดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เด˜เดŸเด• เดจเดพเดฎเดคเตเดคเดฟเตฝ เดชเตเดฐเดฟเดซเดฟเด•เตโ€Œเดธเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เดฒเต‹เด—เดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚.

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()

เดฏเตเดกเดฟเดชเดฟ เดŽเด•เตเด•เต‹ เด•เตเดฒเดฏเตปเตเดฑเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดฐเตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เด…เดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณเดคเดพเดฏเดฟ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดžเตเดžเดคเดพเดฏเดฟ เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเด‚. เดธเดจเตเดฆเต‡เดถเด‚"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 เดฌเดฟเดฑเตเดฑเต เดšเต‡เตผเดคเตเดคเตเด•เตŠเดฃเตเดŸเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ เดชเตเดฐเดฟเดซเดฟเด•เตเดธเต_เดธเดฎเดฏเด‚:

$ 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()

เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเดจเตเดจเต เด“เตผเด•เตเด•เตเด• เดธเตเด•เตเดฐเดพเดšเตเดšเต/first.cc เดธเดฟเดฎเตเดฒเต‡เดทเตป เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดธเต†เด•เตเด•เตปเดกเต เดฎเตเดฎเตเดชเต เดŽเด•เตเด•เต‹ เดธเต†เตผเดตเตผ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด†เดฐเด‚เดญเดฟเดšเตเดšเต. เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด† เดฐเต€เดคเดฟ เด•เดพเดฃเดพเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด• เดธเต†เตผเดตเตผ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด†เดฆเตเดฏเดคเตเดคเต† เดธเต†เด•เตเด•เตปเดกเดฟเตฝ เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต. เดžเด™เตเด™เตพ เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดŸเดคเตเดชเต‹เดฒเต†, เดธเดฟเดฎเตเดฒเต‡เดทเตปเตเดฑเต† เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดธเต†เด•เตเด•เตปเดกเดฟเตฝ เดŽเด•เตเด•เต‹ เด•เตเดฒเดฏเตปเตเดฑเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดจเดฟเด™เตเด™เตพ เดถเตเดฐเดฆเตเดงเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เตพ เด•เต‹เดณเดฟเตฝ เดธเดฟเดฎเตเดฒเต‡เดทเตป เดชเตเดฐเต‹เด—เดคเดฟ เดชเดฟเดจเตเดคเตเดŸเดฐเดพเดจเดพเด•เตเด‚ เดทเต†เดกเตเดฏเต‚เตพ เดŸเตเดฐเดพเตปเดธเตเดฎเดฟเดฑเตเดฑเต เดนเดพเตปเดกเดฟเตฝ เดฑเต€เดกเต เด•เต‹เตพเดฌเดพเด•เตเด•เต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจ เด•เตเดฒเดฏเตปเตเดฑเดฟเตฝ, เดŽเด•เตเด•เต‹ เดธเต†เตผเดตเตผ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เด…เดฏเดฏเตเด•เตเด•เตเด•. เดชเต‹เดฏเดฟเตปเตเดฑเต-เดŸเต-เดชเต‹เดฏเดฟเตปเตเดฑเต เดฒเดฟเด™เตเด•เต เดตเดดเดฟ เด’เดฐเต เดชเดพเด•เตเด•เดฑเตเดฑเต เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เดดเดฟเดžเตเดž เดธเดฎเดฏเด‚ 3,69 เดฎเดฟเดฒเตเดฒเดฟเดธเต†เด•เตเด•เตปเดกเต เด†เดฃเต†เดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. เดชเดพเด•เตเด•เดฑเตเดฑเดฟเดจเต‹เดŸเต เดชเตเดฐเดคเดฟเด•เดฐเดฟเดšเตเดšเตเดตเต†เดจเตเดจ เดธเดจเตเดฆเต‡เดถเด‚ เดŽเด•เตเด•เต‹ เดธเต†เตผเดตเตผ เดฒเต‹เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚, เดคเตเดŸเตผเดจเตเดจเต, เด’เดฐเต เดšเดพเดจเตฝ เด•เดพเดฒเดคเดพเดฎเดธเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚, เดŽเด•เตเด•เต‹ เด•เตเดฒเดฏเตปเตเดฑเต เด…เดคเดฟเตปเตเดฑเต† HandleRead เดฐเต€เดคเดฟเดฏเดฟเตฝ เดŽเด•เตเด•เต‹ เดชเดพเด•เตเด•เดฑเตเดฑเต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚.

เดˆ เดธเดฟเดฎเตเดฒเต‡เดทเดจเดฟเตฝ, เดจเดฟเด™เตเด™เตพ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† เดชเดฒเดคเตเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดฒเต‹เด—เดฟเด‚เด—เต เด˜เดŸเด•เด™เตเด™เดณเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเตเดดเตเดตเตป เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตเด‚ เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดŸเตเดฐเดพเด•เตเด•เตเดšเต†เดฏเตเดฏเดพเดจเดพเด•เตเด‚. 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 เด†เดฃเต. เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต "เด•เตเดฐเดฟเดฏเต‡เดฑเตเดฑเดฟเด‚เด—เต เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟ" เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเดพเดฃเต†เดจเตเดจเต เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเตเดจเตเดจ เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ (เดžเด™เตเด™เตพ เดจเต‹เดกเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจเดคเดฟเดจเต เดคเตŠเดŸเตเดŸเตเดฎเตเดฎเตเดชเต) เดšเต‡เตผเด•เตเด•เดพเด‚. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เต‹เดกเต เดธเตโ€Œเดจเดฟเดชเตเดชเดฑเตเดฑเดฟเดฒเดพเดฃเต เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต,
เดคเตเดฑเด•เตเด•เตเด• เดธเตเด•เตเดฐเดพเดšเตเดšเต/myfirst.cc เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดฟเดฏเดชเตเดชเต†เดŸเตเดŸ เดŽเดกเดฟเดฑเตเดฑเดฑเดฟเตฝ เดตเดฐเดฟ เดšเต‡เตผเด•เตเด•เตเด•,
NS_LOG_INFO ("Creating Topology");
เดตเดฐเดฟเด•เตพเด•เตเด•เต เดคเตŠเดŸเตเดŸเตเดฎเตเดฎเตเดชเต,

NodeContainer nodes;
nodes.Create (2);

เด‡เดชเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเด• เดตเดพเดซเต, เดžเด™เตเด™เตพ เดจเต‡เดฐเดคเตเดคเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เดฟเดฏ เดฒเต‹เด—เดฟเด‚เด—เต เดธเตเดŸเตเดฐเต€เด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต 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 เด—เตเดฒเต‹เดฌเตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต‡เด•เตเด•เตเด‚ เดตเดพเดคเดฟเตฝ เดคเตเดฑเด•เตเด•เตเดจเตเดจเต. เดชเตเดฐเดงเดพเดจ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดซเด‚เด—เตเดทเตปเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฐเดฃเตเดŸเต เดตเดฐเดฟ เด•เต‹เดกเต เดšเต‡เตผเด•เตเด•เดพเด‚ เดธเตเด•เตเดฐเดพเดšเตเดšเต/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.

เด‡เดจเดฟ เดจเดฎเตเด•เตเด•เต เด“เดชเตเดทเตป เดจเต‹เด•เตเด•เดพเด‚ โ€”เดชเตเดฐเดฟเตปเตเดฑเต เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเตเด•เตพ. first.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 เด‰เดฏเตผเดจเตเดจเดคเต. เดชเต‹เดฏเดฟเตปเตเดฑเต-เดŸเต-เดชเต‹เดฏเดฟเตปเตเดฑเต เด‰เดชเด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เตเด‚ เดšเดพเดจเดฒเตเด•เตพเด•เตเด•เตเดฎเดพเดฏเดฟ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เด•เต‹เดณเตเด•เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด‚ SetDeviceAtribute ะธ เดธเต†เดฑเตเดฑเตเดšเดพเดจเตฝ เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเต เดจเดฟเดจเตเดจเต myfirst.cc, เดจเดฎเตเด•เตเด•เต เด’เดฐเต เด•เตเดฒเต€เตป เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเตฝ เด‰เดฃเตเดŸเต.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‡เดชเตเดชเต‹เตพ เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเด•เตเด•เดฃเด‚ PointToPointHelper เดคเดพเดดเต†เดฏเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต† เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตŠเดจเตเดจเตเด‚ เดจเดŸเดคเตเดคเดฐเตเดคเต,

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

เดฎเตเดจเตเดจเต‹เดŸเตเดŸเต เดชเต‹เดฏเดฟ เด’เดฐเต เดชเตเดคเดฟเดฏ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด• เดตเดซเต (./เดตเดพเดซเต) เดจเดฎเตเด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เดชเต‹เดฏเดฟ 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"

เด‡เดคเต DataRate เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเดฟเดจเต† เด…เดคเดฟเตปเตเดฑเต† เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฎเต‚เดฒเตเดฏเดฎเดพเดฏ เด’เดฐเต เดธเต†เด•เตเด•เตปเดกเดฟเตฝ เด…เดžเตเดšเต เดฎเต†เด—เดพเดฌเตˆเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด‚. เดซเดฒเดคเตเดคเดฟเตฝ เดจเดฟเด™เตเด™เตพ เด†เดถเตเดšเดฐเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเตเดฃเตเดŸเต‹? เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตปเตเดฑเต† เดฏเดฅเดพเตผเดคเตเดฅ เดธเตเดตเดญเดพเดตเด‚ เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเดจเตเดจเดคเดฟเดจเต, เดชเตเดฐเด•เดพเดถ เดตเต‡เด—เดคเดฏเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจ เดคเดฐเดคเตเดคเดฟเตฝ เดšเดพเดจเตฝ เด•เดพเดฒเดคเดพเดฎเดธเด‚ เดžเด™เตเด™เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต†เดจเตเดจเต เด‡เดคเต เดฎเดพเดฑเตเดจเตเดจเต. เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เดšเต†เดฏเตโ€Œเดคเดคเตเดชเต‹เดฒเต†, เดšเดพเดจเตฝ เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเตเด•เตพ เดชเตเดฐเดฟเตปเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเต‹เดŸเต เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเดพเด‚:

$ ./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 เดธเต†เด•เตเด•เตปเดกเตเด•เตพเด•เตเด•เต เดถเต‡เดทเด‚ เดชเดพเด•เตเด•เดฑเตเดฑเต เดตเต€เดฃเตเดŸเตเด‚ เดธเต†เตผเดตเดฑเดฟเดจเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเตเด•เตพ เดจเดฎเตเด•เตเด•เต เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚, เดจเดฎเตเด•เตเด•เต MaxPackets เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเตเด•เตพ เดจเต‹เตบ-เดตเตบ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ 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.

เดจเดฟเด™เตเด™เตพ "PrintGroups" เด†เตผเด—เตเดฏเตเดฎเต†เตปเตเดฑเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดค เดŽเดฒเตเดฒเดพ เด—เตเดฐเต‚เดชเตเดชเตเด•เดณเตเดŸเต†เดฏเตเด‚ เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚ เดŸเตˆเดชเตเดชเต เดเดกเดฟ. เด—เตเดฐเต‚เดชเตเดชเดฟเตปเตเดฑเต† เดชเต‡เดฐเตเด•เตพ เด‰เดฑเดตเดฟเดŸ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต† เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เดชเต‡เดฐเตเด•เดณเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเต (เดตเดฒเดฟเดฏ เด…เด•เตเดทเดฐเด™เตเด™เดณเดพเดฃเต†เด™เตเด•เดฟเดฒเตเด‚). เดŽเดฒเตเดฒเดพ เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ เด’เดฐเต‡เดธเดฎเดฏเด‚ เด…เดšเตเดšเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดตเดฒเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เด…เดคเดฟเดจเดพเตฝ เด—เตเดฐเต‚เดชเตเดชเต เดชเตเดฐเด•เดพเดฐเด‚ เดตเดฟเดตเดฐเด™เตเด™เตพ เด…เดšเตเดšเดŸเดฟเด•เตเด•เดพเตป เด’เดฐเต เด…เดงเดฟเด• เดซเดฟเตฝเดŸเตเดŸเตผ เดฒเดญเตเดฏเดฎเดพเดฃเต. เด…เดคเดฟเดจเดพเตฝ, เดชเต‹เดฏเดฟเตปเตเดฑเต-เดŸเต-เดชเต‹เดฏเดฟเตปเตเดฑเต เดฎเตŠเดกเตเดฏเต‚เดณเดฟเตฝ เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฆเตเดง เด•เต‡เดจเตเดฆเตเดฐเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต:

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

เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเต เดฒเตเด•เตเด•เดชเตเดชเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฒเดญเตเดฏเดฎเดพเดฏ TypeId เดชเต‡เดฐเตเด•เตพ เด‡เดตเดฟเดŸเต† เด•เดฃเตเดŸเต†เดคเตเดคเดพเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต
--PrintAttributes = ns3 :: PointToPointChannelเดฎเตเด•เดณเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†.

เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด…เดฑเดฟเดฏเดพเดจเตเดณเตเดณ เดฎเดฑเตเดฑเตŠเดฐเต เดฎเดพเตผเด—เตเด—เด‚ เดกเต‹เด•เตโ€Œเดธเดฟเดœเตป เดŽเตปเดŽเดธเต-3 เด†เดฃเต. เดธเดฟเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เด†เดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเตเด•เดณเตเด‚ เดฒเดฟเดธเตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดชเต‡เดœเต เด‰เดฃเตเดŸเต.

5.2.2 เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด•เดฎเดพเตปเดกเตเด•เตพ เด•เตเดฏเดพเดชเตเดšเตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดธเดฟเดธเตเดฑเตเดฑเด‚ เดตเดดเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด•เตŠเดณเตเดคเตเดคเตเด•เตพ เดšเต‡เตผเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดชเดพเตผเดธเตผ เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด†เดกเต เดตเดพเดฒเตเดฏเต‚.
เดคเดฟเด•เดšเตเดšเตเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸ เดชเดพเด•เตเด•เต‡เดœเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเตป เดˆ เดซเต€เดšเตเดšเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฒเต‹เด•เตเด•เตฝ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดšเต‡เตผเด•เตเด•เดพเด‚ nเดชเดพเด•เตเด•เดฑเตเดฑเตเด•เตพ เด’เดฐเต เดšเดŸเด™เตเด™เดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดงเดพเดจ. เดžเด™เตเด™เดณเตเดŸเต† เดฎเตเดฎเตเดชเดคเตเดคเต† เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดธเตเดตเดญเดพเดตเดตเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดจเต เดžเด™เตเด™เตพ เด‡เดคเต เด’เดจเตเดจเดพเดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด‚. เดˆ เดฎเต‚เดฒเตเดฏเด‚ เดฎเดพเดฑเตเดฑเดพเตป เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดชเดพเตผเดธเดฑเดฟเดจเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดชเดพเดดเตเดธเดฑเดฟเตฝ เดˆ เดฎเต‚เดฒเตเดฏเด‚ เด•เตเดฏเดพเดชเตเดšเตผ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด’เดฐเต เด•เต‹เตพ เดšเต‡เตผเดคเตเดคเดพเดฃเต เดžเด™เตเด™เตพ เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด†เดกเต เดตเดพเดฒเตเดฏเต‚. เดชเต‹เดฏเดฟ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดฎเดพเดฑเตเดฑเต‚ เดธเตเด•เตเดฐเดพเดšเตเดšเต/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));

เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต -PrintHelp เด†เตผเด—เตเดฏเตเดฎเต†เตปเตเดฑเต เดจเตฝเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ เดชเตเดคเดฟเดฏ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เด†เตผเด—เตเดฏเตเดฎเต†เตปเตเดฑเต เด•เดพเดฃเตเด‚. เดธเดนเดพเดฏ เดกเดฟเดธเตเดชเตเดฒเต‡เดฏเดฟเตฝ เดฒเดฟเดธเตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดจเตฝเด•เตเด•,

$ ./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 เด†เดธเตเด•เดฟ เดŸเตเดฐเต‡เดธเดฟเด‚เด—เต

เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเดพเด•เตเด•เดฑเตเดฑเต เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดคเดพเดดเตเดจเตเดจ-เดฒเต†เดตเตฝ เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดจเตฝเด•เตเดจเตเดจ เดธเดนเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดค ns-3 เดจเตฝเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เดˆ เดธเดตเดฟเดถเต‡เดทเดค เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ ASCII เดซเดฏเดฒเตเด•เดณเดฟเตฝ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด•เดพเดฃเตเด‚. ns-2 เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดชเดฐเดฟเดšเดฏเดฎเตเดณเตเดณเดตเตผเด•เตเด•เต, เด‡เดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดŸเตเดฐเต†เดฏเตเดธเต เดธเดฎเดพเดจเดฎเดพเดฃเต เดชเตเดฑเดคเตเดคเต.tr, เด‡เดคเต เดจเดฟเดฐเดตเดงเดฟ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเดพเดฃเต.

เดจเดฎเตเด•เตเด•เต เดฌเดฟเดธเดฟเดจเดธเตเดธเดฟเดฒเต‡เด•เตเด•เต เด‡เดฑเด™เตเด™เดพเด‚, เดจเดฎเตเดฎเตเดŸเต† เดธเตเด•เตเดฐเดพเดšเตเดšเต/myfirst.cc เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เด•เตเดฑเดšเตเดšเต ASCII เดŸเตเดฐเต†เดฏเตเดธเดฟเด‚เด—เต เดซเดฒเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เตเด•. เด•เต‹เดณเดฟเดจเต เดคเตŠเดŸเตเดŸเตเดฎเตเดฎเตเดชเต Simulator :: Run (), เด•เต‹เดกเดฟเตปเตเดฑเต† เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเดฐเดฟเด•เตพ เดšเต‡เตผเด•เตเด•เตเด•:
AsciiTraceHelper ascii;

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

เดฎเดฑเตเดฑเต เดชเดฒ ns-3 เดเดกเดฟเดฏเดฎเตเด•เตพ เดชเต‹เดฒเต†, เดˆ เด•เต‹เดกเตเด‚ ASCII เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด’เดฐเต เดธเดนเดพเดฏ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดตเดฐเดฟเดฏเดฟเตฝ เดฐเดฃเตเดŸเต เดจเต†เดธเตเดฑเตเดฑเดกเต เดฎเต†เดคเตเดคเต‡เดกเต เด•เต‹เดณเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. "เด…เด•เดคเตเดคเต" เดฐเต€เดคเดฟ CreateFileStream() เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเตฝ เด’เดฐเต เดซเดฏเตฝ เดธเตเดŸเตเดฐเต€เด‚ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเตป เด…เดœเตเดžเดพเดค เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดเดกเดฟเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต (เด’เดฐเต เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดจเดพเดฎเดฎเดฟเดฒเตเดฒเดพเดคเต†) เด…เดคเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต. เดญเดพเดตเดฟเดฏเดฟเตฝ เดžเด™เตเด™เตพ เด‡เดคเดฟเดฒเต‡เด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เด†เดดเดคเตเดคเดฟเตฝ เดชเต‹เด•เตเด‚, โ€‹โ€‹เดŽเดจเตเดจเดพเตฝ เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดจเดฟเด™เตเด™เตพ เด…เดฑเดฟเดฏเต‡เดฃเตเดŸเดคเต เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดซเดฏเดฒเดฟเดจเต† เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต myfirst.tr เด…เดคเต ns-3 เดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•. เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดš เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเดฟเดจเต† เด…เดคเดฟเตปเตเดฑเต† เดœเต€เดตเดฟเดคเด•เดพเดฒเด‚ เดฎเตเดดเตเดตเตป เดชเดฐเดฟเดชเดพเดฒเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ ns-3-เดจเต† เดญเดฐเดฎเต‡เตฝเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต, เดˆ เดธเดฎเดฏเดคเตเดคเต เด…เดคเต C++ เดธเตเดŸเตเดฐเต€เด‚ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เด•เต‹เดชเตเดชเดฟ เด•เตบเดธเตโ€ŒเดŸเตเดฐเด•เตโ€Œเดฑเตเดฑเดฑเตเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เด•เตเดฑเดšเตเดšเต เด…เดฑเดฟเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ (เดฎเดจเดชเตเดชเต‚เตผเดตเด‚) เดชเดฐเดฟเดฎเดฟเดคเดฟ เดฎเต‚เดฒเดฎเตเดฃเตเดŸเดพเด•เตเดจเตเดจ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดฌเดพเดนเตเดฏ เด•เต‹เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด•AsciiAll() เดŽเดฒเตเดฒเดพ เดชเต‹เดฏเดฟเตปเตเดฑเต-เดŸเต-เดชเต‹เดฏเดฟเตปเตเดฑเต เด‰เดชเด•เดฐเดฃ เด•เดฃเด•เตเดทเดจเตเด•เตพเด•เตเด•เตเดฎเดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเดฟเดฎเตเดฒเต‡เดทเดจเดฟเตฝ ASCII เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเตเด‚ ASCII เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดชเดพเด•เตเด•เดฑเตเดฑเต เดšเดฒเดจ เดตเดฟเดตเดฐเด™เตเด™เตพ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต (เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโ€ŒเดŸเดฎเดพเดฏ) เดŸเตเดฐเต†เดฏเตโ€Œเดธเต เดฑเดฟเดธเต€เดตเดฑเตเด•เตพ เดตเต‡เดฃเดฎเต†เดจเตเดจเตเด‚ เด…เดธเดฟเดธเตเดฑเตเดฑเตปเตเดฑเดฟเดจเต‹เดŸเต เดชเดฑเดฏเตเดจเตเดจเต.

ns-2 เดชเดฐเดฟเดšเดฏเดฎเตเดณเตเดณเดตเตผเด•เตเด•เต, เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตโ€Œเดค เด‡เดตเตปเตเดฑเตเด•เตพ "+", "-", "d", "r" เด‡เดตเตปเตเดฑเตเด•เตพ เดฒเต‹เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด…เดฑเดฟเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดŸเตเดฐเต‡เดธเต เดชเต‹เดฏเดฟเตปเตเดฑเตเด•เตพเด•เตเด•เต เดคเตเดฒเตเดฏเดฎเดพเดฃเต.
เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚:

$ ./waf --run scratch/myfirst

เดฎเตเดฎเตเดชเดคเตเดคเต† เดชเดฒเดคเดตเดฃ เดชเต‹เดฒเต†, Waf-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดจเดฟเดฐเดตเดงเดฟ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚, เดคเตเดŸเตผเดจเตเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดšเดฟเดฒ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพเด•เตเด•เตŠเดชเตเดชเด‚ "'เดฌเดฟเตฝเดกเต' เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏเดฟ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ".

เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดชเต‡เดฐเตเดณเตเดณ เด’เดฐเต เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚ myfirst.tr. เดœเต‹เดฒเดฟเดฏเตเดŸเต† เดธเตเดตเดญเดพเดตเด‚ เด•เดพเดฐเดฃเด‚ เดตเดซเต, เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฒเต‹เด•เตเด•เตฝ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเดฒเตเดฒ, เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเตเดŸเต† เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเดพเดฃเต. เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เดธเด‚เดฐเด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดชเดพเดค เดฎเดพเดฑเตเดฑเดฃเดฎเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดพเดซเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. --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. เดˆ เดชเดพเด•เตเด•เดฑเตเดฑเดฟเดจเต UDP เดนเต†เดกเตผ เด‰เดฃเตเดŸเต†เดจเตเดจเต 8-9 เดตเดฐเดฟเด•เตพ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดตเดธเดพเดจเด‚ เดฒเตˆเตป 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) เด•เต‚เดŸเดพเดคเต† เดชเดพเด•เตเด•เดฑเตเดฑเต เดŸเตเดฐเต†เดฏเตโ€Œเดธเต เด‰เดฑเดตเดฟเดŸเด‚ (/MacRx). เดซเดฏเดฒเดฟเดฒเต† เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เดจเต‹เด•เตเด•เดฟ เดŸเต‹เดชเตเดชเต‹เดณเดœเดฟเดฏเดฟเดฒเต‚เดŸเต† เดชเดพเด•เตเด•เดฑเตเดฑเดฟเตปเตเดฑเต† เดšเดฒเดจเด‚ เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจเดคเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

5.3.2 เดชเดฟเดธเดฟเดŽเดชเดฟ เดŸเตเดฐเต†เดฏเตเดธเต

.pcap เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดŸเตเดฐเต†เดฏเตเดธเต เดซเดฏเดฒเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ ns-3 เด‰เดชเด•เดฐเดฃ เดธเดนเดพเดฏเดฟเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดธเด‚เด•เตเดทเต‡เดชเด‚ pcap (เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดšเต†เดฑเดฟเดฏเด•เตเดทเดฐเดคเตเดคเดฟเตฝ เดŽเดดเตเดคเดฟเดฏเดคเต) เดŽเดจเตเดจเดคเต เดชเดพเด•เตเด•เดฑเตเดฑเต เด•เตเดฏเดพเดชเตโ€Œเดšเดฑเดฟเดจเต† เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ .pcap เดซเดฏเตฝ เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต API เด†เดฃเต. เดˆ เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดตเดพเดฏเดฟเด•เตเด•เดพเดจเตเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเดจเตเดจ เดเดฑเตเดฑเดตเตเด‚ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดตเดฏเดฑเตเด•เตพเดทเดพเตผเด•เตเด•เต (เดฎเตเดฎเตเดชเต เดตเดฟเดณเดฟเดšเตเดšเดฟเดฐเตเดจเตเดจเต เดŽเดฑเตเดฑเต†เดตเต‡เตฝ). เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดˆ เดชเดพเด•เตเด•เดฑเตเดฑเต เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดŸเตเดฐเดพเดซเดฟเด•เต เดŸเตเดฐเต†เดฏเตเดธเต เด…เดจเดฒเตˆเดธเดฑเตเด•เตพ เด‰เดฃเตเดŸเต. pcap เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป เดฒเดญเตเดฏเดฎเดพเดฏ เดจเดฟเดฐเดตเดงเดฟ เดŸเต‚เดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเต† เดชเตเดฐเต‹เดคเตเดธเดพเดนเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเดฒเดฟเตฝ เดžเด™เตเด™เตพ pcap เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เดพเดฃเตเดจเตเดจเดคเดฟเตฝ เดถเตเดฐเดฆเตเดง เด•เต‡เดจเตเดฆเตเดฐเต€เด•เดฐเดฟเด•เตเด•เตเด‚ tcpdump.

pcap เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต เด’เดฐเต เดตเดฐเดฟ เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต.

pointToPoint.EnablePcapAll ("myfirst");

เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เดšเต‡เตผเดคเตเดค ASCII เดŸเตเดฐเต†เดฏเตเดธเต เด•เต‹เดกเดฟเดจเต เดถเต‡เดทเด‚ เดˆ เด•เต‹เดกเดฟเตปเตเดฑเต† เดตเดฐเดฟ เด’เดŸเตเดŸเดฟเด•เตเด•เตเด• เดธเตเด•เตเดฐเดพเดšเตเดšเต/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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•