5 เบเบฒเบเบเบฑเปเบเบเปเบฒ
5.1 เบเบฒเบเบเปเบฒเปเบเปเปเบกเบเบนเบเบเบฑเบเบเบถเบ
5.1.1 เบเบฑเบเบเบถเบเบเบฒเบเบฅเบงเบก
5.1.2 เปเบเบตเบเปเบเปเบเบฒเบเบเบฑเบเบเบถเบ
5.1.3 เบเบฒเบเปเบเบตเปเบกเบเบฑเบเบเบถเบเปเบชเปเบฅเบฐเบซเบฑเบเบเบญเบเบเปเบฒเบ
5.2 เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเปเบเปเบเบฝเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ
5.2.1 เบเบฒเบเบฅเบปเบเบฅเปเบฒเบเบเปเบฒเบเบธเบเบชเบปเบกเบเบฑเบเปเบฅเบตเปเบกเบเบปเปเบ
5.2.2 เบเบฒเบเบเบฑเบเบเปเบฒเบชเบฑเปเบเบเบญเบเบเบปเบเปเบญเบ
5.3 เบเบฒเบเบเปเบฒเปเบเปเบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบก
5.3.1 เบเบฒเบเบเบดเบเบเบฒเบก ASCII
เบเบณเบฅเบฑเบเบงเบดเปเบเบฒเบฐเบเบฒเบกเบฎเบญเบ ASCII
5.3.2 PCAP Trace
เบเบปเบเบเบต 5
เบเบฒเบเบเบฑเบ
5.1 เบเบฒเบเบเปเบฒเปเบเปเปเบกเบเบนเบเบเบฑเบเบเบถเบ
เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบดเปเบเบชเบฑเปเบเปเบขเบนเปเปเบเปเบกเบเบนเบเบเบฑเบเบเบถเบ ns-3 เปเบฅเปเบงเปเบเบเบเบฒเบเปเบเบดเปเบเบเบปเบงเบซเบเบฑเบเบชเบท first.cc. เปเบเบเบปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบฒเบฅเบฐเบเบฒเบขเปเบฒเบเบฅเบฐเบญเบฝเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบเบตเปเปเบเบฑเบเปเบเปเบเปเบชเปเบฒเบฅเบฑเบเบฅเบฐเบเบปเบเบเปเบญเบเบเบญเบเบเบฒเบเบเบฑเบเปเบกเป.
5.1.1 เบเบฑเบเบเบถเบเบเบฒเบเบฅเบงเบก
เบฅเบฐเบเบปเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเปเบฒเบเบงเบเบซเบผเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเบฐเปเบเบเบเบญเบเบชเบฐเบเบฒเบเบเบตเปเบเบฑเบเบเบถเบเบเปเปเบเบงเบฒเบก, เปเบฅเบฐ ns-3 เบเปเปเบกเบตเบเปเปเบเบปเบเปเบงเบฑเปเบ. เปเบเบเบฒเบเบเปเบฅเบฐเบเบต, เบเบฝเบเปเบเปเบเปเปเบเบงเบฒเบกเบชเบฐเปเบเบเบเปเปเบเบดเบเบเบฒเบเบเบทเบเบเบฝเบเปเบชเป "operator console" (เปเบเบดเปเบเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเปเบกเปเบ stderr เปเบเบฅเบฐเบเบปเบเบเบตเปเบญเบตเบเปเบชเป Unix). เปเบเบฅเบฐเบเบปเบเบญเบทเปเบเป, เบเปเปเบเบงเบฒเบกเปเบเบทเบญเบเบญเบฒเบเบเบฐเบเบทเบเบชเบฐเปเบเบเปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเปเปเบกเบนเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบก. เปเบโเบเบฒเบโเบเปโเบฅเบฐโเบเบต, เปเบเบทเปเบญเบโเบกเบทโเบเบฒเบโเปเบเบปเปเบฒโเบชเบนเปโเบฅเบฐโเบเบปเบโเปเบเปโเบเบทเบโเบเปเบฒโเปเบเปโเปเบเบทเปเบญโเบญเบญเบโเบเปเปโเบเบงเบฒเบกโเบเบตโเบเบฑเบโเบเบตเปโเบชเบฒโเบกเบฒเบโเปเบฎเบฑเบโเปเบซเปโเบเบปเบโเบเบฐโเบฅเบดเบโเบกเบปเบงโเปเบเปโเบขเปเบฒเบโเบงเปเบญเบโเปเบงโ.
subHRD เบเบตเปเปเบเปเปเบ ns-3 เบเบทเบงเปเบฒเบเบธเบเบฅเบฐเบเบฑเบเบเบญเบเปเบเบทเปเบญเบซเบฒเบเปเปเบกเบนเบเปเบซเบผเบปเปเบฒเบเบตเปเบกเบตเบเบฐเปเบซเบเบ, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเปเบซเปเบงเบดเบเบตเบเบฒเบเบเบฑเบเปเบฅเบทเบญเบ, เปเบเบฑเบเบเบฑเปเบเปเปเบเบทเปเบญเบเบฑเบเบเบถเบเบเปเปเบเบงเบฒเบก. เบเบฒเบเบเบฑเบเบเบถเบเบชเบฒเบกเบฒเบเบเบทเบเบเบดเบเบเบฒเบเปเบเปเบเบฒเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ, เปเบเบตเบเปเบซเปเปเบเปเบเบฒเบเบเบปเบเบเบทเปเบเบเบฒเบเบเปเปเบญเบปเบเบเบฐเบเบญเบ, เบซเบผเบทเบเบปเปเบงเปเบฅเบ. เบชเปเบฒโเบฅเบฑเบโเบเบธเบโเบเบฐโเบชเบปเบโเบเบตเปโ, เบเบฒเบโเบเบฑเบโเบฅเบฐโเบเบฑเบโเบเบญเบโเปเบเบทเปเบญโเปเบโเบเปเปโเบกเบนเบโเบเปเบฒเบงโเบชเบฒเบโเปเบเปโเบเบทเบโเบเปเบฒโเปเบเปโ. เปเบกเบเบนเบเบเบฑเบเบเบถเบ 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_LOG_LEVEL_INFO เปเบเบเบเปเปเบเบงเบฒเบกเบเบตเปเปเบซเปเปเบงเป LOG_LEVEL_INFONS เบเบฐเบฅเบงเบกเปเบเบดเบ WANS_DENS. LOG_ERROR.
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบซเปเบกเบฒเปเบเบฃเบเบฒเบเบเบฑเบเบเบถเบเปเบเบเบเปเปเบกเบตเปเบเบทเปเบญเบเปเบเบเบตเปเบชเบฐเปเบเบเบขเบนเปเบชเบฐเปเปเบต, เปเบเบเบเปเปเบเปเบฒเบเบถเบเปเบเบดเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบฑเบเปเบกเป เบซเบผเบท เบญเบปเบเบเบฐเบเบญเบเบเบฒเบเบเบฑเบเปเบฅเบทเบญเบ.
- NS_LOG_UNCOND - เบเบฒเบเบเบฑเบเบเบถเบเบเปเปเบเบงเบฒเบกเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบตเปเบเปเปเบกเบตเปเบเบทเปเบญเบเปเบ (เบเปเปเบกเบตเบฅเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบถเบเบเบตเปเบเปเบฝเบงเบเปเบญเบ).
เปเบเปเบฅเบฐเบเบฑเปเบเบชเบฒเบกเบฒเบเบชเบญเบเบเบฒเบกเปเบเบฑเบเบชเปเบงเบเบเบธเบเบเบปเบเบซเบผเบทเบชเบฐเบชเบปเบก. เบเบฒเบเบเบฑเบเบเบถเบเบชเบฒเบกเบฒเบเบเบทเบเบเบฑเปเบเบเปเบฒเปเบเบเปเบเปเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก sh NS_LOG เบซเบผเบทเปเบเบเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบเบฒเบเปเบเบเบฑเบเบเบฑเบ. เบเบฑเปเบเบเบตเปเบชเบฐเปเบเบเบเปเบญเบเบซเบเปเบฒเบเบตเป, เบฅเบฐเบเบปเบเบเบฑเบเบเบถเบเบเปเปเบกเบนเบเบกเบตเปเบญเบเบฐเบชเบฒเบ Doxygen เปเบฅเบฐเปเบเบเบฑเบเบเบธเบเบฑเบเปเบกเปเบเปเบงเบฅเบฒเบเบตเปเบเบตเบเบตเปเบเบฐเบเบปเบเบเบงเบเบเบทเบเบกเบฑเบเบเปเบฒเบเปเบฒเบเบเบฑเบเบเปเปเบเบฑเบเปเบเป.
เบเบญเบเบเบตเปเปเบเบปเปเบฒเปเบเปเบญเปเบฒเบเปเบญเบเบฐเบชเบฒเบเบขเปเบฒเบเบฅเบฐเบญเบฝเบเปเบฅเปเบง, เปเบซเปเปเบฎเบปเบฒเปเบเปเบเบงเบฒเบกเบฎเบนเปเบเบฑเปเบเปเบเบทเปเบญเปเบซเปเปเบเปเบเปเปเบกเบนเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบเบฒเบเบเบปเบงเบขเปเบฒเบเบเบปเบงเบขเปเบฒเบ. scratch/myfirst.ccเบเบตเปเปเบเบปเปเบฒเปเบเปเบฅเบงเบเบฅเบงเบกเปเบฅเปเบง.
5.1.2 เปเบเบตเบเปเบเปเบเบฒเบเบเบฑเบเบเบถเบ
เปเบซเปเปเบเปเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก NS_LOG เปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเบเบเบถเบเปเบเบตเปเบกเปเบเบตเบก, เปเบเปเบเปเบฒเบญเบดเบ, เบเบฝเบเปเบเปเปเบเบทเปเบญเปเบซเปเปเบเป bearings เบเบญเบเบเปเบฒเบ, เบเปเบฒเปเบเบตเบเบเบฒเบ script เบชเบธเบเบเปเบฒเบเบเบฑเปเบเบเบตเปเบเปเบฒเบเปเบเปเปเบฎเบฑเบเบเปเบญเบเบซเบเปเบฒเบเบตเป,
$ ./waf --run scratch/myfirst
เบเปเบฒเบเบเบงเบเปเบเบดเปเบเบเบปเบเบเบฐเบฅเบดเบเบเบตเปเบเบธเปเบเปเบเบตเบเบเบฒเบเปเบเบเบเบฒเบเบเบปเบงเบขเปเบฒเบ ns-3 เบเปเบฒเบญเบดเบ
$ Waf: Entering directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: Leaving directory `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build' 'build'
finished successfully (0.413s)
Sent 1024 bytes to 10.1.1.2
Received 1024 bytes from 10.1.1.1
Received 1024 bytes from 10.1.1.2
เบกเบฑเบเบเบฐเบเบปเบเบงเปเบฒเบเปเปเบเบงเบฒเบก "เบชเบปเปเบ" เปเบฅเบฐ "เปเบเปเบฎเบฑเบ" เบเบตเปเบเปเบฒเบเปเบซเบฑเบเบเปเบฒเบเปเบเบดเบเปเบกเปเบเบเปเปเบเบงเบฒเบกเบเบตเปเบเบทเบเบเบฑเบเบเบถเบเบเบฒเบ. UdpEchoClientApplication ะธ UdpEchoServerApplication. เบเบปเบงเบขเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเปเบซเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบฅเบนเบเบเปเบฒเบเบดเบกเบเปเปเบกเบนเบเปเบเบตเปเบกเปเบเบตเบกเปเบเปเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบฅเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบถเบเบเบญเบเบกเบฑเบเบเปเบฒเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก NS_LOG.
เบเบฒเบเบเบตเปเปเบ, เบเปเบญเบเบเบฐเบชเบปเบกเบกเบธเบเบงเปเบฒเปเบเบปเปเบฒเบเปเบฒเบฅเบฑเบเปเบเป sh-like shell เบเบตเปเปเบเป syntax "VARIABLE=value". เบเปเบฒเบเปเบฒเบเบเปเบฒเบฅเบฑเบเปเบเป shell เบเปเบฒเบเบเบท csh, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบเบฐเบเปเบญเบเบเปเบฝเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเปเบญเบเปเบเบฑเบ "setenv variable value" syntax เบเบตเปเบเปเบญเบเบเบฒเบเปเบเบ shells เปเบซเบผเบปเปเบฒเบเบฑเปเบ.
เปเบเบเบฑเบเบเบธเบเบฑเบ, เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบฅเบนเบเบเปเบฒ UDP echo เบเบญเบเบชเบฐเบซเบเบญเบเบเบฑเบเปเบชเบฑเปเบเบเปเปเปเบเบเบตเปเบเบญเบเบฅเบฐเบซเบฑเบเปเบ scratch/myfirst.cc,
LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
เบกเบฑเบเปเบเบตเบเปเบเปเบฅเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบถเบ LOG_LEVEL_INFO. เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบเบธเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบฑเบเปเบกเป, เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเบตเบเปเบเปเบฅเบฐเบเบฑเบเบเบฑเปเบ เปเบฅเบฐเบฅเบฐเบเบฑเบเบเปเปเบฒเบเบฑเบเปเบปเบ. เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบตเบเปเบเป NS_LOG_INFO, NS_LOG_DEBUG, NS_LOG_WARN เปเบฅเบฐ NS_LOG_ERROR. เบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเปเบเบตเปเบกโเบฅเบฐโเบเบฑเบโเบเบฒเบโเบเบฑเบโเบเบถเบโเปเบฅเบฐโเปเบเปโเบฎเบฑเบโเบเปเปโเบกเบนเบโเปเบเบตเปเบกโเปเบเบตเบกโ, เปเบเบโเบเปเปโเบกเบตโเบเบฒเบโเบเปเบฝเบโเปเบเบโเบชเบฐโเบเบดเบโเปเบฅเบฐโเบเบฒเบโเบฅเบงเบเบฅเบงเบกโเบเบทเบโเปเบซเบกเปโ, เปเบเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบชเบฐโเบเบฒเบโเปเบงเบโเบฅเปเบญเบก NS_LOG เปเบเบฑเบโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
$ export NS_LOG=UdpEchoClientApplication=level_all
เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบเบเบปเบงเปเบ sh shell 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โ. เบกเบฑเบเบชเบฐเปเบเบเบเบธเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเปเบญเบตเปเบเบเบฑเบเบเบฑเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ script. เบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบ, เปเบเบงเบดเบเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบซเบเปเบฒเบเบตเปเบกเบฑเบเบกเบฑเบเปเบเป (เบขเปเบฒเบเบซเบเปเบญเบ)NS_LOG_FUNCTION (this)
... เปเบเป NS_LOG_FUNCTION_NOARGS ()
เบเบฝเบเปเบเปเบขเบนเปเปเบเบซเบเปเบฒเบเบตเป static. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบฅเบฐเบเบปเบ ns-3 เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเปเบฒเบเบฒเบเบเบญเบเบเบฒเบเบเบฑเบเบเบถเบเปเบเป. เบเบฒเบเบเบฑเบเบชเบดเบเปเบเบเปเบฝเบงเบเบฑเบเบเปเปเบกเบนเบเบซเบผเบฒเบเบเบฒเบเปเบเบเบตเปเบเบทเบเบเบฑเบเบเบถเบเปเบงเปเปเบกเปเบเบเปเบญเบเปเบซเปเบเบนเปเบเบฑเบเบเบฐเบเบฒเบเบปเบงเปเบเบเปเบเปเบฅเบฐเบเบปเบ. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ echo, เบเปเบฒเบเบงเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบญเบเบเบปเบเบเบฐเบฅเบดเบเบเบฑเบเบเบถเบเบชเบฒเบกเบฒเบเปเบเปเปเบเป.
เบเบฝเบงเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบเบฑเบเบเบถเบเบเบฒเบเปเบเบเบฑเบเบเบฑเบเบเบตเปเปเบฎเบฑเบเปเบเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ. เบเปเบฒเบเปเบฒเบเปเบเบดเปเบเบขเปเบฒเบเปเบเปเบเบดเบ, เบเปเบฒเบเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบเปเปเบฒเบชเบญเบเปเบกเบฑเบเบฅเบฐเบซเบงเปเบฒเบเปเบชเบฑเปเบ UdpEchoClientApplication เปเบฅเบฐเบเบทเปเบเบญเบเบงเบดเบเบตเบเบฒเบ, เบเปเบญเบเบเบตเปเบเปเบฒเบเบญเบฒเบเบเบฐเบเบฒเบเบซเบงเบฑเบเบงเปเบฒเบเบฐเปเบซเบฑเบ C++ scope operator (: :). เบเบตเปเปเบกเปเบเบเบงเบฒเบกเบเบฑเปเบเปเบ.
เบเบตเปเบเปเปเปเบกเปเบเบเบทเปเบเบญเบเบซเปเบญเบเบฎเบฝเบ, เปเบเปเปเบเบฑเบเบเบทเปเบเบญเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบเบเบฒเบเบเบฑเบเปเบกเป. เปเบกเบทเปเบญเบกเบตเบเบฒเบเบเบฑเบเบเบนเปเบฅเบฐเบซเบงเปเบฒเบเปเบเบฅเปเบเบปเปเบเบชเบฐเบเบฑเบเปเบฅเบฐเบซเปเบญเบเบฎเบฝเบ, เบกเบฑเบเบกเบฑเบเบเบฐเปเบเบฑเบเบเบทเปเบเบญเบเบเบฑเปเบ, เปเบเปเบเปเบฒเบเบเบงเบเบฎเบนเปเบงเปเบฒเบกเบฑเบเบเปเปเปเบกเปเบเบเบทเปเบเบญเบเบเบฑเปเบ, เปเบฅเบฐเบกเบตเบเปเปเบฒเบชเบญเบเปเบกเบฑเบเบเบฝเบงเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเปเปเบฒเบชเบญเบเปเบกเบฑเบ. เบเบตเปเปเบกเปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเปเบเบเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบเบเบทเปเบซเบกเบฒเบเบเบปเปเบงเบเบฒเบเบเบฒเบเบเบฑเบเปเบกเปเบเบทเปเปเบเปเบเบเบเบตเปเบเปเบญเบเบเปเบฒเบเบญเปเบญเบเปเบเบ.
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เปเบเบเบฒเบเบเปเบฅเบฐเบเบต, เบกเบฑเบเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบเบปเบงเบเบดเบเปเบกเปเบเบเบฒเบเบชเปเบฒเบเบเปเปเบเบงเบฒเบกเบเบฑเบเบเบถเบ. เบเปเบฒเปเบเบดเปเบเบเปเปเบเบงเบฒเบกเบเปเบฒเบเปเบเบดเบ, เปเบเบปเปเบฒเบญเบฒเบเบเบฐเบชเบปเบเปเบชเบงเปเบฒเปเบเบงเบเบฑเปเบเบขเบนเปเปเบชโ.Received 1024 bytes from 10.1.1.2
" เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเปเบเปเปเบเบเบเบฒเบเบเปเบฒเบเบปเบเบฅเบฐเบเบฑเบ prefix_func เบเบฑเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก 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()
เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบงเปเบฒเบเปเปเบเบงเบฒเบกเบเบฑเบเบซเบกเบปเบเบเบตเปเบกเบฒเบเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบฅเบนเบเบเปเบฒ UDP echo เบเบทเบเบฅเบฐเบเบธเปเบงเปเปเบเบฑเปเบเบเบฑเปเบ. เบเปเปเบเบงเบฒเบก "Received 1024 bytes from 10.1.1.2
"เบเบฐเบเบธเบเบฑเบเปเบเปเบเบทเบเบเปเบฒเบเบปเบเบขเปเบฒเบเบเบฑเบเปเบเบเบงเปเบฒเบกเบฒเบเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบฅเบนเบเบเปเบฒ echo. เบเปเปเบเบงเบฒเบกเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบเบฐเบเปเบญเบเบกเบฒเบเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ UDP echo. เบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเปเบเบตเบโเปเบเปโเบเบฒเบโเบญเบปเบโเบเบฐโเบเบญเบโเบเบตเปโเปเบเบโเบเบฒเบโเปเบชเปโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโเบเบตเปโเปเบเบโเบเปเปเบฒโเบชเบญเบโเปเบกเบฑเบโเบเบญเบโเบญเบปเบโเบเบฐโเบเบญเบโเปเบโเบเบปเบงโเบเปเบฝเบโเบชเบฐโเบเบฒเบโเปเบงเบโเบฅเปเบญเบก NS_LOGโ.
$ export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func:
UdpEchoServerApplication=level_all|prefix_func'
เบเปเบฒเปเบเบทเบญเบ: เปเบเบเปเปเบเบงเบฒเบกเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเปเบเบดเบ, เบเปเบฒเบเบเบฐเบเปเบญเบเปเบญเบปเบฒเบเบปเบงเบญเบฑเบเบชเบญเบเปเบชเบฑเปเบเปเบซเบกเปเบซเบผเบฑเบเบเบฒเบเบเปเปเบฒเบชเบญเบเปเบกเบฑเบ (:), เบกเบฑเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฑเบเบฎเบนเบเปเบเบเปเบญเบเบฐเบชเบฒเบ. เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบชเบฐเบเบดเบ, เบเปเบฒเบเบเบฐเปเบซเบฑเบเบเปเปเบเบงเบฒเบกเบเบฑเบเบเบถเบเบเบฑเบเบซเบกเบปเบเบเบฒเบเบฅเบนเบเบเปเบฒเปเบฅเบฐเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ echo. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบงเปเบฒเบเบตเปเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฐเปเบซเบเบเบซเบผเบฒเบเปเบเปเบงเบฅเบฒเบเบตเป debugging.
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 bit prefix_time:
$ export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func|prefix_time: UdpEchoServerApplication=level_all|prefix_func|prefix_time'
เบญเบตเบเปเบเบทเปเบญ เปเบถเปเบ, เบเปเบฒเบเบเบฐเบเปเบญเบเปเบญเบปเบฒเบเบปเบงเบญเบฑเบเบชเบญเบเปเบชเบฑเปเบเปเปเปเบเปเบฒเบเปเบเบดเบเบญเบญเบ. เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเบฒเบโเปเบโเบเบฑเบโเบเบธโเบเบฑเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบ script เบเบตเปโเบเปเบฒเบโเบเบงเบโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบปเบโเปเบเปโเบฎเบฑเบโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
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()
เบเบทเปเปเบเปเบงเปเบฒ script scratch/first.cc เปเบฅเบตเปเบกเบเบปเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบตเบเปเบงเบต echo เบซเบเบถเปเบเบงเบดเบเบฒเบเบตเบเปเบญเบเบเบตเปเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบเบฒเบเบเปเบฒเบฅเบญเบ. เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบ เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฅเบตเปเบกเบเบปเปเบ เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบกเปเบเปเบญเบตเปเบเบงเปเบฒเบเบปเบงเบเบดเบเปเบเบงเบดเบเบฒเบเบตเบเปเบฒเบญเบดเบ. เบเปเบฒเบเบญเบฒเบเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเปเบฒเบฅเบนเบเบเปเบฒ echo เปเบฅเบตเปเบกเบเบปเปเบเปเบเบงเบดเบเบฒเบเบตเบเบตเบชเบญเบเบเบญเบเบเบฒเบเบเปเบฒเบฅเบญเบ, เบเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฒเบกเปเบเบชเบฐเบเบดเบ.
เบเบฝเบงเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบกเบเบงเบฒเบกเบเบทเบเปเปเบฒเบเบญเบเบเบฒเบเบเบณเบฅเบญเบเปเบเบเบฒเบเปเบ เบเบฒเบเบชเบปเปเบเบเปเปเบเบฒเบเบฐเบฅเบฒเบ เปเบเบฅเบนเบเบเปเบฒเบเบตเปเปเบเบซเบฒ HandleRead callback Send เปเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบตเบเปเบงเบต echo. เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเปเบเปเบเบทเปเบญเบชเบปเปเบเปเบเบฑเบเปเบเบฑเบเบเปเบฒเบเบเบธเบเปเบเบทเปเบญเบกเบเปเปเบเบธเบเปเบกเปเบ 3,69 เบกเบดเบเบฅเบดเบงเบดเบเบฒเบเบต. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบงเปเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ echo เบเบฑเบเบเบถเบเบเปเปเบเบงเบฒเบกเบเบตเปเบกเบฑเบเบเบญเบเบชเบฐเบซเบเบญเบเบเบฑเบเปเบเบฑเบเปเบเบฑเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบฑเบเบเปเบฒเบเบญเบเบเปเบญเบเบเบฒเบ, เบเปเบฒเบเปเบซเบฑเบเบงเปเบฒเบฅเบนเบเบเปเบฒ echo เปเบเปเบฎเบฑเบเปเบเบฑเบเปเบเบฑเบเปเบเบฑเบเปเบเบฑเบเปเบเบงเบดเบเบตเบเบฒเบ HandleRead เบเบญเบเบกเบฑเบ.
เปเบเบเบฒเบเบเปเบฒเบฅเบญเบเบเบตเป, เบกเบตเบซเบผเบฒเบเปเบเบตเบเบเบถเปเบเปเบเบเบเบตเปเบเปเบฒเบเบเปเปเบชเบฑเบเปเบเบเปเบซเบฑเบ. เปเบเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบกเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบเปเบเบเบเบฒเบเปเบเบตเบเปเบเปเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบเบถเบเบเบฑเบเบซเบกเบปเบเปเบเบฅเบฐเบเบปเบ. เบฅเบญเบเบเบฑเปเบเบเบปเบงเปเบ NS_LOG เปเบเบฑเบเบเปเบฒเบเปเปเปเบเบเบตเป,
$ export 'NS_LOG=*=level_all|prefix_func|prefix_time'
เปเบเบทเปเบญเบเปเบฒเบเบเบฒเบงเบเปเบฒเบเปเบเบดเบเปเบกเปเบเบเบปเบงเปเบฑเบเบชเบทเปเบเบเบเบตเปเบชเบณเบฅเบฑเบเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบเบถเบ. เบเบตเปเบเบฐเบฅเบงเบกเปเบญเบปเบฒเบฅเบฒเบเบเบฒเบเบเบฑเบเปเบปเบเปเบเบเบธเบเบญเบปเบเบเบฐเบเบญเบเบเบตเปเปเบเปเปเบเบเบฒเบเบเปเบฒเบฅเบญเบ. เบเปเบญเบเบเบฐเบเปเปเบเบฐเบฅเบดเบเบเบทเบเบเบปเบเบเบฐเบฅเบดเบเบขเบนเปเบเบตเปเบเบตเป (เปเบเปเบงเบฅเบฒเบเบฝเบเบกเบฑเบเบเบฐเบฅเบดเบ 1265 เปเบชเบฑเปเบเบเบปเบเบเบฐเบฅเบดเบเบชเปเบฒเบฅเบฑเบเปเบเบฑเบเปเบเบฑเบเปเบญเบฑเบเปเบเปเบเบฝเบง), เปเบเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบญเบเบเปเปเบกเบนเบเบเบตเปเปเบเบซเบฒเปเบเบฅเปเปเบฅเบฐเปเบเบดเปเบเปเบเบเบฑเบเบเบฒเบเบดเบเบฒเบเบเบตเปเบเปเบฒเบเบกเบฑเบ.
$ ./waf --run scratch/myfirst > log.out 2>&1
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบชเปเบงเบเบเบธเบเบเบปเบเปเบเปเบเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบชเบฐเบเบฑเบ verbose เบเบตเปเบชเบธเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบกเบตเบเบฑเบเบซเบฒเปเบฅเบฐเบเปเปเบฎเบนเปเบงเปเบฒเบชเบดเปเบเบเบตเปเบเบดเบเบเบฒเบ. เบเปเบญเบเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบฒเบเบเบฐเบเบดเบเบฑเบเบฅเบฐเบซเบฑเบเบเปเบญเบเบเปเบฒเบเบเปเบฒเบเบเบฒเบเปเบเบเบเปเปเบกเบตเบเบฒเบเบเปเบฒเบเบปเบเบเบธเบเบขเบธเบเปเบฅเบฐเบเปเบฒเบงเบเปเบฒเบเบฅเบฐเบซเบฑเบเปเบ debugger. เบเปเบญเบเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบเปเบเปเปเบเบเบปเบเปเบเปเบฎเบฑเบเปเบเบเบฑเบเบเบฒเบเบดเบเบฒเบเบเบตเปเบเปเบญเบเบกเบฑเบเปเบฅเบฐเบเบญเบเบซเบฒเบชเบดเปเบเบเบตเปเบเปเบญเบเบเบฒเบเบซเบงเบฑเบเปเบฅเบฐเปเบซเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเปเบญเบเบเปเปเบเบฒเบเบเบดเบ. เปเบกเบทเปเบญเบเปเบญเบเบกเบตเบเบงเบฒเบกเบเบดเบเบเบปเปเบงเปเบเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเบตเปเบเบดเบเบเบฒเบ, เบเปเบญเบเบเบฐเปเบเบเปเบเบปเปเบฒเปเบเปเบ debugger เปเบเบทเปเบญเปเบเบฒเบฐเบฅเบปเบเปเบเบเบฑเบเบซเบฒ. เบเบฐเปเบเบเบเบญเบเบเบปเบเบเบฐเบฅเบดเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฐเปเบซเบเบเปเบเบเบชเบฐเปเบเบฒเบฐเปเบเปเบงเบฅเบฒเบเบตเปเบชเบฐเบเบดเบเบเบญเบเบเปเบฒเบเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเบเปเปเบเบฒเบเบเบดเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ. เบเปเบฒเบเปเบฒเบเบเบฝเบเปเบเปเปเบเป debugger, เบเปเบฒเบเบญเบฒเบเบเบฐเบเบฒเบเบเบฒเบเบเบดเบเบเบฑเบเบซเบกเบปเบ. เบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเปเบฝเบเบเบฑเปเบเบเปเบฒเบงเปเบซเบฑเบเปเบเปเบเบฑเบเปเบเบ.
5.1.3 เบเบฒเบเปเบเบตเปเบกเบเบฑเบเบเบถเบเปเบชเปเบฅเบฐเบซเบฑเบเบเบญเบเบเปเบฒเบ
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบฅเบฒเบเบเบฒเบเปเบซเบกเปเปเบชเปเบเบฒเบเบเปเบฒเบฅเบญเบเบเบญเบเบเปเบฒเบเปเบเบเบเบฒเบเปเบเบซเบฒเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบเบถเบเบเบฒเบเบซเบผเบฒเบเบกเบฐเบซเบฒเบเบฒเบ. เปเบซเปเปเบฎเบฑเบเบกเบฑเบเบขเบนเปเปเบ script myfirst.cc, เบเบตเปเบเบงเบเปเบฎเบปเบฒเบกเบตเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต "เบชเบฐเบญเบฒเบ". เบเบทเปเปเบงเปเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเปเบเปเบเปเบฒเบเบปเบเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบเบถเบเปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเป:
NS_LOG_COMPONENT_DEFINE ("FirstScriptExample");
เบเปเบฒเบเบฎเบนเปเบงเปเบฒเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเบเปเบเปเบเบฒเบเบเบฑเบเบเบถเบเบเปเปเบเบงเบฒเบกเบเบฑเบเปเบปเบเบเบฒเบเบญเบปเบเบเบฐเบเบญเบเบเบตเปเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก NS_LOG เปเบเบฅเบฐเบเบฑเบเบเปเบฒเบเป. เบชเบทเบเบเปเปเปเบเบตเบเบซเบเปเบฒเปเบฅเบฐเปเบเบตเปเบกเบเบฒเบเบฅเบฒเบเบเบฒเบเปเบชเปเบชเบฐเบเบดเบ. เบกเบฐเบซเบฒเบเบฒเบเบเบตเปเปเบเปเปเบเบทเปเบญเปเบเบตเปเบกเบเปเปเบเบงเบฒเบกเบฅเบฐเบเบฑเบเบเปเปเบกเบนเบเปเบชเปเบเบฑเบเบเบถเบเปเบกเปเบ NS_LOG_INFO. เปเบซเปเปเบเบตเปเบกเบเปเปเบเบงเบฒเบก (เบเบฝเบเปเบเปเบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเบชเปเบฒเบ nodes) เบเบตเปเบเบญเบเบเปเบฒเบเบงเปเบฒเบชเบฐเบเบดเบเปเบกเปเบเบขเบนเปเปเบเปเบฅเบเบฐ "เบเบฒเบเบชเปเบฒเบ Topology". เบเบตเปเปเบกเปเบเปเบฎเบฑเบเปเบเปเปเบ snippet เบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเป,
เปเบเบตเบเบเบถเปเบ scratch/myfirst.cc เปเบเบเบฑเบเบเบฒเบเบดเบเบฒเบเบเบตเปเบเปเบฒเบเบกเบฑเบเปเบฅเบฐเปเบเบตเปเบกเบชเบฒเบ,
NS_LOG_INFO ("Creating Topology");
เบเปเบญเบเบเบตเปเบเบฐเบชเบฒเบ,
NodeContainer nodes;
nodes.Create (2);
เปเบเบเบฑเบเบเบธเบเบฑเบเบฅเบงเบเบฅเบงเบกเบชเบฐเบเบดเบเปเบเบเปเบเป waf, เปเบฅเบฐเบฅเบถเบเบเบปเบงเปเบ NS_LOG เปเบเบทเปเบญเบเบดเบเบเบฒเบเปเบเปเบเบฒเบเบเบฒเบเบชเบฐเบเบฃเบตเบกเบเบฑเบเบเบถเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเบตเบเปเบเปเบเปเบญเบเปเปเบฒเบเบตเป:
$ ./waf
$ export NS_LOG=
ะขะตะฟะตัั, ะตัะปะธ ะฒั ะทะฐะฟัััะธัะต ัะบัะธะฟั,
$ ./waf --run scratch/myfirst
เบเปเบฒเบเบเบฐเบเปเปเปเบซเบฑเบเบเปเปเบเบงเบฒเบกเปเบซเบกเปเปเบเบฒเบฐเบงเปเบฒเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบเบถเบเบเบตเปเบเปเบฝเบงเบเปเบญเบ (FirstScriptExample) เบเบฑเบเบเปเปเปเบเปเบเบทเบเปเบเบตเบเปเบเป. เปเบเบทเปเบญเปเบเบดเปเบเบเปเปเบเบงเบฒเบกเบเบญเบเบเปเบฒเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเบเปเบเปเบญเบปเบเบเบฐเบเบญเบเบเบฑเบเบเบถเบ FirstScript เบเบปเบงเบขเปเบฒเบ เบเบตเปเบกเบตเบฅเบฐเบเบฑเบเบเปเปเบเปเปเบฒเบเบงเปเบฒ NS_LOG_INFO. เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเบดเปเบเบฅเบฐเบเบฑเบเบเบฒเบเบเบฑเบเบเบถเบเบชเบฐเปเบเบฒเบฐเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเบเปเบเปเบกเบฑเบเปเบเบฑเปเบเบเบตเป,
$ export NS_LOG=FirstScriptExample=info
เบเปเบฒเบเปเบฒเบเปเบฅเปเบเบชเบฐเบเบฃเบดเบเบเบฝเบงเบเบตเป, เบเปเบฒเบเบเบฐเปเบซเบฑเบเบเปเปเบเบงเบฒเบกเปเบซเบกเป "เบเบฒเบเบชเปเบฒเบ Topology",
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 scripts เปเบเบเบเปเปเบกเบตเบเบฒเบเบเบฑเบเปเบเปเบซเบผเบทเบเบฒเบเบเปเปเบชเปเบฒเบเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเปเบเปเบเบฝเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ. เบเบงเบเปเบฎเบปเบฒเบชเบฐเบซเบเบญเบเบเบปเบเปเบเบเบฒเบเปเบเบเปเบเบฐเบเบฒเบเปเบเปเบเบฝเบเปเบเบงเบเปเบฒเบชเบฑเปเบเปเบฅเบฐเบเปเบฒเบเบปเบเบเบปเบงเปเบเบเปเบญเบเบเบดเปเบเปเบฅเบฐเบเบปเปเบงเปเบฅเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเบญเบตเบเปเบชเปเบเบปเบเปเบเปเบฎเบฑเบ.
เบเบฑเปเบเบเบญเบเบเปเบฒเบญเบดเบเปเบเบเบฒเบเบเปเบฒเปเบเปเบฅเบฐเบเบปเบเบเบฒเบเปเบเปเบเบฝเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเปเบกเปเบเปเบเบทเปเบญเบเบฐเบเบฒเบเบเบปเบงเปเบเบเปเบเบงเบเปเบฒเบชเบฑเปเบ. เบเบตเปเปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเปเบฒเบเบเบตเปเบเบฐเปเบฎเบฑเบ (เปเบเปเบเบเบเบฒเบเบเบปเปเบเบเปเบเบญเบเบเปเบฒเบ), เปเบเบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเป,
int
main (int argc, char *argv[])
{
...
CommandLine cmd;
cmd.Parse (argc, argv);
...
}
snippet เบชเบญเบเปเบเบงเบเปเบฒเบเบเบฒเบเบเบตเปเปเบกเปเบเบเบปเบงเบเบดเบเปเบฅเปเบงเปเบเบฑเบเบเบฐเปเบซเบเบเบซเบผเบฒเบเปเบเบชเบดเบเบเบดเบเบญเบเบเบปเบเปเบญเบ. เบกเบฑเบเปเบเบตเบเบเบฐเบเบนเบชเบนเป ns-3 global variable and attribute system. เปเบซเปเปเบเบตเปเบกเบฅเบฐเบซเบฑเบเบชเบญเบเปเบเบงเปเบชเปเบเบธเบเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบเบฑเบเบเบฑเบเบชเบฐเบเบฃเบดเบเบซเบผเบฑเบ scratch/myfirst.cc. เบเปเบฒเบงเบเปเปเปเบ, เบเบงเบเปเบฎเบปเบฒเบฅเบงเบเบฅเบงเบกเบชเบฐเบเบดเบเปเบฅเบฐเปเบฅเปเบเบกเบฑเบ, เปเบกเบทเปเบญเปเบฅเปเบเบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเบเบฑเปเบเบเปเปเปเบเบเบตเป,
$ ./waf --run "scratch/myfirst --PrintHelp"
เบเปเบฒเบชเบฑเปเบเบเบตเปเบเบฐเบเบฒเบก Waf เปเบฅเปเบเบชเบฐเบเบฃเบดเบ scratch/myfirst เปเบฅเบฐเบเปเบฒเบเบกเบฑเบเปเบเบฑเบเบเบฒเบเปเบเปเบเบฝเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ - เบเบฒเบโเบเปเบงเบโเปเบซเบผเบทเบญโเบเบฒเบโเบเบดเบกโ. เปเบเบทเปเบญเบเปเบฒเบเบงเบปเบเบขเบทเบกเปเบกเปเบเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเบเบตเปเบเบญเบเบงเปเบฒเปเบเบเบเบฒเบเปเบเบเบตเปเบเบฒเบเปเบเปเบเบฝเบเบกเบตเบเบธเบเบเบฐเบชเบปเบ. parser เปเบเบงเบเปเบฒเบชเบฑเปเบเบเบฐเบเบงเบเบเบปเบเบเบฒเบเปเบเปเบเบฝเบ - เบเบฒเบโเบเปเบงเบโเปเบซเบผเบทเบญโเบเบฒเบโเบเบดเบกโ เปเบฅเบฐโเบเบฐโเบชเบฐโเปเบเบโเบเปเบฒโเบเบญเบโ,
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.
เปเบเบเบฑเบเบเบธเบเบฑเบเปเบซเปเปเบเบดเปเบเบขเบนเปเปเบเบเบฒเบเปเบฅเบทเบญเบ - เบเบธเบโเบฅเบฑเบโเบชเบฐโเบเบฐโเบเบฒเบโเบเบดเบกโ. เบเบงเบเปเบฎเบปเบฒเปเบเปเบเปเบฒเบงเปเบเบดเบเบฅเบฐเบเบปเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ ns-3 เปเบฅเปเบงเปเบกเบทเปเบญเบชเบถเบเบชเบฒ script first.cc. เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบซเบฑเบเบชเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเป,
PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));
pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));
เปเบฅเบฐเบเบงเบเปเบเบปเบฒเปเบงเบปเปเบฒเบงเปเบฒ เบญเบฑเบเบเบฒเบเปเปเบกเบนเบ เบเบปเบงเบเบดเบเปเบฅเปเบงเปเบกเปเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ PointToPointNetDevice. เปเบซเปเปเบเปเบเบปเบงเปเบเบ argument เปเบเบงเบเปเบฒเบชเบฑเปเบเปเบเบทเปเบญเปเบเบดเปเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ PointToPointNetDevice. เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเปเบงเบปเปเบฒเบงเปเบฒเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบชเบฐเบซเบเบญเบ TypeId. เบเบตเปเปเบกเปเบเบเบทเปเบเบญเบเบเบฑเปเบเบฎเบฝเบเบเบตเปเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบเบงเบฒเบกเบชเบปเบเปเบ. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒเบกเบฑเบเบเบฐเปเบเบฑเบ ns3::PointToPointNetDevice. เบเปเปเบซเปเบเปเบฒเบงเปเบเบเปเบฒเบเบซเบเปเบฒ, เปเบเบปเปเบฒ,
$ ./waf --run "scratch/myfirst --PrintAttributes=ns3::PointToPointNetDevice"
เบฅเบฐเบเบปเบเบเบฐเบเบดเบกเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบฑเบเปเบปเบเบเบญเบเบเบฐเปเบเบเบญเบธเบเบฐเบเบญเบเปเบเบทเบญเบเปเบฒเบเบเบตเป. เบเปเบฒเบโเบเบฐโเปเบซเบฑเบโเบงเปเบฒโเปเบโเบเบฑเบโเบเบฒโเบเบธเบโเบฅเบฑเบโเบชเบฐโเบเบฐโเปเบโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโเปเบกเปเบโ,
--ns3::PointToPointNetDevice::DataRate=[32768bps]:
The default data rate for point to point links
เบเบตเปเปเบกเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเบเบฐเปเบเปเปเบเบเบฅเบฐเบเบปเบเปเบเปเบงเบฅเบฒเบชเปเบฒเบเบงเบฑเบเบเบธ PointToPointNetDevice. เบเบงเบเปเบฎเบปเบฒเบเบฐ override เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบตเปเปเบเบเปเบเปเบเบฒเบฅเบฒเบกเบดเปเบเบต เบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ ะฒ PointToPointHelper เบชเบนเบเบเบงเปเบฒ. เปเบซเปเปเบเปเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบชเปเบฒเบฅเบฑเบเบญเบธเบเบฐเบเบญเบเบเบธเบเบซเบฒเบเบธเบเปเบฅเบฐเบเปเบญเบเบเบฒเบ. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบฅเบถเบเบเบฒเบเปเบเบญเบญเบ SetDeviceAttribute ะธ SetChannelAttribute เบเบฒเบเบเบฑเปเบ myfirst.cc, เบเบตเปเบเบงเบเปเบฎเบปเบฒเบกเบตเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบชเบฐเบญเบฒเบ.
script เบเบญเบเบเปเบฒเบเบเบงเบเบเบฝเบเปเบเปเบเบฐเบเบฒเบเปเบเบเบฑเบเบเบธเบเบฑเบ PointToPointHelper เปเบฅเบฐเบเปเปเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบดเบเบเบฑเปเบเปเบเปเบเบตเปเบชเบฐเปเบเบเบขเบนเปเปเบเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป,
...
NodeContainer nodes;
nodes.Create (2);
PointToPointHelper pointToPoint;
NetDeviceContainer devices;
devices = pointToPoint.Install (nodes);
...
เบชเบทเบเบเปเปเปเบเบตเบเบซเบเปเบฒเปเบฅเบฐเบชเปเบฒเบ script เปเบซเบกเปเบเบฑเบ Waf (./waff) เปเบฅเบฐเปเบซเปเบเบฑเบเบเบทเบเปเบฅเบฐเบฅเบงเบกเปเบญเบปเบฒเบเบฒเบเบฅเบฒเบเบเบฒเบเบเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบตเบเปเบงเบต UDP echo เปเบฅเบฐเบฅเบงเบกเปเบญเบปเบฒเบเปเบฒเบเปเบฒเบซเบเปเบฒเปเบงเบฅเบฒ.
$ 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()
เบเบทเปเปเบงเปเบงเปเบฒเบเบฑเปเบเบชเบธเบเบเปเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเปเบงเบฅเบฒเบเปเบฒเบฅเบญเบ, เปเบงเบฅเบฒเบเบตเปเปเบเบฑเบเปเบเบฑเบเปเบเปเบฎเบฑเบเปเบเบเปเบเบตเบเปเบงเบต echo, เบกเบฑเบเปเบกเปเบ 2,00369 เบงเบดเบเบฒเบเบต.
2.00369s UdpEchoServerApplication:HandleRead(): Received 1024 bytes from 10.1.1.1
เบเบญเบเบเบตเปเบฅเบฒเบงเปเบเปเบฎเบฑเบเปเบเบฑเบเปเบเบฑเบเปเบ 2.25732 เบงเบดเบเบฒเบเบต. เบเบตเปเปเบกเปเบเบเปเบญเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเบฑเบเบญเบฑเบเบเบฒเบเปเปเบกเบนเบ PointToPointNetDevice เบเบฒเบเบซเปเบฒ megabits เบเปเปเบงเบดเบเบฒเบเบตเปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เปเบเบดเปเบเปเบกเปเบ 32768 bits เบเปเปเบงเบดเบเบฒเบเบต. เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฝเบ DataRate เปเปเป เปเบเบเปเบเปเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฅเบฑเปเบเบเบฒเบเบเปเบฒเบฅเบญเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฎเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป, เบญเบตเบเบเบฒเบกเบชเบนเบ implied เปเบเบเบญเบปเบเบเบฐเบเบญเบเบเปเบงเบเปเบซเบผเบทเบญ:
$ ./waf --run "scratch/myfirst --ns3::PointToPointNetDevice::DataRate=5Mbps"
เบเบตเปเบเบฐเบชเบปเปเบเบเบทเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ DataRate เปเบซเปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบซเปเบฒเปเบกเบเบฒเบเบดเบเบเปเปเบงเบดเบเบฒเบเบต. เปเบเบปเปเบฒเบเบฐเบซเบฅเบฒเบเปเบเบเบฑเบเบเบปเบเปเบเปเบฎเบฑเบเบเป? เบกเบฑเบ turns เปเบซเป เปเบซเบฑเบ เบงเปเบฒ เปเบ เบเปเบฒ เบชเบฑเปเบ เบเบตเป เบเบฐ เบเบฑเบ เบเบทเบ เบเบถเบ เบเบด เบเปเบฒ เบเบปเปเบ เบชเบฐ เบเบฑเบ เบเบญเบ script เปเบเป , เบเบงเบ เปเบฎเบปเบฒ เบเบฑเบ เบเปเบฒ เปเบเบฑเบ เบเปเบญเบ เปเบเป เบเปเบฒ เบเบปเบ เบเบฒเบ เบเบฑเบ เบเปเบฒ เบเบญเบ เบเปเบญเบ เปเบเบทเปเบญ เปเบซเป เบเบฑเบ เบเบงเบฒเบก เปเบง เบเบญเบ เปเบชเบ เปเบเป . เบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเบฎเปเบญเบโเบเปโเปเบซเปโเบฅเบฐโเบเบปเบโเปเบชเบฑเปเบโเบเปเบฒโเบชเบฑเปเบโเปเบเบทเปเบญโเบเบดเบกโเบเบธเบโเบฅเบฑเบโเบชเบฐโเบเบฐโเบเปเบญเบโ, เปเบเบฑเปเบโเบเบฝเบงโเบเบฑเบโเบเบฑเบโเบเบงเบโเปเบฎเบปเบฒโเปเบเปโเปเบฎเบฑเบโเบชเปเบฒโเบฅเบฑเบโเบญเบธโเบเบฐโเบเบญเบโเปเบเบทเบญโเบเปเบฒเบโ:
$ ./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"
เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเปโเบเบงเบโเปเบฎเบปเบฒโเบเบทเปเบโเบเบนโเปเบงโเบฅเบฒโเบเบตเปโเบเบงเบโเปเบฎเบปเบฒโเบกเบตโเปเบโเปเบงโเบฅเบฒโเบเบตเปโเบเบงเบโเปเบฎเบปเบฒโเบเปเบฒโเบเบปเบโเบขเปเบฒเบโเบเบฑเบโเปเบเบ DataRate เปเบฅเบฐโเบเบฒเบโเบเบฑเบโเบเปเบฒโเปเบ script เปเบเปโ:
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.
เปเบเบปเปเบฒเบเบฐเปเบเปเบกเบฑเบเปเบเบงเปเบ? เปเบซเปเบกเบฑเบเบฅเบญเบ. เบเบปเปเบเบเบทเปเปเบงเปเบงเปเบฒเปเบเบปเปเบฒเบเปเบญเบเบชเบฐเปเบเบเบเบงเบฒเบกเบเบดเบเปเบซเบฑเบเบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฒเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒ override เบเปเบฒเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบเปเบฒเบเบปเบเบขเปเบฒเบเบเบฐเปเบเปเบ MaxPackets เปเบ script เปเบเป. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบเปเบญเบเบชเปเบฒเบเบชเบฐเบเบดเบเบเบทเบเปเบซเบกเป. เบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบเปเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเปเบเบทเปเบญเปเบซเปเปเบเปเบฎเบฑเบเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญ syntax เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเบเบปเบเบเปเบฒเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเปเบซเบกเป. เปเบกเบทเปเบญเบเปเบฒเบเปเบเบปเปเบฒเปเบเปเบฅเบทเปเบญเบเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบงเบเบเบธเบกเบเปเบฒเบเบงเบเบเบญเบเบเบธเบเบเบตเปเบชเบฐเปเบเบเบขเบนเปเปเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ. เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเบเบปเบเบเบตเปเบกเบตเบเบงเบฒเบกเบญเบปเบเบเบปเบ, เปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบงเบเบเบฐเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเปเบเบฑเปเบเบเบตเป:
$ ./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" argument เบเปเบฒเบเบเบงเบเปเบเบดเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบธเปเบกเบเบตเปเบฅเบปเบเบเบฐเบเบฝเบเบเบฑเบเบซเบกเบปเบ TypeId. เบเบทเปเบเบธเปเบกเปเบกเปเบเบชเบญเบเบเปเบญเบเบเบฑเบเบเบทเปเบเบญเบเปเบกเบเบนเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเปเบซเบผเปเบ (เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบปเบงเบเบดเบกเปเบซเบเป). เบเบฒเบเบเบดเบกเบเปเปเบกเบนเบเบเบฑเบเปเบปเบเปเบเบเบฑเปเบเบเบฝเบงเบเบฐเบกเบตเบเบงเบฒเบกเบชเบฐเบซเบงเปเบฒเบเปเบเบตเบเปเบ, เบเบฑเปเบเบเบฑเปเบเบกเบตเบเบปเบงเบเบญเบเปเบเบตเปเบกเปเบเบตเบกเปเบเบทเปเบญเบเบดเบกเบเปเปเบกเบนเบเบเบฒเบกเบเบธเปเบก. เบเบฑเปเบเบเบฑเปเบ, เบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเบชเบธเบกเปเบชเปเปเบกเบเบนเบเบเบธเบเบเปเปเบเบธเบ:
./waf --run "scratch/myfirst --PrintGroup=PointToPoint"
TypeIds in group PointToPoint:
ns3::PointToPointChannel
ns3::PointToPointNetDevice
ns3::PointToPointRemoteChannel
ns3::PppHeader
เบเบตเปเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบเบทเป TypeId เบเบตเปเบกเบตเบขเบนเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบญเบเบซเบฒเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ, เบเบปเบงเบขเปเบฒเบเปเบ
--PrintAttributes = ns3 :: PointToPointChannel
เบเบฑเปเบเบเบตเปเบชเบฐเปเบเบเบเปเบฒเบเปเบเบดเบ.
เบญเบตเบเบงเบดเบเบตเปเบถเปเบเปเบเบทเปเบญเบฎเบฝเบเบฎเบนเปเบเปเบฝเบงเบเบฑเบเบเบธเบเบชเบปเบกเบเบฑเบเปเบกเปเบเบเปเบฒเบ Doxygen nsโ3. เบกเบตเบซเบเปเบฒเบเบตเปเบชเบฐเปเบเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบฑเบเบซเบกเบปเบเบเบตเปเบฅเบปเบเบเบฐเบเบฝเบเบขเบนเปเปเบ simulator.
5.2.2 เบเบฒเบเบเบฑเบเบเปเบฒเบชเบฑเปเบเบเบญเบเบเบปเบเปเบญเบ
เบเบญเบเบเบฑเปเบเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบเบตเปเบก hooks เบเบญเบเบเปเบฒเบเปเบญเบเปเบเบเบเปเบฒเบเบฅเบฐเบเบปเบเบเปเบฒเบชเบฑเปเบ. เบเบตเปเปเบกเปเบเปเบฎเบฑเบเปเบเปเบเปเบญเบเบเปเบฒเบเบเปเบฒเบเบเบฒเบเปเบเบเปเบเปเบงเบดเบเบตเบเบฒเบ parser เปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ AddValue.
เปเบซเปเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบตเปเปเบเบทเปเบญเบฅเบฐเบเบธเบเปเบฒเบเบงเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเบฐเบชเบฐเปเบเบเปเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบซเบกเบปเบ. เปเบซเปเปเบเบตเปเบกเบเบปเบงเปเบเบเปเบญเบเบเบดเปเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ nPackets เปเบเบปเปเบฒเปเบเปเบเบซเบเปเบฒเบเบตเป เบเบปเปเบเบเป. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเปเบเบกเบฑเบเปเบเบฑเบเบญเบฑเบเปเบถเปเบเปเบเบทเปเบญเปเบซเปเบเบปเบเบเบฑเบเบเบถเบเบเบดเบเบณเบกเบฒเบเบเบฐเบเบฒเบเบเปเบญเบเปเปเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เปเบเบทเปเบญเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบทเปเบญเบเบงเบดเปเบเบฒเบฐเปเบเบงเบเปเบฒเบชเบฑเปเบเบเปเบฝเบเบเปเบฒเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเปเบเบฑเบเบเปเบฒเบเปเบฒเบเบตเปเบขเบนเปเปเบเบเบปเบงเปเบเบเบงเบดเปเบเบฒเบฐ. เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเบเบเบฒเบเปเบเบตเปเบกเบเบฒเบเปเบ AddValue. เปเบเปเบฅเบฐเบเปเบฝเบเบชเบฐเบเบดเบ scratch/myfirst.cc เบชเบฐเบเบฑเปเบเปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเป,
int
main (int argc, char *argv[])
{
uint32_t nPackets = 1;
CommandLine cmd;
cmd.AddValue("nPackets", "Number of packets to echo", nPackets);
cmd.Parse (argc, argv);
...
เปเบฅเบทเปเบญเบเบฅเบปเบเปเบเบซเบฒเบเบธเบเบเบตเปเบขเบนเปเปเบเบชเบฐเบเบดเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐ MaxPackets เปเบฅเบฐเบเปเบฝเบเบกเบฑเบเปเบเบทเปเบญเปเบซเปเบกเบฑเบเบเบทเบเบเปเบฒเบเบปเบเปเบเบฑเบเบเบปเบงเปเบ nPackets เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเปเบฒเบเบปเบเบเบตเป 1, เบเบฑเปเบเบเบตเปเบชเบฐเปเบเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป.
echoClient.SetAttribute ("MaxPackets", UintegerValue (nPackets));
เบเบญเบเบเบตเปเบเปเบฒเบเปเบฒเบเปเบฅเปเบเบชเบฐเบเบดเบเปเบฅเบฐเบชเบฐเบซเบเบญเบ -PrintHelp argument, เบเปเบฒเบเบเบงเบเปเบซเบฑเบเบเบฒเบเปเบเปเบเบฝเบเบเบนเปเปเบเปเปเบซเบกเป. เบฅเบฐเบเบธเปเบงเปเปเบเบเบฒเบเบชเบฐเปเบเบเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญ. เปเบเบปเปเบฒ,
$ ./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, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบฅเบฐเบเบปเบเบเบฒเบเปเบเปเบเบฝเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเปเบเบทเปเบญเบเบฑเบเบเบฒเบเบกเบนเบเบเปเบฒเปเบฅเบฐเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบปเปเบงเปเบฅเบ. เบเปเบฒเบเปเบฒเบเปเบเบฑเบเบเบนเปเบเบฝเบเปเบเบเบเปเบฒเบฅเบญเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเปเบซเบกเปเปเบซเปเบเบฑเบเบงเบฑเบเบเบธเบเบญเบเบเปเบฒเบเปเบฅเบฐเบเบงเบเบกเบฑเบเบเบฐเบกเบตเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบเบเบนเปเปเบเปเบเบญเบเบเปเบฒเบเปเบเบเบเปเบฒเบเบฅเบฐเบเบปเบเบเปเบฒเบชเบฑเปเบ. เบเปเบฒเบเปเบฒเบเปเบเบฑเบเบเบนเปเบเบฝเบ script, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบปเบงเปเบเปเบซเบกเปเปเบซเปเบเบฑเบเบชเบฐเบเบดเบเบเบญเบเบเปเบฒเบเปเบฅเบฐเบชเบฝเบเบเบงเบเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบเบฅเบฐเบเบปเบเบเปเบฒเบชเบฑเปเบเบเบญเบเบเปเบฒเบเบขเปเบฒเบเบเปเปเบขเบธเบเบขเบฑเปเบ.
5.3 เบเบฒเบเบเปเบฒเปเบเปเบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบก
เบเบธเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบฒเบเบชเปเบฒเบเปเบเบเบเปเบฒเบฅเบญเบเปเบกเปเบเบเบฒเบเบชเปเบฒเบเบเบปเบเบเบฐเบฅเบดเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบถเบเบชเบฒเบเบทเปเบกเบญเบตเบ, เปเบฅเบฐเบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบก ns-3 เปเบกเปเบเบเบปเบเปเบเบเบปเปเบเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป. เปเบเบทเปเบญเบเบเบฒเบ ns-3 เปเบเบฑเบเปเบเบเบเบฒเบ C ++, เบกเบฒเบเบเบฐเบเบฒเบเบงเบดเบเบตเบเบฒเบเบเบฐเบฅเบดเบเบเบปเบเบเบฐเบฅเบดเบเบเบฒเบเปเบเบเบเบฒเบ C ++ เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเป:
#include <iostream>
...
int main ()
{
...
std::cout << "The value of x is " << x << std::endl;
...
}
เบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบเปเปเบกเบเบนเบเบเบฑเบเบเบถเบเปเบเบทเปเบญเปเบเบตเปเบกเปเบเบเบชเปเบฒเบเปเบฅเบฑเบเบเปเบญเบเปเบซเปเบเบฑเบเบเบฒเบเปเบเปเปเบเบเบญเบเบเปเบฒเบ. เบกเบตเบเบฑเบเบซเบฒเบเบตเปเบฎเบนเปเบเบฑเบเบซเบผเบฒเบเบขเปเบฒเบเบเบตเปเปเบเบตเบเบเบฒเบเบงเบดเบเบตเบเบฒเบเบเบตเป, เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบชเบฐเบซเบเบญเบเบฅเบฐเบเบปเบเบเปเบญเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบซเบเบเบฒเบเบเบปเปเบงเปเบเปเบเบทเปเบญเปเบเปเปเบเบเบฑเบเบซเบฒเปเบซเบผเบปเปเบฒเบเบตเป.
เปเบเบปเปเบฒเบซเบกเบฒเบเบเบปเปเบเบเปเบเบญเบเบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบก ns-3 เปเบกเปเบ:
-
เบชเปเบฒเบฅเบฑเบเบงเบฝเบเบเบฒเบเบเบทเปเบเบเบฒเบ, เบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบงเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบนเปเปเบเปเบชเปเบฒเบเบเบฒเบเบเบดเบเบเบฒเบกเบกเบฒเบเบเบฐเบเบฒเบเบชเปเบฒเบฅเบฑเบเปเบซเบผเปเบเบเบตเปเบเบดเบเบปเบกเปเบฅเบฐเปเบฅเบทเบญเบเบงเบฑเบเบเบธเบเบตเปเบชเปเบฒเบเบเบฒเบเบเบดเบเบเบฒเบก;
-
เบเบนเปเปเบเปเบฅเบฐเบเบฑเบเบเบฒเบเบเบฒเบเบเบงเบเบเบฐเบชเบฒเบกเบฒเบเบเบฐเบซเบเบฒเบเบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบเบทเปเบญเบเปเบฝเบเบฎเบนเบเปเบเบเบเบปเบเบเบฐเบฅเบดเบเบเบตเปเบเบฐเบฅเบดเบเบซเบผเบทเปเบชเปเปเบซเบผเปเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบซเบกเป, เปเบเบเบเปเปเบกเบตเบเบฒเบเบเบฑเบเปเบเบเบซเบผเบฑเบ simulator;
-
เบเบนเปเปเบเปเบเบฑเปเบเบชเบนเบเบชเบฒเบกเบฒเบเบเบฑเบเปเบเบเบซเบผเบฑเบ simulator เปเบเบทเปเบญเปเบเบตเปเบกเปเบซเบผเปเบเบเบดเบเบเบฒเบกเปเบซเบกเปเปเบฅเบฐเบเปเบญเบเบซเบฅเบปเปเบกเบเบปเบก. เบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบก ns-3 เบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบเบซเบผเบฑเบเบเบฒเบเบเบญเบเปเบซเบผเปเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบญเบเบฐเบฅเบฒเบเปเบฅเบฐเบเบนเปเบฎเบฑเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบปเบเปเบเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบเบฒเบเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบซเบผเปเบเบเบฑเบเบเบนเปเบเปเบฅเบดเปเบเบ.
เบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบก ns-3 เบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบเบซเบผเบฑเบเบเบฒเบเบเบญเบเปเบซเบผเปเบ tracing เปเบญเบเบฐเบฅเบฒเบเปเบฅเบฐเปเบเบทเปเบญเบเบฎเบฑเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบปเบเปเบเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบเบฒเบเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบซเบผเปเบเบเบฑเบเบเบปเบงเบฎเบฑเบ. เปเบซเบผเปเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบกเปเบเบงเบฑเบเบเบธเบเบตเปเบชเบฒเบกเบฒเบเบชเบปเปเบเบชเบฑเบเบเบฒเบเปเบซเบเบเบฒเบเบเบตเปเปเบเบตเบเบเบทเปเบเปเบเบเบฒเบเบเปเบฒเบฅเบญเบเปเบฅเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเปเปเบกเบนเบเบเบทเปเบเบเบฒเบเบเบญเบเบเบงเบฒเบกเบชเบปเบเปเบ. เบเบปเบงเบขเปเบฒเบ, เปเบซเบผเปเบเบเบฒเบเบเบดเบเบเบฒเบกเบชเบฒเบกเบฒเบเบเบตเปเบเบญเบเปเบงเบฅเบฒเบเบตเปเบญเบธเบเบฐเบเบญเบเปเบเบทเบญเบเปเบฒเบเปเบเปเบฎเบฑเบเปเบเบฑเบเปเบเบฑเบเปเบฅเบฐเปเบฎเบฑเบเปเบซเปเปเบเบทเปเบญเปเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเบกเบตเปเบซเปเบเบฑเบเบเบนเปเบฎเบฑเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบตเปเบชเบปเบเปเบ.
เปเบซเบผเปเบเบเบฒเบเบเบดเบเบเบฒเบกเบเปเบงเบเบเบปเบเปเบญเบเปเบกเปเบเบเปเปเบกเบตเบเบฐเปเบซเบเบเปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒเบเบงเบเปเบเบปเบฒ "เบชเบปเบกเบเบปเบ" เบเบฑเบเบเบฒเบเบชเปเบงเบเบญเบทเปเบเปเบเบญเบเบฅเบฐเบซเบฑเบเบเบตเปเบเบปเบงเบเบดเบเปเบฅเปเบงเปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเบเบฑเบเบเปเปเบกเบนเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบเบเบเบฒเบเบซเบฅเบปเปเบกเบเบปเบก. Tracers เปเบกเปเบเบเบนเปเบเปเบฅเบดเปเบเบเบเบญเบเปเบซเบเบเบฒเบเปเบฅเบฐเบเปเปเบกเบนเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบเปเบซเบผเปเบเบเบฒเบเบเบดเบเบเบฒเบก. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเบเปเบญเบเบซเบฅเบปเปเบกเบเบปเบก trace เบเบตเปเบเบฐ (เปเบกเบทเปเบญเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเปเบซเบผเปเบ trace เบเบญเบเบเบปเบงเบขเปเบฒเบเบเบตเปเบเปเบฒเบเบกเบฒ) เบเบดเบกเบญเบญเบเบชเปเบงเบเบเบตเปเบกเบตเบเบงเบฒเบกเบชเบปเบเปเบเปเบเบเบธเบเบเบตเปเปเบเปเบฎเบฑเบ.
เปเบซเบเบเบปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบเบขเปเบฒเบเบเบฐเปเบเปเบเบเบตเปเปเบกเปเบเปเบเบทเปเบญเปเบซเปเบเบนเปเปเบเปเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฐเปเบเบเบเบฒเบเบซเบฅเบปเปเบกเบเบปเบกเปเบซเบกเปเบเบฑเบเปเบซเบผเปเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบตเปเบกเบตเบขเบนเปเปเบเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเปเบเปเปเบฅเบฐเบฅเบงเบเบฅเบงเบกเปเบเบ simulator. เบเบฑเปเบเบเบฑเปเบเปเบเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเปเบเบดเบ, เบเบนเปเปเบเปเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบ tracer เปเบซเบกเปเปเบ script เบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบฅเบฐเปเบเบทเปเบญเบกเบเปเปเบกเบฑเบเบเบฑเบเปเบซเบผเปเบ trace เบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบงเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเปเบ simulation core เบเบฝเบเปเบเปเปเบเปเปเบเบชเบฐเบเบดเบเบเบนเปเปเบเป.
เปเบเบเบปเบเบชเบญเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบเปเบฒเบเบเบฒเบเปเบซเบผเปเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเบฅเปเบงเบเปเปเบฒ เปเบฅเบฐเบเปเบญเบเบซเบฅเบปเปเบกเบเบปเบก เปเบฅเบฐเบชเบฐเปเบเบเบงเบดเบเบตเบเบตเปเปเบเบปเบฒเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเบเบฑเปเบเบเปเบฒเปเบเปเบเปเบงเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเปเปเบญเบเบชเบธเบเปเบเบชเปเบงเบเบเบญเบเบเบนเปเปเบเป. เปเบเบดเปเบ ns-3 เบเบนเปเบกเบทเบซเบผเบทเบเบฒเบเบชเปเบงเบเบงเบดเบเบตเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเบดเบเบเบฒเบกเปเบเบเบเบดเปเบชเบ, เบฅเบงเบกเบเบฑเบเบเบฒเบเบเบฐเบซเบเบฒเบ namespace เบเบฒเบเบเบดเบเบเบฒเบกเปเบฅเบฐเบเบฒเบเบชเปเบฒเบเปเบซเบผเปเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบซเบกเป.
5.3.1 เบเบฒเบเบเบดเบเบเบฒเบก ASCII
ns-3 เบชเบฐเบซเบเบญเบเบเบฒเบเบเปเบฒเบเบฒเบเบเบญเบเบเบนเปเบเปเบงเบเบเบตเปเบชเบฐเบซเบเบญเบเบฅเบฐเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบกเบฅเบฐเบเบฑเบเบเปเปเบฒเปเบเบทเปเบญเบเปเบงเบเปเบซเปเบเปเบฒเบเบกเบตเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบปเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเปเบฒเบเบเบฒเบ. เบเปเบฒเบเปเบฒเบเปเบเบตเบเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบตเป, เบเปเบฒเบเบเบฐเปเบซเบฑเบเบเบปเบเบเบฐเบฅเบดเบเปเบเปเบเบฅเป ASCII. เบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบเบธเปเบเปเบเบตเบเบเบฑเบเบเบปเบเบเบฐเบฅเบดเบ ns-2, เบเบฐเปเบเบเบเบญเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบตเปเปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบ out.tr, เปเบเบดเปเบเบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบเบเบชเบฐเบเบดเบเบซเบผเบฒเบ.
เปเบซเปเบเบงเบเปเบฎเบปเบฒเบฅเบปเบเปเบเบซเบฒเบเบธเบฅเบฐเบเบดเบเปเบฅเบฐเปเบเบตเปเบกเบเบปเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบดเบเบเบฒเบก ASCII เปเบซเปเบเบฑเบเบชเบฐเบเบดเบ scratch/myfirst.cc เบเบญเบเบเบงเบเปเบฎเบปเบฒ. เบเปเบญเบเบเบตเปเบเบฐเปเบ Simulator :: Run ()
, เปเบเบตเปเบกเบชเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเป:
AsciiTraceHelper ascii;
pointToPoint.EnableAsciiAll (ascii.CreateFileStream ("myfirst.tr"));
เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบชเบฐเบเบธเบเปเบเบต ns-3 เบญเบทเปเบเปเบเปเบฒเบเบงเบเบซเบผเบฒเบ, เบฅเบฐเบซเบฑเบเบเบตเปเปเบเปเบงเบฑเบเบเบธเบเบนเปเบเปเบงเบเปเบเบทเปเบญเบชเปเบฒเบเบเบฒเบเบเบดเบเบเบฒเบก ASCII. เปเบเบงเบเบตเบชเบญเบเบกเบตเบชเบญเบเบเบฒเบเปเบเบเปเบงเบเบงเบดเบเบตเบเปเบญเบเบเบฑเบ. เบงเบดเบเบตเบเบฒเบ "เบเบฒเบเปเบ". เบชเปเบฒเบFileStream() เปเบเป idiom เบงเบฑเบเบเบธเบเบตเปเบเปเปเปเบเบตเบเปเบเบตเบเบเบทเปเปเบเบทเปเบญเบชเปเบฒเบเบงเบฑเบเบเบธเบชเบฐเบเบฃเบตเบกเปเบเบฅเปเปเบ stack (เบเปเปเบกเบตเบเบทเปเบงเบฑเบเบเบธ) เปเบฅเบฐเบชเบปเปเบเบกเบฑเบเปเบเบซเบฒเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบฅเบปเบเปเบฅเบดเบเปเบเบปเปเบฒเปเบเปเบเปเบฅเบทเปเบญเบเบเบตเปเปเบเบญเบฐเบเบฒเบเบปเบ, เปเบเปเบเบฑเบเบซเบกเบปเบเบเบตเปเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบฎเบนเปเปเบเบเบธเบเบเบตเปเปเบกเปเบเบงเปเบฒเบเปเบฒเบเบเปเบฒเบฅเบฑเบเบชเปเบฒเบเบงเบฑเบเบเบธเบเบตเปเปเบเบฑเบเบเบปเบงเปเบเบเบเบญเบเปเบเบฅเปเบเบตเปเปเบญเบตเปเบเบงเปเบฒ. myfirst.tr เปเบฅเบฐเปเบญเบเบกเบฑเบเปเบ ns-3. เบเบงเบเปเบฎเบปเบฒเบกเบญเบเปเบซเป ns-3 เปเบเบดเปเบเปเบเบเบงเบฑเบเบเบธเบเบตเปเบชเปเบฒเบเบกเบฒเบเบฐเบซเบผเบญเบเบเบตเบงเบดเบเบเบญเบเบกเบฑเบ, เปเบเปเบฅเบเบฐเบเบฑเปเบเบกเบฑเบเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเปเบเบตเบเบเบฒเบเบเปเปเบเปเบฒเบเบฑเบเบเบตเปเบฎเบนเปเบเบฑเบเปเบฅเบฑเบเบเปเบญเบ (เบเบงเบฒเบกเบเบฑเปเบเปเบ) เบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบ C++ stream copy constructors.
เปเบเบเบฒเบเบเบญเบ เปเบเบตเบเปเบเปAsciiAll() เบเบญเบเบเบนเปเบเปเบงเบเบงเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบฅเบงเบกเปเบญเบปเบฒเบเบฒเบเบเบดเบเบเบฒเบก ASCII เปเบเบเบฒเบเบเปเบฒเบฅเบญเบเบเบญเบเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบญเบธเบเบฐเบเบญเบเบเบธเบเบเปเปเบเบธเบเบเบฑเบเบซเบกเบปเบเปเบฅเบฐเบเปเบฒเบเบเปเบญเบเบเบฒเบ (เบฅเบฐเบเบธ) เปเบเบทเปเบญเบเบฎเบฑเบเบเบฒเบเบเบดเบเบเบฒเบกเปเบเบทเปเบญเบเบฑเบเบเบถเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบทเปเบญเบเปเบซเบงเบเบญเบเปเบเบฑเบเปเบเบฑเบเปเบเบฎเบนเบเปเบเบ ASCII.
เบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบเบธเปเบเปเบเบตเบเบเบฑเบ ns-2, เปเบซเบเบเบฒเบเบเบตเปเบเบดเบเบเบฒเบกเปเบกเปเบเบเบฝเบเปเบเบปเปเบฒเบเบฑเบเบเบธเบเบเบดเบเบเบฒเบกเบเบตเปเบฎเบนเปเบเบฑเบเบเบตเปเบเบฑเบเบเบถเบเปเบซเบเบเบฒเบ "+", "-", "d" เปเบฅเบฐ "r".
เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบ script เปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ:
$ ./waf --run scratch/myfirst
เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบซเบผเบฒเบเปเบเบฑเปเบเบเปเบญเบ, เบเปเบฒเบเบเบฐเปเบซเบฑเบเบเปเปเบเบงเบฒเบกเบซเบผเบฒเบเบเบฑเปเบเบเบฒเบ Waf, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ "เบชเปเบฒเบ" เบชเปเบฒเปเบฅเบฑเบเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ" เบเบฑเบเบเบฒเบเบเปเปเบเบงเบฒเบกเบเบฒเบเปเบเบเบเบฒเบเปเบฅเปเบ.
เปเบกเบทเปเบญเปเบฅเปเบ, เปเบเบเบเบฒเบเบเบฐเบชเปเบฒเบเปเบเบฅเปเบเบตเปเบกเบตเบเบทเป myfirst.tr. เปเบเบทเปเบญเบเบเบฒเบเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ Waf, เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เปเบเบฅเปเบเบทเบเบชเปเบฒเบเบเปเปเปเบเปเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเปเบญเบเบเบดเปเบ, เปเบเปเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบเบเบญเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ. เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเปเบฝเบเปเบชเบฑเปเบเบเบฒเบเบเบตเปเบเบฒเบเบเบดเบเบเบฒเบกเบเบทเบเบเบฑเบเบเบถเบเปเบงเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบฒเบฅเบฒเบกเบดเปเบเบต Waf เปเบเบทเปเบญเบเปเบฒเบเบปเบเบกเบฑเบ. --cwd
. เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเปเบฎเบฑเบเบญเบฑเบเบเบตเป, เบเบฑเปเบเบเบฑเปเบเปเบเบทเปเบญเปเบเบดเปเบเปเบเบฅเปเบเบดเบเบเบฒเบก ASCII myfirst.tr เปเบเบเบฑเบเบเบฒเบเบดเบเบฒเบเบเบตเปเบเปเบฒเบเบกเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเปเบเบซเบฒเปเบเปเบฅเบเบฐเบเปเบฅเบตเบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบเบเบญเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เบเบณเบฅเบฑเบเบงเบดเปเบเบฒเบฐเบเบฒเบกเบฎเบญเบ ASCII
เบกเบตเบเปเปเบกเบนเบเบเปเบฒเบเบงเบเบซเบฅเบฒเบเบขเบนเปเบเบตเปเบเบฑเปเบเปเบเบฎเบนเบเปเบเบเบเบตเปเบเปเบญเบเบเปเบฒเบเบซเบเบฒเปเบซเบเปเบ, เปเบเปเบชเบดเปเบเบเปเบฒเบญเบดเบเบเบตเปเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเบฑเบเปเบเบเปเบซเบฑเบเปเบกเปเบเบงเปเบฒเปเบเบฅเปเบเบฐเบเบญเบเบเปเบงเบเปเบชเบฑเปเบเบชเปเบงเบเบเบธเบเบเบปเบ. เบเบตเปเบเบฐเบเบฒเบเปเบเบฑเบเบเบตเปเปเบซเบฑเบเปเบเปเบเบฑเบเปเบเบเบเปเบฒเบเปเบฒเบเบเบฐเบซเบเบฒเบเบเปเบญเบเบขเปเบฝเบกเปเบเบดเปเบเบเบงเปเบฒเบเบเบถเปเบ.
เปเบเปเบฅเบฐเปเบเบงเปเบเปเบเบฅเปเบเบปเบเบเบฑเบเปเบซเบเบเบฒเบเบเบดเบเบเบฒเบก. เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเป, เบเบงเบโเปเบฎเบปเบฒโเบเบดเบโเบเบฒเบกโเปเบซเบโเบเบฒเบโเบขเบนเปโเปเบโเปเบเบงโเบชเบฒเบโเบชเบปเปเบโเบเบตเปโเบกเบตโเบขเบนเปโเปเบโเบญเบธโเบเบฐโเบเบญเบโเปเบเบทเบญโเบเปเบฒเบโเบเบธเบโเบเปเปโเบเบธเบโเปเบเปโเบฅเบฐโเบเบธเบโเปเบโเบเบฒเบโเบเปเบฒโเบฅเบญเบ. เปเบเบงเบชเบฒเบเบชเบปเปเบเปเบกเปเบเปเบเบงเบเบตเปเปเบเปเบฅเบฐเบเบญเบเบเปเบญเบเบเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบธเบเบซเบฒเบเบธเบ. เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเปเบเปเบฅเบฐเปเบเบงเปเบเปเบเบฅเปเบเบดเบเบเบฒเบกเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเบปเบงเบญเบฑเบเบชเบญเบเบเบฝเบง (เปเบฅเบฐเบกเบตเบเปเบญเบเบซเบงเปเบฒเบเบซเบผเบฑเบเบเบฒเบเบกเบฑเบ). เบชเบฑเบเบเบฒเบฅเบฑเบเบเบตเปเบเบฐเบกเบตเบเบงเบฒเบกเบซเบกเบฒเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
+: เบเบฒเบเบเบณเปเบเบตเบเบเบฒเบเบเปเปเบเบดเบงเปเบเบตเบเบเบถเปเบเปเบเปเบเบงเบญเบธเบเบฐเบเบญเบ;
-: เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบถเบเบญเบปเบเบเบฐเบเบญเบเปเบเบตเบเบเบถเปเบเปเบเปเบเบงเบญเบธเบเบฐเบเบญเบ;
d: packet เปเบเปเบเบทเบเบซเบผเบธเบเบฅเบปเบ, เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเปเบเบงเปเบกเปเบเปเบเบฑเบก;
r: packet เปเบเปเบฎเบฑเบเปเบเบเบญเบธเบเบฐเบเบญเบเปเบเบทเบญเบเปเบฒเบ.
เปเบซเปเบเบดเบเบฒเบฅเบฐเบเบฒเบเบตเปเปเบเปเบเบดเบเบขเบนเปเปเบเปเบเบงเบเปเบฒเบญเบดเบเปเบเปเบเบฅเปเบเบดเบเบเบฒเบก. เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเบฐโเปเบเปเบโเบญเบญเบโเปเบเบฑเบโเบเบฒเบโเบชเปเบงเบ (เบกเบต indents เปเบเบทเปเบญโเบเบงเบฒเบกโเบเบฑเบโเปเบเบโ) เปเบฅเบฐโเปเบฅเบโเปเบเบงโเบขเบนเปโเปเบเบทเปเบญเบโเบเปเบฒเบโ:
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) เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเปเบซเบผเปเบเบเบฒเบเบเบดเบเบเบฒเบกเบญเบฑเบเปเบเบเบตเปเบชเปเบฒเบเปเบซเบเบเบฒเบเบเบตเป (เบชเบฐเปเบเบเปเบเบดเบเบเบฒเบเบเบฒเบกเบฎเบญเบ namespace). เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเปเบเบดเบ namespace เบเบดเบเบเบฒเบกเบซเบผเบฒเบเบเบทเบเบฑเบเบเบตเปเปเบเบปเปเบฒเบเปเบญเบเบเบฒเบ namespace เบเบญเบเบฅเบฐเบเบปเบเปเบเบฅเป. เบฎเบฒเบเบเบญเบ namespace เปเบกเปเบ NodeList. เบญเบฑเบเบเบตเปเบเบปเบเบเบฑเบเบเบฒเบเบฐเบเบฐเบเบตเปเบเบทเบเบเบธเปเบกเบเบญเบเปเบเบฅเบฐเบซเบฑเบ ns-3 เบซเบผเบฑเบ. เบกเบฑเบเบกเบต nodes เบเบฑเบเบซเบกเบปเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบ script. เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบฅเบฐเบเบปเบเปเบเบฅเปเบชเบฒเบกเบฒเบเบกเบตเปเบเปเบฅเบเบฐเบเปเบฅเบตเบขเบนเปเปเบเบฎเบฒเบเบเบญเบเบกเบฑเบ, NodeList เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบกเบตเบซเบผเบฒเบเบเปเป. เบเบฑเปเบเบเบฑเปเบเปเบชเบฑเปเบ /NodeList/0 เบซเบกเบฒเบเปเบเบดเบ node null เปเบ NodeList, เปเบเบดเปเบเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเบงเบเปเบฎเบปเบฒเบเบดเบเบงเปเบฒ "node 0". เปเบเปเบฅเบฐ node เบกเบตเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบญเบธเบเบฐเบเบญเบเบเบตเปเปเบเปเบเบทเบเบเบดเบเบเบฑเปเบ. เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบตเปเปเบกเปเบเบเบฑเปเบเบขเบนเปเบเปเปเปเบเปเบ namespace. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบงเปเบฒเปเบซเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบตเปเบกเบฒเบเบฒเบ เบฅเบฒเบเบเบฒเบเบญเบธเบเบฐเบเบญเบ/0, เปเบเบดเปเบเปเบเบฑเบเบญเบธเบเบฐเบเบญเบ null เบเบตเปเบเบดเบเบเบฑเปเบเบขเบนเปเปเบ node.
เปเบเบงเบเปเบญเบเบเปเปเปเบ, $ ns3 :: PointToPointNetDevice
, เบเบญเบเบญเบธเบเบฐเบเบญเบเปเบเบขเบนเปเบเบตเปเบชเบนเบ: เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบญเบธเบเบฐเบเบญเบเบเบญเบ node zero. เบเบทเปเปเบงเปเบงเปเบฒเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ + เบเบตเปเบเบปเบเปเบเปเบเบง 0 เบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบญเบปเบเบเบฐเบเบญเบเบซเบเบถเปเบเปเบเปเบเบทเบเปเบเบตเปเบกเปเบชเปเบเบดเบงเบชเบปเปเบเบเบญเบเบญเบธเบเบฐเบเบญเบ. เบเบตเปเปเบกเปเบเบชเบฐเบเปเบญเบเปเบซเปเปเบซเบฑเบเบขเบนเปเปเบเบเบฒเบเบชเปเบงเบเบชเบธเบเบเปเบฒเบเบเบญเบ "เปเบชเบฑเปเบเบเบฒเบเบเบดเบเบเบฒเบก": TxQueue/Enqueue.
เบเบฒเบเบชเปเบงเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบขเบนเปเปเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบงเบเบเบฐเปเบเบฑเบ intuitive เบเบธเบเบดเบเปเบฒ. เปเบเบงเบเบต 3-4 เบเบตเปเบเบญเบเบงเปเบฒเปเบเบฑเบเปเบเบฑเบเบเบทเบเบซเบธเปเบกเบขเบนเปเปเบเปเบเบฃเปเบเบเปเบเบธเบเบซเบฒเบเบธเบ. เปเบเบงเบเบต 5-7 เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเปเบเบฑเบเปเบเบฑเบเบกเบตเบซเบปเบงเปเบงเบตเบเบฑเปเบ IP4 เปเบฅเบฐเบกเบฒเบเบฒเบเบเบตเปเบขเบนเป IP 10.1.1.1
เปเบฅเบฐเบกเบตเบเบธเบเบเบฐเบชเบปเบเบชเปเบฒเบฅเบฑเบ 10.1.1.2
. เปเบเบง 8-9 เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเปเบเบฑเบเปเบเบฑเบเบเบตเปเบกเบตเบซเบปเบง UDP เปเบฅเบฐเบชเบธเบเบเปเบฒเบเปเบชเบฑเปเบ 10 เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒ payload เปเบกเปเบเบเบฒเบเบงเปเบฒเบเบฐเบกเบต 1024 bytes.
เปเบเบงเบเปเปเปเบเปเบเปเบเบฅเปเบเบดเบเบเบฒเบกเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเปเบเบฑเบเปเบเบฑเบเบเบฝเบงเบเบฑเบเบเบทเบเบเบถเบเบญเบญเบเบเบฒเบเปเบเบงเบเบฒเบเบชเบปเปเบเบเปเปเปเบ node เบเบฝเบงเบเบฑเบ.
เปเบเบงเบเบตเบชเบฒเบกเปเบเปเบเบฅเปเบเบดเบเบเบฒเบกเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเปเบเบฑเบเปเบเบฑเบเปเบเปเบฎเบฑเบเปเบเบเบญเบธเบเบฐเบเบญเบเปเบเบทเบญเบเปเบฒเบเบขเบนเปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ echo server. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฐเบฅเบดเบเบเบทเบเปเบซเบเบเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป.
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 เบงเบดเบเบฒเบเบต. เบเปเบฒเบเปเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบฒเบเบชเบญเบเบขเปเบฒเบเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบ, เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบเบเบฐเปเบงเป DataRate เปเบฅเบฐ Link Delay เบเบญเบเบญเบธเบเบฐเบเบญเบเปเบเบทเบญเบเปเบฒเบเบขเบนเปเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบเบงเบเปเบเบปเบฒ. เบเบงเบฒเบกเปเบเบฑเปเบเบเบถเบเบเบตเปเบเบงเบเบเบฐเบเบธเปเบเปเบเบตเบ, เบเบฑเปเบเบเบตเปเบเปเบฒเบเปเบซเบฑเบเปเบเบเบฒเบเบเปเบญเบ.
เบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบ namespace เปเบซเบผเปเบเบเบตเปเบกเบฒ (เปเบเบง 2) เปเบเปเบเบทเบเบเบฑเบเปเบเปเปเบเบทเปเบญเบชเบฐเบเปเบญเบเบงเปเบฒเปเบซเบเบเบฒเบเบเบตเปเบกเบฒเบเบฒเบ node 1 (/NodeList/1โ) เปเบฅเบฐโเบเบญเบโเปเบกเปเบโเปเบเปโเบฎเบฑเบโเปเบเบโเปเบซเบผเปเบโเบเบดเบโเบเบฒเบก (/MacRx). เบกเบฑเบเบเบงเบเบเบฐเปเบเบฑเบเปเบฅเบทเปเบญเบเบเปเบฒเบเบเปเบชเบปเบกเบเบงเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบฒเบเปเบเบทเปเบญเบเปเบซเบงเบเบญเบเปเบเบฑเบเปเบเบฑเบเบเปเบฒเบ topology เปเบเบเปเบเบดเปเบเบฎเปเบญเบเบฎเบญเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบขเบนเปเปเบเปเบเบฅเป.
5.3.2 PCAP Trace
เบเบปเบงเบเปเบงเบเบญเบธเบเบฐเบเบญเบ ns-3 เบเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเปเบเบฅเปเบเบฒเบเบเบดเบเบเบฒเบกเปเบเบฎเบนเบเปเบเบ .pcap. เบเบปเบงเบซเบเปเป pcap (เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเบฝเบเปเบเบฑเบเบเบปเบงเบเบดเบกเบเปเบญเบ) เบซเบเปเปเบกเบฒเบเบฒเบเบเบฒเบเบเบฑเบเปเบเบฑเบเปเบเบฑเบ เปเบฅเบฐเบเบปเบงเบเบดเบเปเบฅเปเบงเปเบกเปเบ API เบเบตเปเบเบฐเบเบญเบเบกเบตเบเบฒเบเบเปเบฒเบเบปเบเบฎเบนเบเปเบเบเปเบเบฅเป .pcap. เปเบเบเบเบฒเบเบเบตเปเบเบดเบเบปเบกเบเบตเปเบชเบธเบเบเบตเปเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบฅเบฐเบชเบฐเปเบเบเบฎเบนเบเปเบเบเบเบตเปเปเบกเปเบ Wireshark (เปเบกเบทเปเบญเบเปเบญเบเปเบญเบตเปเบเบงเปเบฒ Ethereal). เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบกเบตเบซเบผเบฒเบเบเบปเบงเบงเบดเปเบเบฒเบฐเบเบฒเบเบเบดเบเบเบฒเบกเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเบเบตเปเปเบเปเบฎเบนเบเปเบเบเปเบเบฑเบเปเบเบฑเบเบเบตเป. เบเบงเบเปเบฎเบปเบฒเบเบธเบเบเบนเปเปเบซเปเบเบนเปเปเบเปเปเบเปเปเบเบทเปเบญเบเบกเบทเบเปเบฒเบเบงเบเบซเบผเบฒเบเบเบตเปเบกเบตเบขเบนเปเปเบเบทเปเบญเบงเบดเปเบเบฒเบฐเบเบฒเบเบเบดเบเบเบฒเบก pcap. เปเบเบเบปเบเบชเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบธเบกเปเบชเปเบเบฒเบเปเบเบดเปเบเบเบฒเบเบเบดเบเบเบฒเบก pcap เปเบเบเปเบเป tcpdump.
เบเบฒเบเปเบเบตเบเปเบเปเบเบฒเบ pcap tracing เปเบกเปเบเปเบฎเบฑเบเบเปเบงเบเบฅเบฐเบซเบฑเบเปเบถเปเบเปเบเบง.
pointToPoint.EnablePcapAll ("myfirst");
เบงเบฒเบเบฅเบฐเบซเบฑเบเปเบชเบฑเปเบเบเบตเปเบซเบผเบฑเบเบเบฒเบเบฅเบฐเบซเบฑเบเบเบดเบเบเบฒเบก ASCII เบเบตเปเบเบงเบเปเบฎเบปเบฒเบซเบฒเบเปเปเปเบเบตเปเบกเปเบชเป scratch/myfirst.cc. เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเปเบฒเบเบชเบฒเบ "myfirst", เบเปเปเปเบกเปเบ "myfirst.pcap" เบซเบผเบทเบชเบดเปเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ. เบเบตเปเปเบกเปเบเบเปเบญเบเบงเปเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบเบฑเบเบเปเบฒเบเปเบฒเบซเบเปเบฒ, เบเปเปเปเบกเปเบเบเบทเปเปเบเบฑเบก. เปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเปเบฒเบฅเบญเบ, เบเบนเปเบเปเบงเบเบเบปเบงเบเบดเบเบเบฐเบชเปเบฒเบเปเบเบฅเปเบเบดเบเบเบฒเบกเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบญเบธเบเบฐเบเบญเบเบเบธเบ. เบเบทเปเปเบเบฅเปเบเบฐเบเบทเบเบชเปเบฒเบเปเบเบเปเบเปเบเปเบฒเบเปเบฒเบซเบเปเบฒ, เบเปเบฒเบเบงเบ node, เบเปเบฒเบเบงเบเบญเบธเบเบฐเบเบญเบ, เปเบฅเบฐเบเปเบฒเบเปเปเบเปเบฒเบ ".pcap".
เบชเปเบฒโเบฅเบฑเบโเบเบปเบงโเบขเปเบฒเบโเบชเบฐโเบเบฃเบดเบโเบเบญเบโเบเบงเบโเปเบฎเบปเบฒโ, เบเบงเบโเปเบฎเบปเบฒโเบเบฐโเบชเบดเปเบโเบชเบธเบโเปเบเบดเบโเบเบฒเบโเปเบเบดเปเบโเปเบเบฅโเปโเบเบตเปโเบกเบตโเบเบทเป "myfirst-0-0.pcap"เปเบฅเบฐ"myfirst-1-0.pcap", เปเบเบดเปเบเปเบเบฑเบเบเบฒเบเบเบดเบเบเบฒเบก pcap เบชเปเบฒเบฅเบฑเบ node 0-device 0 เปเบฅเบฐ node 1-device 0 เบเบฒเบกเบฅเปเบฒเบเบฑเบ. เปเบกเบทเปเบญเบเปเบฒเบเปเบเปเปเบเบตเปเบกเปเบชเบฑเปเบเบฅเบฐเบซเบฑเบเปเบเบทเปเบญเปเบเบตเบเปเบเป pcap tracing, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฅเปเบเบชเบฐเบเบดเบเปเบเปเบเบฒเบกเบเบปเบเบเบฐเบเบด:
$ ./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 (เบญเบธโเบเบฐโเบเบญเบโเบฅเบนเบโเบเปเบฒโ) เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเปเบเบดเปเบโเบเบญเบ echo เบเบทเบโเบชเบปเปเบโเบซเบผเบฑเบโเบเบฒเบ 2 เบงเบดโเบเบฒโเบเบตโเบเบญเบโเบเบฒเบโเบเปเบฒโเบฅเบญเบโ. เบเปเบฒเบเปเบฒเบเปเบเบดเปเบเบเบฒเบเบเบดเปเบกเบเบตเปเปเบซเบเบทเปเบญเบเบตเบชเบญเบ (myfirst-1-0.pcap), เบเปเบฒเบเบเบฐเปเบซเบฑเบเบงเปเบฒเปเบเบฑเบเปเบเบฑเบเปเบเปเบฎเบฑเบเบขเบนเปเบเบตเป 2,257324 เบงเบดเบเบฒเบเบต. เบเปเบฒเบเบเบฐเปเบซเบฑเบเปเบ dump เบเบตเบชเบญเบเบงเปเบฒ packet เปเบเปเบเบทเบเบชเบปเปเบเบเบทเบเบขเบนเปเบเบตเป 2.257324 เบงเบดเบเบฒเบเบต, เปเบฅเบฐเบชเบธเบเบเปเบฒเบเบงเปเบฒ packet เปเบเปเบเบทเบเบฎเบฑเบเบเบทเบเปเบเบเบฅเบนเบเบเปเบฒเปเบเบเบฒเบ dump เบเปเบฒเบญเบดเบเบขเบนเปเบเบตเป 2.514648 เบงเบดเบเบฒเบเบต.
เบเบฒเบเบญเปเบฒเบเบเบปเบเบเบฐเบฅเบดเบเบเปเบงเบ Wireshark
เบเปเบฒเบเปเบฒเบเบเปเปเบเบธเปเบเปเบเบตเบเบเบฑเบ Wireshark, เบกเบตเปเบงเบฑเบเปเบเบเปเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฒเบงเบเปเปเบซเบฅเบเปเบเบเบเบฒเบเปเบฅเบฐเปเบญเบเบฐเบชเบฒเบ:
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com