ุงู„ุฅู†ุฌู„ูŠุฒูŠุฉุงู„ูุฑู†ุณูŠุฉุงู„ุฅุณุจุงู†ูŠุฉ

OnWorks ูุงููŠูƒูˆู†

ns-3-tutorial - ุนุจุฑ ุงู„ุฅู†ุชุฑู†ุช ููŠ ุงู„ุณุญุงุจุฉ

ู‚ู… ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ns-3 ููŠ ู…ุฒูˆุฏ ุงู„ุงุณุชุถุงูุฉ ุงู„ู…ุฌุงู†ูŠ ู…ู† OnWorks ุนุจุฑ Ubuntu Online ุฃูˆ Fedora Online ุฃูˆ ู…ุญุงูƒูŠ Windows ุนุจุฑ ุงู„ุฅู†ุชุฑู†ุช ุฃูˆ ู…ุญุงูƒูŠ MAC OS ุนุจุฑ ุงู„ุฅู†ุชุฑู†ุช

ู‡ุฐุง ู‡ูˆ ุงู„ุฃู…ุฑ ns-3-ุงู„ุชุนู„ูŠู…ูŠ ุงู„ุฐูŠ ูŠู…ูƒู† ุชุดุบูŠู„ู‡ ููŠ ู…ุฒูˆุฏ ุงู„ุงุณุชุถุงูุฉ ุงู„ู…ุฌุงู†ูŠุฉ OnWorks ุจุงุณุชุฎุฏุงู… ุฅุญุฏู‰ ู…ุญุทุงุช ุงู„ุนู…ู„ ุงู„ู…ุฌุงู†ูŠุฉ ุงู„ู…ุชุนุฏุฏุฉ ุนู„ู‰ ุงู„ุฅู†ุชุฑู†ุช ู…ุซู„ Ubuntu Online ุฃูˆ Fedora Online ุฃูˆ ู…ุญุงูƒูŠ Windows ุนุจุฑ ุงู„ุฅู†ุชุฑู†ุช ุฃูˆ ู…ุญุงูƒูŠ MAC OS ุนุจุฑ ุงู„ุฅู†ุชุฑู†ุช

ุจุฑู†ุงู…ุฌ:

ุงุณู…


ns-3-ุชุนู„ูŠู…ูŠ - ns-3 ุชุนู„ูŠู…ูŠ

ู‡ุฐุง ู‡ูˆ NS-3 ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ. ุงู„ูˆุซุงุฆู‚ ุงู„ุฃูˆู„ูŠุฉ ู„ู…ุดุฑูˆุน ns-3 ู…ุชุงุญุฉ ููŠ ุฎู…ุณุฉ
ู†ู…ุงุฐุฌ:

ยท NS-3 Doxygen: ุชูˆุซูŠู‚ ูˆุงุฌู‡ุงุช ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช ุงู„ุนุงู…ุฉ ู„ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ

ยท ุฏุฑุณ ุชุนู„ูŠู…ูŠ (ู‡ุฐู‡ ูˆุซูŠู‚ุฉ)ุŒ ุฏู„ูŠู„ ุŒ ูˆู…ูƒุชุจุฉ ู†ู…ูˆุฐุฌูŠุฉ ู„ู€ ุขุฎุฑ ุงู„ุงูุฑุงุฌ ุนู†
ุชุทูˆูŠุฑ ุดุฌุฑุฉ

ยท NS-3 ูˆูŠูƒูŠ

ู‡ุฐู‡ ุงู„ูˆุซูŠู‚ุฉ ู…ูƒุชูˆุจุฉ ุจุงู„ู„ุบุฉ reStructuredText ู„ู€ ุฃุจูˆ ุงู„ู‡ูˆู„ ูˆูŠุชู… ุงู„ุญูุงุธ ุนู„ูŠู‡ ููŠ
ูˆุซูŠู‚ุฉ / ุชุนู„ูŠู…ูŠ ุฏู„ูŠู„ ุงู„ูƒูˆุฏ ุงู„ู…ุตุฏุฑูŠ ns-3.

ู…ู‚ุฏู…ุฉ


ุฅู†ู‘ NS-3 simulator ู‡ูˆ ู…ุญุงูƒูŠ ุดุจูƒุฉ ุญุฏุซ ู…ู†ูุตู„ ูŠุณุชู‡ุฏู ุจุดูƒู„ ุฃุณุงุณูŠ ุงู„ุจุญุซ
ูˆุงู„ุงุณุชุฎุฏุงู… ุงู„ุชุนู„ูŠู…ูŠ. ุงู„ NS-3 ุชู†ููŠุฐ ุงู„ู…ุดุงุฑูŠุน ุŒ ุงู„ุฐูŠ ุจุฏุฃ ููŠ ุนุงู… 2006 ุŒ ู‡ูˆ ู…ุดุฑูˆุน ู…ูุชูˆุญ ุงู„ู…ุตุฏุฑ
ุชุทูˆูŠุฑ NS-3.

ุงู„ุบุฑุถ ู…ู† ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ู‡ูˆ ุชู‚ุฏูŠู… ุงู„ุฌุฏูŠุฏ NS-3 ุงู„ู…ุณุชุฎุฏู…ูŠู† ุฅู„ู‰ ุงู„ู†ุธุงู… ุจุดูƒู„ ู…ู†ุธู…
ุทุฑูŠู‚. ูŠุตุนุจ ุฃุญูŠุงู†ู‹ุง ุนู„ู‰ ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุฌุฏุฏ ุฌู…ุน ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุฃุณุงุณูŠุฉ ู…ู† ุงู„ุชูุงุตูŠู„
ูƒุชูŠุจุงุช ูˆุชุญูˆูŠู„ ู‡ุฐู‡ ุงู„ู…ุนู„ูˆู…ุงุช ุฅู„ู‰ ู…ุญุงูƒุงุฉ ุงู„ุนู…ู„. ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุŒ ู†ุญู†
ุณูŠุจู†ูŠ ุงู„ุนุฏูŠุฏ ู…ู† ู†ู…ุงุฐุฌ ุงู„ู…ุญุงูƒุงุฉ ุŒ ูˆุชู‚ุฏูŠู… ูˆุดุฑุญ ุงู„ู…ูุงู‡ูŠู… ุงู„ุฃุณุงุณูŠุฉ ูˆ
ุงู„ู…ูŠุฒุงุช ูƒู…ุง ู†ุฐู‡ุจ.

ุนู†ุฏู…ุง ูŠุชูƒุดู ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุŒ ุณู†ู‚ุฏู… ุงู„ู…ู„ู ุงู„ูƒุงู…ู„ NS-3 ุงู„ุชูˆุซูŠู‚ ูˆุงู„ุชู‚ุฏูŠู…
ู…ุคุดุฑุงุช ุฅู„ู‰ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ู…ุตุฏุฑ ู„ู„ู…ู‡ุชู…ูŠู† ุจุงู„ุชุนู…ู‚ ููŠ ุฃุนู…ุงู„
ู†ุธุงู….

ุชุฌุฏุฑ ุงู„ุฅุดุงุฑุฉ ุฅู„ู‰ ุจุนุถ ุงู„ู†ู‚ุงุท ุงู„ุฑุฆูŠุณูŠุฉ ููŠ ุงู„ุจุฏุงูŠุฉ:

ยท NS-3 ู…ูุชูˆุญ ุงู„ู…ุตุฏุฑ ุŒ ูˆูŠุณุนู‰ ุงู„ู…ุดุฑูˆุน ุฌุงู‡ุฏู‹ุง ู„ู„ุญูุงุธ ุนู„ู‰ ุจูŠุฆุฉ ู…ูุชูˆุญุฉ ู„ู€
ุงู„ุจุงุญุซูŠู† ู„ู„ู…ุณุงู‡ู…ุฉ ูˆู…ุดุงุฑูƒุฉ ุจุฑุงู…ุฌู‡ู….

ยท NS-3 ู„ูŠุณ ุงู…ุชุฏุงุฏู‹ุง ู…ุชูˆุงูู‚ู‹ุง ู…ุน ุงู„ุฅุตุฏุงุฑุงุช ุงู„ุณุงุจู‚ุฉ ู„ู€ NS-2ุ› ุฅู†ู‡ุง ู…ุญุงูƒุงุฉ ุฌุฏูŠุฏุฉ. ุงู„ุงุซู†ุงู†
ุชู…ุช ูƒุชุงุจุฉ ูƒู„ ู…ู† ุฃุฌู‡ุฒุฉ ุงู„ู…ุญุงูƒุงุฉ ุจู„ุบุฉ C ++ ูˆู„ูƒู† NS-3 ู‡ูˆ ุฌู‡ุงุฒ ู…ุญุงูƒุงุฉ ุฌุฏูŠุฏ ู„ุง ูŠุฏุนู…
NS-2 ูˆุงุฌู‡ุงุช ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช. ุจุนุถ ุงู„ู…ูˆุฏูŠู„ุงุช ู…ู† NS-2 ุชู… ุจุงู„ูุนู„ ุงุณุชุฏุงุฑุชู‡ุง ู…ู† NS-2 ุฅู„ู‰ NS-3.
ุณูŠุณุชู…ุฑ ุงู„ู…ุดุฑูˆุน ููŠ ุงู„ุญูุงุธ ุนู„ูŠู‡ุง NS-2 ููŠ ุญูŠู† NS-3 ูŠุชู… ุจู†ุงุคู‡ ุŒ ูˆุณูˆู ูŠุฏุฑุณ
ุขู„ูŠุงุช ุงู„ุงู†ุชู‚ุงู„ ูˆุงู„ุชูƒุงู…ู„.

ู…ู† ู†ุญู†ุŸ NS-3
NS-3 ุชู… ุชุทูˆูŠุฑู‡ ู„ุชูˆููŠุฑ ู…ู†ุตุฉ ู…ุญุงูƒุงุฉ ุดุจูƒุฉ ู…ูุชูˆุญุฉ ูˆู‚ุงุจู„ุฉ ู„ู„ุชูˆุณูŠุน ุŒ ู…ู† ุฃุฌู„
ุงู„ุจุญุซ ุงู„ุดุจูƒูŠ ูˆุงู„ุชุนู„ูŠู…. ุจุงุฎุชุตุงุฑุŒ NS-3 ูŠู‚ุฏู… ู†ู…ุงุฐุฌ ู„ูƒูŠููŠุฉ ุญุฒู… ุงู„ุจูŠุงู†ุงุช
ุชุนู…ู„ ุงู„ุดุจูƒุงุช ูˆุชุคุฏู‰ ุŒ ูˆุชูˆูุฑ ู…ุญุฑูƒ ู…ุญุงูƒุงุฉ ู„ู„ู…ุณุชุฎุฏู…ูŠู† ู„ุฅุฌุฑุงุก
ุชุฌุงุฑุจ ุงู„ู…ุญุงูƒุงุฉ. ุจุนุถ ุฃุณุจุงุจ ุงู„ุงุณุชุฎุฏุงู… NS-3 ุชุดู…ู„ ุฅุฌุฑุงุก ุงู„ุฏุฑุงุณุงุช ุงู„ุชูŠ
ุฃูƒุซุฑ ุตุนูˆุจุฉ ุฃูˆ ู„ุง ูŠู…ูƒู† ุฅุฌุฑุงุคู‡ุง ุจุงุณุชุฎุฏุงู… ุฃู†ุธู…ุฉ ุญู‚ูŠู‚ูŠุฉ ุŒ ู„ุฏุฑุงุณุฉ ุณู„ูˆูƒ ุงู„ู†ุธุงู…
ููŠ ุจูŠุฆุฉ ูŠู…ูƒู† ุงู„ุชุญูƒู… ููŠู‡ุง ุจุดูƒู„ ูƒุจูŠุฑ ูˆู‚ุงุจู„ุฉ ู„ู„ุชูƒุฑุงุฑ ุŒ ูˆู„ู„ุชุนุฑู ุนู„ู‰ ูƒูŠููŠุฉ ุนู…ู„ ุงู„ุดุจูƒุงุช.
ุณูŠู„ุงุญุธ ุงู„ู…ุณุชุฎุฏู…ูˆู† ุฃู† ุงู„ู†ู…ูˆุฐุฌ ุงู„ู…ุชุงุญ ุชู… ุชุนูŠูŠู†ู‡ ููŠ NS-3 ูŠุฑูƒุฒ ุนู„ู‰ ู†ู…ุฐุฌุฉ ูƒูŠููŠุฉ ุงู„ุฅู†ุชุฑู†ุช
ุชุนู…ู„ ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ูˆุงู„ุดุจูƒุงุช ุŒ ูˆู„ูƒู† NS-3 ู„ุง ูŠู‚ุชุตุฑ ุนู„ู‰ ุฃู†ุธู…ุฉ ุงู„ุฅู†ุชุฑู†ุช ุ› ุนุฏุฉ ู…ุณุชุฎุฏู…ูŠู†
ูŠุณุชุฎุฏู…ูˆู† NS-3 ู„ู†ู…ุฐุฌุฉ ุงู„ุฃู†ุธู…ุฉ ุบูŠุฑ ุงู„ู…ุณุชู†ุฏุฉ ุฅู„ู‰ ุงู„ุฅู†ุชุฑู†ุช.

ุชูˆุฌุฏ ุงู„ุนุฏูŠุฏ ู…ู† ุฃุฏูˆุงุช ุงู„ู…ุญุงูƒุงุฉ ู„ุฏุฑุงุณุงุช ู…ุญุงูƒุงุฉ ุงู„ุดุจูƒุฉ. ููŠู…ุง ูŠู„ูŠ ุนุฏุฏ ู‚ู„ูŠู„
ุงู„ุณู…ุงุช ุงู„ู…ู…ูŠุฒุฉ ู„ู€ NS-3 ุนู„ู‰ ุนูƒุณ ุงู„ุฃุฏูˆุงุช ุงู„ุฃุฎุฑู‰.

ยท NS-3 ุชู… ุชุตู…ูŠู…ู‡ ูƒู…ุฌู…ูˆุนุฉ ู…ู† ุงู„ู…ูƒุชุจุงุช ุงู„ุชูŠ ูŠู…ูƒู† ุฏู…ุฌู‡ุง ู…ุนู‹ุง ูˆุฃูŠุถู‹ุง ู…ุน ุฃุฎุฑู‰
ู…ูƒุชุจุงุช ุงู„ุจุฑุงู…ุฌ ุงู„ุฎุงุฑุฌูŠุฉ. ุจูŠู†ู…ุง ุชูˆูุฑ ุจุนุถ ู…ู†ุตุงุช ุงู„ู…ุญุงูƒุงุฉ ู„ู„ู…ุณุชุฎุฏู…ูŠู† ู…ู„ู
ุจูŠุฆุฉ ูˆุงุฌู‡ุฉ ู…ุณุชุฎุฏู… ุฑุณูˆู…ูŠุฉ ูˆุงุญุฏุฉ ู…ุชูƒุงู…ู„ุฉ ูŠุชู… ููŠู‡ุง ุชู†ููŠุฐ ุฌู…ูŠุน ุงู„ู…ู‡ุงู…
ู…ู†ุŒ NS-3 ู‡ูˆ ุฃูƒุซุฑ ู†ู…ุทูŠุฉ ููŠ ู‡ุฐุง ุงู„ุตุฏุฏ. ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฑุณูˆู… ุงู„ู…ุชุญุฑูƒุฉ ุงู„ุฎุงุฑุฌูŠุฉ ูˆุชุญู„ูŠู„ ุงู„ุจูŠุงู†ุงุช
ูˆุฃุฏูˆุงุช ุงู„ุชุตูˆุฑ ูŠู…ูƒู† ุงุณุชุฎุฏุงู…ู‡ุง ู…ุน NS-3. ูˆู…ุน ุฐู„ูƒ ุŒ ูŠุฌุจ ุฃู† ูŠุชูˆู‚ุน ุงู„ู…ุณุชุฎุฏู…ูˆู† ุงู„ุนู…ู„ ููŠ
ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ูˆุจุงุณุชุฎุฏุงู… ุฃุฏูˆุงุช ุชุทูˆูŠุฑ ุจุฑุงู…ุฌ C ++ ูˆ / ุฃูˆ Python.

ยท NS-3 ูŠุณุชุฎุฏู… ุจุดูƒู„ ุฃุณุงุณูŠ ุนู„ู‰ ุฃู†ุธู…ุฉ Linux ุŒ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ูˆุฌูˆุฏ ุฏุนู… ู„ู€ FreeBSD ูˆ Cygwin
(ู„ู†ุธุงู… ุงู„ุชุดุบูŠู„ Windows) ุŒ ูˆุฏุนู… Windows Visual Studio ุงู„ุฃุตู„ูŠ ู‚ูŠุฏ ุงู„ุชู†ููŠุฐ
ุงู„ู…ุชู‚ุฏู…ุฉ.

ยท NS-3 ู„ูŠุณ ู…ู†ุชุฌู‹ุง ุจุฑู…ุฌูŠู‹ุง ู…ุฏุนูˆู…ู‹ุง ุฑุณู…ูŠู‹ุง ู„ุฃูŠ ุดุฑูƒุฉ. ุงู„ุฏุนู… ู„ NS-3
ูŠุชู… ุนู„ู‰ ุฃุณุงุณ ุฃูุถู„ ุฌู‡ุฏ ุนู„ู‰ ุงู„ู‚ุงุฆู…ุฉ ุงู„ุจุฑูŠุฏูŠุฉ ns-3-users.

ููŠ ุญุงู„ุฉ NS-2 ุงู„ู…ุณุชุฎุฏู…ูŠู†
ู„ู…ู† ู‡ู… ุนู„ู‰ ุฏุฑุงูŠุฉ NS-2 (ุฃุฏุงุฉ ุดุงุฆุนุฉ ุณุจู‚ุช NS-3) ุŒ ุงู„ุฃูƒุซุฑ ูˆุถูˆุญุง ู…ู† ุงู„ุฎุงุฑุฌ
ุชุบูŠูŠุฑ ุนู†ุฏ ุงู„ุงู†ุชู‚ุงู„ ุฅู„ู‰ NS-3 ู‡ูˆ ุงุฎุชูŠุงุฑ ู„ุบุฉ ุงู„ุจุฑู…ุฌุฉ ุงู„ู†ุตูŠุฉ. ุงู„ุจุฑุงู…ุฌ ููŠ NS-2 .
ู†ุตุช ููŠ OTcl ูˆูŠู…ูƒู† ุชุตูˆุฑ ู†ุชุงุฆุฌ ุงู„ู…ุญุงูƒุงุฉ ุจุงุณุชุฎุฏุงู… Network Animator
ู†ุงู…. ู„ุง ูŠู…ูƒู† ุชุดุบูŠู„ ู…ุญุงูƒุงุฉ ููŠ NS-2 ุจุญุชุฉ ู…ู† C ++ (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุจุงุนุชุจุงุฑู‡ ุฑุฆูŠุณูŠ ()
ุงู„ุจุฑู†ุงู…ุฌ ุจุฏูˆู† ุฃูŠ OTcl). ุนู„ุงูˆุฉ ุนู„ู‰ ุฐู„ูƒ ุŒ ูุฅู† ุจุนุถ ู…ูƒูˆู†ุงุช NS-2 ู…ูƒุชูˆุจุฉ ุจู„ุบุฉ C ++ ูˆ
ุขุฎุฑูˆู† ููŠ OTcl. ููŠ NS-3ุŒ ุงู„ู…ุญุงูƒูŠ ู…ูƒุชูˆุจ ุจุงู„ูƒุงู…ู„ ุจู„ุบุฉ C ++ ุŒ ู…ุน ุจุงูŠุซูˆู† ุงุฎุชูŠุงุฑูŠ
ุงู„ุงุฑุชุจุงุทุงุช. ู„ุฐู„ูƒ ูŠู…ูƒู† ูƒุชุงุจุฉ ู†ุตูˆุต ุงู„ู…ุญุงูƒุงุฉ ุจู„ุบุฉ C ++ ุฃูˆ Python. ุฑุณุงู…ูˆ ุงู„ุฑุณูˆู… ุงู„ู…ุชุญุฑูƒุฉ ุงู„ุฌุฏุฏ
ูˆุงู„ู…ุชุฎูŠู„ูˆู† ู…ุชุงุญุฉ ูˆุชุญุช ุงู„ุชุทูˆูŠุฑ ุงู„ุญุงู„ูŠ. ู…ู†ุฐ NS-3 ูŠูˆู„ุฏ pcap
ู…ู„ูุงุช ุชุชุจุน ุงู„ุญุฒู…ุฉ ุŒ ูŠู…ูƒู† ุงุณุชุฎุฏุงู… ุฃุฏูˆุงุช ู…ุณุงุนุฏุฉ ุฃุฎุฑู‰ ู„ุชุญู„ูŠู„ ุงู„ุชุชุจุน ุฃูŠุถู‹ุง. ููŠ ู‡ุฐุง
ู…ู† ุฎู„ุงู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุŒ ุณู†ุฑูƒุฒ ุฃูˆู„ุงู‹ ุนู„ู‰ ุงู„ุจุฑู…ุฌุฉ ุงู„ู†ุตูŠุฉ ู…ุจุงุดุฑุฉ ููŠ C ++ ูˆุชูุณูŠุฑ ุงู„ู†ุชุงุฆุฌ
ุนุจุฑ ู…ู„ูุงุช ุงู„ุชุชุจุน.

ูˆู„ูƒู† ู‡ู†ุงูƒ ุฃูŠุถู‹ุง ุฃูˆุฌู‡ ุชุดุงุจู‡ (ูƒู„ุงู‡ู…ุง ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ูŠุนุชู…ุฏ ุนู„ู‰ ูƒุงุฆู†ุงุช C ++ ุŒ ูˆุจุนุถู‡ุง
ูƒูˆุฏ ู…ู† NS-2 ุชู… ุจุงู„ูุนู„ ุงุณุชุฏุงุฑ ุฅู„ู‰ NS-3). ุณู†ุญุงูˆู„ ุชุณู„ูŠุท ุงู„ุถูˆุก ุนู„ู‰ ุงู„ุงุฎุชู„ุงูุงุช
ู…ุง ุจูŠู† NS-2 NS-3 ุจูŠู†ู…ุง ู†ู…ุถูŠ ู‚ุฏู…ู‹ุง ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ.

ุงู„ุณุคุงู„ ุงู„ุฐูŠ ู†ุณู…ุนู‡ ูƒุซูŠุฑู‹ุง ู‡ูˆ "ู‡ู„ ู…ุง ุฒู„ุช ุฃุณุชุฎุฏู… NS-2 ุฃูˆ ุงู„ุงู†ุชู‚ุงู„ ุฅู„ู‰ NS-3ุŸ" ููŠ ู‡ุฐุง
ุฑุฃูŠ ุงู„ู…ุคู„ู ุŒ ู…ุง ู„ู… ูŠุชู… ุชุฎูˆูŠู„ ุงู„ู…ุณุชุฎุฏู… ุจุทุฑูŠู‚ุฉ ู…ุง NS-2 (ุฅู…ุง ุนู„ู‰ ุฃุณุงุณ ุงู„ู‚ุงุฆู…ุฉ
ุงู„ุฑุงุญุฉ ุงู„ุดุฎุตูŠุฉ ู…ุน ูˆู…ุนุฑูุฉ NS-2ุŒ ุฃูˆ ุจู†ุงุกู‹ ุนู„ู‰ ู†ู…ูˆุฐุฌ ู…ุญุงูƒุงุฉ ู…ุญุฏุฏ
ู…ุชุงุญ ูู‚ุท ููŠ NS-2) ุŒ ุณูŠูƒูˆู† ุงู„ู…ุณุชุฎุฏู… ุฃูƒุซุฑ ุฅู†ุชุงุฌูŠุฉ ู…ุน NS-3 ู„ู„ุขุชูŠ
ุงู„ุฃุณุจุงุจ:

ยท NS-3 ูŠุชู… ุงู„ุงุญุชูุงุธ ุจู‡ุง ุจุดูƒู„ ู†ุดุท ู…ู† ุฎู„ุงู„ ู‚ุงุฆู…ุฉ ุจุฑูŠุฏูŠุฉ ู†ุดุทุฉ ูˆู…ุชุฌุงูˆุจุฉ ู„ู„ู…ุณุชุฎุฏู…ูŠู† ุŒ ุจูŠู†ู…ุง NS-2 is
ุชู… ุตูŠุงู†ุชู‡ุง ุจุดูƒู„ ุทููŠู ูˆู„ู… ุชุดู‡ุฏ ุชุทูˆุฑู‹ุง ูƒุจูŠุฑู‹ุง ููŠ ุดุฌุฑุฉ ุงู„ูƒูˆุฏ ุงู„ุฑุฆูŠุณูŠุฉ ุงู„ุฎุงุตุฉ ุจู‡ุง
ู„ุฃูƒุซุฑ ู…ู† ุนู‚ุฏ ู…ู† ุงู„ุฒู…ู†.

ยท NS-3 ูŠูˆูุฑ ู…ูŠุฒุงุช ุบูŠุฑ ู…ุชูˆูุฑุฉ ููŠ NS-2ุŒ ู…ุซู„ ุชู†ููŠุฐ ูƒูˆุฏ ุงู„ุชู†ููŠุฐ
ุงู„ุจูŠุฆุฉ (ุงู„ุณู…ุงุญ ู„ู„ู…ุณุชุฎุฏู…ูŠู† ุจุชุดุบูŠู„ ูƒูˆุฏ ุชู†ููŠุฐ ุญู‚ูŠู‚ูŠ ููŠ ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ)

ยท NS-3 ูŠูˆูุฑ ู…ุณุชูˆู‰ ุฃุณุงุณูŠู‹ุง ุฃู‚ู„ ู…ู† ุงู„ุชุฌุฑูŠุฏ ู…ู‚ุงุฑู†ุฉู‹ ุจู€ NS-2ุŒ ู…ู…ุง ูŠุณู…ุญ ู„ู‡ุง ุจุงู„ู…ุญุงุฐุงุฉ
ุฃูุถู„ ู…ุน ูƒูŠููŠุฉ ุชุฌู…ูŠุน ุงู„ุฃู†ุธู…ุฉ ุงู„ุญู‚ูŠู‚ูŠุฉ ู…ุนู‹ุง. ูˆุฌุฏุช ุจุนุถ ุงู„ู‚ูŠูˆุฏ ููŠ NS-2 (ู…ุซู„
ุฏุนู… ุฃู†ูˆุงุน ู…ุชุนุฏุฏุฉ ู…ู† ุงู„ูˆุงุฌู‡ุงุช ุนู„ู‰ ุงู„ุนู‚ุฏ ุจุดูƒู„ ุตุญูŠุญ) ุชู… ู…ุนุงู„ุฌุชู‡ุง ููŠ NS-3.

NS-2 ู„ุฏูŠู‡ุง ู…ุฌู…ูˆุนุฉ ู…ุชู†ูˆุนุฉ ู…ู† ุงู„ูˆุญุฏุงุช ุงู„ุชูŠ ุณุงู‡ู…ุช ุจู‡ุง ุฃูƒุซุฑ ู…ู† ุฐู„ูƒ NS-3ุŒ ู†ุธุฑุง ู„ุทูˆู„ู‡ุง
ุงู„ุชุงุฑูŠุฎ. ู„ูƒู†ุŒ NS-3 ูŠุญุชูˆูŠ ุนู„ู‰ ู†ู…ุงุฐุฌ ุฃูƒุซุฑ ุชูุตูŠู„ุงู‹ ููŠ ุงู„ุนุฏูŠุฏ ู…ู† ู…ุฌุงู„ุงุช ุงู„ุจุญุซ ุงู„ุดุงุฆุนุฉ
(ุจู…ุง ููŠ ุฐู„ูƒ ู†ู…ุงุฐุฌ LTE ูˆ WiFi ุงู„ู…ุชุทูˆุฑุฉ) ุŒ ูˆุฏุนู…ู‡ุง ู„ูƒูˆุฏ ุงู„ุชู†ููŠุฐ
ูŠู‚ุจู„ ู…ุฌู…ูˆุนุฉ ูˆุงุณุนุฉ ุฌุฏู‹ุง ู…ู† ุงู„ู†ู…ุงุฐุฌ ุนุงู„ูŠุฉ ุงู„ุฏู‚ุฉ. ู‚ุฏ ูŠูุงุฌุฃ ุงู„ู…ุณุชุฎุฏู…ูˆู† ู„ู…ุนุฑูุฉ ุฐู„ูƒ
ูŠู…ูƒู† ุชุบู„ูŠู ู…ูƒุฏุณ ุดุจูƒุงุช Linux ุจุงู„ูƒุงู…ู„ ููŠ ู…ู„ู NS-3 ุงู„ุนู‚ุฏุฉ ุŒ ุจุงุณุชุฎุฏุงู… Direct
ุฅุทุงุฑ ุชู†ููŠุฐ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ (DCE). NS-2 ูŠู…ูƒู† ุฃุญูŠุงู†ู‹ุง ู†ู‚ู„ ุงู„ู†ู…ุงุฐุฌ ุฅู„ู‰ ู…ู„ูุงุช NS-3ุŒ ุฎุตูˆุตุง
ุฅุฐุง ุชู… ุชู†ููŠุฐู‡ุง ููŠ C ++.

ุฅุฐุง ูƒู†ุช ููŠ ุดูƒ ุŒ ูุฅู† ุงู„ุฏู„ูŠู„ ุงู„ุฌูŠุฏ ู‡ูˆ ุงู„ู†ุธุฑ ุฅู„ู‰ ูƒู„ ู…ู† ุงู„ู…ุญุงูƒูŠุงุช (ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุบูŠุฑู‡ุง
ุงู„ู…ุญุงูƒุงุฉ) ุŒ ูˆุนู„ู‰ ูˆุฌู‡ ุงู„ุฎุตูˆุต ุงู„ู†ู…ุงุฐุฌ ุงู„ู…ุชุงุญุฉ ู„ุจุญุซูƒ ุŒ ูˆู„ูƒู† ุถุน ููŠ ุงุนุชุจุงุฑูƒ
ุฃู† ุชุฌุฑุจุชูƒ ู‚ุฏ ุชูƒูˆู† ุฃูุถู„ ููŠ ุงุณุชุฎุฏุงู… ุงู„ุฃุฏุงุฉ ุงู„ุชูŠ ูŠุชู… ุชุทูˆูŠุฑู‡ุง ุจู†ุดุงุท ูˆ
ู…ุตุงู†ุฉ (NS-3).

ุงู„ู…ุณุงู‡ู…ุฉ
NS-3 ู‡ูˆ ู…ุญุงูƒุงุฉ ุจุญุซูŠุฉ ูˆุชุนู„ูŠู…ูŠุฉ ุŒ ู…ู† ู‚ุจู„ ู…ุฌุชู…ุน ุงู„ุจุญุซ ูˆู…ู† ุฃุฌู„ู‡. ูุฅู†ู‡ ุณูˆู
ุงู„ุงุนุชู…ุงุฏ ุนู„ู‰ ุงู„ู…ุณุงู‡ู…ุงุช ุงู„ู…ุณุชู…ุฑุฉ ู„ู„ู…ุฌุชู…ุน ู„ุชุทูˆูŠุฑ ู†ู…ุงุฐุฌ ุฌุฏูŠุฏุฉ ุฃูˆ ุชุตุญูŠุญ ุฃูˆ
ุงู„ุญูุงุธ ุนู„ู‰ ุงู„ู…ูˆุฌูˆุฏุฉ ุŒ ูˆุชุจุงุฏู„ ุงู„ู†ุชุงุฆุฌ. ู‡ู†ุงูƒ ุจุนุถ ุงู„ุณูŠุงุณุงุช ุงู„ุชูŠ ู†ุฃู…ู„ ุฃู† ุชูุนู„ู‡ุง
ุชุดุฌูŠุน ุงู„ู†ุงุณ ุนู„ู‰ ุงู„ู…ุณุงู‡ู…ุฉ ููŠ NS-3 ู…ุซู„ ู…ุง ู„ุฏูŠู‡ู… ู…ู† ุฃุฌู„ NS-2:

ุชุฑุฎูŠุต ู…ูุชูˆุญ ุงู„ู…ุตุฏุฑ ุนู„ู‰ ุฃุณุงุณ ุชูˆุงูู‚ GNU GPLv2

ยท ูˆูŠูƒูŠ

ยท ุณุงู‡ู…ุช ุฑู…ุฒ ุงู„ุตูุญุฉ ุŒ ุนู„ู‰ ุบุฑุงุฑ NS-2ุฑู…ุฒ ุงู„ู…ุณุงู‡ู…ุฉ ุงู„ุดู‡ูŠุฑ ุตูุญุฉ

ยท ูุชุญ ุนู„ุฉ ุชุนู‚ุจ

ู†ุญู† ู†ุฏุฑูƒ ุฃู†ู‡ ุฅุฐุง ูƒู†ุช ุชู‚ุฑุฃ ู‡ุฐู‡ ุงู„ูˆุซูŠู‚ุฉ ุŒ ูุฅู† ุงู„ู…ุณุงู‡ู…ุฉ ููŠ ุงู„ู…ุดุฑูˆุน ู‡ูŠ
ุฑุจู…ุง ู„ุง ูŠูƒูˆู† ู…ุตุฏุฑ ู‚ู„ู‚ูƒ ุงู„ุฃูˆู„ ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ุŒ ู„ูƒู†ู†ุง ู†ุฑูŠุฏูƒ ุฃู† ุชูƒูˆู† ุนู„ู‰ ุฏุฑุงูŠุฉ ุจุฐู„ูƒ
ุงู„ู…ุณุงู‡ู…ุฉ ููŠ ุฑูˆุญ ุงู„ู…ุดุฑูˆุน ูˆุญุชู‰ ูุนู„ ุฅุณู‚ุงุท ู…ู„ุงุญุธุฉ ู„ู†ุง
ุญูˆู„ ุชุฌุฑุจุชูƒ ุงู„ู…ุจูƒุฑุฉ ู…ุน NS-3 (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ "ู„ู… ูŠูƒู† ู‚ุณู… ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ู‡ุฐุง ูˆุงุถุญู‹ุง ...") ุŒ
ู‡ูŠ ู…ุญู„ ุชู‚ุฏูŠุฑ ูƒุจูŠุฑ ุชู‚ุงุฑูŠุฑ ุงู„ูˆุซุงุฆู‚ ุงู„ุชูŠ ู„ุง ู…ุนู†ู‰ ู„ู‡ุง ุŒ ูˆู…ุง ุฅู„ู‰ ุฐู„ูƒ.

ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ู…ู†ุธู…ุฉ
ูŠูุชุฑุถ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุฃู† ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุฌุฏุฏ ู‚ุฏ ูŠุชุจุนูˆู† ููŠ ุงู„ุจุฏุงูŠุฉ ู…ุณุงุฑู‹ุง ู…ุซู„ ู…ุง ูŠู„ูŠ:

ยท ุญุงูˆู„ ุชู†ุฒูŠู„ ูˆุจู†ุงุก ู†ุณุฎุฉ ุ›

ยท ุญุงูˆู„ ุชุดุบูŠู„ ุจุนุถ ู†ู…ุงุฐุฌ ุงู„ุจุฑุงู…ุฌ.

ยท ุงู†ุธุฑ ุฅู„ู‰ ุฅุฎุฑุงุฌ ุงู„ู…ุญุงูƒุงุฉ ุŒ ูˆุญุงูˆู„ ุชุนุฏูŠู„ู‡.

ู†ุชูŠุฌุฉ ู„ุฐู„ูƒ ุŒ ุญุงูˆู„ู†ุง ุชู†ุธูŠู… ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุนู„ู‰ ุทูˆู„ ุงู„ุชุณู„ุณู„ ุงู„ุนุฑูŠุถ ุฃุนู„ุงู‡
ุงู„ุชุงู„ูŠ.

ุงู„ู…ูˆุงุฑุฏ


ุฅู†ู‘ ุดุจูƒุฉ
ู‡ู†ุงูƒ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ู…ูˆุงุฑุฏ ุงู„ู‡ุงู…ุฉ ุฃูŠ ู…ู†ู‡ุง NS-3 ูŠุฌุจ ุฃู† ูŠูƒูˆู† ุงู„ู…ุณุชุฎุฏู… ุนู„ู‰ ุนู„ู…. ุงู„ูˆูŠุจ ุงู„ุฑุฆูŠุณูŠ
ูŠู‚ุน ุงู„ู…ูˆู‚ุน ููŠ http://www.nsnam.org ูˆูŠูˆูุฑ ุงู„ูˆุตูˆู„ ุฅู„ู‰ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุฃุณุงุณูŠุฉ ุญูˆู„
NS-3 ู†ุธุงู…. ูˆุซุงุฆู‚ ู…ูุตู„ุฉ ู…ุชุงุญุฉ ู…ู† ุฎู„ุงู„ ู…ูˆู‚ุน ุงู„ูˆูŠุจ ุงู„ุฑุฆูŠุณูŠ ููŠ
http://www.nsnam.org/documentation/. ูŠู…ูƒู†ูƒ ุฃูŠุถู‹ุง ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ู…ุณุชู†ุฏุงุช ุงู„ู…ุชุนู„ู‚ุฉ ุจุงู„ู†ุธุงู…
ุงู„ู‡ู†ุฏุณุฉ ุงู„ู…ุนู…ุงุฑูŠุฉ ู…ู† ู‡ุฐู‡ ุงู„ุตูุญุฉ.

ู‡ู†ุงูƒ ูˆูŠูƒูŠ ูŠูƒู…ู„ ุงู„ู…ู„ู ุงู„ุฑุฆูŠุณูŠ NS-3 ู…ูˆู‚ุน ุงู„ูˆูŠุจ ุงู„ุฐูŠ ุณุชุฌุฏู‡ ููŠ
http://www.nsnam.org/wiki/. ุณุชุฌุฏ ุฃุณุฆู„ุฉ ูˆุฃุฌูˆุจุฉ ุญูˆู„ ุงู„ู…ุณุชุฎุฏู… ูˆุงู„ู…ุทูˆุฑ ู‡ู†ุงูƒ ุŒ ูˆูƒุฐู„ูƒ
ุฃุฏู„ุฉ ุงุณุชูƒุดุงู ุงู„ุฃุฎุทุงุก ูˆุฅุตู„ุงุญู‡ุง ุŒ ูƒูˆุฏ ู…ุณุงู‡ู… ู…ู† ุทุฑู ุซุงู„ุซ ุŒ ุฃูˆุฑุงู‚ ุŒ ุฅู„ุฎ.

ูŠู…ูƒู† ุงู„ุนุซูˆุฑ ุนู„ู‰ ุดูุฑุฉ ุงู„ู…ุตุฏุฑ ูˆุชุตูุญู‡ุง ููŠ http://code.nsnam.org/. ู‡ู†ุงูƒ ุณุชุฌุฏ
ุงุณู… ุดุฌุฑุฉ ุงู„ุชุทูˆูŠุฑ ุงู„ุญุงู„ูŠุฉ ููŠ ุงู„ู…ุณุชูˆุฏุน NS-3-ุฏูŠู. ุงู„ุฅุตุฏุงุฑุงุช ุงู„ุณุงุจู‚ุฉ ูˆ
ูŠู…ูƒู† ุฃูŠุถู‹ุง ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ู…ุณุชูˆุฏุนุงุช ุงู„ุชุฌุฑูŠุจูŠุฉ ู„ู„ู…ุทูˆุฑูŠู† ุงู„ุฃุณุงุณูŠูŠู† ู‡ู†ุงูƒ.

ุฒุฆุจู‚ูŠ
ุชุญุชุงุฌ ุฃู†ุธู…ุฉ ุงู„ุจุฑุงู…ุฌ ุงู„ู…ุนู‚ุฏุฉ ุฅู„ู‰ ุทุฑูŠู‚ุฉ ู…ุง ู„ุฅุฏุงุฑุฉ ุงู„ู…ู†ุธู…ุฉ ูˆุงู„ุชุบูŠูŠุฑุงุช ุงู„ุชูŠ ุชุทุฑุฃ ุนู„ู‰
ุงู„ูƒูˆุฏ ุงู„ุฃุณุงุณูŠ ูˆุงู„ูˆุซุงุฆู‚. ู‡ู†ุงูƒ ุทุฑู‚ ุนุฏูŠุฏุฉ ู„ู„ู‚ูŠุงู… ุจู‡ุฐุง ุงู„ุนู…ู„ ุงู„ูุฐ ุŒ ูˆูŠู…ูƒู†ูƒ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ
ุณู…ุนุช ุนู† ุจุนุถ ุงู„ุฃู†ุธู…ุฉ ุงู„ู…ุณุชุฎุฏู…ุฉ ุญุงู„ูŠู‹ุง ู„ู„ู‚ูŠุงู… ุจุฐู„ูƒ. ุงู„ู…ุชุฒุงู…ู†ุฉ
ุฑุจู…ุง ูŠูƒูˆู† ู†ุธุงู… ุงู„ุฅุตุฏุงุฑ (CVS) ู‡ูˆ ุงู„ุฃูƒุซุฑ ุดู‡ุฑุฉ.

ุฅู†ู‘ NS-3 ูŠุณุชุฎุฏู… ุงู„ู…ุดุฑูˆุน Mercurial ูƒู†ุธุงู… ุฅุฏุงุฑุฉ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ู…ุตุฏุฑ. ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ูƒ ู„ุง ุชูุนู„ ุฐู„ูƒ
ุจุญุงุฌุฉ ุฅู„ู‰ ู…ุนุฑูุฉ ุงู„ูƒุซูŠุฑ ุนู† Mercurial ู„ุฅูƒู…ุงู„ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุŒ ู†ูˆุตูŠ
ุงู„ุชุนุฑู ุนู„ู‰ Mercurial ูˆุงุณุชุฎุฏุงู…ู‡ ู„ู„ูˆุตูˆู„ ุฅู„ู‰ ุดูุฑุฉ ุงู„ู…ุตุฏุฑ. Mercurial ู„ู‡ ุงู…ุชุฏุงุฏ
ู…ูˆู‚ุน ุงู„ูˆูŠุจ ููŠ http://www.selenic.com/mercurial/ุŒ ูˆุงู„ุชูŠ ูŠู…ูƒู†ูƒ ู…ู† ุฎู„ุงู„ู‡ุง ุงู„ุญุตูˆู„ ุนู„ู‰ ุซู†ุงุฆูŠ ุฃูˆ ู…ุตุฏุฑ
ุฅุตุฏุงุฑุงุช ู†ุธุงู… ุฅุฏุงุฑุฉ ุชูƒูˆูŠู† ุงู„ุจุฑุงู…ุฌ (SCM). ุณูŠู„ูŠู†ูŠูƒ (ุงู„ู…ุทูˆุฑ
Mercurial) ุฃูŠุถู‹ุง ุจุฑู†ุงู…ุฌู‹ุง ุชุนู„ูŠู…ูŠู‹ุง ููŠ
http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial/ุŒ ูˆุฏู„ูŠู„ QuickStart ููŠ
http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart/.

ูŠู…ูƒู†ูƒ ุฃูŠุถู‹ุง ุงู„ุนุซูˆุฑ ุนู„ู‰ ู…ุนู„ูˆู…ุงุช ุญูŠูˆูŠุฉ ุญูˆู„ ุงุณุชุฎุฏุงู… Mercurial ูˆ NS-3 ุนู„ู‰ ุงู„ุฑุฆูŠุณูŠ NS-3 ุงู„ูˆูŠุจ
ู…ูˆู‚ุน.

WAF
ุจู…ุฌุฑุฏ ุชู†ุฒูŠู„ ุดูุฑุฉ ุงู„ู…ุตุฏุฑ ุฅู„ู‰ ู†ุธุงู…ูƒ ุงู„ู…ุญู„ูŠ ุŒ ุณุชุญุชุงุฌ ุฅู„ู‰ ุชุฌู…ูŠุน ุฐู„ูƒ
ู…ุตุฏุฑ ู„ุฅู†ุชุงุฌ ุจุฑุงู…ุฌ ู‚ุงุจู„ุฉ ู„ู„ุงุณุชุฎุฏุงู…. ุชู…ุงู…ู‹ุง ูƒู…ุง ููŠ ุญุงู„ุฉ ุฅุฏุงุฑุฉ ุงู„ูƒูˆุฏ ุงู„ู…ุตุฏุฑูŠ ุŒ ู‡ู†ุงูƒ
ู‡ู†ุงูƒ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฃุฏูˆุงุช ุงู„ู…ุชุงุญุฉ ู„ุฃุฏุงุก ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ. ุฑุจู…ุง ุงู„ุฃูƒุซุฑ ุดู‡ุฑุฉ ู…ู† ู‡ุคู„ุงุก
ุงู„ุฃุฏูˆุงุช ุฌุนู„. ุฅู„ู‰ ุฌุงู†ุจ ูƒูˆู†ู‡ุง ุงู„ุฃูƒุซุฑ ุดู‡ุฑุฉ ุŒ ุฌุนู„ ุฑุจู…ุง ู‡ูˆ ุงู„ุฃุตุนุจ
ู„ุงุณุชุฎุฏุงู…ู‡ุง ููŠ ู†ุธุงู… ูƒุจูŠุฑ ุฌุฏู‹ุง ูˆู‚ุงุจู„ ู„ู„ุชูƒูˆูŠู† ุจุฏุฑุฌุฉ ุนุงู„ูŠุฉ. ุจุณุจุจ ู‡ุฐุง ุŒ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุจุฏุงุฆู„
ุชู… ุชุทูˆูŠุฑู‡. ุชู… ุชุทูˆูŠุฑ ู‡ุฐู‡ ุงู„ุฃู†ุธู…ุฉ ู…ุคุฎุฑู‹ุง ุจุงุณุชุฎุฏุงู… Python
ู„ุบุฉ.

ูŠุณุชุฎุฏู… ู†ุธุงู… ุงู„ุจู†ุงุก Waf ุนู„ู‰ NS-3 ู…ุดุฑูˆุน. ุฅู†ู‡ ุฃุญุฏ ุงู„ุฌูŠู„ ุงู„ุฌุฏูŠุฏ ู…ู†
ุฃู†ุธู…ุฉ ุจู†ุงุก ู…ุจู†ูŠุฉ ุนู„ู‰ ุจุงูŠุซูˆู†. ู„ู† ุชุญุชุงุฌ ุฅู„ู‰ ูู‡ู… ุฃูŠ ู„ุบุฉ ุจุงูŠุซูˆู† ู„ุจู†ุงุก ู…ู„ู
ุงู„ู‚ุงุฆู…ุฉ NS-3 ู†ุธุงู….

ู„ู„ู…ู‡ุชู…ูŠู† ุจุงู„ุชูุงุตูŠู„ ุงู„ุฏู…ูˆูŠุฉ ู„ู€ Waf ุŒ ูŠู…ูƒู† ุงู„ุนุซูˆุฑ ุนู„ู‰ ู…ูˆู‚ุน ุงู„ูˆูŠุจ ุงู„ุฑุฆูŠุณูŠ ุนู„ู‰
http://code.google.com/p/waf/.

ุงู„ุชุทูˆูŠุฑ ุงู„ุจูŠุฆุฉ
ูƒู…ุง ุฐูƒุฑ ุฃุนู„ุงู‡ ุŒ ูุฅู† ุงู„ุจุฑู…ุฌุฉ ุงู„ู†ุตูŠุฉ ุจุชู†ุณูŠู‚ NS-3 ูŠุชู… ุฅุฌุฑุงุคู‡ ููŠ C ++ ุฃูˆ Python. ุฃูƒุซุฑ ู…ู† NS-3 API ู‡ูˆ
ู…ุชูˆูุฑ ููŠ Python ุŒ ู„ูƒู† ุงู„ู†ู…ุงุฐุฌ ู…ูƒุชูˆุจุฉ ุจู„ุบุฉ C ++ ููŠ ูƒู„ุชุง ุงู„ุญุงู„ุชูŠู†. ุนู…ู„
ูŠูุชุฑุถ ููŠ ู‡ุฐุง ุงู„ู…ุณุชู†ุฏ ู…ุนุฑูุฉ ู„ุบุฉ C ++ ูˆุงู„ู…ูุงู‡ูŠู… ุงู„ูƒูŠู†ูˆู†ูŠุฉ. ุณูˆู ู†ุฃุฎุฐ
ุจุนุถ ุงู„ูˆู‚ุช ู„ู…ุฑุงุฌุนุฉ ุจุนุถ ุงู„ู…ูุงู‡ูŠู… ุงู„ุฃูƒุซุฑ ุชู‚ุฏู…ู‹ุง ุฃูˆ ุฑุจู…ุง ู„ุบุฉ ุบูŠุฑ ู…ุฃู„ูˆูุฉ
ุงู„ู…ูŠุฒุงุช ูˆุงู„ุชุนุงุจูŠุฑ ูˆุฃู†ู…ุงุท ุงู„ุชุตู…ูŠู… ูƒู…ุง ุชุธู‡ุฑ. ู„ุง ู†ุฑูŠุฏ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ
ุงู†ุชู‚ู„ ุฅู„ู‰ ุจุฑู†ุงู…ุฌ ุชุนู„ูŠู…ูŠ C ++ ุŒ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฐู„ูƒ ุŒ ู„ุฐู„ูƒ ู†ุชูˆู‚ุน ุฃู…ุฑู‹ุง ุฃุณุงุณูŠู‹ุง ู„ู„ุบุฉ.
ู‡ู†ุงูƒ ุนุฏุฏ ู„ุง ูŠู…ูƒู† ุชุตูˆุฑู‡ ุชู‚ุฑูŠุจู‹ุง ู…ู† ู…ุตุงุฏุฑ ุงู„ู…ุนู„ูˆู…ุงุช ุญูˆู„ C ++ ุงู„ู…ุชุงุญุฉ ุนู„ู‰
ุงู„ูˆูŠุจ ุฃูˆ ุงู„ู…ุทุจูˆุน.

ุฅุฐุง ูƒู†ุช ู…ุณุชุฎุฏู…ู‹ุง ุฌุฏูŠุฏู‹ุง ู„ู€ C ++ ุŒ ูู‚ุฏ ุชุฑุบุจ ููŠ ุงู„ุนุซูˆุฑ ุนู„ู‰ ูƒุชุงุจ ุชุนู„ูŠู…ูŠ ุฃูˆ ูƒุชุงุจ ุทุจุฎ ุฃูˆ ู…ูˆู‚ุน ูˆูŠุจ
ูˆุงู„ุนู…ู„ ู…ู† ุฎู„ุงู„ ุงู„ู…ูŠุฒุงุช ุงู„ุฃุณุงุณูŠุฉ ู„ู„ุบุฉ ุนู„ู‰ ุงู„ุฃู‚ู„ ู‚ุจู„ ุงู„ู…ุชุงุจุนุฉ. ู„
ู†ู…ูˆุฐุฌุŒ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ.

ุฅู†ู‘ NS-3 ูŠุณุชุฎุฏู… ุงู„ู†ุธุงู… ุนุฏุฉ ู…ูƒูˆู†ุงุช ู…ู† "ุณู„ุณู„ุฉ ุฃุฏูˆุงุช" ุฌู†ูˆ ู…ู† ุฃุฌู„ ุงู„ุชู†ู…ูŠุฉ. ุฃ
ุณู„ุณู„ุฉ ุฃุฏูˆุงุช ุงู„ุจุฑู…ุฌูŠุงุช ู‡ูŠ ู…ุฌู…ูˆุนุฉ ุฃุฏูˆุงุช ุงู„ุจุฑู…ุฌุฉ ุงู„ู…ุชุงุญุฉ ููŠ ุจูŠุฆุฉ ู…ุนูŠู†ุฉ. ู„
ู…ุฑุงุฌุนุฉ ุณุฑูŠุนุฉ ู„ู…ุง ุชู… ุชุถู…ูŠู†ู‡ ููŠ ุณู„ุณู„ุฉ ุฃุฏูˆุงุช ุฌู†ูˆ ุงู†ุธุฑ ุŒ
http://en.wikipedia.org/wiki/GNU_toolchain. NS-3 ูŠุณุชุฎุฏู… gcc ูˆ GNU binutils ูˆ gdb.
ูˆู…ุน ุฐู„ูƒ ุŒ ูุฅู†ู†ุง ู„ุง ู†ุณุชุฎุฏู… ุฃุฏูˆุงุช ู†ุธุงู… ุงู„ุจู†ุงุก GNU ุŒ ูˆู„ุง ุงู„ุชุตู†ูŠุน ูˆู„ุง ุงู„ุฃุฏูˆุงุช ุงู„ุขู„ูŠุฉ. ู†ุญู† ู†ุณุชุฎุฏู… Waf
ู„ู‡ุฐู‡ ุงู„ูˆุธุงุฆู.

ุนุงุฏุฉู‹ ู…ุง ูŠูƒูˆู† ู…ู„ู NS-3 ุงู„ู…ุคู„ู ุณูŠุนู…ู„ ููŠ Linux ุฃูˆ ุจูŠุฆุฉ ุชุดุจู‡ Linux. ู„ุฃูˆู„ุฆูƒ
ูŠุนู…ู„ ุชุญุช Windows ุŒ ุชูˆุฌุฏ ุจูŠุฆุงุช ุชุญุงูƒูŠ ุจูŠุฆุฉ Linux
ุจุฏุฑุฌุงุช ู…ุฎุชู„ูุฉ. ุงู„ NS-3 ุชู… ุฏุนู… ุงู„ู…ุดุฑูˆุน ููŠ ุงู„ู…ุงุถูŠ (ูˆู„ูƒู† ู„ูŠุณ ุญุงู„ูŠู‹ุง)
ุงู„ุชุทูˆูŠุฑ ููŠ ุจูŠุฆุฉ Cygwin ู„ู‡ุคู„ุงุก ุงู„ู…ุณุชุฎุฏู…ูŠู†. ูŠุฑู‰ http://www.cygwin.com/ ู„ู€
ุชูุงุตูŠู„ ุญูˆู„ ุงู„ุชู†ุฒูŠู„ ุŒ ูˆู‚ู… ุจุฒูŠุงุฑุฉ NS-3 wiki ู„ู…ุฒูŠุฏ ู…ู† ุงู„ู…ุนู„ูˆู…ุงุช ุญูˆู„ Cygwin ูˆ
NS-3. MinGW ุบูŠุฑ ู…ุฏุนูˆู… ุฑุณู…ูŠู‹ุง ุญุงู„ูŠู‹ุง. ุจุฏูŠู„ ุขุฎุฑ ู„ู€ Cygwin ู‡ูˆ
ู‚ู… ุจุชุซุจูŠุช ุจูŠุฆุฉ ุฌู‡ุงุฒ ุธุงู‡ุฑูŠ ู…ุซู„ ุฎุงุฏู… VMware ูˆุชุซุจูŠุช ู†ุธุงู… Linux ุงู„ุธุงู‡ุฑูŠ
ุขู„ุฉ.

ุงู„ุจุฑูŠุฒุฉ ุจุฑู…ุฌุฉ ูˆุชุทูˆูŠุฑ
ุณู†ูุชุฑุถ ู…ุฑูู‚ู‹ุง ุฃุณุงุณูŠู‹ุง ู…ุน Berkeley Sockets API ููŠ ุงู„ุฃู…ุซู„ุฉ ุงู„ู…ุณุชุฎุฏู…ุฉ ููŠ ู‡ุฐุง
ุฏุฑุณ ุชุนู„ูŠู…ูŠ. ุฅุฐุง ูƒู†ุช ุฌุฏูŠุฏู‹ุง ุนู„ู‰ ุงู„ู…ู‚ุงุจุณ ุŒ ูุฅู†ู†ุง ู†ูˆุตูŠ ุจู…ุฑุงุฌุนุฉ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช ูˆุจุนุถ ุงู„ุงุณุชุฎุฏุงู…ุงุช ุงู„ุดุงุฆุนุฉ
ุญุงู„ุงุช. ู„ู„ุญุตูˆู„ ุนู„ู‰ ู†ุธุฑุฉ ุนุงู…ุฉ ุฌูŠุฏุฉ ุนู„ู‰ ุจุฑู…ุฌุฉ ู…ุขุฎุฐ TCP / IP ุŒ ู†ูˆุตูŠ TCP / IP ู…ุขุฎุฐ in
C, ุฏูˆู†ุงู‡ูˆ ูƒุงู„ููŠุฑุช.

ู‡ู†ุงูƒ ู…ูˆู‚ุน ูˆูŠุจ ู…ุฑุชุจุท ูŠุชุถู…ู† ู…ุตุฏุฑู‹ุง ู„ู„ุฃู…ุซู„ุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ูƒุชุงุจ ุŒ ูˆุงู„ุชูŠ
ูŠู…ูƒู†ูƒ ุฃู† ุชุฌุฏ ููŠ: http://cs.baylor.edu/~donahoo/practical/CSockets/.

ุฅุฐุง ูู‡ู…ุช ุงู„ูุตูˆู„ ุงู„ุฃุฑุจุนุฉ ุงู„ุฃูˆู„ู‰ ู…ู† ุงู„ูƒุชุงุจ (ุฃูˆ ู„ุฃูˆู„ุฆูƒ ุงู„ุฐูŠู† ู„ูŠุณ ู„ุฏูŠู‡ู… ูˆุตูˆู„
ุฅู„ู‰ ู†ุณุฎุฉ ู…ู† ุงู„ูƒุชุงุจ ุŒ ุนู…ู„ุงุก ูˆุฎูˆุงุฏู… ุงู„ุตุฏู‰ ุงู„ู…ูˆุถุญุฉ ููŠ ู…ูˆู‚ุน ุงู„ูˆูŠุจ ุฃุนู„ุงู‡) ุณุชูุนู„
ุฃู† ุชูƒูˆู† ููŠ ุญุงู„ุฉ ุฌูŠุฏุฉ ู„ูู‡ู… ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ. ูŠูˆุฌุฏ ูƒุชุงุจ ู…ุดุงุจู‡ ุนู† ุงู„ุจุซ ุงู„ู…ุชุนุฏุฏ
ู…ุขุฎุฐ ุงู„ุฅุฑุณุงู„ ุงู„ู…ุชุนุฏุฏ ู…ุขุฎุฐ ู…ุงูƒูˆูุณูƒูŠ ุฃู„ู…ุฑูˆุซ. ูŠุบุทูŠ ุงู„ู…ูˆุงุฏ ุงู„ุชูŠ ู‚ุฏ ุชุญุชุงุฌ ุฅู„ูŠู‡ุง
ุงูู‡ู… ุฅุฐุง ู†ุธุฑุช ุฅู„ู‰ ุฃู…ุซู„ุฉ ุงู„ุฅุฑุณุงู„ ุงู„ู…ุชุนุฏุฏ ููŠ ุงู„ุชูˆุฒูŠุน.

ุงู„ุญุตูˆู„ ุนู„ู‰ ุจุฏุฃุช


ูŠู‡ุฏู ู‡ุฐุง ุงู„ู‚ุณู… ุฅู„ู‰ ุฌุนู„ ุงู„ู…ุณุชุฎุฏู… ููŠ ุญุงู„ุฉ ุนู…ู„ ุชุจุฏุฃ ุจุขู„ุฉ
ุฑุจู…ุง ู„ู… ูŠูƒู† ู„ุฏูŠู‡ NS-3 ุงู„ู…ุซุจุชุฉ. ูˆู‡ูˆ ูŠุบุทูŠ ุงู„ู…ู†ุตุงุช ุงู„ู…ุฏุนูˆู…ุฉ ูˆุงู„ู…ุชุทู„ุจุงุช ุงู„ุฃุณุงุณูŠุฉ ูˆุทุฑู‚
ุชุญุตู„ NS-3ุŒ ุทุฑู‚ ุงู„ุจู†ุงุก NS-3ุŒ ูˆุทุฑู‚ ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุฅู†ุดุงุก ูˆุชุดุบูŠู„ ุงู„ุจุฑุงู…ุฌ ุงู„ุจุณูŠุทุฉ.

ู†ุธุฑุฉ ุนุงู…ุฉ
NS-3 ุชู… ุจู†ุงุคู‡ ูƒู†ุธุงู… ู…ู† ู…ูƒุชุจุงุช ุงู„ุจุฑุงู…ุฌ ุงู„ุชูŠ ุชุนู…ู„ ู…ุนู‹ุง. ูŠู…ูƒู† ุฃู† ุชูƒูˆู† ุจุฑุงู…ุฌ ุงู„ู…ุณุชุฎุฏู…
ู…ูƒุชูˆุจุฉ ุชุฑุชุจุท (ุฃูˆ ุชุณุชูˆุฑุฏ ู…ู†) ู‡ุฐู‡ ุงู„ู…ูƒุชุจุงุช. ุจุฑุงู…ุฌ ุงู„ู…ุณุชุฎุฏู… ู…ูƒุชูˆุจุฉ ุจู„ุบุฉ
ุฅู…ุง ู„ุบุงุช ุงู„ุจุฑู…ุฌุฉ C ++ ุฃูˆ Python.

NS-3 ูŠุชู… ุชูˆุฒูŠุนู‡ ูƒูƒูˆุฏ ู…ุตุฏุฑ ุŒ ู…ู…ุง ูŠุนู†ูŠ ุฃู† ุงู„ู†ุธุงู… ุงู„ู…ุณุชู‡ุฏู ูŠุญุชุงุฌ ุฅู„ู‰
ุจูŠุฆุฉ ุชุทูˆูŠุฑ ุงู„ุจุฑู…ุฌูŠุงุช ู„ุจู†ุงุก ุงู„ู…ูƒุชุจุงุช ุฃูˆู„ุงู‹ ุŒ ุซู… ุจู†ุงุก ุงู„ู…ุณุชุฎุฏู…
ุจุฑู†ุงู…ุฌ. NS-3 ูŠู…ูƒู† ุชูˆุฒูŠุนู‡ุง ู…ู† ุญูŠุซ ุงู„ู…ุจุฏุฃ ูƒู…ูƒุชุจุงุช ู…ุจู†ูŠุฉ ู…ุณุจู‚ู‹ุง ู„ู…ุฌู…ูˆุนุฉ ู…ุฎุชุงุฑุฉ
ุงู„ุฃู†ุธู…ุฉ ุŒ ูˆู‚ุฏ ูŠุชู… ุชูˆุฒูŠุนู‡ุง ููŠ ุงู„ู…ุณุชู‚ุจู„ ุจู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ ุŒ ูˆู„ูƒู† ููŠ ุงู„ูˆู‚ุช ุงู„ุญุงุถุฑ ุŒ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ู…ุณุชุฎุฏู…ูŠู†
ููŠ ุงู„ูˆุงู‚ุน ูŠู‚ูˆู…ูˆู† ุจุนู…ู„ู‡ู… ุนู† ุทุฑูŠู‚ ุงู„ุชุญุฑูŠุฑ NS-3 ู†ูุณู‡ุง ุŒ ู„ุฐุง ูุฅู† ูˆุฌูˆุฏ ุดูุฑุฉ ุงู„ู…ุตุฏุฑ ุญูˆู„ู‡ุง ู„ุฅุนุงุฏุฉ ุจู†ุงุฆู‡ุง
ุงู„ู…ูƒุชุจุงุช ู…ููŠุฏุฉ. ุฅุฐุง ูƒุงู† ุดุฎุต ู…ุง ูŠุฑุบุจ ููŠ ุงู„ู‚ูŠุงู… ุจู…ู‡ู…ุฉ ุตู†ุน ู…ุณุจู‚ ุงู„ุตู†ุน
ู…ูƒุชุจุงุช ูˆุญุฒู… ู„ุฃู†ุธู…ุฉ ุงู„ุชุดุบูŠู„ ุŒ ูŠุฑุฌู‰ ุงู„ุงุชุตุงู„ ุจุงู„ุจุฑูŠุฏูŠุฉ ns-Developers
ู‚ุงุฆู…ุฉ.

ููŠ ู…ุง ูŠู„ูŠ ุŒ ุณู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ ุทุฑูŠู‚ุชูŠู† ู„ู„ุชู†ุฒูŠู„ ูˆุงู„ุจู†ุงุก NS-3. ุงู„ุฃูˆู„ ู‡ูˆ
ู„ุชู†ุฒูŠู„ ูˆุจู†ุงุก ุฅุตุฏุงุฑ ุฑุณู…ูŠ ู…ู† ู…ูˆู‚ุน ุงู„ูˆูŠุจ ุงู„ุฑุฆูŠุณูŠ. ูˆุงู„ุซุงู†ูŠ ู‡ูˆ ุฌู„ุจ
ูˆุจู†ุงุก ู†ุณุฎ ุชุทูˆูŠุฑ ู…ู† NS-3. ุณู†ุณุชุนุฑุถ ูƒู„ุง ุงู„ู…ุซุงู„ูŠู† ู…ู†ุฐ ุงู„ุฃุฏูˆุงุช
ุงู„ู…ุนู†ูŠุฉ ู…ุฎุชู„ูุฉ ู‚ู„ูŠู„ุง.

ุชุญู…ูŠู„ NS-3
ุฅู†ู‘ NS-3 ุงู„ู†ุธุงู… ูƒูƒู„ ู‡ูˆ ู†ุธุงู… ู…ุนู‚ุฏ ุฅู„ู‰ ุญุฏ ู…ุง ูˆู„ุฏูŠู‡ ุนุฏุฏ ู…ู† ุงู„ุชุจุนูŠุงุช ุนู„ูŠู‡
ุงู„ู…ูƒูˆู†ุงุช ุงู„ุฃุฎุฑู‰. ุฅู„ู‰ ุฌุงู†ุจ ุงู„ุฃู†ุธู…ุฉ ุงู„ุชูŠ ู…ู† ุงู„ู…ุฑุฌุญ ุฃู† ุชุชุนุงู…ู„ ู…ุนู‡ุง ูƒู„ ูŠูˆู… (ู…ู„ู
GNU toolchain ุŒ Mercurial ุŒ ู…ุญุฑุฑ ู†ุตูˆุต) ุณุชุญุชุงุฌ ุฅู„ู‰ ุงู„ุชุฃูƒุฏ ู…ู† ุฃู† ุนุฏุฏู‹ุง ู…ู†
ู…ูƒุชุจุงุช ุฅุถุงููŠุฉ ู…ูˆุฌูˆุฏุฉ ุนู„ู‰ ู†ุธุงู…ูƒ ู‚ุจู„ ุงู„ู…ุชุงุจุนุฉ. NS-3 ูŠูˆูุฑ ูˆูŠูƒูŠ
ุตูุญุฉ ุชุชุถู…ู† ุตูุญุงุช ุจู‡ุง ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุชู„ู…ูŠุญุงุช ูˆุงู„ู†ุตุงุฆุญ ุงู„ู…ููŠุฏุฉ. ุฅุญุฏู‰ ู‡ุฐู‡ ุงู„ุตูุญุงุช ู‡ูŠ
ุตูุญุฉ "ุงู„ุชุซุจูŠุช" ุŒ http://www.nsnam.org/wiki/Installation.

ูŠูˆุถุญ ู‚ุณู… "ุงู„ู…ุชุทู„ุจุงุช ุงู„ุฃุณุงุณูŠุฉ" ููŠ ุตูุญุฉ wiki ู‡ุฐู‡ ุงู„ุญุฒู… ุงู„ู…ุทู„ูˆุจุฉ
ุฏุนู… ู…ุดุชุฑูƒ NS-3 ุงู„ุฎูŠุงุฑุงุช ุŒ ูƒู…ุง ูŠูˆูุฑ ุงู„ุฃูˆุงู…ุฑ ุงู„ู…ุณุชุฎุฏู…ุฉ ู„ุชุซุจูŠุชู‡ุง ู…ู† ุฃุฌู„
ู…ุชุบูŠุฑุงุช Linux ุงู„ุดุงุฆุนุฉ. ุณูŠุชุนูŠู† ุนู„ู‰ ู…ุณุชุฎุฏู…ูŠ Cygwin ุงุณุชุฎุฏุงู… ู…ุซุจุช Cygwin (ุฅุฐุง ูƒู†ุช ู…ู† ู…ุณุชุฎุฏู…ูŠ
ู…ุณุชุฎุฏู… Cygwin ุŒ ู„ู‚ุฏ ุงุณุชุฎุฏู…ุชู‡ ู„ุชุซุจูŠุช Cygwin).

ู‚ุฏ ุชุฑุบุจ ููŠ ุงุบุชู†ุงู… ู‡ุฐู‡ ุงู„ูุฑุตุฉ ู„ุงุณุชูƒุดุงู NS-3 ูˆูŠูƒูŠ ู‚ู„ูŠู„ุง ู„ุฃู† ู‡ู†ุงูƒ ุญู‚ุง
ุซุฑูˆุฉ ู…ู† ุงู„ู…ุนู„ูˆู…ุงุช ู‡ู†ุงูƒ.

ู…ู† ู‡ุฐู‡ ุงู„ู†ู‚ุทุฉ ูุตุงุนุฏู‹ุง ุŒ ุณู†ูุชุฑุถ ุฃู† ุงู„ู‚ุงุฑุฆ ูŠุนู…ู„ ููŠ Linux ุฃูˆ
ุจูŠุฆุฉ ู…ุญุงูƒุงุฉ Linux (Linux ุŒ Cygwin ุŒ ุฅู„ุฎ.) ูˆุชุญุชูˆูŠ ุนู„ู‰ GNU toolchain ู…ุซุจุชุฉ ูˆ
ุงู„ุชุญู‚ู‚ ู…ุน ุงู„ู…ุชุทู„ุจุงุช ุงู„ู…ุณุจู‚ุฉ ุงู„ู…ุฐูƒูˆุฑุฉ ุฃุนู„ุงู‡. ุณูˆู ู†ูุชุฑุถ ุฐู„ูƒ ุฃูŠุถู‹ุง
ู„ุฏูŠูƒ Mercurial ูˆ Waf ู…ุซุจุชุงู† ูˆูŠุนู…ู„ุงู† ุนู„ู‰ ุงู„ู†ุธุงู… ุงู„ู…ุณุชู‡ุฏู.

ุฅู†ู‘ NS-3 ุงู„ูƒูˆุฏ ู…ุชุงุญ ููŠ ู…ุณุชูˆุฏุนุงุช Mercurial ุนู„ู‰ ุงู„ุฎุงุฏู… http://code.nsnam.org.
ูŠู…ูƒู†ูƒ ุฃูŠุถู‹ุง ุชู†ุฒูŠู„ ุฅุตุฏุงุฑ tarball ู…ู† http://www.nsnam.org/release/ุŒ ุฃูˆ ูŠู…ูƒู†ูƒ ุงู„ุนู…ู„
ู…ุน ู…ุณุชูˆุฏุนุงุช ุจุงุณุชุฎุฏุงู… Mercurial. ู†ูˆุตูŠ ุจุงุณุชุฎุฏุงู… Mercurial ู…ุง ู„ู… ูŠูƒู† ู‡ู†ุงูƒ ูุงุฆุฏุฉ
ุณุจุจ ุนุฏู… ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ. ุฑุงุฌุน ู†ู‡ุงูŠุฉ ู‡ุฐุง ุงู„ู‚ุณู… ู„ู„ุญุตูˆู„ ุนู„ู‰ ุฅุฑุดุงุฏุงุช ุญูˆู„ ูƒูŠููŠุฉ ุงู„ุญุตูˆู„ ุนู„ู‰ ูƒุฑุฉ ุชุงุฑ
ุงู„ุงูุฑุงุฌ.

ุฅู† ุฃุจุณุท ุทุฑูŠู‚ุฉ ู„ุจุฏุก ุงุณุชุฎุฏุงู… ู…ุณุชูˆุฏุนุงุช Mercurial ู‡ูŠ ุงุณุชุฎุฏุงู… ู…ู„ุญู‚ ns-3-allinone
ุจูŠุฆุฉ. ู‡ุฐู‡ ู…ุฌู…ูˆุนุฉ ู…ู† ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุงู„ุชูŠ ุชุฏูŠุฑ ุชู†ุฒูŠู„ ูˆุจู†ุงุก ู…ู„ูุงุช
ุฃู†ุธู…ุฉ ูุฑุนูŠุฉ ู…ุฎุชู„ูุฉ ู…ู† NS-3 ู„ูƒ. ู†ูˆุตูŠ ุฃู† ุชุจุฏุฃ ุงู„ุฎุงุต ุจูƒ NS-3 ุงู„ุนู…ู„ ููŠ ู‡ุฐุง
ุจูŠุฆุฉ.

ู…ู…ุงุฑุณุฉ ูˆุงุญุฏุฉ ู‡ูŠ ุฅู†ุดุงุก ุฏู„ูŠู„ ูŠุณู…ู‰ ู…ุณุงุญุฉ ุงู„ุนู…ู„ ููŠ ุงู„ุฏู„ูŠู„ ุงู„ุฑุฆูŠุณูŠ ู„ู„ูุฑุฏ ุชุญุชู‡
ูŠู…ูƒู† ู„ู„ู…ุฑุก ุงู„ุงุญุชูุงุธ ุจู…ุณุชูˆุฏุนุงุช Mercurial ุงู„ู…ุญู„ูŠุฉ. ุฃูŠ ุงุณู… ุฏู„ูŠู„ ุณูŠููŠ ุจุงู„ุบุฑุถ ุŒ ู„ูƒู†ู†ุง ุณู†ูุชุฑุถ
ุฃู† ู…ุณุงุญุฉ ุงู„ุนู…ู„ ู…ุณุชุฎุฏู… ู‡ู†ุง (ู…ู„ุงุญุธุฉ: ุงุชูุงู‚ูŠุงุช ุฅุนุงุฏุฉ ุงู„ุดุฑุงุก ูŠู…ูƒู† ุฃูŠุถู‹ุง ุงุณุชุฎุฏุงู…ู‡ุง ููŠ ุจุนุถ ุงู„ูˆุซุงุฆู‚ ูƒู…ู„ู
ู…ุซุงู„ ุงุณู… ุงู„ุฏู„ูŠู„).

ุชุญู…ูŠู„ NS-3 ุจุงุณุชุฎุฏุงู… a ุชุงุฑุจุงู„
ุชุนุฏ ูƒุฑุฉ ุงู„ู‚ุทุฑุงู† ุชู†ุณูŠู‚ู‹ุง ุฎุงุตู‹ุง ู„ุฃุฑุดูŠู ุงู„ุจุฑุงู…ุฌ ุญูŠุซ ูŠุชู… ุชุฌู…ูŠุน ู…ู„ูุงุช ู…ุชุนุฏุฏุฉ
ู…ุนู‹ุง ูˆุฑุจู…ุง ูŠูƒูˆู† ุงู„ุฃุฑุดูŠู ู…ุถุบูˆุทู‹ุง. NS-3 ูŠุชู… ุชูˆููŠุฑ ุฅุตุฏุงุฑุงุช ุงู„ุจุฑุงู…ุฌ ุนุจุฑ ุฃ
ุชุงุฑุจุงู„ ุงู„ู‚ุงุจู„ ู„ู„ุชู†ุฒูŠู„. ุนู…ู„ูŠุฉ ุงู„ุชู†ุฒูŠู„ NS-3 ุนุจุฑ tarball ุจุณูŠุท ุ› ุงู†ุช ูู‚ุท
ุนู„ูŠูƒ ุงุฎุชูŠุงุฑ ุฅุตุฏุงุฑ ูˆุชู†ุฒูŠู„ู‡ ูˆููƒ ุถุบุทู‡.

ู„ู†ูุชุฑุถ ุฃู†ูƒ ุŒ ูƒู…ุณุชุฎุฏู… ุŒ ุชุฑุบุจ ููŠ ุจู†ุงุก NS-3 ููŠ ุฏู„ูŠู„ ู…ุญู„ูŠ ูŠุณู…ู‰
ู…ุณุงุญุฉ ุงู„ุนู…ู„. ุฅุฐุง ูƒู†ุช ุชุชุจู†ู‰ ู…ู„ู ู…ุณุงุญุฉ ุงู„ุนู…ู„ ู†ู‡ุฌ ุงู„ุฏู„ูŠู„ ุŒ ูŠู…ูƒู†ูƒ ุงู„ุญุตูˆู„ ุนู„ู‰ ู†ุณุฎุฉ ู…ู† ุงู„ุฅุตุฏุงุฑ
ุนู† ุทุฑูŠู‚ ูƒุชุงุจุฉ ู…ุง ูŠู„ูŠ ููŠ ู‚ุดุฑุฉ Linux (ุงุณุชุจุฏู„ ุฃุฑู‚ุงู… ุงู„ุฅุตุฏุงุฑุงุช ุงู„ู…ู†ุงุณุจุฉ ุŒ
ุจุงู„ุทุจุน):

$ cd
ู…ุณุงุญุฉ ุนู…ู„ $ mkdir
ู…ุณุงุญุฉ ุนู…ู„ $ cd
$ ูˆุฌูŠุช http://www.nsnam.org/release/ns-allinone-3.22.tar.bz2
tar xjf ns-allinone-3.22.tar.bz2 ุฏูˆู„ุงุฑ

ุฅุฐุง ู‚ู…ุช ุจุงู„ุชุบูŠูŠุฑ ุฅู„ู‰ ุงู„ุฏู„ูŠู„ NS- ุฃู„ูŠู†ูˆู† 3.22 ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุนุฏุฏู‹ุง ู…ู† ุงู„ู…ู„ูุงุช:

ู„ูŠุฑุฉ ุณูˆุฑูŠุฉ
ุซูˆุงุจุช ุงู„ุฎุจุฒ. py ns-3.22 README
build.py netanim-3.105 pybindgen-0.16.0.886 util.py

ุฃู†ุช ุงู„ุขู† ุฌุงู‡ุฒ ู„ุจู†ุงุก ุงู„ู‚ุงุนุฏุฉ NS-3 ุงู„ุชูˆุฒูŠุน.

ุชุญู…ูŠู„ NS-3 ุจุงุณุชุฎุฏุงู… ุฎุจุฒ
Bake ู‡ูŠ ุฃุฏุงุฉ ู„ู„ุชูƒุงู…ู„ ูˆุงู„ุจู†ุงุก ุงู„ู…ูˆุฒุนูŠู† ุŒ ุชู… ุชุทูˆูŠุฑู‡ุง ู„ู€ NS-3 ู…ุดุฑูˆุน.
ูŠู…ูƒู† ุงุณุชุฎุฏุงู… Bake ู„ุฌู„ุจ ุฅุตุฏุงุฑุงุช ุงู„ุชุทูˆูŠุฑ ู…ู† NS-3 ุงู„ุจุฑุงู…ุฌ ุŒ ูˆู„ู„ุชู†ุฒูŠู„ ูˆ
ุจู†ุงุก ู…ู„ุญู‚ุงุช ู„ู„ู‚ุงุนุฏุฉ NS-3 ุงู„ุชูˆุฒูŠุน ุŒ ู…ุซู„ ุชู†ููŠุฐ ุงู„ุฑู…ุฒ ุงู„ู…ุจุงุดุฑ
ุงู„ุจูŠุฆุฉ ุŒ ูˆู…ู‡ุฏ ู…ุญุงูƒุงุฉ ุงู„ุดุจูƒุฉ ุŒ ูˆุงู„ู‚ุฏุฑุฉ ุนู„ู‰ ุฅู†ุดุงุก ุฑูˆุงุจุท Python ุฌุฏูŠุฏุฉ ุŒ ูˆุบูŠุฑู‡ุง.

ู…ุคุฎุฑุง NS-3 ุงู„ุฅุตุฏุงุฑุงุช ุŒ ุชู… ุชุถู…ูŠู† Bake ููŠ ุงู„ุฅุตุฏุงุฑ tarball. ุงู„ุชูƒูˆูŠู†
ุงู„ู…ู„ู ุงู„ู…ุถู…ู† ููŠ ุงู„ุฅุตุฏุงุฑ ุงู„ุฐูŠ ุชู… ุฅุตุฏุงุฑู‡ ุณูŠุณู…ุญ ู„ุฃุญุฏ ุจุชู†ุฒูŠู„ ุฃูŠ ุจุฑู†ุงู…ุฌ ูƒุงู†
ุงู„ุญุงู„ูŠ ููŠ ูˆู‚ุช ุงู„ุฅุตุฏุงุฑ. ู‡ุฐุง ู‡ูˆ ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฅุตุฏุงุฑ Bake ุงู„ุฐูŠ ู‡ูˆ
ูˆุฒุนุช ู…ุน NS-3.21 ูŠู…ูƒู† ุงุณุชุฎุฏุงู… ุงู„ุฅุตุฏุงุฑ ู„ุฌู„ุจ ุงู„ู…ูƒูˆู†ุงุช ุงู„ุฎุงุตุฉ ุจุฐู„ูƒ NS-3 ุงู„ุงูุฑุงุฌ ุนู†
ุฃูˆ ุฃู‚ุฏู… ุŒ ูˆู„ูƒู† ู„ุง ูŠู…ูƒู† ุงุณุชุฎุฏุงู…ู‡ุง ู„ุฌู„ุจ ุงู„ู…ูƒูˆู†ุงุช ู„ู„ุฅุตุฏุงุฑุงุช ุงู„ู„ุงุญู‚ุฉ (ู…ุง ู„ู… ูŠูƒู† ู…ู„ู
Bakeconf.xml ุชู… ุชุญุฏูŠุซ ุงู„ู…ู„ู).

ูŠู…ูƒู†ูƒ ุฃูŠุถู‹ุง ุงู„ุญุตูˆู„ ุนู„ู‰ ุฃุญุฏุซ ู†ุณุฎุฉ ู…ู† ุฎุจุฒ ุนู† ุทุฑูŠู‚ ูƒุชุงุจุฉ ู…ุง ูŠู„ูŠ ููŠ Linux ุงู„ุฎุงุต ุจูƒ
ุดู„ (ุนู„ู‰ ุงูุชุฑุงุถ ุฃู†ูƒ ู‚ู…ุช ุจุชุซุจูŠุช Mercurial):

$ cd
ู…ุณุงุญุฉ ุนู…ู„ $ mkdir
ู…ุณุงุญุฉ ุนู…ู„ $ cd
ุงุณุชู†ุณุงุฎ $ hg http://code.nsnam.org/bake

ุฃุซู†ุงุก ุชู†ููŠุฐ ุงู„ุฃู…ุฑ hg (Mercurial) ุŒ ูŠุฌุจ ุฃู† ุชุฑู‰ ุดูŠุฆู‹ุง ู…ุดุงุจู‡ู‹ุง ู„ู…ุง ูŠู„ูŠ
ุนุฑุถุŒ


ุฏู„ูŠู„ ุงู„ูˆุฌู‡ุฉ: ุฎุจุฒ
ูŠุทู„ุจ ูƒู„ ุงู„ุชุบูŠูŠุฑุงุช
ู…ุถูŠูุง ู…ุฌู…ูˆุนุงุช ุงู„ุชุบูŠูŠุฑุงุช
ู…ุถูŠูุง ุงู„ุจูŠุงู†ุงุช
ู…ุถูŠูุง ุชุบูŠูŠุฑุงุช ุงู„ู…ู„ู
ุชู…ุช ุฅุถุงูุฉ 339 ู…ุฌู…ูˆุนุฉ ุชุบูŠูŠุฑุงุช ู…ุน 796 ุชุบูŠูŠุฑู‹ุง ุฅู„ู‰ 63 ู…ู„ูู‹ุง
ุงู„ุชุญุฏูŠุซ ุฅู„ู‰ ุงู„ูุฑุน ุงู„ุงูุชุฑุงุถูŠ
ุชู… ุชุญุฏูŠุซ 45 ู…ู„ูู‹ุง ุŒ 0 ุชู… ุฏู…ุฌ ุงู„ู…ู„ูุงุช ุŒ 0 ุฅุฒุงู„ุฉ ุงู„ู…ู„ูุงุช ุŒ 0 ู…ู„ูุงุช ู„ู… ูŠุชู… ุญู„ู‡ุง

ุจุนุฏ ุงูƒุชู…ุงู„ ุฃู…ุฑ ุงู„ู†ุณุฎ ุŒ ูŠุฌุจ ุฃู† ูŠูƒูˆู† ู„ุฏูŠูƒ ุฏู„ูŠู„ ูŠุณู…ู‰ ุฎุจุฒุŒ ู…ุญุชูˆูŠุงุช
ูˆุงู„ุชูŠ ูŠุฌุจ ุฃู† ุชุจุฏูˆ ุนู„ู‰ ุงู„ู†ุญูˆ ุงู„ุชุงู„ูŠ:

ู„ูŠุฑุฉ ุณูˆุฑูŠุฉ
bake bakeconf.xml doc create-binary.py TODO
ุงุฎุชุจุงุฑ ุฃู…ุซู„ุฉ bake.py

ู„ุงุญุธ ุฃู†ูƒ ู‚ู…ุช ุจุงู„ูุนู„ ุจุชู†ุฒูŠู„ ุจุนุถ ู†ุตูˆุต Python ูˆูˆุญุฏุฉ Python ุชุณู…ู‰
ุฎุจุฒ. ุณุชูƒูˆู† ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ ู‡ูŠ ุงุณุชุฎุฏุงู… ู‡ุฐู‡ ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ู„ุชู†ุฒูŠู„ ูˆุจู†ุงุก ู…ู„ู NS-3
ุชูˆุฒูŠุน ู…ู† ุงุฎุชูŠุงุฑูƒ.

ู‡ู†ุงูƒ ุนุฏุฏ ู‚ู„ูŠู„ ู…ู† ุฃู‡ุฏุงู ุงู„ุชูƒูˆูŠู† ุงู„ู…ุชุงุญุฉ:

1. NS-3.22: ุงู„ูˆุญุฏุฉ ุงู„ู…ู‚ุงุจู„ุฉ ู„ู„ุฅุตุฏุงุฑ ุ› ุณูŠุชู… ุชู†ุฒูŠู„ ู…ูƒูˆู†ุงุช ู…ู…ุงุซู„ุฉ
ู„ุฅุทู„ุงู‚ ุงู„ู‚ุทุฑุงู†.

2. NS-3-ุฏูŠู: ูˆุญุฏุฉ ู…ู…ุงุซู„ุฉ ูˆู„ูƒู† ุจุงุณุชุฎุฏุงู… ุดุฌุฑุฉ ูƒูˆุฏ ุงู„ุชุทูˆูŠุฑ

3. NS- ุฃู„ูŠู†ูˆู† 3.22: ุงู„ูˆุญุฏุฉ ุงู„ุชูŠ ุชุชุถู…ู† ู…ูŠุฒุงุช ุงุฎุชูŠุงุฑูŠุฉ ุฃุฎุฑู‰ ู…ุซู„ ุงู„ู†ู‚ุฑ
ุงู„ุชูˆุฌูŠู‡ ุŒ ุงู„ุชุฏูู‚ ุงู„ู…ูุชูˆุญ ู„ู€ NS-3ุŒ ูˆู…ู‡ุฏ ู…ุญุงูƒุงุฉ ุงู„ุดุจูƒุฉ

4. ns-3-allinone: ู…ุดุงุจู‡ ู„ู„ุฅุตุฏุงุฑ ุงู„ุฐูŠ ุชู… ุฅุตุฏุงุฑู‡ ู…ู† ูˆุญุฏุฉ allinone ุŒ ูˆู„ูƒู† ู…ู† ุฃุฌู„
ูƒูˆุฏ ุงู„ุชุทูˆูŠุฑ.

ู„ู‚ุทุฉ ุงู„ุชุทูˆูŠุฑ ุงู„ุญุงู„ูŠุฉ (ุบูŠุฑ ู…ู†ุดูˆุฑุฉ) ู…ู† NS-3 ูŠู…ูƒู† ุงู„ุนุซูˆุฑ ุนู„ูŠู‡ุง ููŠ
http://code.nsnam.org/ns-3-dev/. ูŠุญุงูˆู„ ุงู„ู…ุทูˆุฑูˆู† ุงู„ุงุญุชูุงุธ ุจู‡ุฐู‡ ุงู„ู…ุณุชูˆุฏุนุงุช
ุญุงู„ุงุช ู…ุชุณู‚ุฉ ูˆุนุงู…ู„ุฉ ู„ูƒู†ู‡ุง ููŠ ู…ู†ุทู‚ุฉ ุชุทูˆูŠุฑ ู…ุน ูƒูˆุฏ ู„ู… ูŠุชู… ุฅุตุฏุงุฑู‡
ุญุงุถุฑ ุŒ ู„ุฐู„ูƒ ู‚ุฏ ุชุฑุบุจ ููŠ ุงู„ุชููƒูŠุฑ ููŠ ุงู„ุจู‚ุงุก ู…ุน ุจูŠุงู† ุฑุณู…ูŠ ุฅุฐุง ู„ู… ุชูƒู† ุจุญุงุฌุฉ
ุงู„ู…ูŠุฒุงุช ุงู„ุฌุฏูŠุฏุฉ.

ูŠู…ูƒู†ูƒ ุงู„ุนุซูˆุฑ ุนู„ู‰ ุฃุญุฏุซ ุฅุตุฏุงุฑ ู…ู† ุงู„ูƒูˆุฏ ุฅู…ุง ุนู† ุทุฑูŠู‚ ูุญุต ู‚ุงุฆู…ุฉ ุงู„ู…ุณุชูˆุฏุนุงุช
ุฃูˆ ุจุงู„ุฐู‡ุงุจ ุฅู„ู‰ "NS-3 ุฅุทู„ุงู‚" ุตูุญุฉ ุงู„ูˆูŠุจ ูˆุงู„ู†ู‚ุฑ ุนู„ู‰ ุฑุงุจุท ุฃุญุฏุซ ุฅุตุฏุงุฑ.
ุณู†ู†ุชู‚ู„ ููŠ ู‡ุฐุง ุงู„ู…ุซุงู„ ุงู„ุชุนู„ูŠู…ูŠ ู…ุน NS-3.22.

ุณู†ุณุชุฎุฏู… ุงู„ุขู† ุฃุฏุงุฉ ุงู„ุฎุจุฒ ู„ู‡ุฏู… ุงู„ู‚ุทุน ุงู„ู…ุฎุชู„ูุฉ ู…ู† NS-3 ุณุชูƒูˆู†
ุงุณุชุฎุฏุงู…. ุฃูˆู„ุงู‹ ุŒ ุณู†ู‚ูˆู„ ูƒู„ู…ุฉ ูˆุงุญุฏุฉ ุนู† ุชุดุบูŠู„ ุงู„ุฎุจุฒ.

ูŠุนู…ู„ bake ุนู† ุทุฑูŠู‚ ุชู†ุฒูŠู„ ุญุฒู… ุงู„ู…ุตุฏุฑ ููŠ ุฏู„ูŠู„ ุงู„ู…ุตุฏุฑ ูˆุชุซุจูŠุชู‡ุง
ุงู„ู…ูƒุชุจุงุช ููŠ ุฏู„ูŠู„ ุงู„ุจู†ุงุก. ูŠู…ูƒู† ุชุดุบูŠู„ bake ุจุงู„ุฑุฌูˆุน ุฅู„ู‰ ุงู„ู…ู„ู ุงู„ุซู†ุงุฆูŠ ุŒ ูˆู„ูƒู† ุฅุฐุง ูƒุงู† ูˆุงุญุฏู‹ุง
ูŠุฎุชุงุฑ ุชุดุบูŠู„ bake ู…ู† ุฎุงุฑุฌ ุงู„ุฏู„ูŠู„ ุงู„ุฐูŠ ุชู… ุชู†ุฒูŠู„ู‡ ุฅู„ูŠู‡ ุŒ ูู…ู† ุงู„ู…ุณุชุญุณู†
ู„ูˆุถุน bake ููŠ ู…ุณุงุฑูƒ ุŒ ู…ุซู„ ู…ุง ูŠู„ูŠ (ู…ุซุงู„ Linux bash shell). ุฃูˆู„ุง ุŒ ุงู„ุชุบูŠูŠุฑ
ููŠ ุฏู„ูŠู„ "bake" ุŒ ุซู… ู‚ู… ุจุชุนูŠูŠู† ู…ุชุบูŠุฑุงุช ุงู„ุจูŠุฆุฉ ุงู„ุชุงู„ูŠุฉ

ุชุตุฏูŠุฑ $ BAKE_HOME = `pwd`
ู…ุณุงุฑ ุงู„ุชุตุฏูŠุฑ $ = ู…ุณุงุฑ ุงู„ุฏูˆู„ุงุฑ: $ BAKE_HOME: $ BAKE_HOME / build / bin
$ export PYTHONPATH = $ PYTHONPATH: $ BAKE_HOME: $ BAKE_HOME / build / lib

ุณูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ูˆุถุน ุจุฑู†ุงู…ุฌ bake.py ููŠ ู…ุณุงุฑ ุงู„ุตุฏูุฉ ุŒ ูˆุณูŠุณู…ุญ ู„ู„ุจุฑุงู…ุฌ ุงู„ุฃุฎุฑู‰ ุจุฐู„ูƒ
ุงู„ุจุญุซ ุนู† ุงู„ู…ู„ูุงุช ุงู„ุชู†ููŠุฐูŠุฉ ูˆุงู„ู…ูƒุชุจุงุช ุงู„ุชูŠ ุฃู†ุดุฃุชู‡ุง bake. ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู† ุงู„ุนุฏูŠุฏ ู…ู† ุญุงู„ุงุช ุงุณุชุฎุฏุงู… ุงู„ุฎุจุฒ ู„ุง ุชูุนู„ ุฐู„ูƒ
ุชุชุทู„ุจ ุฅุนุฏุงุฏ PATH ูˆ PYTHONPATH ุนู„ู‰ ุงู„ู†ุญูˆ ุงู„ูˆุงุฑุฏ ุฃุนู„ุงู‡ ุŒ ูˆุงู„ุจู†ูŠุงุช ุงู„ูƒุงู…ู„ุฉ ู…ู† ns-3-allinone (ู…ุน
ุงู„ุญุฒู… ุงู„ุงุฎุชูŠุงุฑูŠุฉ) ุนุงุฏุฉู‹ ู…ุง ุชูุนู„.

ุงู†ุชู‚ู„ ุฅู„ู‰ ุฏู„ูŠู„ ู…ุณุงุญุฉ ุงู„ุนู…ู„ ูˆุงูƒุชุจ ู…ุง ูŠู„ูŠ ููŠ ู‚ุดุฑุชูƒ:

$ ./bake.py ุชูƒูˆูŠู† -e ns-3.22

ุจุนุฏ ุฐู„ูƒ ุŒ ุณู†ุทู„ุจ bake ู„ู„ุชุญู‚ู‚ ู…ู…ุง ุฅุฐุง ูƒุงู†ุช ู„ุฏูŠู†ุง ุฃุฏูˆุงุช ูƒุงููŠุฉ ู„ุชู†ุฒูŠู„ ู…ูƒูˆู†ุงุช ู…ุฎุชู„ูุฉ.
ุงู„ู†ูˆุน:

$ ./bake.py ุงู„ุงุฎุชูŠุงุฑ

ูŠุฌุจ ุฃู† ุชุฑู‰ ุดูŠุฆู‹ุง ู…ุซู„ ู…ุง ูŠู„ูŠ ุŒ

> ุจุงูŠุซูˆู† - ุญุณู†ู‹ุง
> ู…ุชุฑุฌู… GNU C ++ - ุญุณู†ู‹ุง
> ุฒุฆุจู‚ูŠ - ุญุณู†ู‹ุง
> CVS - ุญุณู†ู‹ุง
> GIT - ุญุณู†ู‹ุง
> ุจุงุฒุงุฑ - ุญุณู†ู‹ุง
> ุฃุฏุงุฉ ุงู„ู‚ุทุฑุงู† - ุญุณู†ู‹ุง
> ุฃุฏุงุฉ ููƒ ุงู„ุถุบุท - ุญุณู†ู‹ุง
> ุฃุฏุงุฉ Unrar - ู…ูู‚ูˆุฏ
> 7z ุฃุฏุงุฉ ุถุบุท ุงู„ุจูŠุงู†ุงุช - ุญุณู†ู‹ุง
> ุฃุฏุงุฉ ุถุบุท ุงู„ุจูŠุงู†ุงุช XZ - ุญุณู†ู‹ุง
> ุชู‚ุฏูŠู… - ู…ูˆุงูู‚
> cMake - ุญุณู†ู‹ุง
> ุฃุฏุงุฉ ุงู„ุชุตุญูŠุญ - ุญุณู†ู‹ุง
> ุฃุฏุงุฉ autoreconf - ุญุณู†ู‹ุง

> ุจุญุซ ุงู„ู…ุณุงุฑ ุนู† ุงู„ุฃุฏูˆุงุช: /usr/lib64/qt-3.3/bin / usr / lib64 / ccache
/ ุงู„ุจูŠุฑุฉ / ุงู„ู…ุญู„ูŠุฉ / ุจู† / ุจู† / ุงู„ุจูŠุฑุฉ / ุจู† / usr / local / sbin / usr / sbin / sbin
/ home / tomh / bin bin

ุนู„ู‰ ูˆุฌู‡ ุงู„ุฎุตูˆุต ุŒ ุฃุฏูˆุงุช ุงู„ุชู†ุฒูŠู„ ู…ุซู„ Mercurial ูˆ CVS ูˆ GIT ูˆ Bazaar ู‡ูŠ ุฃุฏูˆุงุชู†ุง ุงู„ุฃุณุงุณูŠุฉ
ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ุŒ ู„ุฃู†ู‡ุง ุชุณู…ุญ ู„ู†ุง ุจุฅุญุถุงุฑ ุงู„ูƒูˆุฏ. ุงู„ุฑุฌุงุก ุงู„ุชุซุจูŠุช ููŠ ุนุฏุงุฏ ุงู„ู…ูู‚ูˆุฏูŠู†
ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ุŒ ุจุงู„ุทุฑูŠู‚ุฉ ุงู„ู…ุนุชุงุฏุฉ ู„ู†ุธุงู…ูƒ (ุฅุฐุง ูƒู†ุช ู‚ุงุฏุฑู‹ุง ุนู„ู‰ ุฐู„ูƒ) ุŒ ุฃูˆ ุงู„ุงุชุตุงู„
ู…ุณุคูˆู„ ุงู„ู†ุธุงู… ู„ุฏูŠูƒ ุญุณุจ ุงู„ุญุงุฌุฉ ู„ุชุซุจูŠุช ู‡ุฐู‡ ุงู„ุฃุฏูˆุงุช.

ุจุนุฏ ุฐู„ูƒ ุŒ ุญุงูˆู„ ุชู†ุฒูŠู„ ุงู„ุจุฑู†ุงู…ุฌ:

$ ./bake.py ุชู†ุฒูŠู„

ูŠุฌุจ ุฃู† ุชุณูุฑ ุนู† ุดูŠุก ู…ุซู„:

>> ุงู„ุจุญุซ ุนู† pygoocanvas ุงู„ุชุจุนูŠุฉ ู„ู„ู†ุธุงู… - ุญุณู†ู‹ุง
>> ุงู„ุจุญุซ ุนู† ุชุจุนูŠุฉ ุงู„ู†ุธุงู… python-dev - ุญุณู†ู‹ุง
>> ุงู„ุจุญุซ ุนู† ู†ุธุงู… ุชุจุนูŠุฉ pygraphviz - ู…ูˆุงูู‚
>> ุชู†ุฒูŠู„ pybindgen-0.16.0.886 - ุญุณู†ู‹ุง
>> ุงู„ุจุญุซ ุนู† ุชุจุนูŠุฉ ุงู„ู†ุธุงู… g ++ - OK
>> ุงู„ุจุญุซ ุนู† ุชุจุนูŠุฉ ุงู„ู†ุธุงู… qt4 - ู…ูˆุงูู‚
>> ุชู†ุฒูŠู„ netanim-3.105 - ุญุณู†ู‹ุง
>> ุชู†ุฒูŠู„ ns-3.22 - ุญุณู†ู‹ุง

ูŠุดูŠุฑ ู…ุง ุณุจู‚ ุฅู„ู‰ ุฃู†ู‡ ุชู… ุชู†ุฒูŠู„ ุซู„ุงุซุฉ ู…ุตุงุฏุฑ. ุงูุญุต ุงู„ ู…ุตุฏุฑ ุฏู„ูŠู„
ุงู„ุขู† ูˆุงูƒุชุจ lsุ› ูŠุฌุจ ุนู„ู‰ ุงู„ู…ุฑุก ุฃู† ูŠุฑู‰:

ู„ูŠุฑุฉ ุณูˆุฑูŠุฉ
ู†ุชุงู†ูŠู…-3.105 ns-3.22 pybindgen-0.16.0.886

ุฃู†ุช ุงู„ุขู† ุฌุงู‡ุฒ ู„ุจู†ุงุก NS-3 ุงู„ุชูˆุฒูŠุน.

ุงุจู†ูŠ NS-3
ุงุจู†ูŠ ู…ุน build.py
ุนู†ุฏ ุงู„ุนู…ู„ ู…ู† ูƒุฑุฉ ุชุงุฑ ุชู… ุฅุตุฏุงุฑู‡ุง ุŒ ููŠ ุงู„ู…ุฑุฉ ุงู„ุฃูˆู„ู‰ ุงู„ุชูŠ ุชู‚ูˆู… ููŠู‡ุง ุจุจู†ุงุก ู…ู„ู NS-3 ู…ุดุฑูˆุน ูŠู…ูƒู†ูƒ
ุจู†ุงุก ุจุงุณุชุฎุฏุงู… ุจุฑู†ุงู…ุฌ ู…ู„ุงุฆู… ู…ูˆุฌูˆุฏ ููŠ ALLINONE ุงู„ุฏู„ูŠู„. ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ูŠุณู…ู‰
build.py. ุณูŠุนู…ู„ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุนู„ู‰ ุชู‡ูŠุฆุฉ ุงู„ู…ุดุฑูˆุน ู„ูƒ ููŠ ุฃุบู„ุจ ุงู„ุฃุญูŠุงู†
ุทุฑูŠู‚ุฉ ู…ููŠุฏุฉ. ูˆู…ุน ุฐู„ูƒ ุŒ ูŠุฑุฌู‰ ู…ู„ุงุญุธุฉ ุฃู† ุงู„ุชูƒูˆูŠู† ุฃูƒุซุฑ ุชู‚ุฏู…ู‹ุง ูˆุงู„ุนู…ู„ ู…ุน NS-3 ุณูˆู
ุนุงุฏุฉ ู…ุง ุชู†ุทูˆูŠ ุนู„ู‰ ุงุณุชุฎุฏุงู… ุงู„ุฃู… NS-3 ู†ุธุงู… ุงู„ุจู†ุงุก ุŒ Waf ุŒ ู„ูŠุชู… ุชู‚ุฏูŠู…ู‡ ู„ุงุญู‚ู‹ุง ููŠ ู‡ุฐุง
ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ.

ุฅุฐุง ู‚ู…ุช ุจุงู„ุชู†ุฒูŠู„ ุจุงุณุชุฎุฏุงู… tarball ุŒ ูŠุฌุจ ุฃู† ูŠูƒูˆู† ู„ุฏูŠูƒ ุฏู„ูŠู„ ูŠุณู…ู‰ ุดูŠุก ู…ุซู„
NS- ุฃู„ูŠู†ูˆู† 3.22 ุชุญุช ุงู„ุฎุงุต ุจูƒ ~ / ู…ุณุงุญุฉ ุงู„ุนู…ู„ ุงู„ุฏู„ูŠู„. ุงูƒุชุจ ู…ุง ูŠู„ูŠ:

$ ./build.py - ุฃู…ุซู„ุฉ ุงู„ุชู…ูƒูŠู† - ุงุฎุชุจุงุฑุงุช ุงู„ุชู…ูƒูŠู†

ู„ุฃู†ู†ุง ู†ุนู…ู„ ู…ุน ุฃู…ุซู„ุฉ ูˆุงุฎุชุจุงุฑุงุช ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุŒ ูˆู„ุฃู†ู‡ุง ู„ูŠุณุช ูƒุฐู„ูƒ
ุจู†ูŠุช ุจุดูƒู„ ุงูุชุฑุงุถูŠ ููŠ NS-3ุŒ ูุฅู† ุงู„ุญุฌุฌ ุงู„ุฎุงุตุฉ ุจู€ build.py ุชุฎุจุฑู‡ุง ุจุจู†ุงุฆู‡ุง ู„ู†ุง. ุงู„
ูŠุชุฎู„ู ุงู„ุจุฑู†ุงู…ุฌ ุฃูŠุถู‹ุง ุนู† ุจู†ุงุก ุฌู…ูŠุน ุงู„ูˆุญุฏุงุช ุงู„ู…ุชุงุญุฉ. ููŠ ูˆู‚ุช ู„ุงุญู‚ ุŒ ูŠู…ูƒู†ูƒ ุงู„ุจู†ุงุก NS-3
ุจุฏูˆู† ุฃู…ุซู„ุฉ ูˆุงุฎุชุจุงุฑุงุช ุŒ ุฃูˆ ุญุฐู ุงู„ูˆุญุฏุงุช ุบูŠุฑ ุงู„ุถุฑูˆุฑูŠุฉ ู„ุนู…ู„ูƒ ุŒ
ู„ูˆ ูƒู†ุช ุชุฑูŠุฏ.

ุณุชุฑู‰ ุงู„ูƒุซูŠุฑ ู…ู† ุฑุณุงุฆู„ ุฅุฎุฑุงุฌ ุงู„ู…ุญูˆู„ ุงู„ุจุฑู…ุฌูŠ ุงู„ู†ู…ูˆุฐุฌูŠุฉ ู…ุนุฑูˆุถุฉ ุฃุซู†ุงุก ุฅู†ุดุงุก ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู„ู„ุจู†ุงุก
ุงู„ู‚ุทุน ุงู„ู…ุฎุชู„ูุฉ ุงู„ุชูŠ ู‚ู…ุช ุจุชู†ุฒูŠู„ู‡ุง. ููŠ ุงู„ู†ู‡ุงูŠุฉ ูŠุฌุจ ุฃู† ุชุฑู‰ ู…ุง ูŠู„ูŠ:

Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ "/path/to/workspace/ns-allinone-3.22/ns-3.22/build"
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (6 ู… 25.032 ุซ)

ุงู„ูˆุญุฏุงุช ุงู„ู…ุจู†ูŠุฉ:
ุชุทุจูŠู‚ุงุช ู‡ูˆุงุฆูŠ aodv
ุจู†ุงุก ุงู„ุฌุณุฑ ู…ุฎุฒู† ุงู„ุชูƒูˆูŠู†
ุงู„ุฃุณุงุณูŠุฉ csma ุชุฎุทูŠุท csma
ุทุงู‚ุฉ dsdv dsr
fd-net-ุฌู‡ุงุฒ ู…ุฑุงู‚ุจุฉ ุชุฏูู‚ ุงู„ุฅู†ุชุฑู†ุช
ุดุจูƒุฉ lr-wpan lte
ุงู„ุชู†ู‚ู„ MPI netanim (ุจุฏูˆู† Python)
ุดุจูƒุฉ nix-vector-routing olsr
ุงู†ุชุดุงุฑ ุงู„ุชุฎุทูŠุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
ุณุชุฉ ุงุญุตุงุฆูŠุงุช ุงู„ุทูŠู
ุงุฎุชุจุงุฑ ุฌุณุฑ ุงู„ุตู†ุจูˆุฑ (ุจุฏูˆู† ุจุงูŠุซูˆู†) ู‚ุฑุงุกุฉ ุทุจูˆู„ูˆุฌูŠุง
ู…ูˆุฌุฉ ุฌู‡ุงุฒ ุดุจูƒุฉ ุงูุชุฑุงุถูŠุฉ
ูˆุงูŠ ูุงูŠ wimax

ุงู„ูˆุญุฏุงุช ุงู„ุชูŠ ู„ู… ูŠุชู… ุฅู†ุดุงุคู‡ุง (ุงู†ุธุฑ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ns-3 ู„ู„ุชูˆุถูŠุญ):
ุจุฑุงูŠุช ุงู†ู‚ุฑ ููˆู‚ openflow
ู…ุชุฎูŠู„

ุฏู„ูŠู„ ุงู„ุฎุฑูˆุฌ "./ns-3.22"

ููŠู…ุง ูŠุชุนู„ู‚ ุจุงู„ุฌุฒุก ุงู„ุฎุงุต ุจุงู„ูˆุญุฏุงุช ุบูŠุฑ ุงู„ู…ุจู†ูŠุฉ:

ุงู„ูˆุญุฏุงุช ุงู„ุชูŠ ู„ู… ูŠุชู… ุฅู†ุดุงุคู‡ุง (ุงู†ุธุฑ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ns-3 ู„ู„ุชูˆุถูŠุญ):
ุจุฑุงูŠุช ุงู†ู‚ุฑ ููˆู‚ openflow
ู…ุชุฎูŠู„

ู‡ุฐุง ูŠุนู†ูŠ ูู‚ุท ุฃู† ุงู„ุจุนุถ NS-3 ุงู„ูˆุญุฏุงุช ุงู„ู†ู…ุทูŠุฉ ุงู„ุชูŠ ู„ู‡ุง ุชุจุนูŠุงุช ุนู„ู‰ ู…ูƒุชุจุงุช ุฎุงุฑุฌูŠุฉ ู‚ุฏ ู„ุง ุชูุนู„ ุฐู„ูƒ
ุฃูˆ ุฃู† ุงู„ุชูƒูˆูŠู† ุทู„ุจ ุนู„ู‰ ูˆุฌู‡ ุงู„ุชุญุฏูŠุฏ ุนุฏู… ุจู†ุงุฆู‡ุง. ู†ุนู… ู‡ูˆ ูƒุฐู„ูƒ
ู„ุง ูŠุนู†ูŠ ุฃู† ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ ู„ู… ูŠุจู†ูŠ ุจู†ุฌุงุญ ุฃูˆ ุฃู†ู‡ ุณูŠู‚ุฏู… ุฎุทุฃ
ู†ุชุงุฆุฌ ุงู„ูˆุญุฏุงุช ุงู„ู…ุฏุฑุฌุฉ ุนู„ู‰ ุฃู†ู‡ุง ู‚ูŠุฏ ุงู„ุฅู†ุดุงุก.

ุงุจู†ูŠ ู…ุน ุฎุจุฒ
ุฅุฐุง ุงุณุชุฎุฏู…ุช bake ุฃุนู„ุงู‡ ู„ุฌู„ุจ ุดูุฑุฉ ุงู„ู…ุตุฏุฑ ู…ู† ู…ุณุชูˆุฏุนุงุช ุงู„ู…ุดุฑูˆุน ุŒ ููŠู…ูƒู†ูƒ ุงู„ู…ุชุงุจุนุฉ
ุงุณุชุฎุฏุงู…ู‡ ู„ู„ุจู†ุงุก NS-3. ุงูƒุชุจ

$ ./bake.py ุงู„ุจู†ุงุก

ูˆูŠุฌุจ ุฃู† ุชุฑู‰ ุดูŠุฆู‹ุง ู…ุซู„:

>> ุจู†ุงุก pybindgen-0.16.0.886 - ุญุณู†ู‹ุง
>> ุจู†ุงุก netanim-3.105 - ุญุณู†ู‹ุง
>> ุงู„ู…ุจู†ู‰ ns-3.22 - ุญุณู†ู‹ุง

ู…ู„ุญูˆุธุฉ: ู„ุตุญุชูƒ! ูŠู…ูƒู† ุฃูŠุถุง ู†ูุฐ ุนู„ู‰ ุญุฏ ุณูˆุงุก ุฎุทูˆุงุชุŒ ุจุฅู…ูƒุงู†ูƒ ุชุญู…ูŠู„ู‡ ู†ุณุงุนุฏูƒ ููŠ ุจู†ุงุก by ุฏุนูˆุฉ bake.py ู†ุดุฑ'.

ุฅุฐุง ุญุฏุซ ูุดู„ ุŒ ูุงู„ุฑุฌุงุก ุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ ู…ุง ูŠู‚ูˆู„ู‡ ุงู„ุฃู…ุฑ ุงู„ุชุงู„ูŠ
ุฃู†ุชุ› ู‚ุฏ ูŠุนุทูŠ ุชู„ู…ูŠุญู‹ุง ุฅู„ู‰ ุชุจุนูŠุฉ ู…ูู‚ูˆุฏุฉ:

ุนุฑุถ $ ./bake.py

ุณูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุณุฑุฏ ุงู„ุชุจุนูŠุงุช ุงู„ู…ุฎุชู„ูุฉ ู„ู„ุญุฒู… ุงู„ุชูŠ ุชุญุงูˆู„ ุจู†ุงุกู‡ุง.

ุงุจู†ูŠ ู…ุน WAF
ุญุชู‰ ู‡ุฐู‡ ุงู„ู†ู‚ุทุฉ ุŒ ุงุณุชุฎุฏู…ู†ุง ุฅู…ุง build.py ุงู„ู†ุตูŠ ุฃูˆ ุฎุจุฒ ุฃุฏุงุฉ ู„ู„ุญุตูˆู„ ุนู„ูŠู‡ุง
ุจุฏุฃุช ุจุงู„ุจู†ุงุก NS-3. ู‡ุฐู‡ ุงู„ุฃุฏูˆุงุช ู…ููŠุฏุฉ ู„ู„ุจู†ุงุก NS-3 ูˆุฏุนู…
ุงู„ู…ูƒุชุจุงุช ุŒ ูˆูŠุฏุนูˆู† ุฅู„ู‰ NS-3 ุงู„ุฏู„ูŠู„ ู„ุงุณุชุฏุนุงุก ุฃุฏุงุฉ Waf build ู„ู„ู‚ูŠุงู… ุจุงู…ุชุฏุงุฏ
ุงู„ุจู†ุงุก ุงู„ูุนู„ูŠ. ูŠู†ุชู‚ู„ ู…ุนุธู… ุงู„ู…ุณุชุฎุฏู…ูŠู† ุจุณุฑุนุฉ ุฅู„ู‰ ุงุณุชุฎุฏุงู… Waf ู…ุจุงุดุฑุฉ ู„ุชูƒูˆูŠู† ูˆ
ู†ุณุงุนุฏูƒ ููŠ ุจู†ุงุก NS-3. ู„ุฐุง ุŒ ู„ู„ู…ุชุงุจุนุฉ ุŒ ูŠุฑุฌู‰ ุชุบูŠูŠุฑ ุฏู„ูŠู„ ุงู„ุนู…ู„ ุงู„ุฎุงุต ุจูƒ ุฅู„ู‰ NS-3 ุฏู„ูŠู„
ุงู„ุฐูŠ ู‚ู…ุช ุจุจู†ุงุฆู‡ ููŠ ุงู„ุจุฏุงูŠุฉ.

ู„ูŠุณ ู…ุทู„ูˆุจู‹ุง ุจุดูƒู„ ุตุงุฑู… ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ุŒ ูˆู„ูƒู† ุณูŠูƒูˆู† ู…ู† ุงู„ู…ููŠุฏ ุงุชุฎุงุฐ ู…ู†ุนุทู ุทููŠู
ูˆุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ ูƒูŠููŠุฉ ุฅุฌุฑุงุก ุชุบูŠูŠุฑุงุช ุนู„ู‰ ุชูƒูˆูŠู† ุงู„ู…ุดุฑูˆุน. ุฑุจู…ุง ุงู„ุฃูƒุซุฑ
ุณูŠูƒูˆู† ุชุบูŠูŠุฑ ุงู„ุชูƒูˆูŠู† ุงู„ู…ููŠุฏ ุงู„ุฐูŠ ูŠู…ูƒู†ูƒ ุฅุฌุฑุงุคู‡ ู‡ูˆ ุฅู†ุดุงุก ุงู„ุฅุตุฏุงุฑ ุงู„ุฃู…ุซู„ ู…ู†
ุดูุฑุฉ. ุจุดูƒู„ ุงูุชุฑุงุถูŠ ุŒ ู‚ู…ุช ุจุชูƒูˆูŠู† ู…ุดุฑูˆุนูƒ ู„ุฅู†ุดุงุก ู†ุณุฎุฉ ุชุตุญูŠุญ ุงู„ุฃุฎุทุงุก. ุฏุนู†ุง ู†ู‚ูˆู„
ู…ุดุฑูˆุน ุฅู†ุดุงุก ุจู†ุงุก ู…ุญุณู†. ู„ุดุฑุญ ู„ Waf ุฃู†ู‡ ูŠู†ุจุบูŠ ุงู„ู‚ูŠุงู… ุจู‡ ุนู„ู‰ ุงู„ู†ุญูˆ ุงู„ุฃู…ุซู„
ุงู„ุชูŠ ุชุชุถู…ู† ุงู„ุฃู…ุซู„ุฉ ูˆุงู„ุงุฎุชุจุงุฑุงุช ุŒ ุณูˆู ุชุญุชุงุฌ ุฅู„ู‰ ุชู†ููŠุฐ ู…ุง ูŠู„ูŠ
ุฃูˆุงู…ุฑ:

./waf ู†ุธูŠู
$ ./waf --build-profile = ุงู„ุฃู…ุซู„ - ุฃู…ุซู„ุฉ ุงู„ุชู…ูƒูŠู† - ุชูƒูˆูŠู† ุงู„ุงุฎุชุจุงุฑุงุช ุงู„ู…ู…ูƒู†ุฉ

ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุชุดุบูŠู„ Waf ุฎุงุฑุฌ ุงู„ุฏู„ูŠู„ ุงู„ู…ุญู„ูŠ (ุงู„ุฐูŠ ูŠุชู… ุชูˆููŠุฑู‡ ูƒุฑุงุญุฉ ู„ูƒ).
ู„ุง ูŠุนุฏ ุงู„ุฃู…ุฑ ุงู„ุฃูˆู„ ู„ุชู†ุธูŠู ุงู„ุจู†ูŠุฉ ุงู„ุณุงุจู‚ุฉ ุถุฑูˆุฑูŠู‹ุง ุชู…ุงู…ู‹ุง ูˆู„ูƒู†
ู‡ูŠ ู…ู…ุงุฑุณุฉ ุฌูŠุฏุฉ (ูˆู„ูƒู† ุงู†ุธุฑ ุงู„ุจู†ุงุก ู…ู„ุงู…ุญุŒ ุฃู‚ู„)ุ› ุณูˆู ูŠุฒูŠู„ ู…ุง ุชู… ุจู†ุงุคู‡ ู…ุณุจู‚ู‹ุง
ุงู„ู…ูƒุชุจุงุช ูˆู…ู„ูุงุช ุงู„ูƒุงุฆู†ุงุช ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ุฏู„ูŠู„ ูŠุจู†ูŠ/. ุนู†ุฏู…ุง ูŠุชู… ุฅุนุงุฏุฉ ุชูƒูˆูŠู† ุงู„ู…ุดุฑูˆุน
ูˆูŠู‚ูˆู… ู†ุธุงู… ุงู„ุจู†ุงุก ุจุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุชุจุนูŠุงุช ุงู„ู…ุฎุชู„ูุฉ ุŒ ูŠุฌุจ ุฃู† ุชุฑู‰ ุงู„ุฅุฎุฑุงุฌ ุงู„ุฐูŠ ูŠุจุฏูˆ
ุนู„ู‰ ุบุฑุงุฑ ู…ุง ูŠู„ูŠ:

ุงู„ุฅุนุฏุงุฏ ุฅู„ู‰:.
ุงู„ุงู†ุทู„ุงู‚ ุฅู„ู‰: ุงู„ุจู†ุงุก
ุงู„ุชุญู‚ู‚ ู…ู† "gcc" (c compiler): / usr / bin / gcc
ุงู„ุชุญู‚ู‚ ู…ู† ุฅุตุฏุงุฑ cc: 4.2.1
ุงู„ุชุญู‚ู‚ ู…ู† 'g ++' (ู…ุชุฑุฌู… c ++): / usr / bin / g ++
ูŠุชุถู…ู† ูุญุต ุงู„ุชุนุฒูŠุฒ: 1_46_1
ุงู„ุชุญู‚ู‚ ู…ู† ุชุนุฒูŠุฒ libs: ุญุณู†ู‹ุง
ุงู„ุชุญู‚ู‚ ู…ู† ุงุฑุชุจุงุท ุงู„ุชุนุฒูŠุฒ: ุญุณู†ู‹ุง
ุงู„ุชุญู‚ู‚ ู…ู† ู…ูˆู‚ุน ุงู„ู†ู‚ุฑ: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† ูˆุฌูˆุฏ ุจุฑู†ุงู…ุฌ pkg-config: / sw / bin / pkg-config
ุงู„ุชุญู‚ู‚ ู…ู† "gtk + -2.0"> = 2.12: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† "libxml-2.0"> = 2.7: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ู†ูˆุน uint128_t: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ู†ูˆุน __uint128_t: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุชู†ููŠุฐ ุนุงู„ูŠ ุงู„ุฏู‚ุฉ: 128 ุจุช ุนุฏุฏ ุตุญูŠุญ (ุงูุชุฑุงุถูŠ)
ุงู„ุชุญู‚ู‚ ู…ู† ุนู†ูˆุงู† stdint.h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุนู†ูˆุงู† inttypes.h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† header sys / inttypes.h: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† header sys / types.h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† header sys / stat.h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ุฑุฃุณ dirent.h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ุนู†ูˆุงู† stdlib.h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ูˆุฌูˆุฏ ุฅุดุงุฑุฉ ุงู„ุฑุฃุณ. h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ูˆุฌูˆุฏ pthread.h ุฑุฃุณ: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ุนู†ูˆุงู† stdint.h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุนู†ูˆุงู† inttypes.h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† header sys / inttypes.h: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† ู…ูƒุชุจุฉ RT: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† ุฑุฃุณ netpacket / packet.h: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† header sys / ioctl.h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† header net / if.h: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† header net / ethernet.h: ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุนู†ูˆุงู† linux / if_tun.h: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† ุฑุฃุณ netpacket / packet.h: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† ู…ูˆู‚ุน NSC: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† "mpic ++": ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† "sqlite3": ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ุนู†ูˆุงู† linux / if_tun.h: ุบูŠุฑ ู…ูˆุฌูˆุฏ
ุงู„ุชุญู‚ู‚ ู…ู† ุจุฑู†ุงู…ุฌ sudo: / usr / bin / sudo
ุงู„ุชุญู‚ู‚ ู…ู† ุจุฑู†ุงู…ุฌ valgrind: / sw / bin / valgrind
ุงู„ุชุญู‚ู‚ ู…ู† "gsl": ู†ุนู…
ุงู„ุชุญู‚ู‚ ู…ู† ุนู„ู… ุงู„ุชุฌู…ูŠุน -Wno-error = ู…ู‡ู…ู„- d ... ุงู„ุฏุนู…: ุญุณู†ู‹ุง
ุงู„ุชุญู‚ู‚ ู…ู† ุนู„ู… ุงู„ุชุฌู…ูŠุน -Wno-error = ู…ู‡ู…ู„- d ... ุงู„ุฏุนู…: ุญุณู†ู‹ุง
ุงู„ุชุญู‚ู‚ ู…ู† ุนู„ู… ุงู„ุชุฌู…ูŠุน - ุงู„ุชุนุฑุฌ ุงู„ุตุงุฑู… ... ุงู„ุฏุนู…: ุญุณู†ู‹ุง
ุงู„ุชุญู‚ู‚ ู…ู† ุนู„ู… ุงู„ุชุฌู…ูŠุน - ุงู„ุชุนุฑุฌ ุงู„ุตุงุฑู… ... ุงู„ุฏุนู…: ุญุณู†ู‹ุง
ุงู„ุชุญู‚ู‚ ู…ู† ูˆุฌูˆุฏ ุนู„ุงู…ุฉ ุชุฌู…ูŠุน -Wstrict-Aliasing ... ุงู„ุฏุนู…: ุญุณู†ู‹ุง
ุงู„ุชุญู‚ู‚ ู…ู† ูˆุฌูˆุฏ ุนู„ุงู…ุฉ ุชุฌู…ูŠุน -Wstrict-Aliasing ... ุงู„ุฏุนู…: ุญุณู†ู‹ุง
ุงู„ุชุญู‚ู‚ ู…ู† ุจุฑู†ุงู…ุฌ doxygen: / usr / local / bin / doxygen
---- ู…ู„ุฎุต ู„ู…ูŠุฒุงุช NS-3 ุงู„ุงุฎุชูŠุงุฑูŠุฉ:
ุจู†ุงุก ุงู„ู…ู„ู ุงู„ุดุฎุตูŠ: ุงู„ุชุตุญูŠุญ
ุจู†ุงุก ุงู„ุฏู„ูŠู„: ุจู†ุงุก
ุฑุจุท ุจุงูŠุซูˆู†: ู…ูู…ูƒู‘ู†
ุชูƒุงู…ู„ BRITE: ุบูŠุฑ ู…ู…ูƒู‘ู† (ู„ู… ูŠุชู… ุชู…ูƒูŠู† BRITE (ุฑุงุฌุน ุงู„ุฎูŠุงุฑ - ู…ุน brite))
NS-3 ุงู†ู‚ุฑ ููˆู‚ ุงู„ุชูƒุงู…ู„: ุบูŠุฑ ู…ู…ูƒู‘ู† (ู„ู… ูŠุชู… ุชู…ูƒูŠู† nsclick (ุฑุงุฌุน ุงู„ุฎูŠุงุฑ - ู…ุน nsclick))
GtkConfigStore: ู…ูู…ูƒู‘ู†
XmlIo: ู…ู…ูƒู†
ุฃุณุงุณูŠุงุช ุงู„ุชุฑุงุจุท: ู…ูู…ูƒู‘ู†
Real Time Simulator: ู…ูู…ูƒู‘ู† (librt ุบูŠุฑ ู…ุชูˆูุฑ)
ุฌู‡ุงุฒ ุตุงููŠ ุชู…ุช ู…ุญุงูƒุงุชู‡: ู…ู…ูƒู‘ู† ( ุชุดู…ู„ ู„ู… ูŠุชู… ุงู„ูƒุดู ุนู†ู‡ุง)
ูˆุงุตู ู…ู„ู NetDevice: ู…ูู…ูƒู‘ู†
ุงู†ู‚ุฑ ููˆู‚ FdNetDevice: ุบูŠุฑ ู…ู…ูƒู‘ู† (ูŠุญุชุงุฌ ุฅู„ู‰ linux / if_tun.h)
ู…ุถุงู‡ุงุฉ FdNetDevice: ุบูŠุฑ ู…ู…ูƒู‘ู† (ูŠุญุชุงุฌ netpacket / packet.h)
PlanetLab FdNetDevice: ู„ู… ูŠุชู… ุชู…ูƒูŠู†ู‡ (ู„ู… ูŠุชู… ุงูƒุชุดุงู ู†ุธุงู… ุงู„ุชุดุบูŠู„ PlanetLab (ุฑุงุฌุน ุงู„ุฎูŠุงุฑ --force-planetlab))
ู…ู‡ุฏ ู…ุญุงูƒุงุฉ ุงู„ุดุจูƒุฉ: ุบูŠุฑ ู…ู…ูƒู‘ู† (ู„ู… ูŠุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ NSC (ุฑุงุฌุน ุงู„ุฎูŠุงุฑ - with-nsc))
ุฏุนู… MPI: ู…ูู…ูƒู‘ู†
NS-3 OpenFlow Integration: ุบูŠุฑ ู…ู…ูƒู‘ู† (ู„ู… ูŠุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ู…ูƒุชุจุงุช ุงู„ุชุนุฒูŠุฒ ุงู„ู…ุทู„ูˆุจุฉ ุŒ ู…ูู‚ูˆุฏุฉ: ุงู„ู†ุธุงู… ุŒ ุงู„ุฅุดุงุฑุงุช ุŒ ู†ุธุงู… ุงู„ู…ู„ูุงุช)
ุฅุฎุฑุงุฌ ุจูŠุงู†ุงุช ุงุญุตุงุฆูŠุงุช SQlite: ู…ู…ูƒู†
ุงู†ู‚ุฑ ููˆู‚ Bridge: ุบูŠุฑ ู…ู…ูƒู‘ู† ( ุชุดู…ู„ ู„ู… ูŠุชู… ุงู„ูƒุดู ุนู†ู‡ุง)
ู…ุชุฎูŠู„ PyViz: ู…ู…ูƒู†
ุงุณุชุฎุฏู… sudo ู„ุถุจุท suid bit: ุบูŠุฑ ู…ู…ูƒู‘ู† (ุงู„ุฎูŠุงุฑ - ุชู…ูƒูŠู† - sudo ุบูŠุฑ ู…ุญุฏุฏ)
ุจู†ุงุก ุงู„ุงุฎุชุจุงุฑุงุช: ู…ู…ูƒู†
ุจู†ุงุก ุงู„ุฃู…ุซู„ุฉ: ู…ู…ูƒู†
ู…ูƒุชุจุฉ ุฌู†ูˆ ุงู„ุนู„ู…ูŠุฉ (GSL): ู…ูู…ูƒู‘ู†
ุงู†ุชู‡ู‰ "ุงู„ุชูƒูˆูŠู†" ุจู†ุฌุงุญ (1.944 ุซุงู†ูŠุฉ)

ู„ุงุญุธ ุงู„ุฌุฒุก ุงู„ุฃุฎูŠุฑ ู…ู† ุงู„ุฅุฎุฑุงุฌ ุฃุนู„ุงู‡. ุจุนุถ NS-3 ู„ุง ูŠุชู… ุชู…ูƒูŠู† ุงู„ุฎูŠุงุฑุงุช ุงูุชุฑุงุถูŠู‹ุง ุฃูˆ
ุชุชุทู„ุจ ุฏุนู…ู‹ุง ู…ู† ุงู„ู†ุธุงู… ุงู„ุฃุณุงุณูŠ ู„ู„ุนู…ู„ ุจุดูƒู„ ุตุญูŠุญ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู„ุชู…ูƒูŠู†
XmlTo ุŒ ูŠุฌุจ ุงู„ุนุซูˆุฑ ุนู„ู‰ ู…ูƒุชุจุฉ libxml-2.0 ููŠ ุงู„ู†ุธุงู…. ุฅุฐุง ู„ู… ุชูƒู† ู‡ุฐู‡ ุงู„ู…ูƒุชุจุฉ
ูˆุฌุฏุช ุงู„ู…ู‚ุงุจู„ุฉ NS-3 ู„ู† ูŠุชู… ุชู…ูƒูŠู† ุงู„ู…ูŠุฒุฉ ูˆุณุชูƒูˆู† ุงู„ุฑุณุงู„ุฉ
ุนุฑุถ. ู„ุงุญุธ ูƒุฐู„ูƒ ุฃู† ู‡ู†ุงูƒ ู…ูŠุฒุฉ ู„ุงุณุชุฎุฏุงู… ุงู„ุจุฑู†ุงู…ุฌ ุณูˆุฏูˆ ู„ุถุจุท suid
ู‚ู„ูŠู„ุง ู…ู† ุจุนุถ ุงู„ุจุฑุงู…ุฌ. ู„ุง ูŠุชู… ุชู…ูƒูŠู† ู‡ุฐุง ุงูุชุฑุงุถูŠู‹ุง ูˆู„ุฐุง ูŠุชู… ุงู„ุฅุจู„ุงุบ ุนู† ู‡ุฐู‡ ุงู„ู…ูŠุฒุฉ
ุนู„ู‰ ุฃู†ู‡ุง "ุบูŠุฑ ู…ู…ูƒู‘ู†ุฉ".

ุงู†ุชู‚ู„ ุงู„ุขู† ูˆุนุฏ ุฅู„ู‰ ุจู†ูŠุฉ ุงู„ุชุตุญูŠุญ ุงู„ุชูŠ ุชุชุถู…ู† ุงู„ุฃู…ุซู„ุฉ ูˆุงู„ุงุฎุชุจุงุฑุงุช.

./waf ู†ุธูŠู
$ ./waf --build-profile = ุงู„ุชุตุญูŠุญ - ุฃู…ุซู„ุฉ ุงู„ุชู…ูƒูŠู† - ุชูƒูˆูŠู† ุงู„ุงุฎุชุจุงุฑุงุช ุงู„ู…ู…ูƒู†ุฉ

ุชู… ุชูƒูˆูŠู† ู†ุธุงู… ุงู„ุจู†ุงุก ุงู„ุขู† ูˆูŠู…ูƒู†ูƒ ุฅู†ุดุงุก ุฅุตุฏุงุฑุงุช ุชุตุญูŠุญ ุงู„ุฃุฎุทุงุก ู…ู† NS-3
ุงู„ุจุฑุงู…ุฌ ุจุจุณุงุทุฉ ุนู† ุทุฑูŠู‚ ุงู„ูƒุชุงุจุฉ

$ ./ูˆุงู

ุญุณู†ู‹ุง ุŒ ุขุณู ุŒ ู„ู‚ุฏ ุฌุนู„ุชูƒ ุชุจู†ูŠ NS-3 ุฌุฒุก ู…ู† ุงู„ู†ุธุงู… ู…ุฑุชูŠู† ุŒ ู„ูƒู†ูƒ ุงู„ุขู† ุชุนุฑู ูƒูŠููŠุฉ ุฐู„ูƒ
ุชุบูŠูŠุฑ ุงู„ุชูƒูˆูŠู† ูˆุจู†ุงุก ูƒูˆุฏ ู…ุญุณู†.

ูŠุฏุนู… ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ build.py ุงู„ุฐูŠ ุชู…ุช ู…ู†ุงู‚ุดุชู‡ ุฃุนู„ุงู‡ ุฃูŠุถู‹ุง ู…ู„ู - ุฃู…ุซู„ุฉ ู‚ุงุจู„ุฉ ู„ู„ุชู…ูƒูŠู† ุชู…ูƒูŠู† ุงู„ุงุฎุชุจุงุฑุงุช
ุงู„ุญุฌุฌ ุŒ ูˆู„ูƒู† ุจุดูƒู„ ุนุงู… ุŒ ู„ุง ุชุฏุนู… ุจุดูƒู„ ู…ุจุงุดุฑ ุฎูŠุงุฑุงุช waf ุงู„ุฃุฎุฑู‰ ุ› ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู‡ุฐุง
ู„ู† ูŠุนู…ู„:

$ ./build.py - ุชุนุทูŠู„ ุจูŠุซูˆู†

ุณูˆู ูŠุคุฏูŠ ุฅู„ู‰

build.py: ุฎุทุฃ: ู„ุง ูŠูˆุฌุฏ ุฎูŠุงุฑ ู…ู† ู‡ุฐุง ุงู„ู‚ุจูŠู„: --disable-python

ูˆู…ุน ุฐู„ูƒ ุŒ ูุฅู† ุงู„ู…ุดุบู„ ุงู„ุฎุงุต -- ูŠู…ูƒู† ุงุณุชุฎุฏุงู…ู‡ุง ู„ุชู…ุฑูŠุฑ ุฎูŠุงุฑุงุช ุฅุถุงููŠุฉ ุฅู„ู‰ waf ุŒ ู„ุฐู„ูƒ
ุจุฏู„ุงู‹ ู…ู† ู…ุง ุณุจู‚ ุŒ ุณูŠุนู…ู„ ู…ุง ูŠู„ูŠ:

$ ./build.py - - ุชุนุทูŠู„ ุจูŠุซูˆู†

ู„ุฃู†ู‡ ูŠูˆู„ุฏ ุงู„ุฃู…ุฑ ุงู„ุฃุณุงุณูŠ ./waff ุชูƒูˆูŠู† --ุชุนุทูŠู„ ุงู„ุซุนุจุงู†.

ููŠู…ุง ูŠู„ูŠ ุจุนุถ ุงู„ู†ุตุงุฆุญ ุงู„ุชู…ู‡ูŠุฏูŠุฉ ุญูˆู„ Waf.

ุถุจุท ู…ู‚ุงุจู„ ุงู„ุจู†ุงุก
ุจุนุถ ุฃูˆุงู…ุฑ Waf ู„ู‡ุง ู…ุนู†ู‰ ูู‚ุท ุฃุซู†ุงุก ู…ุฑุญู„ุฉ ุงู„ุชูƒูˆูŠู† ูˆุจุนุถ ุงู„ุฃูˆุงู…ุฑ ุชูƒูˆู† ูƒุฐู„ูƒ
ุตุงู„ุญุฉ ููŠ ู…ุฑุญู„ุฉ ุงู„ุจู†ุงุก. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฅุฐุง ุฃุฑุฏุช ุงุณุชุฎุฏุงู… ู…ูŠุฒุงุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ุฎุงุตุฉ ุจู€
NS-3ุŒ ู‚ุฏ ุชุฑุบุจ ููŠ ุชู…ูƒูŠู† ุฅุนุฏุงุฏ suid bit ุจุงุณุชุฎุฏุงู… sudo ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ุฃุนู„ุงู‡. ู‡ุฐุง
ุชุจูŠู† ุฃู†ู‡ ุฃู…ุฑ ุฎุงุต ุจูˆู‚ุช ุงู„ุชูƒูˆูŠู† ุŒ ูˆู„ุฐุง ูŠู…ูƒู†ูƒ ุฅุนุงุฏุฉ ุงู„ุชูƒูˆูŠู† ุจุงุณุชุฎุฏุงู…
ุงู„ุฃู…ุฑ ุงู„ุชุงู„ูŠ ุงู„ุฐูŠ ูŠุชุถู…ู† ุฃูŠุถู‹ุง ุงู„ุฃู…ุซู„ุฉ ูˆุงู„ุงุฎุชุจุงุฑุงุช.

$ ./waf ุชูƒูˆูŠู† --enable-sudo - ุฃู…ุซู„ุฉ ู‚ุงุจู„ุฉ ู„ู„ุชู…ูƒูŠู† - ุงุฎุชุจุงุฑุงุช ุชู…ูƒูŠู†

ุฅุฐุง ู‚ู…ุช ุจุฐู„ูƒ ุŒ ูุณูŠูƒูˆู† Waf ู‚ุฏ ุดุบู‘ู„ sudo ู„ุชุบูŠูŠุฑ ุจุฑุงู…ุฌ ุฅู†ุดุงุก ุงู„ู…ู‚ุจุณ ุงู„ุฎุงุตุฉ ุจู€
ุฑู…ุฒ ู…ุถุงู‡ุงุฉ ู„ุชุดุบูŠู„ ูƒุฌุฐุฑ.

ู‡ู†ุงูƒ ุงู„ุนุฏูŠุฏ ู…ู† ุฎูŠุงุฑุงุช ุงู„ุชูƒูˆูŠู† ูˆูˆู‚ุช ุงู„ุจู†ุงุก ุงู„ุฃุฎุฑู‰ ุงู„ู…ุชุงุญุฉ ููŠ Waf. ู„ุงุณุชูƒุดุงู ู‡ุฐู‡
ุงู„ุฎูŠุงุฑุงุช ุŒ ุงูƒุชุจ:

$ ./waf - help

ุณู†ุณุชุฎุฏู… ุจุนุถ ุงู„ุฃูˆุงู…ุฑ ุงู„ู…ุชุนู„ู‚ุฉ ุจุงู„ุงุฎุชุจุงุฑ ููŠ ุงู„ู‚ุณู… ุงู„ุชุงู„ูŠ.

ุงู„ุจู†ุงุก ู…ู„ุงู…ุญ
ู„ู‚ุฏ ุฑุฃูŠู†ุง ุจุงู„ูุนู„ ูƒูŠู ูŠู…ูƒู†ูƒ ุชูƒูˆูŠู† Waf ู„ู€ ุชุตุญูŠุญ or ุงู„ุฃู…ุซู„ ูŠุจู†ูŠ:

$ ./waf --build-profile = debug

ูŠูˆุฌุฏ ุฃูŠุถู‹ุง ู…ู„ู ุชุนุฑูŠู ุจู†ุงุก ูˆุณูŠุท ุŒ ุงู„ุงูุฑุงุฌ ุนู†. -d ู‡ูˆ ู…ุฑุงุฏู ู„
--ุจู†ุงุก ุงู„ู…ู„ู ุงู„ุดุฎุตูŠ.

ุจุดูƒู„ ุงูุชุฑุงุถูŠ ุŒ ูŠุถุน Waf ุนู†ุงุตุฑ ุงู„ุจู†ุงุก ููŠ ู…ู„ู ู†ุณุงุนุฏูƒ ููŠ ุจู†ุงุก ุงู„ุฏู„ูŠู„. ูŠู…ูƒู†ูƒ ุชุญุฏูŠุฏ ู…ู„ู
ุฏู„ูŠู„ ุงู„ุฅุฎุฑุงุฌ ุงู„ู…ุฎุชู„ูุฉ ู…ุน --ุฎุงุฑุฌ ุงู„ุฎูŠุงุฑ ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„

$ ./waf ุชูƒูˆูŠู† --out = foo

ูŠุชูŠุญ ู„ูƒ ุฏู…ุฌ ู‡ุฐุง ู…ุน ู…ู„ูุงุช ุชุนุฑูŠู ุงู„ุฅู†ุดุงุก ุงู„ุชุจุฏูŠู„ ุจูŠู† ุฎูŠุงุฑุงุช ุงู„ุชุฑุฌู…ุฉ ุงู„ู…ุฎุชู„ูุฉ
ุจุทุฑูŠู‚ุฉ ู†ุธูŠูุฉ:

$ ./waf ุชูƒูˆูŠู† --build-profile = debug --out = build / debug
$ ./waf ุจู†ุงุก

$ ./waf ุชูƒูˆูŠู† --build-profile = ู…ุญุณู† - out = ุจู†ุงุก / ู…ุญุณู†
$ ./waf ุจู†ุงุก


ูŠุชูŠุญ ู„ูƒ ู‡ุฐุง ุงู„ุนู…ู„ ู…ุน ุฅุตุฏุงุฑุงุช ู…ุชุนุฏุฏุฉ ุจุฏู„ุงู‹ ู…ู† ุงู„ูƒุชุงุจุฉ ููˆู‚ ุงู„ุฃุฎูŠุฑุฉ ุฏุงุฆู…ู‹ุง
ูŠุจู†ูŠ. ุนู†ุฏ ุงู„ุชุจุฏูŠู„ ุŒ ุณูŠู‚ูˆู… Waf ูู‚ุท ุจุชุฌู…ูŠุน ู…ุง ูŠุฌุจ ุนู„ูŠู‡ ุŒ ุจุฏู„ุงู‹ ู…ู† ุฅุนุงุฏุฉ ุชุฌู…ูŠุนู‡
ูƒู„ ุดู‰ุก.

ุนู†ุฏู…ุง ุชู‚ูˆู… ุจุชุจุฏูŠู„ ู…ู„ูุงุช ุชุนุฑูŠู ุงู„ุจู†ุงุก ู…ุซู„ ู‡ุฐุง ุŒ ุนู„ูŠูƒ ุฃู† ุชูƒูˆู† ุญุฑูŠุตู‹ุง ู„ุฅุนุทุงุก ู†ูุณ ุงู„ุดูŠุก
ู…ุนู„ู…ุงุช ุงู„ุชูƒูˆูŠู† ููŠ ูƒู„ ู…ุฑุฉ. ู‚ุฏ ูŠูƒูˆู† ู…ู† ุงู„ู…ู†ุงุณุจ ุชุญุฏูŠุฏ ุจุนุถ ุงู„ุจูŠุฆุฉ
ู…ุชุบูŠุฑุงุช ู„ู…ุณุงุนุฏุชูƒ ุนู„ู‰ ุชุฌู†ุจ ุงู„ุฃุฎุทุงุก:

ุชุตุฏูŠุฑ $ NS3CONFIG = "- ุฃู…ุซู„ุฉ ุงู„ุชู…ูƒูŠู† - ุงุฎุชุจุงุฑุงุช ุงู„ุชู…ูƒูŠู†"
$ export NS3DEBUG = "- ุฅู†ุดุงุก ู…ู„ู ุชุนุฑูŠู = ุชุตุญูŠุญ - ุฎุงุฑุฌ = ุจู†ุงุก / ุชุตุญูŠุญ"
$ ุชุตุฏูŠุฑ NS3OPT == "- ู…ู„ู ุชุนุฑูŠู ุงู„ุจู†ุงุก = ู…ุญุณู† - ุฎุงุฑุฌ = ุจู†ุงุก / ู…ุญุณู†"

$ ./waf ู‚ู… ุจุชูƒูˆูŠู† $ NS3CONFIG $ NS3DEBUG
$ ./waf ุจู†ุงุก

$ ./waf ู‚ู… ุจุชู‡ูŠุฆุฉ $ NS3CONFIG $ NS3OPT
$ ./waf ุจู†ุงุก

ุงู„ู…ุฌู…ุนูŠู†
ููŠ ุงู„ุฃู…ุซู„ุฉ ุฃุนู„ุงู‡ ุŒ ูŠุณุชุฎุฏู… Waf ู…ุชุฑุฌู… GCC C ++ ุŒ ุฒ ++ุŒ ู„ู„ุจู†ุงุก NS-3. ูˆู…ุน ุฐู„ูƒุŒ
ู…ู† ุงู„ู…ู…ูƒู† ุชุบูŠูŠุฑ ู…ุชุฑุฌู… C ++ ุงู„ุฐูŠ ูŠุณุชุฎุฏู…ู‡ Waf ู…ู† ุฎู„ุงู„ ุชุญุฏูŠุฏ CXX ุจูŠุฆุฉ
ุนุงู…ู„. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู„ุงุณุชุฎุฏุงู… ู…ุชุฑุฌู… Clang C ++ ุŒ ุฑู†ุฉ ++,

$ CXX = ุชูƒูˆูŠู† "clang ++" ./waf
$ ./waf ุจู†ุงุก

ูŠู…ูƒู† ู„ู„ู…ุฑุก ุฃูŠุถู‹ุง ุฅุนุฏุงุฏ Waf ู„ู„ู‚ูŠุงู… ุจุงู„ุชุฌู…ูŠุน ุงู„ู…ูˆุฒุน ุจุงุณุชุฎุฏุงู… com.distcc ุจุทุฑูŠู‚ุฉ ู…ู…ุงุซู„ุฉ:

$ CXX = "ุชู‡ูŠุฆุฉ distcc g ++" ./waf
$ ./waf ุจู†ุงุก

ู…ุฒูŠุฏ ู…ู† ุงู„ู…ุนู„ูˆู…ุงุช ุนู† com.distcc ูˆูŠู…ูƒู† ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ุชุฌู…ูŠุน ุงู„ู…ูˆุฒุน ุนู„ูŠู‡ ุชู†ููŠุฐ ุงู„ู…ุดุงุฑูŠุน ุตูุญุฉ ู…ุน
ู‚ุณู… ุงู„ุชูˆุซูŠู‚.

ุชุซุจูŠุช
ูŠู…ูƒู† ุงุณุชุฎุฏุงู… Waf ู„ุชุซุจูŠุช ู…ูƒุชุจุงุช ููŠ ุฃู…ุงูƒู† ู…ุฎุชู„ูุฉ ุนู„ู‰ ุงู„ู†ุธุงู…. ุงู„ุงูุชุฑุงุถูŠ
ุงู„ู…ูˆู‚ุน ุงู„ุฐูŠ ูŠุชู… ููŠู‡ ุฅู†ุดุงุก ุงู„ู…ูƒุชุจุงุช ูˆุงู„ู…ู„ูุงุช ุงู„ุชู†ููŠุฐูŠุฉ ู…ูˆุฌูˆุฏ ููŠ ู†ุณุงุนุฏูƒ ููŠ ุจู†ุงุก ุงู„ุฏู„ูŠู„ ุŒ ูˆู„ุฃู†
Waf ูŠุนุฑู ู…ูˆู‚ุน ู‡ุฐู‡ ุงู„ู…ูƒุชุจุงุช ูˆุงู„ู…ู„ูุงุช ุงู„ุชู†ููŠุฐูŠุฉ ุŒ ูˆู„ูŠุณ ู…ู† ุงู„ุถุฑูˆุฑูŠ ุงู„ุชุซุจูŠุช
ุงู„ู…ูƒุชุจุงุช ููŠ ุฃู…ุงูƒู† ุฃุฎุฑู‰.

ุฅุฐุง ุงุฎุชุงุฑ ุงู„ู…ุณุชุฎุฏู…ูˆู† ุชุซุจูŠุช ุฃุดูŠุงุก ุฎุงุฑุฌ ุฏู„ูŠู„ ุงู„ุฅู†ุดุงุก ุŒ ูู‚ุฏ ูŠุตุฏุฑ ุงู„ู…ุณุชุฎุฏู…ูˆู† ู…ู„ู
./waff ุชุซุจูŠุช ูŠุฃู…ุฑ. ุจุดูƒู„ ุงูุชุฑุงุถูŠ ุŒ ุจุงุฏุฆุฉ ุงู„ุชุซุจูŠุช ู‡ูŠ / ุงู„ุจูŠุฑุฉ / ุงู„ู…ุญู„ูŠุฉุŒ ูˆุจุงู„ุชุงู„ูŠ ./waff
ุชุซุจูŠุช ุณูŠุชู… ุชุซุจูŠุช ุงู„ุจุฑุงู…ุฌ ููŠ / ุงู„ุจูŠุฑุฉ / ุงู„ู…ุญู„ูŠุฉ / ุจู†ุŒ ูˆุงู„ู…ูƒุชุจุงุช / ุงู„ุจูŠุฑุฉ / ุงู„ู…ุญู„ูŠุฉ / ู„ูŠุจูˆ
ุฑุคูˆุณ ุฅู„ู‰ / usr / local / include. ุนุงุฏุฉู‹ ู…ุง ุชูƒูˆู† ุงู…ุชูŠุงุฒุงุช ุงู„ู…ุณุชุฎุฏู… ุงู„ู…ุชู…ูŠุฒ ู…ุทู„ูˆุจุฉ ู„ู„ุชุซุจูŠุช ุฅู„ู‰
ุงู„ุจุงุฏุฆุฉ ุงู„ุงูุชุฑุงุถูŠุฉ ุŒ ู„ุฐู„ูƒ ุณูŠูƒูˆู† ุงู„ุฃู…ุฑ ุงู„ู†ู…ูˆุฐุฌูŠ ุณูˆุฏูˆ ./waff ุชุซุจูŠุช. ุนู†ุฏ ุงู„ุฌุฑูŠ
ุจุฑุงู…ุฌ Waf ุŒ ุณูŠูุถู„ Waf ุฃูˆู„ุงู‹ ุงุณุชุฎุฏุงู… ุงู„ู…ูƒุชุจุงุช ุงู„ู…ุดุชุฑูƒุฉ ููŠ ุฏู„ูŠู„ ุงู„ุฅู†ุดุงุก ุŒ
ุซู… ุณูŠุจุญุซ ุนู† ุงู„ู…ูƒุชุจุงุช ููŠ ู…ุณุงุฑ ุงู„ู…ูƒุชุจุฉ ุงู„ุฐูŠ ุชู… ุชูƒูˆูŠู†ู‡ ููŠ ุงู„ุจูŠุฆุฉ ุงู„ู…ุญู„ูŠุฉ. ู„ุฐุง
ุนู†ุฏ ุชุซุจูŠุช ู…ูƒุชุจุงุช ุนู„ู‰ ุงู„ู†ุธุงู… ุŒ ูู…ู† ุงู„ู…ู…ุงุฑุณุงุช ุงู„ุฌูŠุฏุฉ ุงู„ุชุญู‚ู‚ ู…ู† ุฃู† ุงู„ู…ู‚ุตูˆุฏ
ุงู„ู…ูƒุชุจุงุช ู‚ูŠุฏ ุงู„ุงุณุชุฎุฏุงู….

ูŠู…ูƒู† ู„ู„ู…ุณุชุฎุฏู…ูŠู† ุงุฎุชูŠุงุฑ ุงู„ุชุซุจูŠุช ุฅู„ู‰ ุจุงุฏุฆุฉ ู…ุฎุชู„ูุฉ ุนู† ุทุฑูŠู‚ ุชู…ุฑูŠุฑ --ุงุฎุชุตุงุฑ ุงู„ุฎูŠุงุฑ ููŠ
ุถุจุท ุงู„ูˆู‚ุช ุŒ ู…ุซู„:

./waf configuration --prefix = / opt / local

ุฅุฐุง ู‚ุงู… ุงู„ู…ุณุชุฎุฏู… ู„ุงุญู‚ู‹ุง ุจุนุฏ ุงู„ุฅู†ุดุงุก ุจุฅุตุฏุงุฑ ู…ู„ู ./waff ุชุซุจูŠุช ุงู„ุฃู…ุฑ ุŒ ุงู„ุจุงุฏุฆุฉ / ุงุฎุชูŠุงุฑ / ู…ุญู„ูŠ
ูˆุณูˆู ุชุณุชุฎุฏู….

ุฅู†ู‘ ./waff ู†ุธูŠู ูŠุฌุจ ุงุณุชุฎุฏุงู… ุงู„ุฃู…ุฑ ู‚ุจู„ ุฅุนุงุฏุฉ ุชูƒูˆูŠู† ุงู„ู…ุดุฑูˆุน ุฅุฐุง ูƒุงู† Waf ุณูŠูƒูˆู†
ุชุณุชุฎุฏู… ู„ุชุซุจูŠุช ุงู„ุฃุดูŠุงุก ุจุจุงุฏุฆุฉ ู…ุฎุชู„ูุฉ.

ุจุงุฎุชุตุงุฑ ุŒ ู„ูŠุณ ู…ู† ุงู„ุถุฑูˆุฑูŠ ุงู„ุงุชุตุงู„ ./waff ุชุซุจูŠุช ู„ุงุณุชุฎุฏุงู… NS-3. ู…ุนุธู… ุงู„ู…ุณุชุฎุฏู…ูŠู† ู„ู† ูŠูุนู„ูˆุง ุฐู„ูƒ
ุจุญุงุฌุฉ ุฅู„ู‰ ู‡ุฐุง ุงู„ุฃู…ุฑ ู„ุฃู† Waf ุณูˆู ูŠู„ุชู‚ุท ุงู„ู…ูƒุชุจุงุช ุงู„ุญุงู„ูŠุฉ ู…ู† ู…ู„ู ู†ุณุงุนุฏูƒ ููŠ ุจู†ุงุก ุงู„ุฏู„ูŠู„ุŒ
ูˆู„ูƒู† ู‚ุฏ ูŠุฌุฏ ุจุนุถ ุงู„ู…ุณุชุฎุฏู…ูŠู† ุฃู†ู‡ ู…ููŠุฏ ุฅุฐุง ูƒุงู†ุช ุญุงู„ุฉ ุงุณุชุฎุฏุงู…ู‡ู… ุชุชุถู…ู† ุงู„ุนู…ู„ ู…ุน ุจุฑุงู…ุฌ ุฎุงุฑุฌูŠุฉ
ู„ NS-3 ุงู„ุฏู„ูŠู„.

ูˆุงุญุฏ WAF
ูŠูˆุฌุฏ ู†ุต Waf ูˆุงุญุฏ ูู‚ุท ุŒ ููŠ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ู…ู† NS-3 ุดุฌุฑุฉ ุงู„ู…ุตุฏุฑ. ูˆุฃู†ุช ุชุนู…ู„ ุฃู†ุช
ู‚ุฏ ุชุฌุฏ ู†ูุณูƒ ุชู‚ุถูŠ ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ูˆู‚ุช ููŠ ูŠุฎุฏุด/ุŒ ุฃูˆ ููŠ ุงู„ุนู…ู‚ src / ...ุŒ ูˆุชุญุชุงุฌ ุฅู„ู‰
ุงุณุชุฏุนุงุก Waf. ูŠู…ูƒู†ูƒ ูู‚ุท ุฃู† ุชุชุฐูƒุฑ ู…ูƒุงู†ูƒ ุŒ ูˆุชุณุชุฏุนูŠ Waf ู…ุซู„ ู‡ุฐุง:

$ ../../../ูˆุงู ...

ูˆู„ูƒู† ู‡ุฐุง ุงู„ุฃู…ุฑ ู…ู…ู„ ูˆุนุฑุถุฉ ู„ู„ุฎุทุฃ ุŒ ูˆู‡ู†ุงูƒ ุญู„ูˆู„ ุฃูุถู„.

ุฅุฐุง ูƒุงู† ู„ุฏูŠูƒ ูƒุงู…ู„ NS-3 ู…ุณุชูˆุฏุน ู‡ุฐู‡ ุงู„ุฌูˆู‡ุฑุฉ ุงู„ุตุบูŠุฑุฉ ู‡ูŠ ุงู„ุจุฏุงูŠุฉ:

$ cd $ (ุฌุฐุฑ hg) && ./waf ...

ูˆุงู„ุฃูุถู„ ู…ู† ุฐู„ูƒ ู‡ูˆ ุชุนุฑูŠู ู‡ุฐุง ุนู„ู‰ ุฃู†ู‡ ุฏุงู„ุฉ ุตุฏูุฉ:

$ function waff {cd $ (hg root) && ./waf $ *ุ› }

ุจู†ุงุก ุงู„ูˆุงู ุฏูˆู„ุงุฑ

ุฅุฐุง ูƒุงู† ู„ุฏูŠูƒ ูู‚ุท ูƒุฑุฉ ุงู„ู‚ุทุฑุงู† ุŒ ููŠู…ูƒู† ู„ู…ุชุบูŠุฑ ุงู„ุจูŠุฆุฉ ุฃู† ูŠุณุงุนุฏูƒ:

ุชุตุฏูŠุฑ $ NS3DIR = "$ PWD"
$ function waff {cd $ NS3DIR && ./waf $ *ุ› }

ุฎุฏุด $ cd
ุจู†ุงุก ุงู„ูˆุงู ุฏูˆู„ุงุฑ

ู‚ุฏ ูŠูƒูˆู† ู…ู† ุงู„ู…ุบุฑูŠ ููŠ ุฏู„ูŠู„ ุงู„ูˆุญุฏุฉ ุฅุถุงูุฉ ู…ู„ู ุชุงูู‡ WAF ุงู„ู†ุตูŠ ุนู„ู‰ ุบุฑุงุฑ
EXEC ../../ูˆู. ู…ู† ูุถู„ูƒ ู„ุง. ุฅู†ู‡ ุฃู…ุฑ ู…ุญูŠุฑ ู„ู„ู‚ุงุฏู…ูŠู† ุงู„ุฌุฏุฏ ุŒ ูˆุนู†ุฏู…ุง ูŠุชู… ุจุดูƒู„ ุณูŠุก
ูŠุคุฏูŠ ุฅู„ู‰ ุฃุฎุทุงุก ุจู†ุงุก ุฎููŠุฉ. ุงู„ุญู„ูˆู„ ุงู„ู…ุฐูƒูˆุฑุฉ ุฃุนู„ุงู‡ ู‡ูŠ ุงู„ุณุจูŠู„ ู„ู„ุฐู‡ุงุจ.

ุงู„ุงุฎุชุจุงุฑ NS-3
ูŠู…ูƒู†ูƒ ุฅุฌุฑุงุก ุงุฎุชุจุงุฑุงุช ุงู„ูˆุญุฏุฉ ุงู„ุฎุงุตุฉ ุจู€ NS-3 ุงู„ุชูˆุฒูŠุน ุนู† ุทุฑูŠู‚ ุชุดุบูŠู„ ./test.py -c ุงู„ู†ูˆุงุฉ
ุงู„ู†ุตูŠ:

$ ./test.py -c ุงู„ุฃุณุงุณูŠุฉ

ูŠุชู… ุฅุฌุฑุงุก ู‡ุฐู‡ ุงู„ุงุฎุชุจุงุฑุงุช ุจุงู„ุชูˆุงุฒูŠ ู…ุน Waf. ูŠุฌุจ ุฃู† ุชุฑู‰ ููŠ ุงู„ู†ู‡ุงูŠุฉ ุชู‚ุฑูŠุฑู‹ุง ูŠู‚ูˆู„ ุฐู„ูƒ

ุชู… ุงุฌุชูŠุงุฒ 92 ุงุฎุชุจุงุฑู‹ุง ู…ู† 92 ุงุฎุชุจุงุฑู‹ุง (ู†ุฌุญ 92 ุงุฎุชุจุงุฑู‹ุง ุŒ ูุดู„ 0 ุŒ 0 ุชุนุทู„ ุŒ 0 ุฃุฎุทุงุก ูุงู„ุบุฑูŠู†ุฏ)

ู‡ุฐู‡ ู‡ูŠ ุงู„ุฑุณุงู„ุฉ ุงู„ู…ู‡ู…ุฉ.

ุณุชุฑู‰ ุฃูŠุถู‹ุง ู…ู„ุฎุต ุงู„ุฅุฎุฑุงุฌ ู…ู† Waf ูˆุนุฏุงุก ุงู„ุงุฎุชุจุงุฑ ุงู„ุฐูŠ ูŠู†ูุฐ ูƒู„ ุงุฎุชุจุงุฑ ุŒ
ุงู„ุฐูŠ ุณูŠุจุฏูˆ ููŠ ุงู„ูˆุงู‚ุน ู…ุซู„:

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ "/ path / to / workspace / ns-3-allinone / ns-3-dev / build"
Waf: ุชุฑูƒ ุงู„ุฏู„ูŠู„ "/ path / to / workspace / ns-3-allinone / ns-3-dev / build"
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (1.799 ุซุงู†ูŠุฉ)

ุงู„ูˆุญุฏุงุช ุงู„ู…ุจู†ูŠุฉ:
ุฌุณุฑ ุชุทุจูŠู‚ุงุช aodv
ุงู†ู‚ุฑ ููˆู‚ config-store core
csma csma ุชุฎุทูŠุท dsdv
ู…ุฑุงู‚ุจุฉ ุชุฏูู‚ ุงู„ุทุงู‚ุฉ ููŠ ุงู„ุงุชุญุงุฏ ุงู„ุงู‚ุชุตุงุฏูŠ ูˆุงู„ู†ู‚ุฏูŠ
ุดุจูƒุฉ ุงู„ุฅู†ุชุฑู†ุช lte
ุงู„ุชู†ู‚ู„ MPI netanim
ุดุจูƒุฉ nix-vector-routing ns3tcp
ns3wifi olsr ุงู„ุชุฏูู‚ ุงู„ู…ูุชูˆุญ
ุงู†ุชุดุงุฑ ุงู„ุชุฎุทูŠุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
ุงุญุตุงุฆูŠุงุช ุงู„ุทูŠู ุฌุณุฑ ุงู„ุตู†ุจูˆุฑ
ุฃุฏูˆุงุช ุงุฎุชุจุงุฑ ุงู„ู‚ุงู„ุจ
ุทูˆุจูˆู„ูˆุฌูŠุง-ู‚ุฑุงุกุฉ uan virtual-net-device
ูˆุงูŠ ูุงูŠ ู…ุชุฎูŠู„ wimax

ุงุฌุชูŠุงุฒ: TestSuite ns3-wifi-ุชุฏุฎู„
PASS: TestSuite ุงู„ู…ุฏุฑุฌ ุงู„ุชูƒุฑุงุฑูŠ



PASS: ูƒุงุฆู† TestSuite
PASS: TestSuite ู…ูˆู„ุฏุงุช ุงู„ุฃุฑู‚ุงู… ุงู„ุนุดูˆุงุฆูŠุฉ
ุชู… ุงุฌุชูŠุงุฒ 92 ุงุฎุชุจุงุฑู‹ุง ู…ู† 92 ุงุฎุชุจุงุฑู‹ุง (ู†ุฌุญ 92 ุงุฎุชุจุงุฑู‹ุง ุŒ ูุดู„ 0 ุŒ 0 ุชุนุทู„ ุŒ 0 ุฃุฎุทุงุก ูุงู„ุบุฑูŠู†ุฏ)

ูŠุชู… ุชุดุบูŠู„ ู‡ุฐุง ุงู„ุฃู…ุฑ ุนุงุฏุฉู‹ ุจูˆุงุณุทุฉ ุงู„ู…ุณุชุฎุฏู…ูŠู† ู„ู„ุชุญู‚ู‚ ุจุณุฑุนุฉ ู…ู† ุฃู† ู…ู„ู NS-3 ุงู„ุชูˆุฒูŠุน ู„ู‡
ุจู†ูŠุช ุจุดูƒู„ ุตุญูŠุญ. (ู„ุงุญุธ ุชุฑุชูŠุจ ู…ู„ู ูŠู…ุฑ: ูŠู…ูƒู† ุฃู† ุชุฎุชู„ู ุงู„ุฎุทูˆุท ุŒ ูˆู‡ุฐุง ุฃู…ุฑ ุฌูŠุฏ. ู…ุง ู‡ู‰
ุงู„ู…ู‡ู… ู‡ูˆ ุฃู† ูŠูƒูˆู† ุณุทุฑ ุงู„ู…ู„ุฎุต ููŠ ุงู„ู†ู‡ุงูŠุฉ ูŠุดูŠุฑ ุฅู„ู‰ ุงุฌุชูŠุงุฒ ุฌู…ูŠุน ุงู„ุงุฎุชุจุงุฑุงุช ุ› ู„ุง ุดูŠุก ูุดู„ ุฃูˆ
ุชุญุทู….)

ุงู„ุฑูƒุถ a ุณูŠู†ุงุฑูŠูˆ
ุนุงุฏุฉ ู…ุง ู†ู‚ูˆู… ุจุชุดุบูŠู„ ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุชุญุช ุณูŠุทุฑุฉ Waf. ู‡ุฐุง ูŠุณู…ุญ ู„ู†ุธุงู… ุงู„ุจู†ุงุก ุจุงู„ุชุฃูƒุฏ
ุฃู† ู…ุณุงุฑุงุช ุงู„ู…ูƒุชุจุฉ ุงู„ู…ุดุชุฑูƒุฉ ุชู… ุชุนูŠูŠู†ู‡ุง ุจุดูƒู„ ุตุญูŠุญ ูˆุฃู† ุงู„ู…ูƒุชุจุงุช ู…ุชุงุญุฉ ููŠ
ู…ุฏุฉ ุงู„ุนุฑุถ. ู„ุชุดุบูŠู„ ุจุฑู†ุงู…ุฌ ุŒ ู…ุง ุนู„ูŠูƒ ุณูˆู‰ ุงุณุชุฎุฏุงู… ู…ู„ู --ูŠุฑูƒุถ ุงู„ุฎูŠุงุฑ ููŠ Waf. ุฏุนูˆู†ุง ุชุดุบูŠู„ NS-3
ู…ูƒุงูุฆ ู„ุจุฑู†ุงู…ุฌ hello world ููŠ ูƒู„ ู…ูƒุงู† ุนู† ุทุฑูŠู‚ ูƒุชุงุจุฉ ู…ุง ูŠู„ูŠ:

$ ./waf - ุชุดุบูŠู„ hello-simulator

ูŠุชุญู‚ู‚ Waf ุฃูˆู„ุงู‹ ู„ู„ุชุฃูƒุฏ ู…ู† ุฃู† ุงู„ุจุฑู†ุงู…ุฌ ู…ุจู†ูŠ ุจุดูƒู„ ุตุญูŠุญ ูˆูŠู†ูุฐ ุจู†ุงุก ุฅุฐุง
ู…ุทู„ูˆุจ. ุซู… ูŠู‚ูˆู… Waf ุจุชู†ููŠุฐ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฐูŠ ูŠู†ุชุฌ ุงู„ู…ุฎุฑุฌุงุช ุงู„ุชุงู„ูŠุฉ.

ู…ุฑุญุจุง ู…ุญุงูƒูŠ

ุชู‡ุงู†ูŠู†ุง! ุฃู†ุช ุงู„ุขู† ู…ุณุชุฎุฏู… ns-3!

ุงุจุญุซ ุนู† do I do if I ู„ุง ุงู†ุธุฑ ุชุนุฑูŠู ู‡ูŠู‡ ุงู†ุชุงุฌุŸ

ุฅุฐุง ุฑุฃูŠุช ุฑุณุงุฆู„ Waf ุชุดูŠุฑ ุฅู„ู‰ ุฃู† ุงู„ุจู†ุงุก ู‚ุฏ ุงูƒุชู…ู„ ุจู†ุฌุงุญ ุŒ ู„ูƒู† ู„ุง ุชูุนู„ ุฐู„ูƒ
ุฑุงุฌุน ุฅุฎุฑุงุฌ "Hello Simulator" ุŒ ูู…ู† ุงู„ู…ุญุชู…ู„ ุฃู†ูƒ ู‚ู…ุช ุจุชุจุฏูŠู„ ูˆุถุน ุงู„ุฅู†ุดุงุก ุฅู„ู‰
ุงู„ุฃู…ุซู„ ููŠ ุงู„ ุงุจู†ูŠ ู…ุน WAF ู‚ุณู… ุŒ ูˆู„ูƒู† ูุงุชู‡ู… ุงู„ุชุบูŠูŠุฑ ู…ุฑุฉ ุฃุฎุฑู‰ ุฅู„ู‰ ุชุตุญูŠุญ ูˆุงุณุทุฉ.
ุชุณุชุฎุฏู… ูƒุงูุฉ ู…ุฎุฑุฌุงุช ูˆุญุฏุฉ ุงู„ุชุญูƒู… ุงู„ู…ุณุชุฎุฏู…ุฉ ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ู…ู„ู NS-3 ุนู†ุตุฑ ุชุณุฌูŠู„ ุฐู„ูƒ
ู…ููŠุฏ ู„ุทุจุงุนุฉ ุฑุณุงุฆู„ ุงู„ู…ุณุชุฎุฏู… ุฅู„ู‰ ูˆุญุฏุฉ ุงู„ุชุญูƒู…. ุงู„ู†ุงุชุฌ ู…ู† ู‡ุฐุง ุงู„ู…ูƒูˆู† ู‡ูˆ
ูŠุชู… ุชุนุทูŠู„ู‡ ุชู„ู‚ุงุฆูŠู‹ุง ุนู†ุฏู…ุง ุชู‚ูˆู… ุจุชุฑุฌู…ุฉ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ู…ุญุณู‘ู†ุฉ - ูŠุชู… "ุชุญุณูŠู†ู‡ุง". ุงุฐุง ุฃู†ุช
ู„ุง ุชุฑู‰ ุฅุฎุฑุงุฌ "Hello Simulator" ุŒ ุงูƒุชุจ ู…ุง ูŠู„ูŠ:

$ ./waf config --build-profile = debug --enable -amples --enable-tests

ู„ุฅุฎุจุงุฑ Waf ุจุจู†ุงุก ุฅุตุฏุงุฑุงุช ุชุตุญูŠุญ ุงู„ุฃุฎุทุงุก ู…ู† NS-3 ุงู„ุจุฑุงู…ุฌ ุงู„ุชูŠ ุชุชุถู…ู† ุงู„ุฃู…ุซู„ุฉ
ูˆุงู„ุงุฎุชุจุงุฑุงุช. ู„ุง ูŠุฒุงู„ ูŠุชุนูŠู† ุนู„ูŠูƒ ุฅู†ุดุงุก ุฅุตุฏุงุฑ ุงู„ุชุตุญูŠุญ ุงู„ูุนู„ูŠ ู„ู„ุฑู…ุฒ ุนู† ุทุฑูŠู‚ ุงู„ูƒุชุงุจุฉ

$ ./ูˆุงู

ุงู„ุขู† ุŒ ุฅุฐุง ู‚ู…ุช ุจุชุดุบูŠู„ ู…ุฑุญุจุง ู…ุญุงูƒูŠ ุงู„ุจุฑู†ุงู…ุฌ ุŒ ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุงู„ุฅุฎุฑุงุฌ ุงู„ู…ุชูˆู‚ุน.

ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุญุฌุฌ
ู„ุชุบุฐูŠุฉ ูˆุณูŠุทุงุช ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ุฅู„ู‰ ู…ู„ู NS-3 ูŠุณุชุฎุฏู… ุงู„ุจุฑู†ุงู…ุฌ ู‡ุฐุง ุงู„ู†ู…ุท:

$ ./waf - ุชุดุบูŠู„ - ู‚ุงู„ุจ ุงู„ุฃูˆุงู…ุฑ = "ูช s "

ุงุณุชุจุฏู„ ุงุณู… ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฎุงุต ุจูƒ ุจู€ ุŒ ูˆุญุฌุฌ .
--ู†ู…ูˆุฐุฌ ุงู„ุฃู…ุฑ ุงู„ุญุฌุฉ ุฅู„ู‰ Waf ู‡ูŠ ููŠ ุงู„ุฃุณุงุณ ูˆุตูุฉ ู„ุจู†ุงุก ุงู„ูˆุงู‚ุน
ูŠุฌุจ ุฃู† ูŠุณุชุฎุฏู… Waf ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ู„ุชู†ููŠุฐ ุงู„ุจุฑู†ุงู…ุฌ. ูŠุชุญู‚ู‚ Waf ู…ู† ุฃู† ุงู„ุจู†ุงุก ู‡ูˆ
ู…ูƒุชู…ู„ ุŒ ูŠุนูŠู‘ู† ู…ุณุงุฑุงุช ุงู„ู…ูƒุชุจุฉ ุงู„ู…ุดุชุฑูƒุฉ ุŒ ุซู… ูŠุณุชุฏุนูŠ ุงู„ู…ู„ู ุงู„ู‚ุงุจู„ ู„ู„ุชู†ููŠุฐ ุจุงุณุชุฎุฏุงู…
ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ุŒ ูˆุฅุฏุฑุงุฌ ุงุณู… ุงู„ุจุฑู†ุงู…ุฌ ู„ู…ู„ู %s ู†ุงุฆุจ. (ุฃุนุชุฑู ุจู‡ุฐุง
ู…ุญุฑุฌู‹ุง ุจุนุถ ุงู„ุดูŠุก ุŒ ู„ูƒู† ู‡ุฐุง ู‡ูˆ ุงู„ุญุงู„. ู†ุฑุญุจ ุจุงู„ุจู‚ุน!)

ู…ุซุงู„ ุขุฎุฑ ู…ููŠุฏ ุจุดูƒู„ ุฎุงุต ู‡ูˆ ุชุดุบูŠู„ ู…ุฌู…ูˆุนุฉ ุงุฎุชุจุงุฑ ุจู…ูุฑุฏู‡ุง. ู„ู†ูุชุฑุถ ุฃู† ู…ู„ู
ุงุฎุชุจุงุฑูŠ ู…ุฌู…ูˆุนุฉ ุงู„ุงุฎุชุจุงุฑ ู…ูˆุฌูˆุฏุฉ (ู„ุง ุชูˆุฌุฏ). ุฃุนู„ุงู‡ ุŒ ุงุณุชุฎุฏู…ู†ุง ./test.py ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู„ุชุดุบูŠู„ ูƒุงู…ู„
ุนุฏุฏ ูƒุจูŠุฑ ู…ู† ุงู„ุงุฎุชุจุงุฑุงุช ุจุงู„ุชูˆุงุฒูŠ ุŒ ู…ู† ุฎู„ุงู„ ุงุณุชุฏุนุงุก ุจุฑู†ุงู…ุฌ ุงู„ุงุฎุชุจุงุฑ ุงู„ุญู‚ูŠู‚ูŠ ู…ุฑุงุฑู‹ุง ูˆุชูƒุฑุงุฑู‹ุง ุŒ ุนุฏุงุก ุงุฎุชุจุงุฑ.
ุงุณุชุฏุนุงุก ุนุฏุงุก ุงุฎุชุจุงุฑ ู…ุจุงุดุฑุฉ ู„ุงุฎุชุจุงุฑ ูˆุงุญุฏ:

$ ./waf - ุชุดุบูŠู„ ุงู„ุงุฎุชุจุงุฑ - ู‚ุงู„ุจ ุงู„ุฃูˆุงู…ุฑ = "ูช s --suite = mytest --verbose"

ู‡ุฐุง ูŠู†ู‚ู„ ุงู„ุญุฌุฌ ุฅู„ู‰ ุนุฏุงุก ุงุฎุชุจุงุฑ ุจุฑู†ุงู…ุฌ. ู…ู†ุฐ ุงุฎุชุจุงุฑูŠ ุบูŠุฑ ู…ูˆุฌูˆุฏ ุŒ ูˆ
ุณูŠุชู… ุฅู†ุดุงุก ุฑุณุงู„ุฉ ุฎุทุฃ. ู„ุทุจุงุนุฉ ู…ู„ู ุนุฏุงุก ุงุฎุชุจุงุฑ ุงู„ุฎูŠุงุฑุงุช:

$ ./waf - ุชุดุบูŠู„ ุงู„ุงุฎุชุจุงุฑ - ู‚ุงู„ุจ ุงู„ุฃูˆุงู…ุฑ = "ูช s --help"

ุงู„ุชุตุญูŠุญ
ูŠู‡ุฑุจ NS-3 ุงู„ุจุฑุงู…ุฌ ุงู„ุฎุงุถุนุฉ ู„ุณูŠุทุฑุฉ ุฃุฏุงุฉ ู…ุณุงุนุฏุฉ ุฃุฎุฑู‰ ุŒ ู…ุซู„ ู…ุตุญุญ ุงู„ุฃุฎุทุงุก (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุฌุฏุจ)
ุฃูˆ ู…ุฏู‚ู‚ ุงู„ุฐุงูƒุฑุฉ (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ูุงู„ุบุฑูŠู†ุฏ) ุŒ ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ู…ู„ู - ุฃู…ุฑ-ู‚ุงู„ุจ = "..." .

ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู„ุชุดุบูŠู„ ู…ู„ู NS-3 ุจุฑู†ุงู…ุฌ ู…ุฑุญุจุง ู…ุญุงูƒูŠ ู…ุน ุงู„ุญุฌุฌ ุชุญุช
ุฌุฏุจ ุงู„ู…ุตุญุญ:

$ ./waf --run = hello-simulator --command-template = "gdbูช s --args "

ู„ุงุญุธ ุฃู† NS-3 ุงุณู… ุงู„ุจุฑู†ุงู…ุฌ ูŠุชู…ุงุดู‰ ู…ุน --ูŠุฑูƒุถ ุงู„ุญุฌุฉ ุŒ ูˆุฃุฏุงุฉ ุงู„ุชุญูƒู…
(ู‡ู†ุง ุฌุฏุจ) ู‡ูˆ ุงู„ุฑู…ุฒ ุงู„ู…ู…ูŠุฒ ุงู„ุฃูˆู„ ููŠ ู…ู„ู - ูƒูˆู…ู…ุงู†ุฏ ู‚ุงู„ุจ ุฌุฏุงู„. ุงู„ --args ูŠุฑูˆูŠ ุฌุฏุจ
ุฃู† ู…ุง ุชุจู‚ู‰ ู…ู† ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ูŠู†ุชู…ูŠ ุฅู„ู‰ ุจุฑู†ุงู…ุฌ "ุฃุฏู†ู‰". (ุจุนุถ ุฌุฏุจ's
ู„ุง ุชูู‡ู… ุงู„ --args ู…ูŠุฒุฉ. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ุŒ ุงุญุฐู ูˆุณุงุฆุท ุงู„ุจุฑู†ุงู…ุฌ ู…ู† ู…ู„ู
--ู†ู…ูˆุฐุฌ ุงู„ุฃู…ุฑุŒ ูˆุงุณุชุฎุฏุงู… ุฌุฏุจ ุฃู…ุฑ ุทู‚ู… ูˆุณุงุฆุท.)

ูŠู…ูƒู†ู†ุง ุงู„ุฌู…ุน ุจูŠู† ู‡ุฐู‡ ุงู„ูˆุตูุฉ ูˆุงู„ูˆุตูุฉ ุงู„ุณุงุจู‚ุฉ ู„ุฅุฌุฑุงุก ุงุฎุชุจุงุฑ ุชุญุช ู…ุตุญุญ ุงู„ุฃุฎุทุงุก:

$ ./waf --run test-runner --command-template = "gdbูช s --args --suite = mytest --verbose"

ุงู„ุนู…ู„ ุงู„ุฏู„ูŠู„
ูŠุญุชุงุฌ Waf ุฅู„ู‰ ุงู„ุฑูƒุถ ู…ู† ู…ูˆู‚ุนู‡ ููŠ ุงู„ุฌุฒุก ุงู„ุนู„ูˆูŠ ู…ู† NS-3 ุดุฌุฑุฉ. ู‡ุฐุง ูŠุตุจุญ ุงู„ุนู…ู„
ุงู„ุฏู„ูŠู„ ุญูŠุซ ุณูŠุชู… ูƒุชุงุจุฉ ู…ู„ูุงุช ุงู„ุฅุฎุฑุงุฌ. ูˆู„ูƒู† ู…ุงุฐุง ู„ูˆ ูƒู†ุช ุชุฑูŠุฏ ุงู„ุงุญุชูุงุธ ุจู‡ุฐู‡ ุงู„ุฃุดูŠุงุก
ู‡ูŠู‡ NS-3 ุดุฌุฑุฉ ุงู„ู…ุตุฏุฑุŸ ุงุณุชุฎุฏู… ุงู„ --cwd ุญุฌุฉ:

$ ./waf --cwd = ...

ู‚ุฏ ูŠูƒูˆู† ู…ู† ุงู„ุฃู†ุณุจ ุฃู† ุชุจุฏุฃ ุจุฏู„ูŠู„ ุงู„ุนู…ู„ ุงู„ุฎุงุต ุจูƒ ุญูŠุซ ุชุฑูŠุฏ ุงู„ุฅุฎุฑุงุฌ
ุงู„ู…ู„ูุงุช ุŒ ูˆููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ูŠู…ูƒู† ุฃู† ูŠุณุงุนุฏ ุงู„ู‚ู„ูŠู„ ู…ู† ุงู„ู…ุฑุงูˆุบุฉ:

ูˆุธูŠูุฉ $ ูˆุงู {
CWD = "ุงู„ุฃุดุฎุงุต ุจุงู„ุฏูˆู„ุงุฑ ุงู„ุฃู…ุฑูŠูƒูŠ"
cd $ NS3DIR> / dev / null
./waf --cwd = "$ CWD" $ *
ุงู„ู‚ุฑุต ุงู„ู…ุถุบูˆุท -> / dev / null
}

ูŠุญูุธ ุฒุฎุฑูุฉ ุงู„ุฅุตุฏุงุฑ ุงู„ุณุงุจู‚ ู‡ุฐุง ุฏู„ูŠู„ ุงู„ุนู…ู„ ุงู„ุญุงู„ูŠ ุŒ cdู„
ุฏู„ูŠู„ Waf ุŒ ุซู… ูŠูˆุฌู‡ Waf ู„ุชุบูŠูŠุฑ ุฏู„ูŠู„ ุงู„ุนู…ู„ ุงู„ู‰ ุงู„ุฎู„ู ุฅู„ู‰ ุงู„ู…ุญููˆุธูŠู†
ุฏู„ูŠู„ ุงู„ุนู…ู„ ุงู„ุญุงู„ูŠ ู‚ุจู„ ุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ.

ุงู„ู…ูุงู‡ูŠู…ูŠ ู†ุจุฐุฉ ุนุงู…ุฉ


ุฃูˆู„ ุดูŠุก ูŠุชุนูŠู† ุนู„ูŠู†ุง ุงู„ู‚ูŠุงู… ุจู‡ ู‚ุจู„ ุงู„ุจุฏุก ูุนู„ูŠู‹ุง ููŠ ุงู„ู†ุธุฑ ุฃูˆ ุงู„ูƒุชุงุจุฉ NS-3 ุงู„ูƒูˆุฏ ู‡ูˆ
ุดุฑุญ ุจุนุถ ุงู„ู…ูุงู‡ูŠู… ุงู„ุฃุณุงุณูŠุฉ ูˆุงู„ุชุฌุฑูŠุฏูŠุฉ ููŠ ุงู„ู†ุธุงู…. ู‚ุฏ ูŠุธู‡ุฑ ุงู„ูƒุซูŠุฑ ู…ู† ู‡ุฐุง
ูˆุงุถุญ ู„ู„ุจุนุถ ุจุดูุงููŠุฉ ุŒ ู„ูƒู†ู†ุง ู†ูˆุตูŠ ุจุฃุฎุฐ ุงู„ูˆู‚ุช ุงู„ูƒุงููŠ ู„ู‚ุฑุงุกุฉ ู‡ุฐุง
ู‚ุณู… ูู‚ุท ู„ู„ุชุฃูƒุฏ ู…ู† ุฃู†ูƒ ุชุจุฏุฃ ุนู„ู‰ ุฃุณุงุณ ู…ุชูŠู†.

ุงู„ู‚ูู„ ุชุฌุฑูŠุฏุงุช
ููŠ ู‡ุฐุง ุงู„ู‚ุณู… ุŒ ุณู†ุฑุงุฌุน ุจุนุถ ุงู„ู…ุตุทู„ุญุงุช ุงู„ู…ุณุชุฎุฏู…ุฉ ุจุดูƒู„ ุดุงุฆุน ููŠ ุงู„ุดุจูƒุงุช ุŒ ูˆู„ูƒู† ู„ู‡ุง ุงู…ุชุฏุงุฏ
ู…ุนู†ู‰ ู…ุญุฏุฏ ููŠ NS-3.

ุงู„ุนู‚ุฏุฉ
ููŠ ู„ุบุฉ ุงู„ุฅู†ุชุฑู†ุช ุŒ ูŠูุทู„ู‚ ุนู„ู‰ ุฌู‡ุงุฒ ุงู„ุญูˆุณุจุฉ ุงู„ุฐูŠ ูŠุชุตู„ ุจุดุจูƒุฉ ุงุณู… ู…ุถูŠู or
ููŠ ุจุนุถ ุงู„ุฃุญูŠุงู† ุงู„ู†ู‡ุงูŠุฉ ู†ุธุงู…. ู„ุงู† NS-3 ู‡ูˆ ุดุจูƒุฉ ู…ุญุงูƒุงุฉ ุŒ ูˆู„ูŠุณ ุนู„ู‰ ูˆุฌู‡ ุงู„ุชุญุฏูŠุฏ ู…ู„ู
ุงู„ุฅู†ุชุฑู†ุช ู…ุญุงูƒุงุฉ ุŒ ู†ุญู† ู„ุง ู†ุณุชุฎุฏู… ู…ุตุทู„ุญ ุงู„ู…ุถูŠู ุนู…ุฏู‹ุง ู„ุฃู†ู‡ ู‚ุฑูŠุจ
ุงู„ู…ุฑุชุจุทุฉ ุจุงู„ุฅู†ุชุฑู†ุช ูˆุจุฑูˆุชูˆูƒูˆู„ุงุชู‡ุง. ุจุฏู„ุงู‹ ู…ู† ุฐู„ูƒ ุŒ ู†ุณุชุฎุฏู… ู…ุตุทู„ุญู‹ุง ุฃูƒุซุฑ ุนู…ูˆู…ูŠุฉ ุฃูŠุถู‹ุง
ุงู„ู…ุณุชุฎุฏู…ุฉ ู…ู† ู‚ุจู„ ุงู„ู…ุญุงูƒูŠุงุช ุงู„ุฃุฎุฑู‰ ุงู„ุชูŠ ู†ุดุฃุช ููŠ ู†ุธุฑูŠุฉ ุงู„ุฑุณู… ุงู„ุจูŠุงู†ูŠ --- ุงู„ุนู‚ุฏุฉ.

In NS-3 ูŠุณู…ู‰ ุชุฌุฑูŠุฏ ุฌู‡ุงุฒ ุงู„ุญูˆุณุจุฉ ุงู„ุฃุณุงุณูŠ ุจุงู„ุนู‚ุฏุฉ. ู‡ุฐุง ุงู„ุชุฌุฑูŠุฏ
ู…ู…ุซู„ุฉ ููŠ C ++ ุจุงู„ูุฆุฉ ุงู„ุนู‚ุฏุฉ. ุงู„ุนู‚ุฏุฉ ุชูˆูุฑ ูุฆุฉ ุทุฑู‚ ู„ุฅุฏุงุฑุฉ
ุชู…ุซูŠู„ุงุช ุงู„ุฃุฌู‡ุฒุฉ ุงู„ุญุงุณูˆุจูŠุฉ ููŠ ุงู„ู…ุญุงูƒุงุฉ.

ูŠุฌุจ ุฃู† ุชููƒุฑ ููŠ ุฃ ุงู„ุนู‚ุฏุฉ ูƒุฌู‡ุงุฒ ูƒู…ุจูŠูˆุชุฑ ุณุชุถูŠู ุฅู„ูŠู‡ ูˆุธุงุฆู. ูŠุถูŠู ูˆุงุญุฏ
ุฃุดูŠุงุก ู…ุซู„ ุงู„ุชุทุจูŠู‚ุงุช ูˆุญุฒู… ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ูˆุงู„ุจุทุงู‚ุงุช ุงู„ุทุฑููŠุฉ ุงู„ู…ุฑุชุจุทุฉ ุจู‡ุง
ุจุฑุงู…ุฌ ุชุดุบูŠู„ ู„ุชู…ูƒูŠู† ุงู„ูƒู…ุจูŠูˆุชุฑ ู…ู† ุงู„ู‚ูŠุงู… ุจุนู…ู„ ู…ููŠุฏ. ู†ุณุชุฎุฏู… ู†ูุณ ุงู„ู†ู…ูˆุฐุฌ ุงู„ุฃุณุงุณูŠ ููŠ NS-3.

ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ
ุนุงุฏุฉู‹ ู…ุง ูŠุชู… ุชู‚ุณูŠู… ุจุฑุงู…ุฌ ุงู„ูƒู…ุจูŠูˆุชุฑ ุฅู„ู‰ ูุฆุชูŠู† ุนุฑูŠุถุชูŠู†. ุชุทุจูŠู‚ุงุช ุงู„ูƒู…ุจูŠูˆุชุฑ ุชู†ุธู…
ู…ูˆุงุฑุฏ ุงู„ูƒู…ุจูŠูˆุชุฑ ุงู„ู…ุฎุชู„ูุฉ ู…ุซู„ ุงู„ุฐุงูƒุฑุฉ ูˆุฏูˆุฑุงุช ุงู„ู…ุนุงู„ุฌ ูˆุงู„ู‚ุฑุต ูˆุงู„ุดุจูƒุฉ ูˆู…ุง ุฅู„ู‰ ุฐู„ูƒ ุŒ
ูˆูู‚ู‹ุง ู„ุจุนุถ ุงู„ู†ู…ุงุฐุฌ ุงู„ุญุงุณูˆุจูŠุฉ. ุจุฑุงู…ุฌ ุงู„ู†ุธุงู… ุนุงุฏุฉ ู„ุง ุชุณุชุฎุฏู… ู‡ุฐู‡ ุงู„ู…ูˆุงุฑุฏ
ู„ุฅูƒู…ุงู„ ุงู„ู…ู‡ุงู… ุงู„ุชูŠ ุชููŠุฏ ุงู„ู…ุณุชุฎุฏู… ุจุดูƒู„ ู…ุจุงุดุฑ. ุนุงุฏุฉู‹ ู…ุง ูŠู‚ูˆู… ุงู„ู…ุณุชุฎุฏู… ุจุชุดุบูŠู„ ู…ู„ู ุงุณุชู…ุงุฑุชู†ุง
ูŠูƒุชุณุจ ูˆูŠุณุชุฎุฏู… ุงู„ู…ูˆุงุฑุฏ ุงู„ุชูŠ ูŠุชุญูƒู… ููŠู‡ุง ุจุฑู†ุงู…ุฌ ุงู„ู†ุธุงู… ู„ุฅู†ุฌุงุฒ ุจุนุถ
ู‡ุฏู.

ููŠ ูƒุซูŠุฑ ู…ู† ุงู„ุฃุญูŠุงู† ุŒ ูŠุชู… ุฅู†ุดุงุก ุฎุท ุงู„ูุตู„ ุจูŠู† ุงู„ู†ุธุงู… ูˆุจุฑุงู…ุฌ ุงู„ุชุทุจูŠู‚ ููŠ
ุชุบูŠูŠุฑ ู…ุณุชูˆู‰ ุงู„ุงู…ุชูŠุงุฒ ุงู„ุฐูŠ ูŠุญุฏุซ ููŠ ุงุนุชุฑุงุถุงุช ู†ุธุงู… ุงู„ุชุดุบูŠู„. ููŠ NS-3 ู„ุง ูŠูˆุฌุฏ ุญู‚ูŠู‚ูŠ
ู…ูู‡ูˆู… ู†ุธุงู… ุงู„ุชุดุบูŠู„ ูˆู„ุง ุณูŠู…ุง ู…ูู‡ูˆู… ู…ุณุชูˆูŠุงุช ุงู„ุงู…ุชูŠุงุฒ ุฃูˆ ุงุณุชุฏุนุงุกุงุช ุงู„ู†ุธุงู….
ูˆู…ุน ุฐู„ูƒ ุŒ ู„ุฏูŠู†ุง ููƒุฑุฉ ุงู„ุชุทุจูŠู‚. ุชู…ุงู…ู‹ุง ูƒู…ุง ุชุนู…ู„ ุชุทุจูŠู‚ุงุช ุงู„ุจุฑุงู…ุฌ
ุฃุฌู‡ุฒุฉ ูƒู…ุจูŠูˆุชุฑ ู„ุฃุฏุงุก ุงู„ู…ู‡ุงู… ููŠ "ุงู„ุนุงู„ู… ุงู„ุญู‚ูŠู‚ูŠ" ุŒ NS-3 ุชุดุบูŠู„ ุงู„ุชุทุจูŠู‚ุงุช NS-3 ุงู„ุนู‚ุฏ ุฅู„ู‰
ู…ุญุฑูƒ ุงู„ู…ุญุงูƒุงุฉ ููŠ ุนุงู„ู… ุงู„ู…ุญุงูƒุงุฉ.

In NS-3 ุงู„ุชุฌุฑูŠุฏ ุงู„ุฃุณุงุณูŠ ู„ุจุฑู†ุงู…ุฌ ุงู„ู…ุณุชุฎุฏู… ุงู„ุฐูŠ ูŠูˆู„ุฏ ุจุนุถ ุงู„ู†ุดุงุท
ู…ู‚ู„ุฏ ู‡ูˆ ุงู„ุชุทุจูŠู‚. ูŠุชู… ุชู…ุซูŠู„ ู‡ุฐุง ุงู„ุชุฌุฑูŠุฏ ููŠ C ++ ุจูˆุงุณุทุฉ ุงู„ูุตู„
ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ. ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูŠูˆูุฑ class ุทุฑู‚ู‹ุง ู„ุฅุฏุงุฑุฉ ุชู…ุซูŠู„ุงุช
ู†ุณุฎุชู†ุง ู…ู† ุงู„ุชุทุจูŠู‚ุงุช ุนู„ู‰ ู…ุณุชูˆู‰ ุงู„ู…ุณุชุฎุฏู… ููŠ ุนู…ู„ูŠุงุช ุงู„ู…ุญุงูƒุงุฉ. ูŠุชูˆู‚ุน ู…ู† ุงู„ู…ุทูˆุฑูŠู† ุฃู†
ุชุชุฎุตุต ููŠ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูุฆุฉ ููŠ ู…ุนู†ู‰ ุงู„ุจุฑู…ุฌุฉ ุงู„ุดูŠุฆูŠุฉ ู„ุฎู„ู‚ ุฌุฏูŠุฏ
ุงู„ุชุทุจูŠู‚ุงุช. ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุŒ ุณูˆู ู†ุณุชุฎุฏู… ุชุฎุตุตุงุช ุงู„ูุตู„ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุชุณู…ู‰
UdpEchoClientApplication UdpEchoServerApplication. ูƒู…ุง ู‚ุฏ ุชุชูˆู‚ุน ุŒ ู‡ุฐู‡
ุชู‚ูˆู… ุงู„ุชุทุจูŠู‚ุงุช ุจุชูƒูˆูŠู† ู…ุฌู…ูˆุนุฉ ุชุทุจูŠู‚ุงุช ุนู…ูŠู„ / ุฎุงุฏู… ุชูุณุชุฎุฏู… ู„ุฅู†ุดุงุก ูˆู…ุญุงูƒุงุฉ ุตุฏู‰
ุญุฒู… ุงู„ุดุจูƒุฉ

ู‚ู†ุงุฉ
ููŠ ุงู„ุนุงู„ู… ุงู„ุญู‚ูŠู‚ูŠ ุŒ ูŠู…ูƒู† ุชูˆุตูŠู„ ุฌู‡ุงุฒ ูƒู…ุจูŠูˆุชุฑ ุจุดุจูƒุฉ. ููŠ ูƒุซูŠุฑ ู…ู† ุงู„ุฃุญูŠุงู† ุนู„ู‰ ูˆุณุงุฆู„ ุงู„ุฅุนู„ุงู…
ุชุฏูู‚ุงุช ุงู„ุจูŠุงู†ุงุช ููŠ ู‡ุฐู‡ ุงู„ุดุจูƒุงุช ุชุณู…ู‰ ู‚ู†ูˆุงุช. ุนู†ุฏ ุชูˆุตูŠู„ ูƒุงุจู„ Ethernet ุงู„ุฎุงุต ุจูƒ ุจู€
ุงู„ู‚ุงุจุณ ููŠ ุงู„ุญุงุฆุท ุŒ ูุฃู†ุช ุชู‚ูˆู… ุจุชูˆุตูŠู„ ุฌู‡ุงุฒ ุงู„ูƒู…ุจูŠูˆุชุฑ ุงู„ุฎุงุต ุจูƒ ุจุงุชุตุงู„ Ethernet
ู‚ู†ุงุฉ. ููŠ ุนุงู„ู… ุงู„ู…ุญุงูƒุงุฉ NS-3ุŒ ูˆุงุญุฏ ูŠุฑุจุท ุฃ ุงู„ุนู‚ุฏุฉ ู„ูƒุงุฆู† ูŠู…ุซู„ ุฃ
ู‚ู†ุงุฉ ุงู„ุงุชุตุงู„. ู‡ู†ุง ูŠุณู…ู‰ ุงู„ุชุฌุฑูŠุฏ ุงู„ุฃุณุงุณูŠ ู„ู„ุดุจูƒุฉ ุงู„ูุฑุนูŠุฉ ู„ู„ุงุชุตุงู„ ุจู€
ู‚ู†ุงุฉ ูˆูŠู…ุซู„ู‡ุง ุงู„ูุตู„ ููŠ C ++ ู‚ู†ุงุฉ.

ุฅู†ู‘ ู‚ู†ุงุฉ ูŠูˆูุฑ class ุทุฑู‚ู‹ุง ู„ุฅุฏุงุฑุฉ ูƒุงุฆู†ุงุช ุงู„ุดุจูƒุฉ ุงู„ูุฑุนูŠุฉ ู„ู„ุงุชุตุงู„ุงุช ูˆ
ุฑุจุท ุงู„ุนู‚ุฏ ุจู‡ู…. ุงู„ู‚ู†ูˆุงุช ู‚ุฏ ูŠูƒูˆู† ู…ุชุฎุตุตู‹ุง ุฃูŠุถู‹ุง ู…ู† ู‚ุจู„ ุงู„ู…ุทูˆุฑูŠู† ููŠ ุงู„ูƒุงุฆู†
ุจู…ุนู†ู‰ ุงู„ุจุฑู…ุฌุฉ ุงู„ู…ูˆุฌู‡ุฉ. ุฃ ู‚ู†ุงุฉ ู‚ุฏ ูŠุตู…ู… ุงู„ุชุฎุตุต ุดูŠุฆู‹ุง ุจุณูŠุทู‹ุง ู…ุซู„ a
ุงู„ุฃุณู„ุงูƒ. ุงู„ู…ุชุฎุตุตูŠู† ู‚ู†ุงุฉ ูŠู…ูƒู† ุฃูŠุถู‹ุง ุชุตู…ูŠู… ุฃุดูŠุงุก ู…ุนู‚ุฏุฉ ู…ุซู„ ุดุจูƒุฉ ุฅูŠุซุฑู†ุช ูƒุจูŠุฑุฉ
ุงู„ุชุจุฏูŠู„ ุŒ ุฃูˆ ุงู„ูุถุงุก ุซู„ุงุซูŠ ุงู„ุฃุจุนุงุฏ ุงู„ู…ู„ูŠุก ุจุงู„ุนูˆุงุฆู‚ ููŠ ุญุงู„ุฉ ุงู„ุดุจูƒุงุช ุงู„ู„ุงุณู„ูƒูŠุฉ.

ุณูˆู ู†ุณุชุฎุฏู… ุฅุตุฏุงุฑุงุช ู…ุชุฎุตุตุฉ ู…ู† ู‚ู†ุงุฉ ุชุณู…ู‰ ู‚ู†ุงุฉ CsmaChannel, PointToPointChannel
ู‚ู†ุงุฉ ูˆุงูŠ ูุงูŠ ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ. ุงู„ ู‚ู†ุงุฉ CsmaChannelุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู†ู…ุงุฐุฌ ู„ู†ุณุฎุฉ ู…ู†
ุดุจูƒุฉ ุงู„ุงุชุตุงู„ุงุช ุงู„ูุฑุนูŠุฉ ุงู„ุชูŠ ุชู†ูุฐ ุฃ ุงู„ู†ุงู‚ู„ ุฅุญุณุงุณ ู…ุชุนุฏุฏ ุงู„ูˆุตูˆู„ ุงู„ุงุชุตุงู„ุงุช
ูˆุงุณุทุฉ. ู‡ุฐุง ูŠุนุทูŠู†ุง ูˆุธุงุฆู ุชุดุจู‡ ุฅูŠุซุฑู†ุช.

ุดุจูƒุฉ ุงู„ุฌู‡ุงุฒ
ูƒุงู† ุงู„ุฃู…ุฑ ููŠ ุงู„ุณุงุจู‚ ู‡ูˆ ุฃู†ูƒ ุฅุฐุง ุฃุฑุฏุช ุชูˆุตูŠู„ ุฃุฌู‡ุฒุฉ ูƒู…ุจูŠูˆุชุฑ ุจุดุจูƒุฉ ุŒ ูุนู„ูŠูƒ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ
ุดุฑุงุก ู†ูˆุน ู…ุนูŠู† ู…ู† ูƒุจู„ุงุช ุงู„ุดุจูƒุฉ ูˆุฌู‡ุงุฒ ูŠุณู…ู‰ (ุจู…ุตุทู„ุญุงุช ุงู„ูƒู…ุจูŠูˆุชุฑ ุงู„ุดุฎุตูŠ) ุฃ
ู…ุญูŠุทูŠ ููŠุฒุง ูˆู…ุงุณุชุฑูƒุงุฑุฏ ุงู„ุชูŠ ูŠุฌุจ ุชุซุจูŠุชู‡ุง ููŠ ุฌู‡ุงุฒ ุงู„ูƒู…ุจูŠูˆุชุฑ ุงู„ุฎุงุต ุจูƒ. ุฅุฐุง ูƒุงู†ุช ุงู„ุจุทุงู‚ุฉ ุงู„ุทุฑููŠุฉ
ู†ูุฐุช ุจุนุถ ูˆุธุงุฆู ุงู„ุดุจูƒุงุช ุŒ ูู‚ุฏ ุฃุทู„ู‚ูˆุง ุนู„ูŠู‡ุง ุงุณู… ุจุทุงู‚ุงุช ูˆุงุฌู‡ุฉ ุงู„ุดุจูƒุฉ ุŒ ุฃูˆ ุจุทุงู‚ุงุช NIC.
ุชุฃุชูŠ ู…ุนุธู… ุฃุฌู‡ุฒุฉ ุงู„ูƒู…ุจูŠูˆุชุฑ ุงู„ูŠูˆู… ู…ุฒูˆุฏุฉ ุจุฃุฌู‡ุฒุฉ ูˆุงุฌู‡ุฉ ุงู„ุดุจูƒุฉ ุงู„ู…ุถู…ู†ุฉ ูˆู„ุง ูŠุฑู‰ ุงู„ู…ุณุชุฎุฏู…ูˆู†
ู‡ุฐู‡ ุงู„ู„ุจู†ุงุช ุงู„ุฃุณุงุณูŠุฉ.

ู„ู† ุชุนู…ู„ ุจุทุงู‚ุฉ ูˆุงุฌู‡ุฉ ุงู„ุดุจูƒุฉ (NIC) ุจุฏูˆู† ุจุฑู†ุงู…ุฌ ุชุดุบูŠู„ ู„ู„ุชุญูƒู… ููŠ ุงู„ุฃุฌู‡ุฒุฉ. ููŠ Unix (ุฃูˆ
Linux) ุŒ ุชู… ุชุตู†ูŠู ู‚ุทุนุฉ ู…ู† ุงู„ุฃุฌู‡ุฒุฉ ุงู„ุทุฑููŠุฉ ุนู„ู‰ ุฃู†ู‡ุง ู…ู„ู ุฌู‡ุงุฒ. ูŠุชู… ุงู„ุชุญูƒู… ููŠ ุงู„ุฃุฌู‡ุฒุฉ
ุงุณุชุฎุฏุงู… ุฌู‡ุงุฒ ุงู„ุณุงุฆู‚ูŠู†ุŒ ูˆูŠุชู… ุงู„ุชุญูƒู… ููŠ ุฃุฌู‡ุฒุฉ ุงู„ุดุจูƒุฉ (NIC) ุจุงุณุชุฎุฏุงู… ุดุจูƒุฉ ุฌู‡ุงุฒ
ุงู„ุณุงุฆู‚ูŠู† ุชุนุฑู ุจุดูƒู„ ุฌู…ุงุนูŠ ุจุงุณู… ุตุงู ุงู„ุฃุฌู‡ุฒุฉ. ููŠ Unix ูˆ Linux ุŒ ุชุดูŠุฑ ุฅู„ู‰ ู‡ุฐู‡ ุงู„ุดุจูƒุงุช
ุงู„ุฃุฌู‡ุฒุฉ ุจุฃุณู…ุงุก ู…ุซู„ eth0.

In NS-3 ู‡ูŠู‡ ุตุงู ุฌู‡ุงุฒ ูŠุบุทูŠ ุงู„ุชุฌุฑูŠุฏ ูƒู„ุงู‹ ู…ู† ุจุฑู†ุงู…ุฌ ุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ูˆุงู„ู…ุญุงูƒุงุฉ
ุงู„ู…ุนุฏุงุช. ูŠุชู… "ุชุซุจูŠุช" ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ ููŠ ู…ู„ู ุงู„ุนู‚ุฏุฉ ู…ู† ุฃุฌู„ ุชู…ูƒูŠู† ุงู„ุนู‚ุฏุฉ ุฅู„ู‰
ุงู„ุชูˆุงุตู„ ู…ุน ุงู„ุขุฎุฑูŠู† ุงู„ุนู‚ุฏ ููŠ ุงู„ู…ุญุงูƒุงุฉ ุนุจุฑ ุงู„ู‚ู†ูˆุงุช. ุชู…ุงู…ู‹ุง ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ุงู„ูƒู…ุจูŠูˆุชุฑ ุงู„ุญู‚ูŠู‚ูŠ ุŒ
a ุงู„ุนู‚ุฏุฉ ู‚ุฏ ูŠูƒูˆู† ู…ุชุตู„ุงู‹ ุจุฃูƒุซุฑ ู…ู† ูˆุงุญุฏ ู‚ู†ุงุฉ ุนุจุฑ ุนุฏุฉ NetDevices.

ูŠุชู… ุชู…ุซูŠู„ ุตุงููŠ ุชุฌุฑูŠุฏ ุงู„ุฌู‡ุงุฒ ููŠ C ++ ุจุงู„ูุฆุฉ NetDevice. NetDevice
ูŠูˆูุฑ class ุทุฑู‚ู‹ุง ู„ุฅุฏุงุฑุฉ ุงู„ุงุชุตุงู„ุงุช ุจู€ ุงู„ุนู‚ุฏุฉ ู‚ู†ุงุฉ ุฃุดูŠุงุกุ› ูˆ ุฑุจู…ุง
ู…ุชุฎุตุต ู…ู† ู‚ุจู„ ุงู„ู…ุทูˆุฑูŠู† ุจู…ุนู†ู‰ ุงู„ุจุฑู…ุฌุฉ ุงู„ุดูŠุฆูŠุฉ. ุณูˆู ู†ุณุชุฎุฏู… ู…ู„ู
ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฅุตุฏุงุฑุงุช ุงู„ู…ุชุฎุตุตุฉ ู…ู† NetDevice ุชุณู…ู‰ ุฌู‡ุงุฒ CsmaNet, PointToPointNetDevice,
ุฌู‡ุงุฒ WifiNet ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ. ุชู…ุงู…ู‹ุง ูƒู…ุง ุชู… ุชุตู…ูŠู… Ethernet NIC ู„ู„ุนู…ู„ ู…ุน ู…ู„ู
ุดุจูƒุฉ ุฅูŠุซุฑู†ุช ุฌู‡ุงุฒ CsmaNet ุชู… ุชุตู…ูŠู…ู‡ ู„ู„ุนู…ู„ ู…ุน ู‚ู†ุงุฉ CsmaChannelุ› ุงู„
PointToPointNetDevice ุชู… ุชุตู…ูŠู…ู‡ ู„ู„ุนู…ู„ ู…ุน PointToPointChannel ูˆ WifiNetNevice
ุชู… ุชุตู…ูŠู…ู‡ ู„ู„ุนู…ู„ ู…ุน ู‚ู†ุงุฉ ูˆุงูŠ ูุงูŠ.

ุทุจูŠุนุฉ ุงู„ูƒุงุจู„ ุงู„ู…ุณุงุนุฏูˆู†
ููŠ ุดุจูƒุฉ ุญู‚ูŠู‚ูŠุฉ ุŒ ุณุชุฌุฏ ุฃุฌู‡ุฒุฉ ูƒู…ุจูŠูˆุชุฑ ู…ุถูŠูุฉ ุจู‡ุง ุจุทุงู‚ุงุช NIC ู…ุถุงูุฉ (ุฃูˆ ู…ุฏู…ุฌุฉ). ููŠ NS-3 we
ุณุชู‚ูˆู„ ุฃู†ูƒ ุณุชุฌุฏ ุงู„ุนู‚ุฏ ู…ุน ุงู„ู…ุฑูู‚ุฉ NetDevices. ููŠ ุดุจูƒุฉ ู…ุญุงูƒุงุฉ ูƒุจูŠุฑุฉ
ุณูˆู ุชุญุชุงุฌ ุฅู„ู‰ ุชุฑุชูŠุจ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุงุชุตุงู„ุงุช ุจูŠู† ุงู„ุนู‚ุฏ, NetDevices ุงู„ู‚ู†ูˆุงุช.

ู…ู†ุฐ ุงู„ุงุชุตุงู„ NetDevices ุฅู„ู‰ ุงู„ุนู‚ุฏ, NetDevices ุฅู„ู‰ ุงู„ู‚ู†ูˆุงุชุŒ ุชุนูŠูŠู† ุนู†ุงูˆูŠู† IP ุŒ
ูˆู…ุง ุฅู„ู‰ ุฐู„ูƒ ุŒ ู‡ูŠ ู…ุซู„ ู‡ุฐู‡ ุงู„ู…ู‡ุงู… ุงู„ุดุงุฆุนุฉ ููŠ NS-3ุŒ ู†ุญู† ู†ู‚ุฏู… ู…ุง ู†ุณู…ูŠู‡ ุทูˆุจูˆู„ูˆุฌูŠุง ุงู„ู…ุณุงุนุฏูŠู† ู„ุนู…ู„ ู‡ุฐุง
ุณู‡ู„ ู‚ุฏุฑ ุงู„ุฅู…ูƒุงู†. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู‚ุฏ ูŠุณุชุบุฑู‚ ุงู„ุฃู…ุฑ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุนู†ุงุตุฑ ุงู„ู…ู…ูŠุฒุฉ NS-3 ุงู„ุนู…ู„ูŠุงุช ุงู„ุฃุณุงุณูŠุฉ ู„
ู‚ู… ุจุฅู†ุดุงุก NetDevice ุŒ ูˆุฅุถุงูุฉ ุนู†ูˆุงู† MAC ุŒ ูˆุชุซุจูŠุช ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ ู‡ุฐุง ุนู„ู‰ ู…ู„ู ุงู„ุนู‚ุฏุฉุŒ ู‚ู… ุจุชูƒูˆูŠู†
ู…ูƒุฏุณ ุจุฑูˆุชูˆูƒูˆู„ ุงู„ุนู‚ุฏุฉ ุŒ ุซู… ู‚ู… ุจุชูˆุตูŠู„ NetDevice ู„ ู‚ู†ุงุฉ. ุงู„ู…ุฒูŠุฏ ู…ู† ุงู„ุนู…ู„ูŠุงุช
ู‚ุฏ ูŠูƒูˆู† ู…ุทู„ูˆุจู‹ุง ู„ุชูˆุตูŠู„ ุฃุฌู‡ุฒุฉ ู…ุชุนุฏุฏุฉ ุจู‚ู†ูˆุงุช ู…ุชุนุฏุฏุฉ ุงู„ู†ู‚ุงุท ุซู… ุงู„ุงุชุตุงู„
ุงู„ุดุจูƒุงุช ุงู„ูุฑุฏูŠุฉ ู…ุนู‹ุง ููŠ ุฃุนู…ุงู„ ุงู„ุฅู†ุชุฑู†ุช. ู†ุญู† ู†ู‚ุฏู… ูƒุงุฆู†ุงุช ู…ุณุงุนุฏ ุทูˆุจูˆู„ูˆุฌูŠุง
ุงุฌู…ุน ุจูŠู† ู‡ุฐู‡ ุงู„ุนู…ู„ูŠุงุช ุงู„ู…ู…ูŠุฒุฉ ุงู„ุนุฏูŠุฏุฉ ููŠ ู†ู…ูˆุฐุฌ ุณู‡ู„ ุงู„ุงุณุชุฎุฏุงู… ู„ุฑุงุญุชูƒ.

A ุงู„ุฃูˆู„ NS-3 ุณูŠู†ุงุฑูŠูˆ
ุฅุฐุง ู‚ู…ุช ุจุชู†ุฒูŠู„ ุงู„ู†ุธุงู… ูƒู…ุง ุชู… ุงู‚ุชุฑุงุญู‡ ุฃุนู„ุงู‡ ุŒ ูุณูŠูƒูˆู† ู„ุฏูŠูƒ ุฅุตุฏุงุฑ NS-3 ููŠ
ุฏุนุง ุงู„ุฏู„ูŠู„ ุงุชูุงู‚ูŠุงุช ุฅุนุงุฏุฉ ุงู„ุดุฑุงุก ุชุญุช ุฏู„ูŠู„ ู…ู†ุฒู„ูƒ. ู‚ู… ุจุงู„ุชุบูŠูŠุฑ ุฅู„ู‰ ุฏู„ูŠู„ ุงู„ุฅุตุฏุงุฑ ู‡ุฐุง ุŒ ูˆ
ูŠุฌุจ ุฃู† ุชุฌุฏ ุจู†ูŠุฉ ุฏู„ูŠู„ ู…ุซู„ ู…ุง ูŠู„ูŠ:

ุฃู…ุซู„ุฉ ุงู„ู…ุคู„ููŠู† ู„ุฃุฏูˆุงุช ุงู„ุฎุฏุด waf.bat *
ุงู„ุฑูˆุงุจุท LICENSE src ุชุณุชุฎุฏู…. ุฃุฏูˆุงุช waf
ุจู†ุงุก ns3 test.py * utils.pyc wscript
CHANGES.html README testpy-output VERSION wutils.py
doc RELEASE_NOTES testpy.supp waf * wutils.pyc

ุงู„ุชุบูŠูŠุฑ ุฅู„ู‰ ุฃู…ุซู„ุฉ / ุชุนู„ูŠู…ูŠ ุงู„ุฏู„ูŠู„. ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ู…ู„ูู‹ุง ุจุงุณู… first.cc ุชู‚ุน
ู‡ู†ุงูƒ. ู‡ุฐุง ุจุฑู†ุงู…ุฌ ู†ุตูŠ ุณูŠู†ุดุฆ ุฑุงุจุทู‹ุง ุจุณูŠุทู‹ุง ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุจูŠู† ุนู‚ุฏุชูŠู†
ูˆูŠุฑุฏุฏ ุตุฏู‰ ุญุฒู…ุฉ ูˆุงุญุฏุฉ ุจูŠู† ุงู„ุนู‚ุฏ. ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ ู‡ุฐุง ุงู„ุณุทุฑ ุงู„ู†ุตูŠ
ุงู„ุฎุท ุŒ ู„ุฐุง ุงู†ุทู„ู‚ ูˆุงูุชุญ first.cc ููŠ ุงู„ู…ุญุฑุฑ ุงู„ู…ูุถู„ ู„ุฏูŠูƒ.

ุงู„ู…ุชุฏุงูˆู„
ุงู„ุณุทุฑ ุงู„ุฃูˆู„ ููŠ ุงู„ู…ู„ู ู‡ูˆ ุณุทุฑ ูˆุถุน emacs. ู‡ุฐุง ูŠุฎุจุฑ emacs ุนู† ุงู„ุชู†ุณูŠู‚
ุงู„ุงุตุทู„ุงุญุงุช (ุฃุณู„ูˆุจ ุงู„ุชุฑู…ูŠุฒ) ุงู„ุชูŠ ู†ุณุชุฎุฏู…ู‡ุง ููŠ ุงู„ูƒูˆุฏ ุงู„ู…ุตุฏุฑูŠ ุงู„ุฎุงุต ุจู†ุง.

/ * - * - ุงู„ูˆุถุน: C ++ ุ› ู†ู…ุท ู…ู„ู c: "gnu" ุ› ูˆุถุน ุนู„ุงู…ุงุช ุงู„ุฌุฏูˆู„ุฉ ุงู„ุจุงุฏุฆุฉ: ู„ุง ุดูŠุก ุ› - * - * /

ู‡ุฐุง ุฏุงุฆู…ู‹ุง ู…ูˆุถูˆุน ู…ุซูŠุฑ ู„ู„ุฌุฏู„ ุฅู„ู‰ ุญุฏ ู…ุง ุŒ ู„ุฐู„ูƒ ู‚ุฏ ู†ุฎุฑุฌู‡ ู…ู† ุงู„ุทุฑูŠู‚
ููˆุฑุง. ุงู„ NS-3 ู…ุดุฑูˆุน ุŒ ู…ุซู„ ู…ุนุธู… ุงู„ู…ุดุงุฑูŠุน ุงู„ูƒุจูŠุฑุฉ ุŒ ุงุนุชู…ุฏ ุฃุณู„ูˆุจ ุงู„ุชุฑู…ูŠุฒ ู„
ุงู„ุชูŠ ูŠุฌุจ ุฃู† ุชู„ุชุฒู… ุจู‡ุง ุฌู…ูŠุน ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ู…ุณุงู‡ู…ุฉ. ุฅุฐุง ูƒู†ุช ุชุฑุบุจ ููŠ ุงู„ู…ุณุงู‡ู…ุฉ ููŠ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุฎุงุตุฉ ุจูƒ ููŠ
ุงู„ู…ุดุฑูˆุน ุŒ ุณูŠุชุนูŠู† ุนู„ูŠูƒ ููŠ ุงู„ู†ู‡ุงูŠุฉ ุงู„ุชูˆุงูู‚ ู…ุน NS-3 ู…ุนูŠุงุฑ ุงู„ุชุฑู…ูŠุฒ ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ููŠ
ุงู„ู…ู„ู doc / codingstd.txt ุฃูˆ ุงู„ู…ุนุฑูˆุถุฉ ุนู„ู‰ ุตูุญุฉ ูˆูŠุจ ุงู„ู…ุดุฑูˆุน ู‡ู†ุง.

ู†ูˆุตูŠูƒ ุŒ ุญุณู†ู‹ุง ุŒ ุฃู† ุชุนุชุงุฏ ุนู„ู‰ ุงู„ุดูƒู„ ูˆุงู„ู…ุธู‡ุฑ NS-3 ุฑู…ุฒ ูˆุงุนุชู…ุงุฏ
ู‡ุฐุง ุงู„ู…ุนูŠุงุฑ ูƒู„ู…ุง ูƒู†ุช ุชุนู…ู„ ู…ุน ุงู„ูƒูˆุฏ ุงู„ุฎุงุต ุจู†ุง. ูƒู„ ูุฑูŠู‚ ุงู„ุชุทูˆูŠุฑ ูˆ
ู„ู‚ุฏ ูุนู„ ุงู„ู…ุณุงู‡ู…ูˆู† ุฐู„ูƒ ุจูƒู…ูŠุงุช ู…ุฎุชู„ูุฉ ู…ู† ุงู„ุชุฐู…ุฑ. ุณุทุฑ ูˆุถุน emacs ุฃุนู„ุงู‡
ูŠุณู‡ู„ ุงู„ุญุตูˆู„ ุนู„ู‰ ุงู„ุชู†ุณูŠู‚ ุงู„ุตุญูŠุญ ุฅุฐุง ูƒู†ุช ุชุณุชุฎุฏู… ู…ุญุฑุฑ emacs.

ุฅู†ู‘ NS-3 simulator ู…ุฑุฎุต ุจุงุณุชุฎุฏุงู… ุฑุฎุตุฉ ุฌู†ูˆ ุงู„ุนู…ูˆู…ูŠุฉ ุงู„ุนุงู…ุฉ. ุณุชุฑู‰ ู…ู„ู
ู‚ุงู†ูˆู† ุฌู†ูˆ ุงู„ู…ู†ุงุณุจ ููŠ ุฑุฃุณ ูƒู„ ู…ู„ู ููŠ NS-3 ุชูˆุฒูŠุน. ููŠ ูƒุซูŠุฑ ู…ู† ุงู„ุฃุญูŠุงู†
ุณูˆู ุชุฑู‰ ุฅุดุนุงุฑ ุญู‚ูˆู‚ ุงู„ุชุฃู„ูŠู ูˆุงู„ู†ุดุฑ ู„ุฅุญุฏู‰ ุงู„ู…ุคุณุณุงุช ุงู„ู…ุดุงุฑูƒุฉ ููŠ NS-3 ุงู„ู…ุดุฑูˆุน ุฃุนู„ุงู‡
ู†ุต GPL ูˆุงู„ู…ุคู„ู ุงู„ู…ุฐูƒูˆุฑ ุฃุฏู†ุงู‡.

/*
* ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ู…ุฌุงู†ูŠ ุ› ูŠู…ูƒู†ูƒ ุฅุนุงุฏุฉ ุชูˆุฒูŠุนู‡ ูˆ / ุฃูˆ ุชุนุฏูŠู„ู‡
* ุจู…ูˆุฌุจ ุดุฑูˆุท ุฑุฎุตุฉ ุฌู†ูˆ ุงู„ุนู…ูˆู…ูŠุฉ ุงู„ุฅุตุฏุงุฑ 2 ูƒู€
* ู†ุดุฑุชู‡ ู…ุคุณุณุฉ ุงู„ุจุฑู…ุฌูŠุงุช ุงู„ุญุฑุฉ ุ›
*
* ูŠุชู… ุชูˆุฒูŠุน ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุนู„ู‰ ุฃู…ู„ ุฃู† ูŠูƒูˆู† ู…ููŠุฏุง ุŒ
* ูˆู„ูƒู† ุจุฏูˆู† ุฃูŠ ุถู…ุงู† ุ› ุญุชู‰ ุจุฏูˆู† ุงู„ุถู…ุงู† ุงู„ุถู…ู†ูŠ ู„ู€
* ุงู„ู‚ุงุจู„ูŠุฉ ู„ู„ุชุณูˆูŠู‚ ุฃูˆ ุงู„ู…ู„ุงุกู…ุฉ ู„ุบุฑุถ ู…ุนูŠู†. ุงู†ุธุฑ
* ุฑุฎุตุฉ ุฌู†ูˆ ุงู„ุนู…ูˆู…ูŠุฉ ู„ู…ุฒูŠุฏ ู…ู† ุงู„ุชูุงุตูŠู„.
*
* ูŠุฌุจ ุฃู† ุชูƒูˆู† ู‚ุฏ ุชู„ู‚ูŠุช ู†ุณุฎุฉ ู…ู† ุฑุฎุตุฉ ุฌู†ูˆ ุงู„ุนู…ูˆู…ูŠุฉ ุงู„ุนุงู…ุฉ
* ู…ุน ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุ› ุฅุฐุง ู„ู… ูŠูƒู† ูƒุฐู„ูƒ ุŒ ูุงูƒุชุจ ุฅู„ู‰ ุงู„ุจุฑู…ุฌูŠุงุช ุงู„ุญุฑุฉ
* FoundationุŒ Inc.ุŒ 59 Temple PlaceุŒ Suite 330ุŒ BostonุŒ MA 02111-1307 USA
*/

ูˆุญุฏุฉ ูˆูŠุดู…ู„
ูŠุจุฏุฃ ุงู„ูƒูˆุฏ ุงู„ุตุญูŠุญ ุจุนุฏุฏ ู…ู† ุนุจุงุฑุงุช ุงู„ุชุถู…ูŠู†.

# ุชุถู…ูŠู† "ns3 / core-module.h"
# ุชุถู…ูŠู† "ns3 / network-module.h"
# ุชุถู…ูŠู† "ns3 / internet-module.h"
# ุชุถู…ูŠู† "ns3 / point-to-point-module.h"
#include "ns3 / applications-module.h"

ู„ู…ุณุงุนุฏุฉ ู…ุณุชุฎุฏู…ูŠ ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุนุงู„ูŠุฉ ุงู„ู…ุณุชูˆู‰ ู„ุฏูŠู†ุง ุนู„ู‰ ุงู„ุชุนุงู…ู„ ู…ุน ุงู„ุนุฏุฏ ุงู„ูƒุจูŠุฑ ู…ู† ู…ู„ูุงุช ุงู„ุชุถู…ูŠู† ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ
ุงู„ู†ุธุงู… ุงู„ุฐูŠ ู‚ู…ู†ุง ุจุชุฌู…ูŠุนู‡ ูŠุดุชู…ู„ ุนู„ู‰ ูˆุญุฏุงุช ูƒุจูŠุฑุฉ ู†ุณุจูŠู‹ุง. ู†ุญู† ู†ู‚ุฏู… ู…ู„ู
ู‚ู… ุจุชุถู…ูŠู† ุงู„ู…ู„ู ุงู„ุฐูŠ ุณูŠุญู…ู„ ุจุดูƒู„ ู…ุชูƒุฑุฑ ุฌู…ูŠุน ู…ู„ูุงุช ุงู„ุชุถู…ูŠู† ุงู„ู…ุณุชุฎุฏู…ุฉ ููŠ ูƒู„ ูˆุญุฏุฉ.
ุจุฏู„ุงู‹ ู…ู† ุงู„ุงุถุทุฑุงุฑ ุฅู„ู‰ ุงู„ุจุญุซ ุนู† ุงู„ุนู†ูˆุงู† ุงู„ุฐูŠ ุชุญุชุงุฌู‡ ุจุงู„ุถุจุท ุŒ ูˆุฑุจู…ุง ูŠุชุนูŠู† ุนู„ูŠูƒ ุงู„ุญุตูˆู„ ุนู„ู‰ ู…ู„ู
ุนุฏุฏ ุงู„ุชุจุนูŠุงุช ุจุดูƒู„ ุตุญูŠุญ ุŒ ู†ู…ู†ุญูƒ ุงู„ู‚ุฏุฑุฉ ุนู„ู‰ ุชุญู…ูŠู„ ู…ุฌู…ูˆุนุฉ ู…ู† ุงู„ู…ู„ูุงุช ุจุดูƒู„ ูƒุจูŠุฑ
ุชู‚ุณูŠู…ุงุช. ู„ูŠุณ ู‡ุฐุง ู‡ูˆ ุงู„ู†ู‡ุฌ ุงู„ุฃูƒุซุฑ ูƒูุงุกุฉ ูˆู„ูƒู†ู‡ ุจุงู„ุชุฃูƒูŠุฏ ูŠุฌุนู„ ุงู„ูƒุชุงุจุฉ
ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุฃุณู‡ู„ ุจูƒุซูŠุฑ.

ูƒู„ ูˆุงุญุฏ ู…ู† NS-3 ุชุถู…ูŠู† ุงู„ู…ู„ูุงุช ููŠ ุฏู„ูŠู„ ูŠุณู…ู‰ ns3 (ุชุญุช ุงู„ุฅู†ุดุงุก
ุงู„ุฏู„ูŠู„) ุฃุซู†ุงุก ุนู…ู„ูŠุฉ ุงู„ุฅู†ุดุงุก ู„ู„ู…ุณุงุนุฏุฉ ููŠ ุชุฌู†ุจ ุชุถู…ูŠู† ุชุถุงุฑุจุงุช ุงุณู… ุงู„ู…ู„ู. ุงู„
ns3 / core-module.h ูŠุชูˆุงูู‚ ุงู„ู…ู„ู ู…ุน ุงู„ูˆุญุฏุฉ ุงู„ู†ู…ุทูŠุฉ ns-3 ุงู„ุชูŠ ุณุชุฌุฏู‡ุง ููŠ ุงู„ุฏู„ูŠู„
src / ุงู„ุฃุณุงุณูŠุฉ ููŠ ุชูˆุฒูŠุน ุงู„ุฅุตุฏุงุฑ ุงู„ุฐูŠ ุชู… ุชู†ุฒูŠู„ู‡. ุฅุฐุง ู‚ู…ุช ุจุฅุฏุฑุงุฌ ู‡ุฐุง ุงู„ุฏู„ูŠู„ ุณูˆู ุชูุนู„
ุงู„ุนุซูˆุฑ ุนู„ู‰ ุนุฏุฏ ูƒุจูŠุฑ ู…ู† ู…ู„ูุงุช ุงู„ุฑุฃุณ. ุนู†ุฏู…ุง ุชู‚ูˆู… ุจุจู†ุงุก ุŒ ุณูŠุถุน Waf ุงู„ุนู†ูˆุงู† ุงู„ุนุงู…
ุงู„ู…ู„ูุงุช ููŠ ู…ู„ู ns3 ุฏู„ูŠู„ ุชุญุช ุงู„ู…ู†ุงุณุจ ุจู†ุงุก / ุชุตุญูŠุญ or ุจู†ุงุก / ุงู„ุฃู…ุซู„ ุฏู„ูŠู„
ุญุณุจ ุงู„ุชูƒูˆูŠู† ุงู„ุฎุงุต ุจูƒ. ุณูˆู Waf ุฃูŠุถุง ุชู„ู‚ุงุฆูŠุง ุฅู†ุดุงุก ูˆุญุฏุฉ ุชุดู…ู„
ู…ู„ู ู„ุชุญู…ูŠู„ ูƒุงูุฉ ู…ู„ูุงุช ุงู„ุชุฑูˆูŠุณุฉ ุงู„ุนุงู…ุฉ.

ู†ุธุฑู‹ุง ู„ุฃู†ูƒ ุŒ ุจุงู„ุทุจุน ุŒ ุชุชุจุน ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุฏูŠู†ูŠู‹ุง ุŒ ูุณุชูƒูˆู† ู‚ุฏ ูุนู„ุช ุฐู„ูƒ ุจุงู„ูุนู„
a

$ ./waf -d debug - ุฃู…ุซู„ุฉ ู‚ุงุจู„ุฉ ู„ู„ุชู…ูƒูŠู† - ุชูƒูˆูŠู† ุงุฎุชุจุงุฑุงุช ุงู„ุชู…ูƒูŠู†

ู…ู† ุฃุฌู„ ุชูƒูˆูŠู† ุงู„ู…ุดุฑูˆุน ู„ุฃุฏุงุก ุชุตู…ูŠู…ุงุช ุชุตุญูŠุญ ุงู„ุฃุฎุทุงุก ุงู„ุชูŠ ุชุชุถู…ู† ุฃู…ุซู„ุฉ ูˆุงุฎุชุจุงุฑุงุช.
ุณุชูƒูˆู† ู‚ุฏ ู‚ู…ุช ุฃูŠุถู‹ุง ุจุนู…ู„ ู…ู„ู

$ ./ูˆุงู

ู„ุจู†ุงุก ุงู„ู…ุดุฑูˆุน. ุญุชู‰ ุงู„ุขู† ุฅุฐุง ู†ุธุฑุช ููŠ ุงู„ุฏู„ูŠู„ ../../build/debug/ns3 ุณูˆู
ุงุจุญุซ ุนู† ุฃุฑุจุน ูˆุญุฏุงุช ุชุชุถู…ู† ุงู„ู…ู„ูุงุช ุงู„ู…ูˆุถุญุฉ ุฃุนู„ุงู‡. ูŠู…ูƒู†ูƒ ุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ ู…ุญุชูˆูŠุงุช
ู‡ุฐู‡ ุงู„ู…ู„ูุงุช ูˆูˆุฌุฏูˆุง ุฃู†ู‡ุง ุชุชุถู…ู† ุฌู…ูŠุน ุงู„ุฌู…ู‡ูˆุฑ ุชุถู…ูŠู† ุงู„ู…ู„ูุงุช ููŠ ุงู„ุฎุงุตุฉ ุจู‡ู…
ุงู„ูˆุญุฏุงุช ุงู„ู…ุนู†ูŠุฉ.

Ns3 ู…ุณุงุญุฉ ุงู„ุงุณู…
ุงู„ุณุทุฑ ุงู„ุชุงู„ูŠ ููŠ first.cc ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู‡ูˆ ุฅุนู„ุงู† ู…ุณุงุญุฉ ุงู„ุงุณู….

ุจุงุณุชุฎุฏุงู… ู…ุณุงุญุฉ ุงู„ุงุณู… ns3 ุ›

ุฅู†ู‘ NS-3 ุชู… ุชู†ููŠุฐ ุงู„ู…ุดุฑูˆุน ููŠ ู…ุณุงุญุฉ ุงุณู… C ++ ุชุณู…ู‰ ns3. ู‡ุฐู‡ ุงู„ู…ุฌู…ูˆุนุงุช ูƒู„ู‡ุง
NS-3- ุงู„ุฅุนู„ุงู†ุงุช ุฐุงุช ุงู„ุตู„ุฉ ููŠ ู†ุทุงู‚ ุฎุงุฑุฌ ู†ุทุงู‚ ุงู„ุงุณู… ุงู„ุนุงู„ู…ูŠ ุŒ ูˆุงู„ุชูŠ ู†ุฃู…ู„ ุฃู† ุชุณุงุนุฏ
ู…ุน ุงู„ุชูƒุงู…ู„ ู…ุน ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุฃุฎุฑู‰. C ++ ุงุณุชุฎุฏุงู… ูŠู‚ุฏู… ุงู„ุจูŠุงู† NS-3 ู…ุณุงุญุฉ ุงู„ุงุณู…
ููŠ ุงู„ู…ู†ุทู‚ุฉ ุงู„ุชุตุฑูŠุญูŠุฉ ุงู„ุญุงู„ูŠุฉ (ุงู„ุนุงู„ู…ูŠุฉ). ู‡ุฐู‡ ุทุฑูŠู‚ุฉ ุฑุงุฆุนุฉ ู„ู‚ูˆู„ ุฐู„ูƒ ุจุนุฏ ุฐู„ูƒ
ู‡ุฐุง ุงู„ุฅุนู„ุงู†ุŒ ู„ู† ุชุถุทุฑ ุฅู„ู‰ ุงู„ูƒุชุงุจุฉ ns3:: ุนุงู…ู„ ุฏู‚ุฉ ุงู„ู†ุทุงู‚ ู‚ุจู„ ูƒู„ ุดูŠุก
ู‡ูŠู‡ NS-3 ุงู„ูƒูˆุฏ ู…ู† ุฃุฌู„ ุงุณุชุฎุฏุงู…ู‡. ุฅุฐุง ู„ู… ุชูƒู† ุนู„ู‰ ุฏุฑุงูŠุฉ ุจู…ุณุงุญุงุช ุงู„ุฃุณู…ุงุกุŒ ููŠุฑุฌู‰ ุงุณุชุดุงุฑุฉ
ุชู‚ุฑูŠุจู‹ุง ุฃูŠ ุจุฑู†ุงู…ุฌ ุชุนู„ูŠู…ูŠ ู„ู€ C++ ูˆู…ู‚ุงุฑู†ุฉ ns3 ู…ุณุงุญุฉ ุงู„ุงุณู… ูˆุงู„ุงุณุชุฎุฏุงู… ู‡ู†ุง ู…ุน ู…ุซูŠู„ุงุช
ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง ู…ุณุงุญุฉ ุงู„ุงุณู… ูˆ ุงุณุชุฎุฏุงู… ู…ุณุงุญุฉ ุงู„ุงุณู… ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง. ุงู„ุจูŠุงู†ุงุช ุงู„ุชูŠ ุบุงู„ุจุง ู…ุง ุชุฌุฏู‡ุง ููŠ ุงู„ู…ู†ุงู‚ุดุงุช
of cout ูˆุงู„ุฌุฏุงูˆู„.

ุชุณุฌูŠู„
ุงู„ุณุทุฑ ุงู„ุชุงู„ูŠ ู…ู† ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู‡ูˆ ู…ุง ูŠู„ูŠุŒ

NS_LOG_COMPONENT_DEFINE ("FirstScriptExample")ุ›

ุณู†ุณุชุฎุฏู… ู‡ุฐุง ุงู„ุจูŠุงู† ูƒู…ูƒุงู† ู…ู†ุงุณุจ ู„ู„ุญุฏูŠุซ ุนู† ูˆุซุงุฆู‚ Doxygen ุงู„ุฎุงุตุฉ ุจู†ุง
ู†ุธุงู…. ุฅุฐุง ู†ุธุฑุชู… ุฅู„ู‰ ู…ูˆู‚ุน ุงู„ู…ุดุฑูˆุน ุนู„ู‰ ุดุจูƒุฉ ุงู„ุฅู†ุชุฑู†ุชุŒ NS-3 ุชู†ููŠุฐ ุงู„ู…ุดุงุฑูŠุน ุŒ ุณูˆู ุชุฌุฏ ุฑุงุจุทุง ู„
"ุงู„ูˆุซุงุฆู‚" ููŠ ุดุฑูŠุท ุงู„ุชู†ู‚ู„. ุฅุฐุง ู‚ู…ุช ุจุชุญุฏูŠุฏ ู‡ุฐุง ุงู„ุฑุงุจุทุŒ ุณูŠุชู… ู†ู‚ู„ูƒ ุฅู„ู‰ ู…ูˆู‚ุนู†ุง
ุตูุญุฉ ุงู„ุชูˆุซูŠู‚. ูŠูˆุฌุฏ ุฑุงุจุท ุฅู„ู‰ "ุฃุญุฏุซ ุฅุตุฏุงุฑ" ุณูŠู†ู‚ู„ูƒ ุฅู„ู‰
ูˆุซุงุฆู‚ ู„ุฃุญุฏุซ ุฅุตุฏุงุฑ ู…ุณุชู‚ุฑ ู…ู† NS-3. ุฅุฐุง ู‚ู…ุช ุจุชุญุฏูŠุฏ "API
ุฑุงุจุท "ุงู„ุชูˆุซูŠู‚"ุŒ ุณูŠุชู… ู†ู‚ู„ูƒ ุฅู„ู‰ NS-3 ุตูุญุฉ ูˆุซุงุฆู‚ API.

ุนู„ู‰ ุทูˆู„ ุงู„ุฌุงู†ุจ ุงู„ุฃูŠุณุฑุŒ ุณูˆู ุชุฌุฏ ุชู…ุซูŠู„ ุฑุณูˆู…ูŠ ู„ู‡ูŠูƒู„
ุชูˆุซูŠู‚. ู…ูƒุงู† ุฌูŠุฏ ู„ู„ุจุฏุก ู‡ูˆ NS-3 ุงู„ุฃู‚ุณุงู… "ูƒุชุงุจ" ููŠ NS-3 ู…ู„ุงุญุฉ
ุดุฌุฑุฉ. ุฅุฐุง ู‚ู…ุช ุจุชูˆุณูŠุน ุงู„ุฃู‚ุณุงู… ุณุชุฑู‰ ู‚ุงุฆู…ุฉ NS-3 ูˆุซุงุฆู‚ ุงู„ูˆุญุฏุฉ. ุงู„
ูŠุฑุชุจุท ู…ูู‡ูˆู… ุงู„ูˆุญุฏุฉ ู‡ู†ุง ู…ุจุงุดุฑุฉ ุจุงู„ูˆุญุฏุฉ ูˆูŠุชุถู…ู† ุงู„ู…ู„ูุงุช ุงู„ุชูŠ ุชู…ุช ู…ู†ุงู‚ุดุชู‡ุง ุฃุนู„ุงู‡. ุงู„
NS-3 ุชู…ุช ู…ู†ุงู‚ุดุฉ ู†ุธุงู… ุงู„ุชุณุฌูŠู„ ุงู„ูุฑุนูŠ ููŠ C + + ูŠุจู†ูŠ ู…ุณุชุนู…ู„ by ุงู„ูƒู„ ุงู„ุฃู‚ุณุงู… ุงู„ู‚ุณู…ุŒ ู„ุฐู„ูƒ
ุงู„ู…ุถูŠ ู‚ุฏู…ู‹ุง ูˆู‚ู… ุจุชูˆุณูŠุน ุนู‚ุฏุฉ ุงู„ุชูˆุซูŠู‚ ู‡ุฐู‡. ุงู„ุขู†ุŒ ู‚ู… ุจุชูˆุณูŠุน ุงู„ุชุตุญูŠุญ ูƒุชุงุจ ูˆุจุนุฏ ุฐู„ูƒ
ุญุฏุฏ ุชุณุฌูŠู„ .

ูŠุฌุจ ุฃู† ุชู†ุธุฑ ุงู„ุขู† ุฅู„ู‰ ูˆุซุงุฆู‚ Doxygen ุงู„ุฎุงุตุฉ ุจูˆุญุฏุฉ ุงู„ุชุณุฌูŠู„. ููŠ ุงู„
ู‚ุงุฆู…ุฉ # ุชุนุฑูŠูููŠ ุฃุนู„ู‰ ุงู„ุตูุญุฉ ุณุชุฑู‰ ุงู„ุฅุฏุฎุงู„ ุงู„ุฎุงุต ุจู€
NS_LOG_COMPONENT_DEFINE. ู‚ุจู„ ุงู„ู‚ูุฒุŒ ุฑุจู…ุง ูŠูƒูˆู† ู…ู† ุงู„ุฌูŠุฏ ุงู„ุจุญุซ ุนู†
"ุงู„ูˆุตู ุงู„ุชูุตูŠู„ูŠ" ู„ูˆุญุฏุฉ ุงู„ุชุณุฌูŠู„ ู„ู„ุชุนุฑู ุนู„ู‰ ุงู„ุนู…ู„ูŠุฉ ุงู„ุดุงู…ู„ุฉ. ุฃู†ุช
ูŠู…ูƒู†ูƒ ุฅู…ุง ุงู„ุชู…ุฑูŠุฑ ู„ุฃุณูู„ ุฃูˆ ุชุญุฏูŠุฏ ุงู„ุฑุงุจุท "ุงู„ู…ุฒูŠุฏ..." ุถู…ู† ู…ุฎุทุท ุงู„ุชุนุงูˆู† ู„ู„ู‚ูŠุงู… ุจู‡
ู‡ุฐุง.

ุจู…ุฌุฑุฏ ุฃู† ุชูƒูˆู† ู„ุฏูŠูƒ ููƒุฑุฉ ุนุงู…ุฉ ุนู…ุง ูŠุญุฏุซุŒ ู‚ู… ุจุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ ู…ุง ู‡ูˆ ู…ุญุฏุฏ
NS_LOG_COMPONENT_DEFINE ุชูˆุซูŠู‚. ู„ู† ุฃู‚ูˆู… ุจุชูƒุฑุงุฑ ุงู„ูˆุซุงุฆู‚ ู‡ู†ุงุŒ ูˆู„ูƒู†
ุชู„ุฎูŠุตุŒ ู‡ุฐุง ุงู„ุณุทุฑ ูŠุนู„ู† ุนู† ู…ูƒูˆู† ุชุณุฌูŠู„ ูŠุณู…ู‰ ู…ุซุงู„ FirstScript ุฐู„ูƒ ูŠุณู…ุญ
ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ูˆุชุนุทูŠู„ ุชุณุฌูŠู„ ุฑุณุงุฆู„ ูˆุญุฏุฉ ุงู„ุชุญูƒู… ุจุงู„ุฑุฌูˆุน ุฅู„ู‰ ุงู„ุงุณู….

ุงู„ุฑุฆูŠุณูŠุฉ ุงู„ูˆุธูŠูุฉ
ุงู„ุฃุณุทุฑ ุงู„ุชุงู„ูŠุฉ ู…ู† ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุณุชุฌุฏู‡ุง ู‡ูŠุŒ

ู…ุงุฏุจุง
main (int argcุŒ char * argv [])
{

ู‡ุฐุง ู…ุฌุฑุฏ ุฅุนู„ุงู† ุนู† ุงู„ูˆุธูŠูุฉ ุงู„ุฑุฆูŠุณูŠุฉ ู„ุจุฑู†ุงู…ุฌูƒ (ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ). ุชู…ุงู…ุง ูƒู…ุง ููŠ
ุฃูŠ ุจุฑู†ุงู…ุฌ C++ุŒ ุชุญุชุงุฌ ุฅู„ู‰ ุชุญุฏูŠุฏ ูˆุธูŠูุฉ ุฑุฆูŠุณูŠุฉ ุณุชูƒูˆู† ุฃูˆู„ ูˆุธูŠูุฉ ูŠุชู… ุชุดุบูŠู„ู‡ุง.
ู„ุง ูŠูˆุฌุฏ ุดูŠุก ุฎุงุต ุนู„ู‰ ุงู„ุฅุทู„ุงู‚ ู‡ู†ุง. ู„ูƒ NS-3 ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู‡ูˆ ู…ุฌุฑุฏ ุจุฑู†ุงู…ุฌ C ++.

ูŠู‚ูˆู… ุงู„ุณุทุฑ ุงู„ุชุงู„ูŠ ุจุชุนูŠูŠู† ุฏู‚ุฉ ุงู„ูˆู‚ุช ุฅู„ู‰ ู†ุงู†ูˆุซุงู†ูŠุฉ ูˆุงุญุฏุฉุŒ ูˆู‡ูˆ ู…ุง ูŠุญุฏุซ ู„ูŠูƒูˆู† ุงู„ุฅุนุฏุงุฏ ุงู„ุงูุชุฑุงุถูŠ
ุงู„ู‚ูŠู…ุฉ:

ุงู„ูˆู‚ุช::SetResolution (ุงู„ูˆู‚ุช::NS)ุ›

ุงู„ุฏู‚ุฉ ู‡ูŠ ุฃุตุบุฑ ู‚ูŠู…ุฉ ุฒู…ู†ูŠุฉ ูŠู…ูƒู† ุชู…ุซูŠู„ู‡ุง (ูˆูƒุฐู„ูƒ ุฃุตุบุฑ ู‚ูŠู…ุฉ ุฒู…ู†ูŠุฉ
ูุฑู‚ ูŠู…ูƒู† ุชู…ุซูŠู„ู‡ ุจูŠู† ู‚ูŠู…ุชูŠู† ุฒู…ู†ูŠุชูŠู†). ูŠู…ูƒู†ูƒ ุชุบูŠูŠุฑ ุงู„ู‚ุฑุงุฑ ุจุงู„ุถุจุท
ู…ุฑุฉ ูˆุงุญุฏุฉ. ุงู„ุขู„ูŠุฉ ุงู„ุชูŠ ุชุชูŠุญ ู‡ุฐู‡ ุงู„ู…ุฑูˆู†ุฉ ู‡ูŠ ุฅู„ู‰ ุญุฏ ู…ุง ู…ุชุนุทุดุฉ ู„ู„ุฐุงูƒุฑุฉุŒ ู„ุฐุง ุจู…ุฌุฑุฏ
ุชู… ุถุจุท ุงู„ุฏู‚ุฉ ุจุดูƒู„ ุตุฑูŠุญุŒ ุญูŠุซ ู†ู‚ูˆู… ุจุชุญุฑูŠุฑ ุงู„ุฐุงูƒุฑุฉุŒ ู…ู…ุง ูŠู…ู†ุน ุฅุฌุฑุงุก ุงู„ู…ุฒูŠุฏ ู…ู† ุงู„ุชุญุฏูŠุซุงุช.
(ุฅุฐุง ู„ู… ุชู‚ู… ุจุชุนูŠูŠู† ุงู„ุฏู‚ุฉ ุจุดูƒู„ ุตุฑูŠุญุŒ ูุณูŠุชู… ุถุจุทู‡ุง ุจุดูƒู„ ุงูุชุฑุงุถูŠ ุนู„ู‰ ู†ุงู†ูˆ ุซุงู†ูŠุฉ ูˆุงุญุฏุฉุŒ ูˆ
ุณูŠุชู… ุชุญุฑูŠุฑ ุงู„ุฐุงูƒุฑุฉ ุนู†ุฏ ุจุฏุก ุงู„ู…ุญุงูƒุงุฉ.)

ูŠุชู… ุงุณุชุฎุฏุงู… ุงู„ุณุทุฑูŠู† ุงู„ุชุงู„ูŠูŠู† ู…ู† ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู„ุชู…ูƒูŠู† ู…ูƒูˆู†ูŠ ุงู„ุชุณุฌูŠู„ ุงู„ู„ุฐูŠู† ุชู… ุฅู†ุดุงุคู‡ู…ุง
ููŠ ุชุทุจูŠู‚ุงุช Echo Client ูˆEcho Server:

LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_INFO);

ุฅุฐุง ูƒู†ุช ู‚ุฏ ู‚ุฑุฃุช ูˆุซุงุฆู‚ ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„ุŒ ูุณูˆู ุชุฑู‰ ุฐู„ูƒ ู‡ู†ุงูƒ
ู‡ู†ุงูƒ ุนุฏุฏ ู…ู† ู…ุณุชูˆูŠุงุช ุชุณุฌูŠู„ ุงู„ุฅุณู‡ุงุจ/ุงู„ุชูุงุตูŠู„ ุงู„ุชูŠ ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู†ู‡ุง ููŠ ูƒู„ ู…ูƒูˆู†.
ูŠุนู…ู„ ู‡ุฐุงู† ุงู„ุณุทุฑุงู† ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุนู„ู‰ ุชู…ูƒูŠู† ุชุณุฌูŠู„ ุงู„ุชุตุญูŠุญ ุนู„ู‰ ู…ุณุชูˆู‰ INFO ู„ุนู…ู„ุงุก ุงู„ุงุฑุชุฏุงุฏ ูˆ
ุงู„ุฎูˆุงุฏู…. ุณูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ู‚ูŠุงู… ุงู„ุชุทุจูŠู‚ ุจุทุจุงุนุฉ ุงู„ุฑุณุงุฆู„ ุฃุซู†ุงุก ุฅุฑุณุงู„ ุงู„ุญุฒู…
ูˆุงุณุชู„ุงู…ู‡ุง ุฃุซู†ุงุก ุงู„ู…ุญุงูƒุงุฉ.

ุณู†ู†ุชู‚ู„ ุงู„ุขู† ู…ุจุงุดุฑุฉู‹ ุฅู„ู‰ ุนู…ู„ูŠุฉ ุฅู†ุดุงุก ุงู„ู‡ูŠูƒู„ ูˆุฅุฌุฑุงุก ุงู„ู…ุญุงูƒุงุฉ.
ู†ุญู† ู†ุณุชุฎุฏู… ุงู„ูƒุงุฆู†ุงุช ุงู„ู…ุณุงุนุฏุฉ ู„ู„ุทูˆุจูˆู„ูˆุฌูŠุง ู„ุฌุนู„ ู‡ุฐู‡ ุงู„ู…ู‡ู…ุฉ ุณู‡ู„ุฉ ู‚ุฏุฑ ุงู„ุฅู…ูƒุงู†.

ุทุจูŠุนุฉ ุงู„ูƒุงุจู„ ุงู„ู…ุณุงุนุฏูˆู†
NodeContainer
ุงู„ุณุทุฑูŠู† ุงู„ุชุงู„ูŠูŠู† ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุงู„ุฎุงุต ุจู†ุง ุณูˆู ูŠู‚ูˆู…ุงู† ุจุงู„ูุนู„ ุจุฅู†ุดุงุก ู…ู„ู NS-3 ุงู„ุนู‚ุฏุฉ ุงู„ุฃุดูŠุงุก ุงู„ุชูŠ
ุณูˆู ุชู…ุซู„ ุฃุฌู‡ุฒุฉ ุงู„ูƒู…ุจูŠูˆุชุฑ ููŠ ุงู„ู…ุญุงูƒุงุฉ.

ุนู‚ุฏ NodeContainer
ุงู„ุนู‚ุฏ.ุฅู†ุดุงุก (2);

ุฏุนู†ุง ู†ุฌุฏ ุงู„ูˆุซุงุฆู‚ ุงู„ุฎุงุตุฉ ุจู€ NodeContainer ุงู„ูุตู„ ู‚ุจู„ ุฃู† ู†ูˆุงุตู„. ุทุฑูŠู‚ ุงุฎุฑ
ู„ู„ุฏุฎูˆู„ ุฅู„ู‰ ุงู„ูˆุซุงุฆู‚ ุงู„ุฎุงุตุฉ ุจูุตู„ ู…ุนูŠู† ุนุจุฑ ูุตูˆู„ ุฏุฑุงุณูŠุฉ ุนู„ุงู…ุฉ ุงู„ุชุจูˆูŠุจ ููŠ Doxygen
ุงู„ุตูุญุงุช. ุฅุฐุง ูƒุงู† ู„ุง ูŠุฒุงู„ ู„ุฏูŠูƒ Doxygen ููŠ ู…ุชู†ุงูˆู„ ูŠุฏูƒุŒ ูู…ุง ุนู„ูŠูƒ ุณูˆู‰ ุงู„ุชู…ุฑูŠุฑ ู„ุฃุนู„ู‰ ุฅู„ู‰ ุฃุนู„ู‰ ุงู„ุตูุญุฉ ูˆ
ุญุฏุฏ ูุตูˆู„ ุฏุฑุงุณูŠุฉ ูุงุชูˆุฑุฉ ุบูŠุฑ ู…ุฏููˆุนุฉ. ู…ู† ุงู„ู…ูุชุฑุถ ุฃู† ุชุธู‡ุฑ ู„ูƒ ู…ุฌู…ูˆุนุฉ ุฌุฏูŠุฏุฉ ู…ู† ุนู„ุงู…ุงุช ุงู„ุชุจูˆูŠุจุŒ ูˆุงุญุฏุฉ ู…ู†ู‡ุง ู…ุจูˆุจุฉ
ู‚ุงุฆู…ุฉ. ุถู…ู† ุนู„ุงู…ุฉ ุงู„ุชุจูˆูŠุจ ู‡ุฐู‡ุŒ ุณุชุฑู‰ ู‚ุงุฆู…ุฉ ุจุฌู…ูŠุน ุงู„ุนู†ุงุตุฑ NS-3 ุงู„ุทุจู‚ุงุช. ุญุฑูƒ ุงู„ูุฃุฑุฉ ู„ุฃุณูู„ุŒ
ุงู„ุจุญุซ ุนู† ns3 :: NodeContainer. ุนู†ุฏู…ุง ุชุฌุฏ ุงู„ูุตู„ ุงู„ุฏุฑุงุณูŠุŒ ู‚ู… ุจุงู„ู…ุถูŠ ู‚ุฏู…ู‹ุง ูˆุญุฏุฏู‡ ู„ู„ุงู†ุชู‚ุงู„ ุฅู„ูŠู‡
ุงู„ูˆุซุงุฆู‚ ุงู„ุฎุงุตุฉ ุจุงู„ูุฆุฉ.

ุฑุจู…ุง ุชุชุฐูƒุฑ ุฃู† ุฃุญุฏ ุชุฌุฑูŠุฏุงุชู†ุง ุงู„ุฃุณุงุณูŠุฉ ู‡ูˆ ุงู„ุนู‚ุฏุฉ. ูˆู‡ุฐุง ูŠู…ุซู„ ุฌู‡ุงุฒ ูƒู…ุจูŠูˆุชุฑ
ูˆุงู„ุชูŠ ุณู†ุถูŠู ุฅู„ูŠู‡ุง ุฃุดูŠุงุก ู…ุซู„ ู…ูƒุฏุณุงุช ุงู„ุจุฑูˆุชูˆูƒูˆู„ ูˆุงู„ุชุทุจูŠู‚ุงุช ูˆุงู„ุฃุฌู‡ุฒุฉ ุงู„ุทุฑููŠุฉ
ุจุทุงู‚ุงุช. ุงู„ NodeContainer ูŠูˆูุฑ ู…ุณุงุนุฏ ุงู„ุทูˆุจูˆู„ูˆุฌูŠุง ุทุฑูŠู‚ุฉ ู…ู„ุงุฆู…ุฉ ู„ุฅู†ุดุงุก ูˆุฅุฏุงุฑุฉ ูˆ
ุงู„ูˆุตูˆู„ ุฅู„ู‰ ุฃูŠ ุงู„ุนู‚ุฏุฉ ุงู„ูƒุงุฆู†ุงุช ุงู„ุชูŠ ู†ู‚ูˆู… ุจุฅู†ุดุงุฆู‡ุง ู…ู† ุฃุฌู„ ุชุดุบูŠู„ ุงู„ู…ุญุงูƒุงุฉ. ุงู„ุณุทุฑ ุงู„ุฃูˆู„ ุฃุนู„ุงู‡
ูŠุนู„ู† ูู‚ุท ุนู† NodeContainer ุงู„ุฐูŠ ู†ุณู…ูŠู‡ ุงู„ุนู‚ุฏ. ุงู„ุณุทุฑ ุงู„ุซุงู†ูŠ ูŠุฏุนูˆ ุฅู†ุดุงุก
ุทุฑูŠู‚ุฉ ุนู„ู‰ ุงู„ุนู‚ุฏ ูƒุงุฆู† ูˆูŠุทู„ุจ ู…ู† ุงู„ุญุงูˆูŠุฉ ุฅู†ุดุงุก ุนู‚ุฏุชูŠู†. ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ููŠ
DoxygenุŒ ุงู„ุญุงูˆูŠุฉ ุชุณุชุฏุนูŠ ุฃุณูู„ ุฅู„ู‰ NS-3 ุงู„ู†ุธุงู… ุงู„ู…ู†ุงุณุจ ู„ุฅู†ุดุงุก ุงุซู†ูŠู† ุงู„ุนู‚ุฏุฉ
ุงู„ูƒุงุฆู†ุงุช ูˆูŠุฎุฒู† ุงู„ู…ุคุดุฑุงุช ุฅู„ู‰ ุชู„ูƒ ุงู„ูƒุงุฆู†ุงุช ุฏุงุฎู„ูŠู‹ุง.

ุงู„ุนู‚ุฏ ูƒู…ุง ู‡ูŠ ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู„ุง ุชูุนู„ ุดูŠุฆู‹ุง. ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ ููŠ ุจู†ุงุก ุฃ
ุงู„ุทูˆุจูˆู„ูˆุฌูŠุง ู‡ูŠ ุฑุจุท ุนู‚ุฏู†ุง ู…ุนู‹ุง ููŠ ุดุจูƒุฉ. ุฃุจุณุท ุดูƒู„ ู…ู† ุฃุดูƒุงู„ ุงู„ุดุจูƒุฉ ู†ุญู†
ุงู„ุฏุนู… ู‡ูˆ ุฑุงุจุท ูˆุงุญุฏ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุจูŠู† ุนู‚ุฏุชูŠู†. ุณู†ู‚ูˆู… ุจุจู†ุงุก ูˆุงุญุฏุฉ ู…ู† ู‡ุคู„ุงุก
ุงู„ุฑูˆุงุจุท ู‡ู†ุง.

PointToPointHelper
ู†ุญู† ู†ู‚ูˆู… ุจุจู†ุงุก ุฑุงุจุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉุŒ ูˆุจู†ู…ุท ุณูŠุตุจุญ ุชู…ุงู…ู‹ุง
ู…ุฃู„ูˆู ุจุงู„ู†ุณุจุฉ ู„ูƒุŒ ู†ุญู† ู†ุณุชุฎุฏู… ูƒุงุฆู†ู‹ุง ู…ุณุงุนุฏู‹ุง ู„ู„ุทูˆุจูˆู„ูˆุฌูŠุง ู„ู„ู‚ูŠุงู… ุจุงู„ุฃุนู…ุงู„ ุฐุงุช ุงู„ู…ุณุชูˆู‰ ุงู„ู…ู†ุฎูุถ ุงู„ู…ุทู„ูˆุจุฉ ู„ูˆุถุนู‡ุง
ุงู„ุฑุงุจุท ู…ุนุง. ุชุฐูƒุฑ ุฃู† ุงุซู†ูŠู† ู…ู† ุงู„ุชุฌุฑูŠุฏุงุช ุงู„ุฑุฆูŠุณูŠุฉ ู„ุฏูŠู†ุง ู‡ู…ุง NetDevice ูˆ
ู‚ู†ุงุฉ. ููŠ ุงู„ุนุงู„ู… ุงู„ุญู‚ูŠู‚ูŠุŒ ุชุชูˆุงูู‚ ู‡ุฐู‡ ุงู„ู…ุตุทู„ุญุงุช ุชู‚ุฑูŠุจู‹ุง ู…ุน ุงู„ุจุทุงู‚ุงุช ุงู„ุทุฑููŠุฉ ูˆ
ูƒุงุจู„ุงุช ุงู„ุดุจูƒุฉ. ุนุงุฏุฉู‹ ู…ุง ูŠูƒูˆู† ู‡ุฐูŠู† ุงู„ุฃู…ุฑูŠู† ู…ุฑุชุจุทูŠู† ุจุจุนุถู‡ู…ุง ุงู„ุจุนุถ ุจุดูƒู„ ูˆุซูŠู‚ ูˆู„ุง ูŠู…ูƒู† ู„ุฃุญุฏู‡ู…ุง ุฐู„ูƒ
ู†ุชูˆู‚ุน ุงู„ุชุจุงุฏู„ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุฃุฌู‡ุฒุฉ Ethernet ูˆุงู„ู‚ู†ูˆุงุช ุงู„ู„ุงุณู„ูƒูŠุฉ. ุทูˆุจูˆู„ูˆุฌูŠุง ู„ุฏูŠู†ุง
ูŠุชุจุน ุงู„ู…ุณุงุนุฏูˆู† ู‡ุฐุง ุงู„ุงู‚ุชุฑุงู† ุงู„ุญู…ูŠู… ูˆุจุงู„ุชุงู„ูŠ ุณุชุณุชุฎุฏู… ูˆุงุญุฏู‹ุง
PointToPointHelper ู„ู„ุชูƒูˆูŠู† ูˆุงู„ุงุชุตุงู„ NS-3 PointToPointNetDevice
PointToPointChannel ุงู„ูƒุงุฆู†ุงุช ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ.

ุงู„ุฃุณุทุฑ ุงู„ุซู„ุงุซุฉ ุงู„ุชุงู„ูŠุฉ ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู‡ูŠุŒ

PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate"ุŒ StringValue ("5 ู…ูŠุฌุง ุจุช ููŠ ุงู„ุซุงู†ูŠุฉ"))ุ›
pointToPoint.SetChannelAttribute ("Delay"ุŒ StringValue ("2ms"))ุ›

ุงู„ุณุทุฑ ุงู„ุฃูˆู„ุŒ

PointToPointHelper pointToPoint;

ูŠู†ุดุฆ ู…ุซูŠู„ ุฃ PointToPointHelper ูƒุงุฆู† ุนู„ู‰ ุงู„ู…ูƒุฏุณ. ู…ู† ู…ู†ุธูˆุฑ ุฑููŠุน ุงู„ู…ุณุชูˆู‰
ุงู„ุณุทุฑ ุงู„ุชุงู„ูŠุŒ

pointToPoint.SetDeviceAttribute ("DataRate"ุŒ StringValue ("5 ู…ูŠุฌุง ุจุช ููŠ ุงู„ุซุงู†ูŠุฉ"))ุ›

ูŠุญูƒูŠ PointToPointHelper ูƒุงุฆู† ู„ุงุณุชุฎุฏุงู… ุงู„ู‚ูŠู…ุฉ "5Mbps" (ุฎู…ุณุฉ ู…ูŠุบุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉ) ูƒู…ุง
"DataRate" ุนู†ุฏู…ุง ูŠู‚ูˆู… ุจุฅู†ุดุงุก ู…ู„ู PointToPointNetDevice ู…ูˆุถูˆุน.

ู…ู† ู…ู†ุธูˆุฑ ุฃูƒุซุฑ ุชูุตูŠู„ุงู‹ุŒ ุชุชูˆุงูู‚ ุงู„ุณู„ุณู„ุฉ "DataRate" ู…ุน ู…ุง ู†ุณู…ูŠู‡ ุจู€
ุงู„ุณู…ุฉ ู„ PointToPointNetDevice. ุฅุฐุง ู†ุธุฑุช ุฅู„ู‰ Doxygen ู„ู„ูุฆุฉ
ns3::PointToPointNetDevice ูˆุงุจุญุซ ุนู† ุงู„ูˆุซุงุฆู‚ ุงู„ุฎุงุตุฉ ุจู€ GetTypeId ุงู„ุทุฑูŠู‚ุฉุŒ ุณูˆู
ุงู„ุนุซูˆุฑ ุนู„ู‰ ู‚ุงุฆู…ุฉ ุงู„ุณู…ุงุช ุงู„ู…ุญุฏุฏุฉ ู„ู„ุฌู‡ุงุฒ. ู…ู† ุจูŠู†ู‡ุง "DataRate"
ุงู„ุณู…ุฉ. ุงู„ุฃูƒุซุฑ ูˆุถูˆุญุง ู„ู„ู…ุณุชุฎุฏู… NS-3 ุงู„ูƒุงุฆู†ุงุช ู„ุฏูŠู‡ุง ู‚ูˆุงุฆู… ู…ู…ุงุซู„ุฉ ู…ู† ุงู„ุณู…ุงุช. ู†ุญู† ู†ุณุชุฎุฏู… ู‡ุฐุง
ุขู„ูŠุฉ ู„ุชูƒูˆูŠู† ุนู…ู„ูŠุงุช ุงู„ู…ุญุงูƒุงุฉ ุจุณู‡ูˆู„ุฉ ุฏูˆู† ุฅุนุงุฏุฉ ุงู„ุชุฑุฌู…ุฉ ูƒู…ุง ุณุชุฑูˆู† ููŠ ู…ู„ู
ุงู„ู‚ุณู… ุงู„ุชุงู„ูŠ.

ุนู„ู‰ ุบุฑุงุฑ "DataRate" ุนู„ู‰ PointToPointNetDevice ุณูˆู ุชุฌุฏ "ุชุฃุฎูŠุฑ" ุงู„ุณู…ุฉ
ุงู„ู…ุฑุชุจุทุฉ PointToPointChannel. ุงู„ุณุทุฑ ุงู„ุฃุฎูŠุฑุŒ

pointToPoint.SetChannelAttribute ("Delay"ุŒ StringValue ("2ms"))ุ›

ูŠุญูƒูŠ PointToPointHelper ู„ุงุณุชุฎุฏุงู… ุงู„ู‚ูŠู…ุฉ "2ms" (ู…ู„ูŠ ุซุงู†ูŠุฉ) ูƒู‚ูŠู…ุฉ
ุชุฃุฎูŠุฑ ุงู„ุฅุฑุณุงู„ ู„ูƒู„ ู‚ู†ุงุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูŠุชู… ุฅู†ุดุงุคู‡ุง ู„ุงุญู‚ู‹ุง.

NetDeviceContainer
ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ู…ู† ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ู„ุฏูŠู†ุง NodeContainer ุงู„ุฐูŠ ูŠุญุชูˆูŠ ุนู„ู‰ ุนู‚ุฏุชูŠู†. ู„ุฏูŠู†ุง
PointToPointHelper ุงู„ุชูŠ ู‡ูŠ ู…ุนุฏุฉ ูˆุฌุงู‡ุฒุฉ ู„ู„ุชุตู†ูŠุน PointToPointNetDevices ูˆุงู„ุฃุณู„ุงูƒ
PointToPointChannel ุงู„ูƒุงุฆู†ุงุช ุจูŠู†ู‡ู…ุง. ุชู…ุงู…ุง ูƒู…ุง ุงุณุชุฎุฏู…ู†ุง NodeContainer ุทูˆุจูˆู„ูˆุฌูŠุง
ูƒุงุฆู† ู…ุณุงุนุฏ ู„ุฅู†ุดุงุก ุงู„ุนู‚ุฏ ุจุงู„ู†ุณุจุฉ ู„ู…ุญุงูƒุงุฉ ู„ุฏูŠู†ุงุŒ ุณูˆู ู†ุทู„ุจ ู…ู† PointToPointHelper
ู„ู„ู‚ูŠุงู… ุจุงู„ุนู…ู„ ุงู„ู…ุชุถู…ู† ููŠ ุฅู†ุดุงุก ุฃุฌู‡ุฒุชู†ุง ูˆุชูƒูˆูŠู†ู‡ุง ูˆุชุซุจูŠุชู‡ุง ู„ู†ุง. ู†ุญู†
ุณูˆู ุชุญุชุงุฌ ุฅู„ู‰ ู‚ุงุฆู…ุฉ ุจุฌู…ูŠุน ูƒุงุฆู†ุงุช NetDevice ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุงุŒ ู„ุฐู„ูƒ ู†ุณุชุฎุฏู… ู…ู„ู
NetDeviceContainer ู„ู„ุงุญุชูุงุธ ุจู‡ุง ุชู…ุงู…ู‹ุง ูƒู…ุง ุงุณุชุฎุฏู…ู†ุง NodeContainer ู„ู„ุงุญุชูุงุธ ุจุงู„ุนู‚ุฏ ุงู„ุชูŠ ู†ุณุชุฎุฏู…ู‡ุง
ู…ุฎู„ูˆู‚. ุงู„ุณุทุฑูŠู† ุงู„ุชุงู„ูŠูŠู† ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉุŒ

ุฃุฌู‡ุฒุฉ NetDeviceContainerุ›
ุงู„ุฃุฌู‡ุฒุฉ = pointToPoint.Install (ุงู„ุนู‚ุฏ)ุ›

ุณูŠู†ุชู‡ูŠ ู…ู† ุชูƒูˆูŠู† ุงู„ุฃุฌู‡ุฒุฉ ูˆุงู„ู‚ู†ุงุฉ. ุงู„ุณุทุฑ ุงู„ุฃูˆู„ ูŠุนู„ู† ุนู† ุงู„ุฌู‡ุงุฒ
ุงู„ุญุงูˆูŠุฉ ุงู„ู…ุฐูƒูˆุฑุฉ ุฃุนู„ุงู‡ ูˆุงู„ุซุงู†ูŠุฉ ุชู‚ูˆู… ุจุฑูุน ุงู„ุฃุญู…ุงู„ ุงู„ุซู‚ูŠู„ุฉ. ุงู„ ุชุซุจูŠุช ุทุฑูŠู‚ุฉ
ู‡ูŠู‡ PointToPointHelper ูŠุฃุฎุฐ NodeContainer ูƒู…ุนู„ู…ุฉ. ุฏุงุฎู„ูŠุงู‹ุŒ ุฃ
NetDeviceContainer ุฃู†ุดุฆ. ู„ูƒู„ ุนู‚ุฏุฉ ููŠ NodeContainer (ูŠุฌุจ ุฃู† ูŠูƒูˆู† ู‡ู†ุงูƒ ุจุงู„ุถุจุท
ุงุซู†ุงู† ู„ู„ุงุฑุชุจุงุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ) ุฃ PointToPointNetDevice ูŠุชู… ุฅู†ุดุงุคู‡ุง ูˆุญูุธู‡ุง ููŠ ุงู„ุฌู‡ุงุฒ
ุญุงูˆูŠุฉ. ุฃ PointToPointChannel ู‡ูˆ ุฎู„ู‚ ูˆุงุซู†ูŠู† PointToPointNetDevices .
ู…ูุฑููŽู‚. ุนู†ุฏู…ุง ูŠุชู… ุฅู†ุดุงุก ุงู„ูƒุงุฆู†ุงุช ุจูˆุงุณุทุฉ PointToPointHelperุฃุทู„ู‚ุช ุญู…ู„ุฉ ุงู„ุณู…ุงุช ุณุงุจู‚ุง
ูŠุชู… ุงุณุชุฎุฏุงู… ู…ุฌู…ูˆุนุฉ ููŠ ุงู„ู…ุณุงุนุฏ ู„ุชู‡ูŠุฆุฉ ุงู„ู…ู‚ุงุจู„ุฉ ุงู„ุณู…ุงุช ููŠ ุงู„ู…ุฎู„ูˆู‚
ุดุงุก.

ุจุนุฏ ุชู†ููŠุฐ pointToPoint.Install (ุงู„ุนู‚ุฏ) ุนู†ุฏ ุงู„ุงุชุตุงู„ ุณูŠูƒูˆู† ู„ุฏูŠู†ุง ุนู‚ุฏุชุงู†ุŒ ู„ูƒู„ ู…ู†ู‡ู…ุง
ุชู… ุชุซุจูŠุช ุฌู‡ุงุฒ ุดุจูƒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูˆู‚ู†ุงุฉ ูˆุงุญุฏุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุจูŠู†ู‡ู…ุง.
ุณูŠุชู… ุชูƒูˆูŠู† ูƒู„ุง ุงู„ุฌู‡ุงุฒูŠู† ู„ู†ู‚ู„ ุงู„ุจูŠุงู†ุงุช ุจุณุฑุนุฉ ุฎู…ุณุฉ ู…ูŠุบุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉ ุนุจุฑ
ู‚ู†ุงุฉ ู„ู‡ุง ุชุฃุฎูŠุฑ ุฅุฑุณุงู„ ูŠุจู„ุบ XNUMX ู…ูŠู„ูŠ ุซุงู†ูŠุฉ.

InternetStackHelper
ู„ุฏูŠู†ุง ุงู„ุขู† ุนู‚ุฏ ูˆุฃุฌู‡ุฒุฉ ุชู… ุชูƒูˆูŠู†ู‡ุงุŒ ูˆู„ูƒู† ู„ูŠุณ ู„ุฏูŠู†ุง ุฃูŠ ู…ุฌู…ูˆุนุงุช ุจุฑูˆุชูˆูƒูˆู„ุงุช ู…ุซุจุชุฉ
ุนู„ู‰ ุงู„ุนู‚ุฏ ู„ุฏูŠู†ุง. ุณูˆู ูŠุนุชู†ูŠ ุงู„ุณุทุฑุงู† ุงู„ุชุงู„ูŠุงู† ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุจุฐู„ูƒ.

ู…ูƒุฏุณ InternetStackHelperุ›
ู…ูƒุฏุณ ุงู„ุชุซุจูŠุช (ุงู„ุนู‚ุฏ) ุ›

ุฅู†ู‘ InternetStackHelper ู‡ูˆ ู…ุณุงุนุฏ ุทูˆุจูˆู„ูˆุฌูŠ ู„ู…ูƒุฏุณุงุช ุงู„ุฅู†ุชุฑู†ุช ู…ุง
PointToPointHelper ู‡ูˆ ู„ุฃุฌู‡ุฒุฉ ุงู„ุดุจูƒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ. ุงู„ ุชุซุจูŠุช ุชุฃุฎุฐ ุงู„ุทุฑูŠู‚ุฉ
NodeContainer ูƒู…ุนู„ู…ุฉ. ุนู†ุฏ ุชู†ููŠุฐู‡ุŒ ุณูŠุชู… ุชุซุจูŠุช Internet Stack
(TCPุŒ UDPุŒ IPุŒ ูˆู…ุง ุฅู„ู‰ ุฐู„ูƒ) ุนู„ู‰ ูƒู„ ุนู‚ุฏุฉ ููŠ ุญุงูˆูŠุฉ ุงู„ุนู‚ุฏุฉ.

IPv4AddressHelper
ุจุนุฏ ุฐู„ูƒ ู†ุญุชุงุฌ ุฅู„ู‰ ุฑุจุท ุงู„ุฃุฌู‡ุฒุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ุนู„ู‰ ุนู‚ุฏู†ุง ุจุนู†ุงูˆูŠู† IP. ู†ุญู† ู†ู‚ุฏู… ุฃ
ู…ุณุงุนุฏ ุทูˆุจูˆู„ูˆุฌูŠุง ู„ุฅุฏุงุฑุฉ ุชุฎุตูŠุต ุนู†ุงูˆูŠู† IP. ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ุงู„ูˆุญูŠุฏุฉ ุงู„ู…ุฑุฆูŠุฉ ู„ู„ู…ุณุชุฎุฏู… ู‡ูŠ
ู‚ู… ุจุชุนูŠูŠู† ุนู†ูˆุงู† IP ุงู„ุฃุณุงุณูŠ ูˆู‚ู†ุงุน ุงู„ุดุจูƒุฉ ู„ุงุณุชุฎุฏุงู…ู‡ู…ุง ุนู†ุฏ ุชู†ููŠุฐ ุงู„ุนู†ูˆุงู† ุงู„ูุนู„ูŠ
ุงู„ุชุฎุตูŠุต (ูˆุงู„ุฐูŠ ูŠุชู… ุนู„ู‰ ู…ุณุชูˆู‰ ุฃุฏู†ู‰ ุฏุงุฎู„ ุงู„ู…ุณุงุนุฏ).

ุงู„ุณุทุฑูŠู† ุงู„ุชุงู„ูŠูŠู† ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ููŠ ู…ุซุงู„ู†ุง ุงู„ู†ุตูŠุŒ first.cc,

ุนู†ูˆุงู† Ipv4AddressHelperุ›
ุนู†ูˆุงู†.SetBase ("10.1.1.0"ุŒ "255.255.255.0")ุ›

ุฃุนู„ู† ุนู† ูƒุงุฆู† ู…ุณุงุนุฏ ู„ู„ุนู†ูˆุงู† ูˆุฃุฎุจุฑู‡ ุฃู†ู‡ ูŠุฌุจ ุฃู† ูŠุจุฏุฃ ููŠ ุชุฎุตูŠุต ุนู†ุงูˆูŠู† IP
ู…ู† ุงู„ุดุจูƒุฉ 10.1.1.0 ุจุงุณุชุฎุฏุงู… ุงู„ู‚ู†ุงุน 255.255.255.0 ู„ุชุญุฏูŠุฏ ุงู„ุจุชุงุช ุงู„ู‚ุงุจู„ุฉ ู„ู„ุชุฎุตูŠุต. ุจูˆุงุณุทุฉ
ุงูุชุฑุงุถูŠู‹ุงุŒ ุณุชุจุฏุฃ ุงู„ุนู†ุงูˆูŠู† ุงู„ู…ุฎุตุตุฉ ุจูˆุงุญุฏ ูˆุชุฒุฏุงุฏ ุจุดูƒู„ ุฑุชูŠุจุŒ ู„ุฐุง ูุฅู† ุงู„ุฃูˆู„
ุงู„ุนู†ูˆุงู† ุงู„ู…ุฎุตุต ู…ู† ู‡ุฐู‡ ุงู„ู‚ุงุนุฏุฉ ุณูŠูƒูˆู† 10.1.1.1ุŒ ูŠู„ูŠู‡ 10.1.1.2ุŒ ุงู„ุฎ.
ู…ุณุชูˆู‰ NS-3 ูŠุชุฐูƒุฑ ุงู„ู†ุธุงู… ูุนู„ูŠู‹ุง ุฌู…ูŠุน ุนู†ุงูˆูŠู† IP ุงู„ู…ุฎุตุตุฉ ูˆุณูŠู‚ูˆู… ุจุฅู†ุดุงุก ู…ู„ู
ุฎุทุฃ ูุงุฏุญ ุฅุฐุง ุชุณุจุจุช ุจุทุฑูŠู‚ ุงู„ุฎุทุฃ ููŠ ุฅู†ุดุงุก ู†ูุณ ุงู„ุนู†ูˆุงู† ู…ุฑุชูŠู† (ูˆู‡ูˆ ู…ุง ูŠุนุฏ ุฎุทุฃู‹ ูุงุฏุญู‹ุง).
ู…ู† ุงู„ุตุนุจ ุฌุฏู‹ุง ุชุตุญูŠุญ ุงู„ุฎุทุฃุŒ ุจุงู„ู…ู†ุงุณุจุฉ).

ุงู„ุณุทุฑ ุงู„ุชุงู„ูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉุŒ

Ipv4InterfaceContainer ูˆุงุฌู‡ุงุช = ุนู†ูˆุงู†.ุชุนูŠูŠู† (ุงู„ุฃุฌู‡ุฒุฉ)ุ›

ูŠู†ูุฐ ุชุนูŠูŠู† ุงู„ุนู†ูˆุงู† ุงู„ูุนู„ูŠ. ููŠ NS-3 ู†ุญู† ู†ุฌุนู„ ุงู„ุงุฑุชุจุงุท ุจูŠู† IP
ุงู„ุนู†ูˆุงู† ูˆุงู„ุฌู‡ุงุฒ ุจุงุณุชุฎุฏุงู… ูˆุงุฌู‡ุฉ IPv4 ู‡ุฏู. ุชู…ุงู…ุง ูƒู…ุง ู†ุญุชุงุฌ ููŠ ุจุนุถ ุงู„ุฃุญูŠุงู† ุฅู„ู‰ ู‚ุงุฆู…ุฉ
net ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุจูˆุงุณุทุฉ ุงู„ู…ุณุงุนุฏ ู„ู„ุฑุฌูˆุน ุฅู„ูŠู‡ุง ู…ุณุชู‚ุจู„ุงู‹ ู†ุญุชุงุฌ ุฃุญูŠุงู†ู‹ุง ุฅู„ู‰ ู‚ุงุฆู…ุฉ
ูˆุงุฌู‡ุฉ IPv4 ุดุงุก. ุงู„ IPv4InterfaceContainer ูŠูˆูุฑ ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ.

ุงู„ุขู† ู„ุฏูŠู†ุง ุดุจูƒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุชู… ุจู†ุงุคู‡ุงุŒ ู…ุน ุชุซุจูŠุช ุงู„ุญุฒู… ูˆุนู†ุงูˆูŠู† IP
ู…ููƒูŽู„ู‘ูŽู. ู…ุง ู†ุญุชุงุฌู‡ ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ู‡ูˆ ุชุทุจูŠู‚ุงุช ู„ุชูˆู„ูŠุฏ ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ.

ุงู„ุชุทุจูŠู‚ุงุช
ุฃุญุฏ ุงู„ุชุฌุฑูŠุฏุงุช ุงู„ุฃุณุงุณูŠุฉ ู„ู†ุธุงู… ns-3 ู‡ูˆ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ. ููŠ ู‡ุฐุง
ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู†ุณุชุฎุฏู… ุงุซู†ูŠู† ู…ู† ุงู„ุชุฎุตุตุงุช ุงู„ุฃุณุงุณูŠุฉ NS-3 ูุฆุฉ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุชุณู…ู‰
UdpEchoServerApplication UdpEchoClientApplication. ุชู…ุงู…ุง ูƒู…ุง ูุนู„ู†ุง ููŠ ุณุงุจู‚ุชู†ุง
ุงู„ุชูุณูŠุฑุงุชุŒ ู†ุณุชุฎุฏู… ุงู„ูƒุงุฆู†ุงุช ุงู„ู…ุณุงุนุฏุฉ ู„ู„ู…ุณุงุนุฏุฉ ููŠ ุชูƒูˆูŠู† ุงู„ูƒุงุฆู†ุงุช ุงู„ุฃุณุงุณูŠุฉ ูˆุฅุฏุงุฑุชู‡ุง.
ูˆู‡ู†ุง ู†ุณุชุฎุฏู… UdpEchoServerHelper UdpEchoClientHelper ุฃุดูŠุงุก ุชุฌุนู„ ุญูŠุงุชู†ุง ุฃุณู‡ู„.

UdpEchoServerHelper
ุงู„ุฃุณุทุฑ ุงู„ุชุงู„ูŠุฉ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุงู„ู…ุซุงู„ ู„ุฏูŠู†ุงุŒ first.ccุŒ ูŠุชู… ุงุณุชุฎุฏุงู…ู‡ุง ู„ุฅุนุฏุงุฏ ุตุฏู‰ UDP
ุชุทุจูŠู‚ ุงู„ุฎุงุฏู… ุนู„ู‰ ุฅุญุฏู‰ ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุฃู†ุดุฃู†ุงู‡ุง ู…ุณุจู‚ู‹ุง.

UdpEchoServerHelper echoServer (9);

ApplicationContainer serverApps = echoServer.Install (nodes.Get (1));
serverApps.Start (Seconds (1.0));
serverApps.Stop (ุซูˆุงู†ูŠ (10.0))ุ›

ูŠุนู„ู† ุงู„ุณุทุฑ ุงู„ุฃูˆู„ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ููŠ ุงู„ู…ู‚ุชุทู ุฃุนู„ุงู‡ ุนู† UdpEchoServerHelper. ูƒู„ ุนุงุฏุฉุŒ
ู‡ุฐุง ู„ูŠุณ ุงู„ุชุทุจูŠู‚ ู†ูุณู‡ุŒ ุจู„ ู‡ูˆ ูƒุงุฆู† ูŠุณุชุฎุฏู… ู„ู…ุณุงุนุฏุชู†ุง ููŠ ุฅู†ุดุงุก ุงู„ูุนู„ูŠ
ุงู„ุชุทุจูŠู‚ุงุช. ุฃุญุฏ ุงุชูุงู‚ูŠุงุชู†ุง ู‡ูˆ ุงู„ู…ูƒุงู† ู…ุทู„ูˆุจ ุงู„ุณู…ุงุช ููŠ ุงู„ู…ุณุงุนุฏ
ุงู„ุจู†ุงุก. ูˆููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ู„ุง ูŠุณุชุทูŠุน ุงู„ู…ุณุงุนุฏ ุฃู† ูŠูุนู„ ุฃูŠ ุดูŠุก ู…ููŠุฏ ุฅู„ุง ุฅุฐุง ุชู… ุชูˆููŠุฑู‡ ู„ู‡
ุฑู‚ู… ุงู„ู…ู†ูุฐ ุงู„ุฐูŠ ูŠุนุฑูู‡ ุงู„ุนู…ูŠู„ ุฃูŠุถู‹ุง. ุจุฏู„ุงู‹ ู…ู† ู…ุฌุฑุฏ ุงุฎุชูŠุงุฑ ูˆุงุญุฏ ูˆุงู„ุฃู…ู„
ูƒู„ ุดูŠุก ูŠุนู…ู„ ุนู„ู‰ ู…ุง ูŠุฑุงู…ุŒ ูˆู†ุญู† ู†ุทู„ุจ ุฑู‚ู… ุงู„ู…ู†ูุฐ ูƒู…ุนู„ู…ุฉ ู„ู„ู…ู†ุดุฆ. ุงู„
ุงู„ู…ู†ุดุฆุŒ ุจุฏูˆุฑู‡ุŒ ุจุจุณุงุทุฉ ูŠูุนู„ SetAttribute ู…ุน ุงู„ู‚ูŠู…ุฉ ุงู„ุชูŠ ุชู… ุชู…ุฑูŠุฑู‡ุง. ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏุŒ ุฃู†ุช
ูŠู…ูƒู† ุถุจุท "ุงู„ู…ู†ูุฐ" ุงู„ุณู…ุฉ ุฅู„ู‰ ู‚ูŠู…ุฉ ุฃุฎุฑู‰ ููŠ ูˆู‚ุช ู„ุงุญู‚ ุจุงุณุชุฎุฏุงู… SetAttribute.

ุนู„ู‰ ุบุฑุงุฑ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ูƒุงุฆู†ุงุช ุงู„ู…ุณุงุนุฏุฉ ุงู„ุฃุฎุฑู‰ุŒ ูุฅู† UdpEchoServerHelper ุงู„ูƒุงุฆู† ู„ุฏูŠู‡ ุชุซุจูŠุช
ุทุฑูŠู‚ุฉ. ุฅู† ุชู†ููŠุฐ ู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ ู‡ูˆ ุงู„ุฐูŠ ูŠุณุจุจ ุงู„ุตุฏู‰ ุงู„ุฃุณุงุณูŠ ุจุงู„ูุนู„
ุณูŠุชู… ุฅู†ุดุงุก ู…ุซูŠู„ ู„ุชุทุจูŠู‚ ุงู„ุฎุงุฏู… ูˆุฅุฑูุงู‚ู‡ ุจุงู„ุนู‚ุฏุฉ. ูˆู…ู† ุงู„ู…ุซูŠุฑ ู„ู„ุงู‡ุชู…ุงู… ุฃู† ุชุซุจูŠุช
ุชุฃุฎุฐ ุงู„ุทุฑูŠู‚ุฉ NodeContainer ูƒู…ุนู„ู…ุฉ ุชู…ุงู…ุง ู…ุซู„ ุบูŠุฑู‡ุง ุชุซุจูŠุช ุงู„ุฃุณุงู„ูŠุจ ู„ุฏูŠู†ุง
ู…ุฑุฆูŠ. ู‡ุฐุง ู‡ูˆ ููŠ ุงู„ูˆุงู‚ุน ู…ุง ุชู… ุชู…ุฑูŠุฑู‡ ุฅู„ู‰ ุงู„ุทุฑูŠู‚ุฉ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ู‡ ู„ุง ูŠุจุฏูˆ ูƒุฐู„ูƒ
ู‡ุฐู‡ ุงู„ู‚ุถูŠุฉ. ู‡ู†ุงูƒ C++ ุถู…ู†ูŠ ุชุญูˆูŠู„ ููŠ ุงู„ุนู…ู„ ู‡ู†ุง ุงู„ุฐูŠ ูŠุฃุฎุฐ ู†ุชูŠุฌุฉ
ุงู„ุนู‚ุฏ (1) (ุงู„ุฐูŠ ูŠูุฑุฌุน ู…ุคุดุฑู‹ุง ุฐูƒูŠู‹ุง ุฅู„ู‰ ูƒุงุฆู† ุงู„ุนู‚ุฏุฉ --- Ptr) ูˆูŠุณุชุฎุฏู… ุฐู„ูƒ
ููŠ ู…ู†ุดุฆ ู„ู… ูŠุฐูƒุฑ ุงุณู…ู‡ NodeContainer ุซู… ูŠุชู… ุชู…ุฑูŠุฑู‡ ุฅู„ู‰ ุชุซุจูŠุช. ุฅุฐุง ูƒู†ุช
ู…ู† ุฃูŠ ูˆู‚ุช ู…ุถู‰ ููŠ ุญูŠุฑุฉ ู…ู† ุฃู…ุฑ ุงู„ุนุซูˆุฑ ุนู„ู‰ ุชูˆู‚ูŠุน ุฃุณู„ูˆุจ ู…ุนูŠู† ููŠ ูƒูˆุฏ C++ ุงู„ุฐูŠ ูŠุชู… ุชุฌู…ูŠุนู‡ ูˆุชุดุบูŠู„ู‡
ุญุณู†ู‹ุงุŒ ุงุจุญุซ ุนู† ู‡ุฐู‡ ุงู„ุฃู†ูˆุงุน ู…ู† ุงู„ุชุญูˆูŠู„ุงุช ุงู„ุถู…ู†ูŠุฉ.

ูˆู†ุญู† ุงู„ุขู† ู†ุฑู‰ ุฐู„ูƒ echoServer.Install ุณูŠู‚ูˆู… ุจุชุซุจูŠุช ุฃ UdpEchoServerApplication ุนู„ู‰
ุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ุนู‚ุฏุฉ ููŠ ุงู„ูู‡ุฑุณ ุฑู‚ู… ูˆุงุญุฏ ู…ู† NodeContainer ุงุนุชุฏู†ุง ุนู„ู‰ ุฅุฏุงุฑุฉ ุงู„ุนู‚ุฏ ู„ุฏูŠู†ุง. ุชุซุจูŠุช
ุณูŠูุฑุฌุน ุญุงูˆูŠุฉ ุชุญุชูˆูŠ ุนู„ู‰ ู…ุคุดุฑุงุช ู„ุฌู…ูŠุน ุงู„ุชุทุจูŠู‚ุงุช (ูˆุงุญุฏุฉ ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ
ู…ู†ุฐ ุฃู† ู…ุฑุฑู†ุง ุฃ NodeContainer ุชุญุชูˆูŠ ุนู„ู‰ ุนู‚ุฏุฉ ูˆุงุญุฏุฉ) ุชู… ุฅู†ุดุงุคู‡ุง ุจูˆุงุณุทุฉ ุงู„ู…ุณุงุนุฏ.

ุชุชุทู„ุจ ุงู„ุชุทุจูŠู‚ุงุช ูˆู‚ุชู‹ุง "ู„ุจุฏุก" ุชูˆู„ูŠุฏ ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ูˆู‚ุฏ ุชุณุชุบุฑู‚ ูˆู‚ุชู‹ุง ุงุฎุชูŠุงุฑูŠู‹ุง ู„ุฐู„ูƒ
"ู‚ู". ู†ุญู† ู†ู‚ุฏู… ูƒู„ูŠู‡ู…ุง. ูŠุชู… ุถุจุท ู‡ุฐู‡ ุงู„ุฃูˆู‚ุงุช ุจุงุณุชุฎุฏุงู… ุญุงูˆูŠุฉ ุงู„ุชุทุจูŠู‚ ุทุฑู‚
ุขุจุฏุฃ ู‚ู„ุฉ ุงู„ู†ูˆู…. ุชุฃุฎุฐ ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ ุงู„ูˆู‚ุช: ุญุฏูˆุฏ. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ู†ุณุชุฎุฏู… ุตุฑูŠุญ C + +
ุชุณู„ุณู„ ุงู„ุชุญูˆูŠู„ ู„ุฃุฎุฐ C++ double 1.0 ูˆุชุญูˆูŠู„ู‡ ุฅู„ู‰ NS-3 ุงู„ูˆู‚ุช: ุงู„ูƒุงุฆู† ุจุงุณุชุฎุฏุงู…
a ุซุงู†ูŠุฉ ูŠู‚ุฐู. ุงู†ุชุจู‡ ุฅู„ู‰ ุฃู† ู‚ูˆุงุนุฏ ุงู„ุชุญูˆูŠู„ ู‚ุฏ ูŠุชุญูƒู… ููŠู‡ุง ู…ุคู„ู ุงู„ู†ู…ูˆุฐุฌุŒ
ูˆC++ ู„ู‡ุง ู‚ูˆุงุนุฏู‡ุง ุงู„ุฎุงุตุฉุŒ ู„ุฐู„ูƒ ู„ุง ูŠู…ูƒู†ูƒ ุฏุงุฆู…ู‹ุง ุงูุชุฑุงุถ ุฃู† ุงู„ู…ุนู„ู…ุงุช ุณุชูƒูˆู† ุณุนูŠุฏุฉ
ุชุญูˆูŠู„ู‡ุง ู„ูƒ. ุงู„ุฎุทูŠู†ุŒ

serverApps.Start (Seconds (1.0));
serverApps.Stop (ุซูˆุงู†ูŠ (10.0))ุ›

ุณูŠุคุฏูŠ ุฅู„ู‰ ุชุทุจูŠู‚ ุฎุงุฏู… ุงู„ุตุฏู‰ ุขุจุฏุฃ (ุชู…ูƒูŠู† ู†ูุณู‡) ููŠ ุซุงู†ูŠุฉ ูˆุงุญุฏุฉ ููŠ
ู…ุญุงูƒุงุฉ ูˆ ู‚ู„ุฉ ุงู„ู†ูˆู… (ุชุนุทูŠู„ ู†ูุณู‡) ุจุนุฏ ุนุดุฑ ุซูˆุงู†ู ู…ู† ุจุฏุก ุงู„ู…ุญุงูƒุงุฉ. ุจูุถู„
ุญู‚ูŠู‚ุฉ ุฃู†ู†ุง ุฃุนู„ู†ุง ุนู† ุญุฏุซ ู…ุญุงูƒุงุฉ (ุญุฏุซ ุฅูŠู‚ุงู ุงู„ุชุทุจูŠู‚).
ูŠุชู… ุชู†ููŠุฐู‡ุง ููŠ ุนุดุฑ ุซูˆุงู†ุŒ ูˆุณูˆู ุชุณุชู…ุฑ ุงู„ู…ุญุงูƒุงุฉ at ุงู„ุฃู‚ู„ ุนุดุฑ ุซูˆุงู†.

UdpEchoClientHelper
ุชู… ุฅุนุฏุงุฏ ุชุทุจูŠู‚ ุนู…ูŠู„ ุงู„ุตุฏู‰ ุจุทุฑูŠู‚ุฉ ู…ุดุงุจู‡ุฉ ุฅู„ู‰ ุญุฏ ูƒุจูŠุฑ ู„ุชู„ูƒ ุงู„ุฎุงุตุฉ ุจู€
ุงู„ุฎุงุฏู…. ู‡ู†ุงูƒ ุงู„ูƒุงู…ู†ุฉ UdpEchoClientApplication ุงู„ุชูŠ ุชุฏุงุฑ ู…ู† ู‚ุจู„
UdpEchoClientHelper.

UdpEchoClientHelper echoClient (interfaces.GetAddress (1), 9);
echoClient.SetAttribute ("MaxPackets"ุŒ UintegerValue (1))ุ›
echoClient.SetAttribute ("Interval"ุŒ TimeValue (Seconds (1.0)))ุ›
echoClient.SetAttribute ("PacketSize"ุŒ UintegerValue (1024))ุ›

ApplicationContainer clientApps = echoClient.Install (nodes.Get (0));
ClientApps.Start (ุซูˆุงู†ูŠ (2.0))ุ›
ClientApps.Stop (Seconds (10.0));

ูˆู…ุน ุฐู„ูƒุŒ ุจุงู„ู†ุณุจุฉ ู„ุนู…ูŠู„ ุงู„ุตุฏู‰ุŒ ู†ุญุชุงุฌ ุฅู„ู‰ ุชุนูŠูŠู† ุฎู…ุณุฉ ู…ุฎุชู„ูุฉ ุงู„ุณู…ุงุช. ุฃูˆู„ ุฅุซู†ูŠู†
ุงู„ุณู…ุงุช ูŠุชู… ุชุนูŠูŠู†ู‡ุง ุฃุซู†ุงุก ุจู†ุงุก UdpEchoClientHelper. ู†ุญู† ู†ู…ุฑุฑ ุงู„ู…ุนู„ู…ุงุช
ุงู„ุชูŠ ูŠุชู… ุงุณุชุฎุฏุงู…ู‡ุง (ุฏุงุฎู„ูŠู‹ุง ู„ู„ู…ุณุงุนุฏ) ู„ุชุนูŠูŠู† "RemoteAddress" ูˆ"RemotePort"
ุงู„ุณู…ุงุช ูˆูู‚ุง ู„ุงุชูุงู‚ูŠุชู†ุง ู„ุฌุนู„ ุงู„ู…ุทู„ูˆุจุฉ ุงู„ุณู…ุงุช ุงู„ู…ุนู„ู…ุงุช ููŠ
ุจู†ุงุฉ ู…ุณุงุนุฏูŠู†.

ุฃุฐูƒุฑ ุฃู†ู†ุง ุงุณุชุฎุฏู…ู†ุง IPv4InterfaceContainer ู„ุชุชุจุน ุนู†ุงูˆูŠู† IP ู„ุฏูŠู†ุง
ุงู„ู…ุฎุตุตุฉ ู„ุฃุฌู‡ุฒุชู†ุง. ุงู„ูˆุงุฌู‡ุฉ ุงู„ุตูุฑูŠุฉ ููŠ ูˆุงุฌู‡ุงุช ุงู„ุญุงูˆูŠุฉ ุณูˆู
ุชุชูˆุงูู‚ ู…ุน ุนู†ูˆุงู† IP ุงู„ุฎุงุต ุจุงู„ุนู‚ุฏุฉ ุงู„ุตูุฑูŠุฉ ููŠ ุงู„ุนู‚ุฏ ุญุงูˆูŠุฉ. ุงู„ุฃูˆู„
ูˆุงุฌู‡ุฉ ููŠ ูˆุงุฌู‡ุงุช ุชุชูˆุงูู‚ ุงู„ุญุงูˆูŠุฉ ู…ุน ุนู†ูˆุงู† IP ุงู„ุฎุงุต ุจุงู„ุนู‚ุฏุฉ ุงู„ุฃูˆู„ู‰ ููŠ
ู‡ูŠู‡ ุงู„ุนู‚ุฏ ุญุงูˆูŠุฉ. ู„ุฐุงุŒ ููŠ ุงู„ุณุทุฑ ุงู„ุฃูˆู„ ู…ู† ุงู„ูƒูˆุฏ (ู…ู† ุงู„ุฃุนู„ู‰)ุŒ ู†ู‚ูˆู… ุจุฅู†ุดุงุก ู…ู„ู
helper ูˆุฅุฎุจุงุฑู‡ ุจุฐู„ูƒ ู‚ู… ุจุชุนูŠูŠู† ุงู„ุนู†ูˆุงู† ุงู„ุจุนูŠุฏ ู„ู„ุนู…ูŠู„ ู„ูŠูƒูˆู† ุนู†ูˆุงู† IP
ุงู„ู…ุฎุตุตุฉ ู„ู„ุนู‚ุฏุฉ ุงู„ุชูŠ ูŠูˆุฌุฏ ุนู„ูŠู‡ุง ุงู„ุฎุงุฏู…. ูˆู†ู‚ูˆู„ ู„ู‡ุง ุฃูŠุถู‹ุง ุฃู† ุชู‚ูˆู… ุจุงู„ุชุฑุชูŠุจ ู„ู„ุฅุฑุณุงู„
ุงู„ุญุฒู… ุฅู„ู‰ ุงู„ู…ู†ูุฐ ุงู„ุชุงุณุน.

"ุงู„ุญุฒู… ุงู„ู‚ุตูˆู‰" ุงู„ุณู…ุฉ ูŠุฎุจุฑ ุงู„ุนู…ูŠู„ ุจุงู„ุญุฏ ุงู„ุฃู‚ุตู‰ ู„ุนุฏุฏ ุงู„ุญุฒู… ุงู„ุชูŠ ู†ุณู…ุญ ู„ู‡ ุจู‡ุง
ุฅุฑุณุงู„ ุฃุซู†ุงุก ุงู„ู…ุญุงูƒุงุฉ. ุงู„ูุงุตู„" ุงู„ุณู…ุฉ ูŠุฎุจุฑ ุงู„ุนู…ูŠู„ ูƒู… ู…ู† ุงู„ูˆู‚ุช ูŠุฌุจ ุฃู† ูŠู†ุชุธุฑ
ุจูŠู† ุงู„ุญุฒู… ูˆ"ุญุฌู… ุงู„ุญุฒู…ุฉ" ุงู„ุณู…ุฉ ูŠุฎุจุฑ ุงู„ุนู…ูŠู„ ุจู…ุฏู‰ ุญุฌู… ุงู„ุญุฒู…ุฉ ุงู„ุฎุงุตุฉ ุจู‡
ูŠู†ุจุบูŠ ุฃู† ุชูƒูˆู† ุงู„ุญู…ูˆู„ุงุช. ู…ุน ู‡ุฐุง ุงู„ู…ุฒูŠุฌ ุงู„ู…ู…ูŠุฒ ู…ู† ุงู„ุณู…ุงุชุŒ ู†ุญู† ู†ู‚ูˆู„
ุงู„ุนู…ูŠู„ ู„ุฅุฑุณุงู„ ุญุฒู…ุฉ ูˆุงุญุฏุฉ ุจุญุฌู… 1024 ุจุงูŠุช.

ุชู…ุงู…ู‹ุง ูƒู…ุง ููŠ ุญุงู„ุฉ ุฎุงุฏู… ุงู„ุตุฏู‰ุŒ ูุฅู†ู†ุง ู†ุทู„ุจ ู…ู† ุนู…ูŠู„ ุงู„ุตุฏู‰ ุฃู† ูŠูุนู„ ุฐู„ูƒ ุขุจุฏุฃ ู‚ู„ุฉ ุงู„ู†ูˆู…ุŒ ู„ูƒู†
ู‡ู†ุง ู†ุจุฏุฃ ุชุดุบูŠู„ ุงู„ุนู…ูŠู„ ุจุนุฏ ุซุงู†ูŠุฉ ูˆุงุญุฏุฉ ู…ู† ุชู…ูƒูŠู† ุงู„ุฎุงุฏู… (ุจุนุฏ ุซุงู†ูŠุชูŠู† ู…ู† ุจุฏุก ุชุดุบูŠู„ ุงู„ุฎุงุฏู…).
ู…ุญุงูƒุงุฉ).

ู…ุญุงูƒุงุฉ
ู…ุง ูŠุชุนูŠู† ุนู„ูŠู†ุง ุงู„ู‚ูŠุงู… ุจู‡ ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ู‡ูˆ ุชุดุบูŠู„ ุงู„ู…ุญุงูƒุงุฉ ูุนู„ูŠู‹ุง. ูŠุชู… ุฐู„ูƒ ุจุงุณุชุฎุฏุงู…
ุงู„ูˆุธูŠูุฉ ุงู„ุนุงู„ู…ูŠุฉ ู…ุญุงูƒูŠ :: ุชุดุบูŠู„.

ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ () ุ›

ุนู†ุฏู…ุง ู‚ู…ู†ุง ุณุงุจู‚ู‹ุง ุจุชุณู…ูŠุฉ ุงู„ุทุฑู‚ุŒ

serverApps.Start (Seconds (1.0));
serverApps.Stop (ุซูˆุงู†ูŠ (10.0))ุ›

ClientApps.Start (ุซูˆุงู†ูŠ (2.0))ุ›
ClientApps.Stop (Seconds (10.0));

ู„ู‚ุฏ ู‚ู…ู†ุง ุจุงู„ูุนู„ ุจุฌุฏูˆู„ุฉ ุงู„ุฃุญุฏุงุซ ููŠ ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ ููŠ 1.0 ุซุงู†ูŠุฉ ูˆ 2.0 ุซุงู†ูŠุฉ ูˆุญุฏุซูŠู†
ููŠ 10.0 ุซุงู†ูŠุฉ. ู…ุชู‰ ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ ูŠุชู… ุงุณุชุฏุนุงุกุŒ ุณูŠุจุฏุฃ ุงู„ู†ุธุงู… ููŠ ุงู„ุจุญุซ ู…ู† ุฎู„ุงู„
ู‚ุงุฆู…ุฉ ุงู„ุฃุญุฏุงุซ ุงู„ู…ุฌุฏูˆู„ุฉ ูˆุชู†ููŠุฐู‡ุง. ุฃูˆู„ุงู‹ ุณูŠุชู… ุชุดุบูŠู„ ุงู„ุญุฏุซ ููŠ 1.0 ุซุงู†ูŠุฉุŒ
ูˆุงู„ุฐูŠ ุณูŠุนู…ู„ ุนู„ู‰ ุชู…ูƒูŠู† ุชุทุจูŠู‚ ุฎุงุฏู… ุงู„ุตุฏู‰ (ู‚ุฏ ูŠุคุฏูŠ ู‡ุฐุง ุงู„ุญุฏุซ ุจุฏูˆุฑู‡ ุฅู„ู‰ ุฌุฏูˆู„ุฉ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฃุญุฏุงุซ
ุฃุญุฏุงุซ ุฃุฎุฑู‰). ุจุนุฏ ุฐู„ูƒ ุณูŠุชู… ุชุดุบูŠู„ ุงู„ุญุฏุซ ุงู„ู…ุฌุฏูˆู„ ู„ู…ุฏุฉ t=2.0 ุซุงู†ูŠุฉ ูˆุงู„ุฐูŠ ุณูŠุจุฏุฃ
ุชุทุจูŠู‚ ุนู…ูŠู„ ุงู„ุตุฏู‰. ู…ุฑุฉ ุฃุฎุฑู‰ุŒ ู‚ุฏ ูŠู‚ูˆู… ู‡ุฐุง ุงู„ุญุฏุซ ุจุฌุฏูˆู„ุฉ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฃุญุฏุงุซ ุงู„ุฃุฎุฑู‰. ุงู„ุจุฏุงูŠุฉ
ุณูŠุจุฏุฃ ุชู†ููŠุฐ ุงู„ุญุฏุซ ููŠ ุชุทุจูŠู‚ ุนู…ูŠู„ ุงู„ุตุฏู‰ ู…ุฑุญู„ุฉ ู†ู‚ู„ ุงู„ุจูŠุงู†ุงุช
ุงู„ู…ุญุงูƒุงุฉ ุนู† ุทุฑูŠู‚ ุฅุฑุณุงู„ ุญุฒู…ุฉ ุฅู„ู‰ ุงู„ุฎุงุฏู….

ุณูŠุคุฏูŠ ุฅุฑุณุงู„ ุงู„ุญุฒู…ุฉ ุฅู„ู‰ ุงู„ุฎุงุฏู… ุฅู„ู‰ ุฅุทู„ุงู‚ ุณู„ุณู„ุฉ ู…ู† ุงู„ุฃุญุฏุงุซ
ูŠุชู… ุฌุฏูˆู„ุชู‡ ุชู„ู‚ุงุฆูŠู‹ุง ุฎู„ู ุงู„ูƒูˆุงู„ูŠุณ ูˆุงู„ุฐูŠ ุณูŠุคุฏูŠ ุฅู„ู‰ ุชู†ููŠุฐ ุขู„ูŠุงุช
ุตุฏู‰ ุงู„ุญุฒู…ุฉ ูˆูู‚ู‹ุง ู„ู…ุนู„ู…ุงุช ุงู„ุชูˆู‚ูŠุช ุงู„ู…ุฎุชู„ูุฉ ุงู„ุชูŠ ู‚ู…ู†ุง ุจุชุนูŠูŠู†ู‡ุง ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ.

ููŠ ุงู„ู†ู‡ุงูŠุฉุŒ ู†ุธุฑู‹ุง ู„ุฃู†ู†ุง ู†ุฑุณู„ ุญุฒู…ุฉ ูˆุงุญุฏุฉ ูู‚ุท (ุชุฐูƒุฑ ู…ู„ู MaxPackets ุงู„ุณู…ุฉ ูƒุงู† ู…ู† ุงู„ู…ู‚ุฑุฑ ุงู†
one)ุŒ ูุฅู† ุณู„ุณู„ุฉ ุงู„ุฃุญุฏุงุซ ุงู„ุชูŠ ูŠุชู… ุชุดุบูŠู„ู‡ุง ุจูˆุงุณุทุฉ ุทู„ุจ ุตุฏู‰ ุงู„ุนู…ูŠู„ ุงู„ูˆุงุญุฏ ุณูˆู ุชุชุถุงุกู„ ูˆ
ุณูˆู ุชุตุจุญ ุงู„ู…ุญุงูƒุงุฉ ุฎุงู…ู„ุฉ. ูˆุจู…ุฌุฑุฏ ุญุฏูˆุซ ุฐู„ูƒุŒ ูุฅู† ุงู„ุฃุญุฏุงุซ ุงู„ู…ุชุจู‚ูŠุฉ ุณุชูƒูˆู† ู‚ู„ุฉ ุงู„ู†ูˆู…
ุงู„ุฃุญุฏุงุซ ู„ู„ุฎุงุฏู… ูˆุงู„ุนู…ูŠู„. ุนู†ุฏู…ุง ูŠุชู… ุชู†ููŠุฐ ู‡ุฐู‡ ุงู„ุฃุญุฏุงุซุŒ ู„ุง ุชูˆุฌุฏ
ู…ุฒูŠุฏ ู…ู† ุงู„ุฃุญุฏุงุซ ู„ู…ุนุงู„ุฌุฉ ูˆ ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ ุนุงุฆุฏุงุช. ุซู… ุชูƒุชู…ู„ ุงู„ู…ุญุงูƒุงุฉ.

ูƒู„ ู…ุง ุชุจู‚ู‰ ู‡ูˆ ุงู„ุชู†ุธูŠู. ูŠุชู… ุฐู„ูƒ ุนู† ุทุฑูŠู‚ ุงุณุชุฏุนุงุก ุงู„ุฏุงู„ุฉ ุงู„ุนู…ูˆู…ูŠุฉ
ู…ุญุงูƒุงุฉ::ุชุฏู…ูŠุฑ. ูƒู…ุง ูˆุธุงุฆู ุงู„ู…ุณุงุนุฏ (ุฃูˆ ู…ุณุชูˆู‰ ู…ู†ุฎูุถ NS-3 ูƒูˆุฏ) ุชู… ุชู†ููŠุฐู‡ุงุŒ ู‡ู…
ุชู… ุชุฑุชูŠุจู‡ุง ุจุญูŠุซ ูŠุชู… ุฅุฏุฎุงู„ ุงู„ุฎุทุงูุงุช ููŠ ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ ู„ุชุฏู…ูŠุฑ ูƒุงูุฉ ุงู„ูƒุงุฆู†ุงุช
ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง. ู„ู… ูŠูƒู† ุนู„ูŠูƒ ุชุชุจุน ุฃูŠ ู…ู† ู‡ุฐู‡ ุงู„ุฃุดูŠุงุก ุจู†ูุณูƒ ---
ูƒู„ ู…ุง ุนู„ูŠูƒ ูุนู„ู‡ ู‡ูˆ ุงู„ุงุชุตุงู„ ู…ุญุงูƒุงุฉ::ุชุฏู…ูŠุฑ ูˆุงู„ุฎุฑูˆุฌ. ุงู„ NS-3 ุงุนุชู†ู‰ ุงู„ู†ุธุงู…
ุงู„ุฌุฒุก ุงู„ุตุนุจ ุจุงู„ู†ุณุจุฉ ู„ูƒ. ุจุงู‚ูŠ ุณุทูˆุฑู†ุง ุงู„ุฃูˆู„ู‰ NS-3 ุงู„ู†ุตูŠุŒ first.ccุŒ ุงูุนู„ ูู‚ุท
ุนู„ู‰ ู…ุง ูŠู„ูŠ:

ุฌู‡ุงุฒ ู…ุญุงูƒุงุฉ :: ุชุฏู…ูŠุฑ () ุ›
0 ุงู„ุนูˆุฏุฉุ›
}

ู…ุชู‰ ู‡ูŠู‡ ู…ุญุงูƒุงุฉ ุณูˆู ู‚ูุŸ
NS-3 ู‡ูˆ ู…ุญุงูƒุงุฉ ุงู„ุฃุญุฏุงุซ ุงู„ู…ู†ูุตู„ุฉ (DE). ููŠ ู…ุซู„ ู‡ุฐู‡ ุงู„ู…ุญุงูƒุงุฉุŒ ูŠุฑุชุจุท ูƒู„ ุญุฏุซ
ู…ุน ุฒู…ู† ุชู†ููŠุฐู‡ุงุŒ ูˆุชุณุชู…ุฑ ุงู„ู…ุญุงูƒุงุฉ ู…ู† ุฎู„ุงู„ ุชู†ููŠุฐ ุงู„ุฃุญุฏุงุซ ููŠ ุงู„ุฒู…ู†
ุชุฑุชูŠุจ ูˆู‚ุช ุงู„ู…ุญุงูƒุงุฉ. ู‚ุฏ ุชุชุณุจุจ ุงู„ุฃุญุฏุงุซ ููŠ ุฌุฏูˆู„ุฉ ุฃุญุฏุงุซ ู…ุณุชู‚ุจู„ูŠุฉ (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุฃ
ู‚ุฏ ูŠุนูŠุฏ ุงู„ู…ุคู‚ุช ุฌุฏูˆู„ุฉ ู†ูุณู‡ ู„ูŠู†ุชู‡ูŠ ููŠ ุงู„ูุงุตู„ ุงู„ุฒู…ู†ูŠ ุงู„ุชุงู„ูŠ).

ุนุงุฏุฉู‹ ู…ุง ูŠุชู… ุชุดุบูŠู„ ุงู„ุฃุญุฏุงุซ ุงู„ุฃูˆู„ูŠุฉ ุจูˆุงุณุทุฉ ูƒู„ ูƒุงุฆู†ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุณูŠู‚ูˆู… IPv6 ุจุฌุฏูˆู„ุฉ ุฌู‡ุงุฒ ุงู„ุชูˆุฌูŠู‡
ุงู„ุฅุนู„ุงู†ุงุชุŒ ูˆุทู„ุจุงุช ุงู„ุฌูŠุฑุงู†ุŒ ูˆู…ุง ุฅู„ู‰ ุฐู„ูƒุŒ ูŠู‚ูˆู… ุงู„ุชุทุจูŠู‚ ุจุฌุฏูˆู„ุฉ ุงู„ุญุฒู…ุฉ ุงู„ุฃูˆู„ู‰
ุฅุฑุณุงู„ ุงู„ุญุฏุซุŒ ุงู„ุฎ.

ุนู†ุฏู…ุง ุชุชู… ู…ุนุงู„ุฌุฉ ุญุฏุซ ู…ุงุŒ ูู‚ุฏ ูŠูู†ุดุฆ ุญุฏุซู‹ุง ูˆุงุญุฏู‹ุง ุฃูˆ ุตูุฑู‹ุง ุฃูˆ ุฃูƒุซุฑ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุญุงูƒุงุฉ
ูŠุชู… ุชู†ููŠุฐ ุงู„ุฃุญุฏุงุซุŒ ูˆู„ูƒู† ู‚ุฏ ูŠุชู… (ุฃูˆ ู„ุง) ุฅู†ุดุงุก ุงู„ู…ุฒูŠุฏ ู…ู† ุงู„ุฃุญุฏุงุซ. ุงู„
ุณุชุชูˆู‚ู ุงู„ู…ุญุงูƒุงุฉ ุชู„ู‚ุงุฆูŠู‹ุง ุนู†ุฏ ุนุฏู… ูˆุฌูˆุฏ ุฃุญุฏุงุซ ุฃุฎุฑู‰ ููŠ ู‚ุงุฆู…ุฉ ุงู†ุชุธุงุฑ ุงู„ุฃุญุฏุงุซุŒ ุฃูˆ ุนู†ุฏู…ุง
ุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ุญุฏุซ ุชูˆู‚ู ุฎุงุต. ูŠุชู… ุฅู†ุดุงุก ุญุฏุซ Stop ู…ู† ุฎู„ุงู„ ู…ุญุงูƒุงุฉ::ุชูˆู‚ู
(ุชูˆู‚ู ุงู„ูˆู‚ุช)ุ› ูˆุธูŠูุฉ.

ู‡ู†ุงูƒ ุญุงู„ุฉ ู†ู…ูˆุฐุฌูŠุฉ ุญูŠุซ ู…ุญุงูƒุงุฉ::ุชูˆู‚ู ู…ู† ุงู„ุถุฑูˆุฑูŠ ู„ู„ุบุงูŠุฉ ู„ูˆู‚ู
ุงู„ู…ุญุงูƒุงุฉ: ุนู†ุฏู…ุง ูŠูƒูˆู† ู‡ู†ุงูƒ ุญุฏุซ ู…ุณุชุฏุงู… ุจุฐุงุชู‡. ุฃุญุฏุงุซ ู…ูƒุชููŠุฉ ุฐุงุชูŠุง (ุฃูˆ ู…ุชูƒุฑุฑุฉ).
ู‡ูŠ ุงู„ุฃุญุฏุงุซ ุงู„ุชูŠ ุชุนูŠุฏ ุฌุฏูˆู„ุฉ ู†ูุณู‡ุง ุฏุงุฆู…ู‹ุง. ูˆู†ุชูŠุฌุฉ ู„ุฐู„ูƒุŒ ูุฅู†ู‡ู… ูŠุญุชูุธูˆู† ุฏุงุฆู…ู‹ุง ุจุงู„ุญุฏุซ
ู‚ุงุฆู…ุฉ ุงู„ุงู†ุชุธุงุฑ ุบูŠุฑ ูุงุฑุบุฉ.

ู‡ู†ุงูƒ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ูˆุงู„ูˆุญุฏุงุช ุงู„ุชูŠ ุชุญุชูˆูŠ ุนู„ู‰ ุฃุญุฏุงุซ ู…ุชูƒุฑุฑุฉุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„:

ยท FlowMonitor โ€“ ูุญุต ุฏูˆุฑูŠ ู„ู„ุญุฒู… ุงู„ู…ูู‚ูˆุฏุฉ

ยท RIPng - ุงู„ุจุซ ุงู„ุฏูˆุฑูŠ ู„ุชุญุฏูŠุซ ุฌุฏุงูˆู„ ุงู„ุชูˆุฌูŠู‡

ยท ุฅู„ุฎ.

ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุงุชุŒ ู…ุญุงูƒุงุฉ::ุชูˆู‚ู ุถุฑูˆุฑูŠ ู„ุฅูŠู‚ุงู ุงู„ู…ุญุงูƒุงุฉ ุจุฃู…ุงู†. ููŠ
ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒุŒ ู…ุชู‰ NS-3 ููŠ ูˆุถุน ุงู„ู…ุถุงู‡ุงุฉุŒ RealtimeSimulator ูŠุณุชุฎุฏู… ู„ู„ุญูุงุธ ุนู„ู‰
ุณุงุนุฉ ู…ุญุงูƒุงุฉ ุชุชู…ุงุดู‰ ู…ุน ุณุงุนุฉ ุงู„ุขู„ุฉุŒ ูˆ ู…ุญุงูƒุงุฉ::ุชูˆู‚ู ู…ู† ุงู„ุถุฑูˆุฑูŠ ุงู„ุชูˆู‚ู
ู‡ุฐู‡ ุงู„ุนู…ู„ูŠุฉ.

ุงู„ุนุฏูŠุฏ ู…ู† ุจุฑุงู…ุฌ ุงู„ู…ุญุงูƒุงุฉ ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ู„ุง ุชุณุชุฏุนูŠ ุตุฑุงุญุฉู‹ ู…ุญุงูƒุงุฉ::ุชูˆู‚ู,
ู†ุธุฑู‹ุง ู„ุฃู† ู‚ุงุฆู…ุฉ ุงู†ุชุธุงุฑ ุงู„ุฃุญุฏุงุซ ุณุชู†ูุฏ ุงู„ุฃุญุฏุงุซ ุชู„ู‚ุงุฆูŠู‹ุง. ูˆู…ุน ุฐู„ูƒุŒ ูุฅู† ู‡ุฐู‡ ุงู„ุจุฑุงู…ุฌ ุณูˆู
ู‚ุจูˆู„ ุฃูŠุถุง ุฏุนูˆุฉ ู„ ู…ุญุงูƒุงุฉ::ุชูˆู‚ู. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุงู„ุจูŠุงู† ุงู„ุฅุถุงููŠ ุงู„ุชุงู„ูŠ ููŠ
ุณูŠู‚ูˆู… ุจุฑู†ุงู…ุฌ ุงู„ู…ุซุงู„ ุงู„ุฃูˆู„ ุจุฌุฏูˆู„ุฉ ุชูˆู‚ู ูˆุงุถุญ ุนู†ุฏ 11 ุซุงู†ูŠุฉ:

+ ู…ุญุงูƒูŠ :: ุชูˆู‚ู (ุซูˆุงู†ูŠ (11.0))ุ›
ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ () ุ›
ุฌู‡ุงุฒ ู…ุญุงูƒุงุฉ :: ุชุฏู…ูŠุฑ () ุ›
0 ุงู„ุนูˆุฏุฉุ›
}

ู…ุง ูˆุฑุฏ ุฃุนู„ุงู‡ ู„ู† ูŠุบูŠุฑ ุณู„ูˆูƒ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ูุนู„ูŠู‹ุงุŒ ู†ุธุฑู‹ุง ู„ุฃู† ู‡ุฐุง ุฎุงุต
ุชู†ุชู‡ูŠ ุงู„ู…ุญุงูƒุงุฉ ุจุดูƒู„ ุทุจูŠุนูŠ ุจุนุฏ 10 ุซูˆุงู†ู. ูˆู„ูƒู† ุฅุฐุง ู‚ู…ุช ุจุชุบูŠูŠุฑ ูˆู‚ุช ุงู„ุชูˆู‚ู
ุงู„ุจูŠุงู† ุฃุนู„ุงู‡ ู…ู† 11 ุซุงู†ูŠุฉ ุฅู„ู‰ 1 ุซุงู†ูŠุฉุŒ ุณุชู„ุงุญุธ ุฃู† ุงู„ู…ุญุงูƒุงุฉ
ูŠุชูˆู‚ู ู‚ุจู„ ุทุจุงุนุฉ ุฃูŠ ู…ุฎุฑุฌุงุช ุนู„ู‰ ุงู„ุดุงุดุฉ (ู†ุธุฑู‹ุง ู„ุฃู† ุงู„ุฅุฎุฑุงุฌ ูŠุญุฏุซ ููŠ ูˆู‚ุช ู‚ุฑูŠุจ ู…ู† 2
ุซูˆุงู†ูŠ ู…ู† ูˆู‚ุช ุงู„ู…ุญุงูƒุงุฉ).

ู…ู† ุงู„ู…ู‡ู… ุงู„ุงุชุตุงู„ ู…ุญุงูƒุงุฉ::ุชูˆู‚ู ู‚ุจู„ ุฏุนูˆุฉ ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ุ› ุบูŠุฑ ุฐู„ูƒุŒ
ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ ู„ุง ูŠุฌูˆุฒ ุฃุจุฏู‹ุง ุฅุนุงุฏุฉ ุงู„ุชุญูƒู… ุฅู„ู‰ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฑุฆูŠุณูŠ ู„ุชู†ููŠุฐ ุงู„ุฅูŠู‚ุงู!

ุงุจู†ูŠ ู…ุนู„ู…ุชูƒ ุงู„ูŠูˆุบุง ุณูŠู†ุงุฑูŠูˆ
ู„ู‚ุฏ ุฌุนู„ู†ุง ู…ู† ุงู„ุณู‡ู„ ุจู†ุงุก ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุงู„ุจุณูŠุทุฉ ุงู„ุฎุงุตุฉ ุจูƒ. ูƒู„ ู…ุง ุนู„ูŠูƒ ูุนู„ู‡ ู‡ูˆ ุฅุณู‚ุงุท
ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ููŠ ุงู„ุฏู„ูŠู„ ุงู„ู…ุคู‚ุช ูˆุณูŠุชู… ุฅู†ุดุงุคู‡ ุชู„ู‚ุงุฆูŠู‹ุง ุฅุฐุง ู‚ู…ุช ุจุชุดุบูŠู„ Waf.
ุฏุนู†ุง ู†ุญุงูˆู„. ูŠู†ุณุฎ ุฃู…ุซู„ุฉ/ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ/first.cc ููŠ ุฎุฏุด ุงู„ุฏู„ูŠู„ ุจุนุฏ ุงู„ุชุบูŠูŠุฑ
ุงู„ุนูˆุฏุฉ ุฅู„ู‰ ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰.

$ ุณูŠ ุฏูŠ../ ..
ุฃู…ุซู„ุฉ $ cp/tutorial/first.ccุฎุฏุด/myfirst.cc

ุงู„ุขู† ุฃู†ุดุฆ ุงู„ู…ุซุงู„ ุงู„ุฃูˆู„ ู„ู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุจุงุณุชุฎุฏุงู… waf:

$ ./ูˆุงู

ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุงู„ุฑุณุงุฆู„ ุงู„ุชูŠ ุชุจู„ุบูƒ ุจุฃู† ุญุณุงุจูƒ ุงู„ุฎุงุต ุจูŠ ุฃูˆู„ุง ุชู… ุจู†ุงุก ุงู„ู…ุซุงู„ ุจู†ุฌุงุญ.

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
[614/708] cxx:ุฎุฏุด/myfirst.cc -> build/debug/scratch/myfirst_3.o
[706/708] cxx_link: build/debug/scratch/myfirst_3.o -> build/debug/scratch/myfirst
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (2.357 ุซุงู†ูŠุฉ)

ูŠู…ูƒู†ูƒ ุงู„ุขู† ุชุดุบูŠู„ ุงู„ู…ุซุงู„ (ู„ุงุญุธ ุฃู†ู‡ ุฅุฐุง ู‚ู…ุช ุจุฅู†ุดุงุก ุจุฑู†ุงู…ุฌูƒ ููŠ ุงู„ุฏู„ูŠู„ ุงู„ู…ุคู‚ุช
ูŠุฌุจ ุนู„ูŠูƒ ุชุดุบูŠู„ู‡ ุฎุงุฑุฌ ุงู„ุฏู„ูŠู„ ุงู„ู…ุคู‚ุช):

$ ./waf --ุชุดุบูŠู„ ุงู„ุตูุฑ/myfirst

ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุจุนุถ ุงู„ุฅุฎุฑุงุฌ:

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.418 ุซุงู†ูŠุฉ)
ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.1
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.2

ู‡ู†ุง ุชุฑู‰ ุฃู† ู†ุธุงู… ุงู„ุจู†ุงุก ูŠุชุญู‚ู‚ ู„ู„ุชุฃูƒุฏ ู…ู† ุฃู† ุงู„ู…ู„ู ู‚ุฏ ุชู… ุฅู†ุดุงุคู‡ ูˆ
ุซู… ูŠุฏูŠุฑู‡. ุชุฑู‰ ุฃู† ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„ ููŠ ุนู…ูŠู„ ุงู„ุงุฑุชุฏุงุฏ ูŠุดูŠุฑ ุฅู„ู‰ ุฃู†ู‡ ู‚ุฏ ุชู… ุงู„ุฅุฑุณุงู„
ุญุฒู…ุฉ ูˆุงุญุฏุฉ ุจุญุฌู… 1024 ุจุงูŠุช ุฅู„ู‰ ุฎุงุฏู… Echo Server ุนู„ู‰ ุงู„ุฅุตุฏุงุฑ 10.1.1.2. ุชุฑู‰ ุฃูŠุถู‹ุง ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„
ุนู„ู‰ ุฎุงุฏู… ุงู„ุตุฏู‰ ู†ู‚ูˆู„ ุฃู†ู‡ ุชู„ู‚ู‰ 1024 ุจุงูŠุช ู…ู† 10.1.1.1. ุฎุงุฏู… ุงู„ุตุฏู‰
ูŠุฑุฏุฏ ุตุฏู‰ ุงู„ุญุฒู…ุฉ ุจุตู…ุช ูˆุชุฑู‰ ุณุฌู„ ุนู…ูŠู„ ุงู„ุงุฑุชุฏุงุฏ ุงู„ุฐูŠ ุงุณุชู„ู… ุงู„ุญุฒู…ุฉ ุงู„ุฎุงุตุฉ ุจู‡
ุงู„ุนูˆุฏุฉ ู…ู† ุงู„ุฎุงุฏู….

NS-3 ู…ุตุฏุฑ ุฑู…ุฒ
ุงู„ุขู† ุจุนุฏ ุฃู† ุงุณุชุฎุฏู…ุช ุจุนุถู‹ุง ู…ู† NS-3 ุงู„ู…ุณุงุนุฏูŠู† ุงู„ุฐูŠู† ู‚ุฏ ุชุฑุบุจ ููŠ ุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ ุจุนุถ
ูƒูˆุฏ ุงู„ู…ุตุฏุฑ ุงู„ุฐูŠ ูŠู†ูุฐ ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ. ูŠู…ูƒู† ุชุตูุญ ุฃุญุฏุซ ุฑู…ุฒ ุนู„ู‰
ุฎุงุฏู…ู†ุง ุนู„ู‰ ุงู„ุฑุงุจุท ุงู„ุชุงู„ูŠ: http://code.nsnam.org/ns-3-dev. ู‡ู†ุงูƒุŒ ุณูˆู ุชุฑู‰
ุตูุญุฉ ู…ู„ุฎุต Mercurial ู„ุฏูŠู†ุง NS-3 ุดุฌุฑุฉ ุงู„ุชู†ู…ูŠุฉ.

ููŠ ุฃุนู„ู‰ ุงู„ุตูุญุฉ ุณุชุฌุฏ ุนุฏุฏ ู…ู† ุงู„ุฑูˆุงุจุท

ู…ู„ุฎุต | ู…ุฎุชุตุฑุฉ | ุณุฌู„ ุงู„ุชุบูŠูŠุฑ | ุฑุณู… ุจูŠุงู†ูŠ | ุงู„ุนู„ุงู…ุงุช | ู…ู„ูุงุช

ุงู†ุทู„ู‚ ูˆุญุฏุฏ ู…ู„ู ู…ู„ูุงุช ูˆุตู„ุฉ. ู‡ุฐุง ู‡ูˆ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ู„ู…ุนุธู…ู†ุง
ู…ุณุชูˆุฏุนุงุช ุณูˆู ู†ู†ุธุฑ:

drwxr-xr-x [ุฃุนู„ู‰]
drwxr-xr-x ูŠุฑุจุท ู…ู„ูุงุช ุจุงูŠุซูˆู†
ู…ู„ูุงุช doc drwxr-xr-x
ู…ู„ูุงุช ุฃู…ุซู„ุฉ drwxr-xr-x
ู…ู„ูุงุช drwxr-xr-x ns3
ู…ู„ูุงุช ุงู„ุตูุฑ drwxr-xr-x
ู…ู„ูุงุช drwxr-xr-x src
ู…ู„ูุงุช ุงู„ุฃุฏูˆุงุช ุงู„ู…ุณุงุนุฏุฉ drwxr-xr-x
-rw-r--r-- 2009-07-01 12:47 +0200 560 ู…ู„ู hgignore | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rw-r--r-- 2009-07-01 12:47 +0200 1886 ู…ู„ู hgtags | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rw-r--r-- 2009-07-01 12:47 +0200 1276 ู…ู„ู ุงู„ู…ุคู„ููŠู† | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rw-r--r-- 2009-07-01 12:47 +0200 30961 CHANGES.html ู…ู„ู | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rw-r--r-- 2009-07-01 12:47 +0200 17987 ู…ู„ู ุงู„ุชุฑุฎูŠุต | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rw-r--r-- 2009-07-01 12:47 +0200 3742 ุงู„ู…ู„ู ุงู„ุชู…ู‡ูŠุฏูŠ | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rw-r--r-- 2009-07-01 12:47 +0200 16171 ู…ู„ู ู…ู„ุงุญุธุงุช ุงู„ุฅุตุฏุงุฑ | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rw-r--r-- 2009-07-01 12:47 +0200 6 ู…ู„ู ุงู„ู†ุณุฎุฉ | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rwxr-xr-x 2009-07-01 12:47 +0200 88110 ู…ู„ู waf | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rwxr-xr-x 2009-07-01 12:47 +0200 28 ู…ู„ู waf.bat | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rw-r--r-- 2009-07-01 12:47 +0200 35395 ู…ู„ู wscript | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚
-rw-r--r-- 2009-07-01 12:47 +0200 7673 ู…ู„ู wutils.py | ุงู„ู…ุฑุงุฌุนุงุช | ุนู„ู‚

ุฃู…ุซู„ุฉ ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ู„ุฏูŠู†ุง ู…ูˆุฌูˆุฏุฉ ููŠ ุฃู…ุซู„ุฉ ุงู„ุฏู„ูŠู„. ุฅุฐุง ู‚ู…ุช ุจุงู„ู†ู‚ุฑ ููˆู‚ ุฃู…ุซู„ุฉ ุณูˆู ุชุฑู‰
ู‚ุงุฆู…ุฉ ุงู„ุฏู„ุงุฆู„ ุงู„ูุฑุนูŠุฉ. ุฃุญุฏ ุงู„ู…ู„ูุงุช ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุงู„ุฏู„ูŠู„ ุงู„ูุฑุนูŠ ู‡ูˆ first.cc. ุฅุฐุง ูƒู†ุช
ุงู†ู‚ุฑ ุนู„ู‰ first.cc ุณุชุฌุฏ ุงู„ุฑู…ุฒ ุงู„ุฐูŠ ู…ุฑุฑุช ุจู‡ ู„ู„ุชูˆ.

ูƒูˆุฏ ุงู„ู…ุตุฏุฑ ู…ูˆุฌูˆุฏ ุจุดูƒู„ ุฑุฆูŠุณูŠ ููŠ SRC ุงู„ุฏู„ูŠู„. ูŠู…ูƒู†ูƒ ุนุฑุถ ูƒูˆุฏ ุงู„ู…ุตุฏุฑ ุฅู…ุง ุนู† ุทุฑูŠู‚
ุจุงู„ู†ู‚ุฑ ุนู„ู‰ ุงุณู… ุงู„ุฏู„ูŠู„ ุฃูˆ ุจุงู„ู†ู‚ุฑ ุนู„ู‰ ู…ู„ูุงุช ุงู„ุงุฑุชุจุงุท ุนู„ู‰ ูŠู…ูŠู†
ุงุณู… ุงู„ุฏู„ูŠู„. ุฅุฐุง ู‚ู…ุช ุจุงู„ู†ู‚ุฑ ููˆู‚ SRC ุงู„ุฏู„ูŠู„ุŒ ุณูŠุชู… ู†ู‚ู„ูƒ ุฅู„ู‰ ู‚ุงุฆู…ุฉ
ู‡ูŠู‡ SRC ุงู„ุฏู„ุงุฆู„ ุงู„ูุฑุนูŠุฉ. ุฅุฐุง ู‚ู…ุช ุจุนุฏ ุฐู„ูƒ ุจุงู„ู†ู‚ุฑ ููˆู‚ ุงู„ู†ูˆุงุฉ ุงู„ุฏู„ูŠู„ ุงู„ูุฑุนูŠุŒ ูˆุณูˆู ุชุฌุฏ ู‚ุงุฆู…ุฉ
ู…ู„ูุงุช. ุงู„ู…ู„ู ุงู„ุฃูˆู„ ุงู„ุฐูŠ ุณุชุฌุฏู‡ (ุญุชู‰ ูƒุชุงุจุฉ ู‡ุฐู‡ ุงู„ุณุทูˆุฑ) ู‡ูˆ ุฅุญุจุงุท.ุญ. ุฅุฐุง ู‚ู…ุช ุจุงู„ู†ู‚ุฑ ููˆู‚
ุฅุญุจุงุท.ุญ ุงู„ุฑุงุจุทุŒ ุณูŠุชู… ุฅุฑุณุงู„ูƒ ุฅู„ู‰ ุงู„ู…ู„ู ุงู„ู…ุตุฏุฑ ู„ ุฅุญุจุงุท.ุญ ุงู„ุฐูŠ ูŠุญุชูˆูŠ ุนู„ู‰ ูˆุญุฏุงุช ู…ุงูƒุฑูˆ ู…ููŠุฏุฉ
ู„ู„ุฎุฑูˆุฌ ู…ู† ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุฅุฐุง ุชู… ุงู„ูƒุดู ุนู† ุธุฑูˆู ุบูŠุฑ ุทุจูŠุนูŠุฉ.

ูŠู…ูƒู† ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ูƒูˆุฏ ุงู„ู…ุตุฏุฑูŠ ู„ู„ู…ุณุงุนุฏูŠู† ุงู„ุฐูŠู† ุงุณุชุฎุฏู…ู†ุงู‡ู… ููŠ ู‡ุฐุง ุงู„ูุตู„ ููŠ
src/applications/helper ุงู„ุฏู„ูŠู„. ู„ุง ุชุชุฑุฏุฏ ููŠ ุงู„ุชุฌูˆู„ ููŠ ุดุฌุฑุฉ ุงู„ุฏู„ูŠู„ ู„ู„ุญุตูˆู„ ุนู„ูŠู‡
ุงู„ุดุนูˆุฑ ุจู…ุง ู‡ูˆ ู…ูˆุฌูˆุฏ ูˆุฃุณู„ูˆุจ NS-3 ุงู„ุจุฑุงู…ุฌ.

ุงู„ู‚ุฑุต


ุจุงุณุชุฎุฏุงู… ู‡ูŠู‡ ุชุณุฌูŠู„ ูˆุญุฏุฉ
ู„ู‚ุฏ ุฃู„ู‚ูŠู†ุง ุจุงู„ูุนู„ ู†ุธุฑุฉ ุณุฑูŠุนุฉ ุนู„ู‰ NS-3 ูˆุญุฏุฉ ุงู„ุชุณุฌูŠู„ ุฃุซู†ุงุก ุงู„ู…ุฑูˆุฑ ุนู„ู‰
first.cc ุงู„ู†ุตูŠ. ุณู†ู„ู‚ูŠ ุงู„ุขู† ู†ุธุฑุฉ ูุงุญุตุฉ ูˆู†ุฑู‰ ุฃูŠ ู†ูˆุน ู…ู† ุญุงู„ุงุช ุงู„ุงุณุชุฎุฏุงู…
ุชู… ุชุตู…ูŠู… ู†ุธุงู… ุงู„ุชุณุฌูŠู„ ุงู„ูุฑุนูŠ ู„ุชุบุทูŠุฉ.

ุชุณุฌูŠู„ ู†ุธุฑุฉ ุนุงู…ุฉ
ุชุฏุนู… ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฃู†ุธู…ุฉ ุงู„ูƒุจูŠุฑุฉ ู†ูˆุนู‹ุง ู…ุง ู…ู† ุชุณู‡ูŠู„ุงุช ุชุณุฌูŠู„ ุงู„ุฑุณุงุฆู„ุŒ ูˆ NS-3 ู„ูŠุณ
ุงุณุชุซู†ุงุก. ููŠ ุจุนุถ ุงู„ุญุงู„ุงุชุŒ ูŠุชู… ุชุณุฌูŠู„ ุฑุณุงุฆู„ ุงู„ุฎุทุฃ ูู‚ุท ููŠ "ูˆุญุฏุฉ ุชุญูƒู… ุงู„ู…ุดุบู„" (ูˆุงู„ุชูŠ
ุนุงุฏุฉ ุณุชุฏูŠุฑ ููŠ ุงู„ุฃู†ุธู…ุฉ ุงู„ู…ุนุชู…ุฏุฉ ุนู„ู‰ ูŠูˆู†ูƒุณ). ููŠ ุงู„ุฃู†ุธู…ุฉ ุงู„ุฃุฎุฑู‰ุŒ ู‚ุฏ ุชูƒูˆู† ู‡ู†ุงูƒ ุฑุณุงุฆู„ ุชุญุฐูŠุฑูŠุฉ
ุงู„ุฅุฎุฑุงุฌ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฑุณุงุฆู„ ุฅุนู„ุงู…ูŠุฉ ุฃูƒุซุฑ ุชูุตูŠู„ุงู‹. ููŠ ุจุนุถ ุงู„ุญุงู„ุงุชุŒ ู…ุฑุงูู‚ ู‚ุทุน ุงู„ุฃุดุฌุงุฑ
ุชูุณุชุฎุฏู… ู„ุฅุฎุฑุงุฌ ุฑุณุงุฆู„ ุชุตุญูŠุญ ุงู„ุฃุฎุทุงุก ุงู„ุชูŠ ูŠู…ูƒู† ุฃู† ุชุญูˆู„ ุงู„ุฅุฎุฑุงุฌ ุจุณุฑุนุฉ ุฅู„ู‰ ุถุจุงุจูŠุฉ.

NS-3 ูŠุฑู‰ ุฃู† ุฌู…ูŠุน ู…ุณุชูˆูŠุงุช ุงู„ุฅุณู‡ุงุจ ู‡ุฐู‡ ู…ููŠุฏุฉ ูˆู†ุญู† ู†ู‚ุฏู…
ู†ู‡ุฌ ู…ุชุนุฏุฏ ุงู„ู…ุณุชูˆูŠุงุช ูŠู…ูƒู† ุงุฎุชูŠุงุฑู‡ ู„ุชุณุฌูŠู„ ุงู„ุฑุณุงุฆู„. ูŠู…ูƒู† ุชุนุทูŠู„ ุงู„ุชุณุฌูŠู„ ุจุดูƒู„ ูƒุงู…ู„ุŒ
ูˆุชู…ูƒูŠู†ู‡ุง ุนู„ู‰ ุฃุณุงุณ ูƒู„ ู…ูƒูˆู† ุนู„ู‰ ุญุฏุฉุŒ ุฃูˆ ุชู…ูƒูŠู†ู‡ุง ุนุงู„ู…ูŠู‹ุงุ› ูˆูŠูˆูุฑ ู„ู„ุงุฎุชูŠุงุฑ
ู…ุณุชูˆูŠุงุช ุงู„ู„ูุธ. ุงู„ NS-3 ุชูˆูุฑ ูˆุญุฏุฉ ุงู„ุณุฌู„ ุทุฑูŠู‚ุฉ ูˆุงุถุญุฉ ูˆุณู‡ู„ุฉ ุงู„ุงุณุชุฎุฏุงู… ู†ุณุจูŠู‹ุง
ุทุฑูŠู‚ุฉ ู„ู„ุญุตูˆู„ ุนู„ู‰ ู…ุนู„ูˆู…ุงุช ู…ููŠุฏุฉ ู…ู† ุงู„ู…ุญุงูƒุงุฉ ุงู„ุฎุงุตุฉ ุจูƒ.

ูŠุฌุจ ุฃู† ุชูู‡ู… ุฃู†ู†ุง ู†ู‚ุฏู… ุขู„ูŠุฉ ุฐุงุช ุฃุบุฑุงุถ ุนุงู…ุฉ --- ุชุชุจุน --- ู„ู€
ุงุญุตู„ ุนู„ู‰ ุงู„ุจูŠุงู†ุงุช ู…ู† ุงู„ู†ู…ุงุฐุฌ ุงู„ุฎุงุตุฉ ุจูƒ ูˆุงู„ุชูŠ ูŠู†ุจุบูŠ ุชูุถูŠู„ู‡ุง ู„ู…ุฎุฑุฌุงุช ุงู„ู…ุญุงูƒุงุฉ (ุฑุงุฌุน ู…ู„ู
ู‚ุณู… ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุงุณุชุฎุฏุงู… ู†ุธุงู… ุงู„ุชุชุจุน ู„ู…ุฒูŠุฏ ู…ู† ุงู„ุชูุงุตูŠู„ ุญูˆู„ ู†ุธุงู… ุงู„ุชุชุจุน ู„ุฏูŠู†ุง).
ูŠุฌุจ ุชูุถูŠู„ ุงู„ุชุณุฌูŠู„ ู„ู…ุนู„ูˆู…ุงุช ุงู„ุชุตุญูŠุญ ุฃูˆ ุงู„ุชุญุฐูŠุฑุงุช ุฃูˆ ุฑุณุงุฆู„ ุงู„ุฎุทุฃ ุฃูˆ ุฃูŠ ุดูŠุก ุขุฎุฑ
ุงู„ูˆู‚ุช ุงู„ุฐูŠ ุชุฑูŠุฏ ููŠู‡ ุงู„ุญุตูˆู„ ุจุณู‡ูˆู„ุฉ ุนู„ู‰ ุฑุณุงู„ุฉ ุณุฑูŠุนุฉ ู…ู† ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุฃูˆ ุงู„ู†ู…ุงุฐุฌ ุงู„ุฎุงุตุฉ ุจูƒ.

ูŠูˆุฌุฏ ุญุงู„ูŠู‹ุง ุณุจุนุฉ ู…ุณุชูˆูŠุงุช ู…ู† ุฑุณุงุฆู„ ุงู„ุณุฌู„ ุฐุงุช ุงู„ุฅุณู‡ุงุจ ุงู„ู…ุชุฒุงูŠุฏ ุงู„ู…ุญุฏุฏ ููŠ
ู†ุธุงู….

ยท LOG_ERROR --- ุฑุณุงุฆู„ ุฎุทุฃ ุงู„ุณุฌู„ (ุงู„ู…ุงูƒุฑูˆ ุงู„ู…ุฑุชุจุท: NS_LOG_ERROR)ุ›

ยท LOG_WARN --- ุชุณุฌูŠู„ ุฑุณุงุฆู„ ุงู„ุชุญุฐูŠุฑ (ุงู„ู…ุงูƒุฑูˆ ุงู„ู…ุฑุชุจุท: NS_LOG_WARN)ุ›

ยท LOG_DEBUG --- ุณุฌู„ ุฑุณุงุฆู„ ุชุตุญูŠุญ ุงู„ุฃุฎุทุงุก ุงู„ู…ุฎุตุตุฉ ุงู„ู†ุงุฏุฑุฉ ู†ุณุจูŠู‹ุง (ุงู„ู…ุงูƒุฑูˆ ุงู„ู…ุฑุชุจุท:
NS_LOG_DEBUG)ุ›

ยท LOG_INFO --- ุชุณุฌูŠู„ ุงู„ุฑุณุงุฆู„ ุงู„ุฅุนู„ุงู…ูŠุฉ ุญูˆู„ ุชู‚ุฏู… ุงู„ุจุฑู†ุงู…ุฌ (ุงู„ู…ุงูƒุฑูˆ ุงู„ู…ุฑุชุจุท:
NS_LOG_INFO)ุ›

ยท LOG_FUNCTION --- ุณุฌู„ ุฑุณุงู„ุฉ ุชุตู ูƒู„ ูˆุธูŠูุฉ ุชุณู…ู‰ (ูˆุญุฏุชูŠ ู…ุงูƒุฑูˆ ู…ุฑุชุจุทุชูŠู†:
NS_LOG_FUNCTIONุŒ ูŠูุณุชุฎุฏู… ู„ูˆุธุงุฆู ุงู„ุฃุนุถุงุกุŒ ูˆNS_LOG_FUNCTION_NOARGSุŒ ูŠูุณุชุฎุฏู… ู„ู„ูˆุธุงุฆู ุงู„ุซุงุจุชุฉ
ุงู„ู…ู‡ุงู…)ุ›

ยท LOG_LOGIC - ุฑุณุงุฆู„ ุงู„ุณุฌู„ ุงู„ุชูŠ ุชุตู ุงู„ุชุฏูู‚ ุงู„ู…ู†ุทู‚ูŠ ุฏุงุฎู„ ุงู„ูˆุธูŠูุฉ (ุงู„ู…ุงูƒุฑูˆ ุงู„ู…ุฑุชุจุท:
NS_LOG_LOGIC)ุ›

ยท LOG_ALL --- ุณุฌู„ ูƒู„ ุดูŠุก ู…ุฐูƒูˆุฑ ุฃุนู„ุงู‡ (ู„ุง ูŠูˆุฌุฏ ู…ุงูƒุฑูˆ ู…ุฑุชุจุท).

ู„ูƒู„ LOG_TYPE ูŠูˆุฌุฏ ุฃูŠุถู‹ุง LOG_LEVEL_TYPE ุงู„ุฐูŠุŒ ููŠ ุญุงู„ุฉ ุงุณุชุฎุฏุงู…ู‡ุŒ ูŠุชูŠุญ ุชุณุฌูŠู„ ูƒุงูุฉ
ู…ุณุชูˆูŠุงุช ููˆู‚ู‡ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ู…ุณุชูˆุงู‡. (ูˆู†ุชูŠุฌุฉ ู„ุฐู„ูƒุŒ LOG_ERROR ูˆ
LOG_LEVEL_ERROR ูˆุฃูŠุถู‹ุง LOG_ALL ูˆLOG_LEVEL_ALL ู…ุชูƒุงูุฆุงู† ูˆุธูŠููŠู‹ุง.) ู„ู€
ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุณูŠุคุฏูŠ ุชู…ูƒูŠู† LOG_INFO ุฅู„ู‰ ุชู…ูƒูŠู† ุงู„ุฑุณุงุฆู„ ุงู„ู…ู‚ุฏู…ุฉ ุจูˆุงุณุทุฉ ู…ุงูƒุฑูˆ NS_LOG_INFO ูู‚ุทุŒ ุจูŠู†ู…ุง
ุณูŠุคุฏูŠ ุชู…ูƒูŠู† LOG_LEVEL_INFO ุฃูŠุถู‹ุง ุฅู„ู‰ ุชู…ูƒูŠู† ุงู„ุฑุณุงุฆู„ ุงู„ู…ู‚ุฏู…ุฉ ุจูˆุงุณุทุฉ NS_LOG_DEBUG ูˆNS_LOG_WARN
ูˆูˆุญุฏุงุช ุงู„ู…ุงูƒุฑูˆ NS_LOG_ERROR.

ูƒู…ุง ู†ู‚ุฏู… ุฃูŠุถู‹ุง ู…ุงูƒุฑูˆ ุชุณุฌูŠู„ ุบูŠุฑ ู…ุดุฑูˆุท ูŠุชู… ุนุฑุถู‡ ุฏุงุฆู…ู‹ุงุŒ ุจุบุถ ุงู„ู†ุธุฑ ุนู† ุฐู„ูƒ
ู…ุณุชูˆูŠุงุช ุงู„ุชุณุฌูŠู„ ุฃูˆ ุงุฎุชูŠุงุฑ ุงู„ู…ูƒูˆู†ุงุช.

ยท NS_LOG_UNCOND -- ุชุณุฌูŠู„ ุงู„ุฑุณุงู„ุฉ ุงู„ู…ุฑุชุจุทุฉ ุฏูˆู† ู‚ูŠุฏ ุฃูˆ ุดุฑุท (ู„ุง ูŠูˆุฌุฏ ู…ุณุชูˆู‰ ุณุฌู„ ู…ุฑุชุจุท).

ูŠู…ูƒู† ุทู„ุจ ูƒู„ ู…ุณุชูˆู‰ ู…ู†ูุฑุฏู‹ุง ุฃูˆ ุจุดูƒู„ ุชุฑุงูƒู…ูŠุ› ูˆูŠู…ูƒู† ุฅุนุฏุงุฏ ุงู„ุชุณุฌูŠู„ ุจุงุณุชุฎุฏุงู… ุฃ
ู…ุชุบูŠุฑ ุจูŠุฆุฉ ุงู„ุตุฏูุฉ (NS_LOG) ุฃูˆ ุนู† ุทุฑูŠู‚ ุชุณุฌูŠู„ ุงุณุชุฏุนุงุก ูˆุธูŠูุฉ ุงู„ู†ุธุงู…. ูƒู…ุง ุดูˆู‡ุฏ
ููŠ ูˆู‚ุช ุณุงุจู‚ ู…ู† ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠุŒ ูƒุงู† ู†ุธุงู… ุงู„ุชุณุฌูŠู„ ูŠุญุชูˆูŠ ุนู„ู‰ ูˆุซุงุฆู‚ Doxygen ูˆุงู„ุขู† ุณูŠูƒูˆู† ู…ู„ู
ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจ ู„ู„ุงุทู„ุงุน ุนู„ู‰ ูˆุซุงุฆู‚ ูˆุญุฏุฉ ุงู„ุชุณุฌูŠู„ ุฅุฐุง ู„ู… ุชูƒู† ู‚ุฏ ู‚ู…ุช ุจุฐู„ูƒ.

ุงู„ุขู† ุจุนุฏ ุฃู† ู‚ุฑุฃุช ุงู„ูˆุซุงุฆู‚ ุจุชูุตูŠู„ ูƒุจูŠุฑุŒ ุฏุนู†ุง ู†ุณุชุฎุฏู… ุจุนุถู‹ุง ู…ู† ู‡ุฐู‡ ุงู„ู…ุนุฑูุฉ
ู„ู„ุญุตูˆู„ ุนู„ู‰ ุจุนุถ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู… ู…ู† ุงู„ุตูุฑ/myfirst.cc ู…ุซุงู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู„ุฏูŠูƒ
ุชู… ุจู†ูŠุงู†ู‡ ู…ุณุจู‚ุง.

ุชู…ูƒูŠู† ุชุณุฌูŠู„
ุฏุนูˆู†ุง ู†ุณุชุฎุฏู… ู…ุชุบูŠุฑ ุงู„ุจูŠุฆุฉ NS_LOG ู„ุชุดุบูŠู„ ุงู„ู…ุฒูŠุฏ ู…ู† ุงู„ุชุณุฌูŠู„ุŒ ูˆู„ูƒู† ุฃูˆู„ุงู‹ุŒ ูู‚ุท
ุงุญุตู„ ุนู„ู‰ ุงุชุฌุงู‡ุงุชู†ุงุŒ ูˆู‚ู… ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุงู„ุฃุฎูŠุฑ ุชู…ุงู…ู‹ุง ูƒู…ุง ูุนู„ุช ุณุงุจู‚ู‹ุงุŒ

$ ./waf --ุชุดุบูŠู„ ุงู„ุตูุฑ/myfirst

ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุงู„ุฅุฎุฑุงุฌ ุงู„ู…ุฃู„ูˆู ุงู„ุขู† ู„ู„ุฃูˆู„ NS-3 ุจุฑู†ุงู…ุฌ ุงู„ู…ุซุงู„

$ Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.413 ุซุงู†ูŠุฉ)
ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.1
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.2

ุงุชุถุญ ุฃู† ุงู„ุฑุณุงุฆู„ "ุงู„ู…ุฑุณู„ุฉ" ูˆ"ุงู„ู…ุณุชู„ู…ุฉ" ุงู„ุชูŠ ุชุฑุงู‡ุง ุฃุนู„ุงู‡ ูŠุชู… ุชุณุฌูŠู„ู‡ุง ุจุงู„ูุนู„
ุฑุณุงุฆู„ ู…ู† UdpEchoClientApplication UdpEchoServerApplication. ูŠู…ูƒู†ู†ุง ุฃู† ู†ุณุฃู„
ุชุทุจูŠู‚ ุงู„ุนู…ูŠู„ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ู„ุทุจุงุนุฉ ุงู„ู…ุฒูŠุฏ ู…ู† ุงู„ู…ุนู„ูˆู…ุงุช ุนู† ุทุฑูŠู‚ ุชุญุฏูŠุฏ ู…ุณุชูˆู‰ ุงู„ุชุณุฌูŠู„ ุงู„ุฎุงุต ุจู‡
ุนุจุฑ ู…ุชุบูŠุฑ ุงู„ุจูŠุฆุฉ NS_LOG.

ุณุฃูุชุฑุถ ู…ู† ุงู„ุขู† ูุตุงุนุฏู‹ุง ุฃู†ูƒ ุชุณุชุฎุฏู… ุบู„ุงูู‹ุง ูŠุดุจู‡ sh ูŠุณุชุฎุฏู…
ุจู†ุงุก ุงู„ุฌู…ู„ุฉ "VARIABLE=value". ุฅุฐุง ูƒู†ุช ุชุณุชุฎุฏู… ุบู„ุงูู‹ุง ูŠุดุจู‡ cshุŒ ูุณูŠุชุนูŠู† ุนู„ูŠูƒ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ
ุชุญูˆูŠู„ ุงู„ุฃู…ุซู„ุฉ ุงู„ุฎุงุตุฉ ุจูŠ ุฅู„ู‰ ุจู†ุงุก ุฌู…ู„ุฉ "ู‚ูŠู…ุฉ setenv VARIABLE" ุงู„ุชูŠ ุชุชุทู„ุจู‡ุง ุชู„ูƒ ุงู„ุฃุตุฏุงู.

ููŠ ุงู„ูˆู‚ุช ุงู„ุญุงู„ูŠุŒ ูŠุณุชุฌูŠุจ ุชุทุจูŠู‚ ุนู…ูŠู„ ุตุฏู‰ 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

ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุชุนูŠูŠู† ู…ุชุบูŠุฑ ุจูŠุฆุฉ ุงู„ุตุฏูุฉ NS_LOG ุฅู„ู‰ ุงู„ุณู„ุณู„ุฉุŒ

UdpEchoClientApplication=level_all

ุงู„ุฌุงู†ุจ ุงู„ุฃูŠุณุฑ ู…ู† ุงู„ู…ู‡ู…ุฉ ู‡ูˆ ุงุณู… ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„ ุงู„ุฐูŠ ู†ุฑูŠุฏ ุชุนูŠูŠู†ู‡ุŒ
ูˆุงู„ุฌุงู†ุจ ุงู„ุฃูŠู…ู† ู‡ูˆ ุงู„ุนู„ู… ุงู„ุฐูŠ ู†ุฑูŠุฏ ุงุณุชุฎุฏุงู…ู‡. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ุณู†ู‚ูˆู… ุจุชุดุบูŠู„
ูƒุงูุฉ ู…ุณุชูˆูŠุงุช ุงู„ุชุตุญูŠุญ ู„ู„ุชุทุจูŠู‚. ุฅุฐุง ู‚ู…ุช ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู…ุน ู…ุฌู…ูˆุนุฉ NS_LOG
ุจู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉุŒ NS-3 ุณูˆู ูŠู„ุชู‚ุท ู†ุธุงู… ุงู„ุชุณุฌูŠู„ ุงู„ุชุบูŠูŠุฑ ูˆูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ู…ุง ูŠู„ูŠ
ุงู†ุชุงุฌ:

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.404 ุซุงู†ูŠุฉ)
UdpEchoClientApplication:UdpEchoClient()
ุชุทุจูŠู‚ ุฃูˆุฏุจูŠูƒูˆูƒู„ูŠู†ุช:SetDataSize(1024)
UdpEchoClientApplication:StartApplication()
UdpEchoClientApplication:ScheduleTransmit()
UdpEchoClientApplication:ุฅุฑุณุงู„ ()
ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.1
UdpEchoClientApplication:HandleRead(0x6241e0, 0x624a20)
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.2
UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()

ู…ุนู„ูˆู…ุงุช ุงู„ุชุตุญูŠุญ ุงู„ุฅุถุงููŠุฉ ุงู„ุชูŠ ูŠูˆูุฑู‡ุง ุงู„ุชุทุจูŠู‚ ู‡ูŠ ู…ู† NS_LOG_FUNCTION
ู…ุณุชูˆู‰. ูŠุธู‡ุฑ ู‡ุฐุง ููŠ ูƒู„ ู…ุฑุฉ ูŠุชู… ููŠู‡ุง ุงุณุชุฏุนุงุก ูˆุธูŠูุฉ ููŠ ุงู„ุชุทุจูŠู‚ ุฃุซู†ุงุก ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ
ุชู†ููŠุฐ. ุจุดูƒู„ ุนุงู…ุŒ ูŠุนุฏ ุงุณุชุฎุฏุงู… (ุนู„ู‰ ุงู„ุฃู‚ู„) NS_LOG_FUNCTION(ู‡ุฐุง) ููŠ ูˆุธุงุฆู ุงู„ุฃุนุถุงุก
ูŠูุถู„. ุงุณุชุฎุฏู… NS_LOG_FUNCTION_NOARGS() ูู‚ุท ููŠ ุงู„ูˆุธุงุฆู ุงู„ุซุงุจุชุฉ. ู„ุงุญุธุŒ ู…ุน ุฐู„ูƒุŒ ุฃู†
ู„ุง ุชูˆุฌุฏ ู…ุชุทู„ุจุงุช ููŠ NS-3 ุงู„ู†ุธุงู… ุงู„ุฐูŠ ูŠุฌุจ ุฃู† ุชุฏุนู… ุงู„ู†ู…ุงุฐุฌ ุฃูŠ ู…ุนูŠู†
ูˆุธูŠูุฉ ุงู„ุชุณุฌูŠู„. ูˆูŠุชุฑูƒ ุงู„ู‚ุฑุงุฑ ุงู„ู…ุชุนู„ู‚ ุจูƒู…ูŠุฉ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุชูŠ ูŠุชู… ุชุณุฌูŠู„ู‡ุง
ู…ุทูˆุฑ ุงู„ู†ู…ูˆุฐุฌ ุงู„ูุฑุฏูŠ. ูˆููŠ ุญุงู„ุฉ ุชุทุจูŠู‚ุงุช ุงู„ุตุฏู‰ุŒ ูŠูˆุฌุฏ ู‚ุฏุฑ ูƒุจูŠุฑ ู…ู† ุงู„ุณุฌู„
ุงู„ุฅุฎุฑุงุฌ ู…ุชุงุญ.

ูŠู…ูƒู†ูƒ ุงู„ุขู† ุฑุคูŠุฉ ุณุฌู„ ุงุณุชุฏุนุงุกุงุช ุงู„ูˆุธุงุฆู ุงู„ุชูŠ ุชู… ุฅุฌุฑุงุคู‡ุง ุนู„ู‰ ุงู„ุชุทุจูŠู‚. ุงุฐุง ุฃู†ุช
ุงู†ุธุฑ ุนู† ูƒุซุจ ุณุชู„ุงุญุธ ูˆุฌูˆุฏ ู†ู‚ุทุชูŠู† ูˆุงุญุฏุชูŠู† ุจูŠู† ุงู„ุณู„ุณู„ุฉ UdpEchoClientApplication
ูˆุงุณู… ุงู„ุทุฑูŠู‚ุฉ ุงู„ุชูŠ ุฑุจู…ุง ูƒู†ุช ุชุชูˆู‚ุน ููŠู‡ุง ู…ุดุบู„ ู†ุทุงู‚ C++ (::). ู‡ุฐุง ู‡ูˆ
ู…ุชุนู…ุฏ.

ุงู„ุงุณู… ู„ูŠุณ ููŠ ุงู„ูˆุงู‚ุน ุงุณู… ูุฆุฉุŒ ุจู„ ู‡ูˆ ุงุณู… ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„. ุนู†ุฏู…ุง ูŠูƒูˆู† ู‡ู†ุงูƒ
ุงู„ู…ุฑุงุณู„ุงุช ุงู„ูุฑุฏูŠุฉ ุจูŠู† ุงู„ู…ู„ู ุงู„ู…ุตุฏุฑ ูˆุงู„ูุฆุฉุŒ ุณุชูƒูˆู† ู‡ุฐู‡ ุจุดูƒู„ ุนุงู… ู‡ูŠ ุงู„ู…ุฑุงุณู„ุงุช
ุงุณู… ูุฆุฉ ูˆู„ูƒู† ูŠุฌุจ ุฃู† ุชูู‡ู… ุฃู†ู‡ ู„ูŠุณ ููŠ ุงู„ูˆุงู‚ุน ุงุณู… ูุฆุฉุŒ ูˆู‡ู†ุงูƒ
ู†ู‚ุทุชุงู† ู…ูุฑุฏุชุงู† ู‡ู†ุงูƒ ุจุฏู„ุงู‹ ู…ู† ู†ู‚ุทุชูŠู† ู…ุฒุฏูˆุฌุชูŠู† ู„ุชุฐูƒูŠุฑูƒ ุจุทุฑูŠู‚ุฉ ุฎููŠุฉ ู†ุณุจูŠู‹ุง
ู‚ู… ุจูุตู„ ุงุณู… ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„ ุนู† ุงุณู… ุงู„ูุฆุฉ ู…ู† ุงู„ู†ุงุญูŠุฉ ุงู„ู…ูุงู‡ูŠู…ูŠุฉ.

ุงุชุถุญ ุฃู†ู‡ ููŠ ุจุนุถ ุงู„ุญุงู„ุงุชุŒ ู‚ุฏ ูŠูƒูˆู† ู…ู† ุงู„ุตุนุจ ุชุญุฏูŠุฏ ุงู„ุทุฑูŠู‚ุฉ ุงู„ูุนู„ูŠุฉ
ูŠูˆู„ุฏ ุฑุณุงู„ุฉ ุงู„ุณุฌู„. ุฅุฐุง ู†ุธุฑุช ุฅู„ู‰ ุงู„ู†ุต ุฃุนู„ุงู‡ุŒ ู‚ุฏ ุชุชุณุงุกู„ ุฃูŠู† ุงู„ุณู„ุณู„ุฉ
"ุชู… ุงู„ุงุณุชู„ุงู… 1024 ุจุงูŠุช ุชุจุฏุฃ ู…ู† 10.1.1.2" ูŠุฃุชูŠ ู…ู†. ูŠู…ูƒู†ูƒ ุญู„ ู‡ุฐู‡ ุงู„ู…ุดูƒู„ุฉ ุนู† ุทุฑูŠู‚ ุงุณุชุฎุฏุงู… OR'ing
prefix_func ุงู„ู…ุณุชูˆู‰ ููŠ NS_LOG ู…ุชุบูŠุฑุงุช ุงู„ุจูŠุฆุฉ. ุญุงูˆู„ ุงู„ู‚ูŠุงู… ุจู…ุง ูŠู„ูŠุŒ

$ ุงู„ุชุตุฏูŠุฑ 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func'

ู„ุงุญุธ ุฃู† ุนู„ุงู…ุงุช ุงู„ุงู‚ุชุจุงุณ ู…ุทู„ูˆุจุฉ ู†ุธุฑู‹ุง ู„ุฃู† ุงู„ุดุฑูŠุท ุงู„ุฑุฃุณูŠ ุงู„ุฐูŠ ู†ุณุชุฎุฏู…ู‡ ู„ู„ุฅุดุงุฑุฉ ุฅู„ู‰ OR
ุงู„ุนู…ู„ูŠุฉ ู‡ูŠ ุฃูŠุถู‹ุง ู…ูˆุตู„ ุฃู†ุจูˆุจ Unix.

ุงู„ุขู†ุŒ ุฅุฐุง ู‚ู…ุช ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ูุณูˆู ุชุฑู‰ ุฃู† ู†ุธุงู… ุงู„ุชุณุฌูŠู„ ูŠุชุฃูƒุฏ ู…ู† ุฃู† ูƒู„
ุชูƒูˆู† ุงู„ุฑุณุงู„ุฉ ู…ู† ู…ูƒูˆู† ุงู„ุณุฌู„ ุงู„ู…ุญุฏุฏ ู…ุณุจูˆู‚ุฉ ุจุงุณู… ุงู„ู…ูƒูˆู†.

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.417 ุซุงู†ูŠุฉ)
UdpEchoClientApplication:UdpEchoClient()
ุชุทุจูŠู‚ ุฃูˆุฏุจูŠูƒูˆูƒู„ูŠู†ุช:SetDataSize(1024)
UdpEchoClientApplication:StartApplication()
UdpEchoClientApplication:ScheduleTransmit()
UdpEchoClientApplication:ุฅุฑุณุงู„ ()
UdpEchoClientApplication:Send(): ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.1
UdpEchoClientApplication:HandleRead(0x6241e0, 0x624a20)
UdpEchoClientApplication:HandleRead(): ุชู… ุชู„ู‚ูŠ 1024 ุจุงูŠุช ู…ู† 10.1.1.2
UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()

ูŠู…ูƒู†ูƒ ุงู„ุขู† ุฑุคูŠุฉ ุฌู…ูŠุน ุงู„ุฑุณุงุฆู„ ุงู„ูˆุงุฑุฏุฉ ู…ู† ุชุทุจูŠู‚ ุนู…ูŠู„ ุตุฏู‰ UDP
ุชู… ุชุญุฏูŠุฏู‡ุง ุนู„ู‰ ู‡ุฐุง ุงู„ู†ุญูˆ. ุฃุตุจุญุช ุงู„ุฑุณุงู„ุฉ "ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.2" ูˆุงุถุญุฉ ุงู„ุขู†
ุชู… ุชุญุฏูŠุฏู‡ ุนู„ู‰ ุฃู†ู‡ ู‚ุงุฏู… ู…ู† ุชุทุจูŠู‚ ุนู…ูŠู„ ุงู„ุตุฏู‰. ูŠุฌุจ ุฃู† ุชูƒูˆู† ุงู„ุฑุณุงู„ุฉ ุงู„ู…ุชุจู‚ูŠุฉ
ู‚ุงุฏู…ุฉ ู…ู† ุชุทุจูŠู‚ ุฎุงุฏู… ุตุฏู‰ UDP. ูŠู…ูƒู†ู†ุง ุชู…ูƒูŠู† ู‡ุฐุง ุงู„ู…ูƒูˆู† ุนู† ุทุฑูŠู‚ ุฅุฏุฎุงู„ ู…ู„ู
ู‚ุงุฆู…ุฉ ู…ูุตูˆู„ุฉ ุจู†ู‚ุทุชูŠู† ู„ู„ู…ูƒูˆู†ุงุช ููŠ ู…ุชุบูŠุฑ ุงู„ุจูŠุฆุฉ NS_LOG.

$ ุงู„ุชุตุฏูŠุฑ 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func:
UdpEchoServerApplication=level_all|prefix_func'

ุชุญุฐูŠุฑ: ุณูˆู ุชุญุชุงุฌ ุฅู„ู‰ ุฅุฒุงู„ุฉ ุงู„ุณุทุฑ ุงู„ุฌุฏูŠุฏ ุจุนุฏ : ููŠ ุงู„ู†ุต ุงู„ู…ุซุงู„ ุฃุนู„ุงู‡ ุงู„ุฐูŠ
ู…ูˆุฌูˆุฏ ูู‚ุท ู„ุฃุบุฑุงุถ ุชู†ุณูŠู‚ ุงู„ู…ุณุชู†ุฏุงุช.

ุงู„ุขู†ุŒ ุฅุฐุง ู‚ู…ุช ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ูุณูˆู ุชุฑู‰ ูƒุงูุฉ ุฑุณุงุฆู„ ุงู„ุณุฌู„ ู…ู† ูƒู„ุง ุนู…ูŠู„ูŠ ุงู„ุตุฏู‰
ูˆุชุทุจูŠู‚ุงุช ุงู„ุฎุงุฏู…. ู‚ุฏ ุชุฑู‰ ุฃู† ู‡ุฐุง ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ู…ููŠุฏู‹ุง ุฌุฏู‹ุง ููŠ ุชุตุญูŠุญ ุงู„ู…ุดูƒู„ุงุช.

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.406 ุซุงู†ูŠุฉ)
UdpEchoServerApplication:UdpEchoServer()
UdpEchoClientApplication:UdpEchoClient()
ุชุทุจูŠู‚ ุฃูˆุฏุจูŠูƒูˆูƒู„ูŠู†ุช:SetDataSize(1024)
UdpEchoServerApplication:StartApplication()
UdpEchoClientApplication:StartApplication()
UdpEchoClientApplication:ScheduleTransmit()
UdpEchoClientApplication:ุฅุฑุณุงู„ ()
UdpEchoClientApplication:Send(): ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
UdpEchoServerApplication:HandleRead(): ุชู… ุชู„ู‚ูŠ 1024 ุจุงูŠุช ู…ู† 10.1.1.1
UdpEchoServerApplication:HandleRead(): ุตุฏู‰ ุงู„ุญุฒู…ุฉ
UdpEchoClientApplication:HandleRead(0x624920, 0x625160)
UdpEchoClientApplication:HandleRead(): ุชู… ุชู„ู‚ูŠ 1024 ุจุงูŠุช ู…ู† 10.1.1.2
UdpEchoServerApplication:StopApplication()
UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoServerApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()
UdpEchoServerApplication:~UdpEchoServer()

ู…ู† ุงู„ู…ููŠุฏ ุฃูŠุถู‹ุง ููŠ ุจุนุถ ุงู„ุฃุญูŠุงู† ุฃู† ุชูƒูˆู† ู‚ุงุฏุฑู‹ุง ุนู„ู‰ ุฑุคูŠุฉ ูˆู‚ุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ุฐูŠ ุชุธู‡ุฑ ููŠู‡ ุฑุณุงู„ุฉ ุงู„ุณุฌู„
ุชู… ุฅู†ุดุงุคู‡. ูŠู…ูƒู†ูƒ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ ุนู† ุทุฑูŠู‚ ORing ููŠ ุจุช prefix_time.

$ ุงู„ุชุตุฏูŠุฑ 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func|prefix_time:
UdpEchoServerApplication=level_all|prefix_func|prefix_time'

ู…ุฑุฉ ุฃุฎุฑู‰ุŒ ุณูŠูƒูˆู† ุนู„ูŠูƒ ุฅุฒุงู„ุฉ ุงู„ุณุทุฑ ุงู„ุฌุฏูŠุฏ ุฃุนู„ุงู‡. ุฅุฐุง ู‚ู…ุช ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุงู„ุขู†ุŒ ููŠุฌุจ ุนู„ูŠูƒ ุฐู„ูƒ
ุงู†ุธุฑ ุงู„ุฅุฎุฑุงุฌ ุงู„ุชุงู„ูŠ:

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.418 ุซุงู†ูŠุฉ)
0s UdpEchoServerApplication:UdpEchoServer()
0s UdpEchoClientApplication:UdpEchoClient()
ุชุทุจูŠู‚ UdpEchoClient 0s:SetDataSize(1024)
1s UdpEchoServerApplication:StartApplication()
2s UdpEchoClientApplication:StartApplication()
2s UdpEchoClientApplication:ScheduleTransmit()
2s UdpEchoClientApplication:ุฅุฑุณุงู„ ()
2s UdpEchoClientApplication:Send(): ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
2.00369s UdpEchoServerApplication:HandleRead(): ุชู… ุชู„ู‚ูŠ 1024 ุจุงูŠุช ู…ู† 10.1.1.1
2.00369s UdpEchoServerApplication:HandleRead(): ุตุฏู‰ ุงู„ุญุฒู…ุฉ
2.00737s UdpEchoClientApplication:HandleRead(0x624290, 0x624ad0)
2.00737s UdpEchoClientApplication:HandleRead(): ุชู… ุชู„ู‚ูŠ 1024 ุจุงูŠุช ู…ู† 10.1.1.2
10 ุซุงู†ูŠุฉ UdpEchoServerApplication:StopApplication()
10s UdpEchoClientApplication:StopApplication()
UdpEchoClientApplication:DoDispose()
UdpEchoServerApplication:DoDispose()
UdpEchoClientApplication:~UdpEchoClient()
UdpEchoServerApplication:~UdpEchoServer()

ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุฃู†ู‡ ุชู… ุงุณุชุฏุนุงุก ู…ูู†ุดุฆ UdpEchoServer ููŠ ูˆู‚ุช ู…ุญุงูƒุงุฉ
0 ุซุงู†ูŠุฉ. ูˆู‡ุฐุง ูŠุญุฏุซ ุจุงู„ูุนู„ ู‚ุจู„ ุจุฏุก ุงู„ู…ุญุงูƒุงุฉุŒ ูˆู„ูƒู† ุงู„ูˆู‚ุช ู‚ุฏ ุญุงู†
ูŠุชู… ุนุฑุถู‡ุง ุนู„ู‰ ุฃู†ู‡ุง ุตูุฑ ุซุงู†ูŠุฉ. ูˆูŠู†ุทุจู‚ ุงู„ุดูŠุก ู†ูุณู‡ ุนู„ู‰ ุฑุณุงู„ุฉ ู…ู†ุดุฆ UdpEchoClient.

ุฃุฐูƒุฑ ุฃู† ุงู„ุตูุฑ/first.cc ุจุฏุฃ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุชุทุจูŠู‚ ุฎุงุฏู… ุงู„ุตุฏู‰ ููŠ ุซุงู†ูŠุฉ ูˆุงุญุฏุฉ
ููŠ ุงู„ู…ุญุงูƒุงุฉ. ูŠู…ูƒู†ูƒ ุงู„ุขู† ุฃู† ุชุฑู‰ ุฃู† StartApplication ุทุฑูŠู‚ุฉ ุงู„ุณูŠุฑูุฑ ู‡ูŠ
ููŠ ุงู„ูˆุงู‚ุนุŒ ุชู… ุงู„ุงุชุตุงู„ ุจู‡ ููŠ ุซุงู†ูŠุฉ ูˆุงุญุฏุฉ. ูŠู…ูƒู†ูƒ ุฃูŠุถู‹ุง ุฃู† ุชุฑู‰ ุฃู† ุชุทุจูŠู‚ ุนู…ูŠู„ ุงู„ุตุฏู‰ ู‡ูˆ
ุจุฏุฃุช ููŠ ุฒู…ู† ู…ุญุงูƒุงุฉ ู…ุฏุชู‡ ุซุงู†ูŠุชุงู† ูƒู…ุง ุทู„ุจู†ุง ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ.

ูŠู…ูƒู†ูƒ ุงู„ุขู† ู…ุชุงุจุนุฉ ุงู„ุชู‚ุฏู… ุงู„ู…ุญุฑุฒ ููŠ ุงู„ู…ุญุงูƒุงุฉ ู…ู† ุฌุฏูˆู„ุฉ ุงู„ุฅุฑุณุงู„ ุงุณุชุฏุนุงุก ููŠ
ุงู„ุนู…ูŠู„ ุงู„ุฐูŠ ูŠุฏุนูˆ ุฅุฑุณุงู„ ุฅู„ู‰ ุงู„ุชุนุงู…ู„ ู…ุน ุงู„ู‚ุฑุงุกุฉ ุฑุฏ ุงู„ุงุชุตุงู„ ููŠ ุชุทุจูŠู‚ ุฎุงุฏู… ุงู„ุตุฏู‰. ู…ู„ุญูˆุธุฉ
ุฃู† ุงู„ูˆู‚ุช ุงู„ู…ู†ู‚ุถูŠ ู„ุฅุฑุณุงู„ ุงู„ุญุฒู…ุฉ ุนุจุฑ ุฑุงุจุท ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ู‡ูˆ 3.69
ู…ูŠู„ูŠ ุซุงู†ูŠุฉ. ุชุฑู‰ ุฎุงุฏู… ุงู„ุตุฏู‰ ูŠุณุฌู„ ุฑุณุงู„ุฉ ุชุฎุจุฑูƒ ุจุฃู†ู‡ ู‚ุฏ ุชุฑุฏุฏ ุตุฏู‰
ุงู„ุญุฒู…ุฉุŒ ูˆุจุนุฏ ุชุฃุฎูŠุฑ ุขุฎุฑ ู„ู„ู‚ู†ุงุฉุŒ ุชุฑู‰ ุนู…ูŠู„ ุงู„ุตุฏู‰ ูŠุชู„ู‚ู‰ ู…ู„ู
ุฑุฏุฏ ุงู„ุญุฒู…ุฉ ููŠ ุงู„ุชุนุงู…ู„ ู…ุน ุงู„ู‚ุฑุงุกุฉ ุงู„ุฃุณู„ูˆุจ.

ู‡ู†ุงูƒ ุงู„ูƒุซูŠุฑ ู…ู…ุง ูŠุญุฏุซ ุชุญุช ุงู„ุฃุบุทูŠุฉ ููŠ ู‡ุฐู‡ ุงู„ู…ุญุงูƒุงุฉุŒ ูˆู‡ูˆ ุฃู…ุฑ ู„ุง ุชุนุฑูู‡ ุฃู†ุช
ุฑุคูŠุฉ ูƒุฐู„ูƒ. ูŠู…ูƒู†ูƒ ุจุณู‡ูˆู„ุฉ ู…ุชุงุจุนุฉ ุงู„ุนู…ู„ูŠุฉ ุจุฑู…ุชู‡ุง ุนู† ุทุฑูŠู‚ ุชุดุบูŠู„ ูƒุงูุฉ ุงู„ุนู†ุงุตุฑ
ุชุณุฌูŠู„ ุงู„ู…ูƒูˆู†ุงุช ููŠ ุงู„ู†ุธุงู…. ุญุงูˆู„ ุถุจุท NS_LOG ู…ุชุบูŠุฑ ู„ู…ุง ูŠู„ูŠุŒ

$ ุงู„ุชุตุฏูŠุฑ 'NS_LOG=*=level_all|prefix_func|prefix_time'

ุงู„ุนู„ุงู…ุฉ ุงู„ู†ุฌู…ูŠุฉ ุฃุนู„ุงู‡ ู‡ูŠ ุญุฑู ุจุฏู„ ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„. ุณูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุชุดุบูŠู„ ูƒุงูุฉ
ุชุณุฌูŠู„ ุฌู…ูŠุน ุงู„ู…ูƒูˆู†ุงุช ุงู„ู…ุณุชุฎุฏู…ุฉ ููŠ ุงู„ู…ุญุงูƒุงุฉ. ู„ู† ุฃู‚ูˆู… ุจุฅุนุงุฏุฉ ุฅู†ุชุงุฌ ุงู„ุฅุฎุฑุงุฌ
ู‡ู†ุง (ุญุชู‰ ูƒุชุงุจุฉ ู‡ุฐู‡ ุงู„ุณุทูˆุฑุŒ ูŠู†ุชุฌ 1265 ุณุทุฑู‹ุง ู…ู† ุงู„ุฅุฎุฑุงุฌ ู„ุตุฏู‰ ุงู„ุญุฒู…ุฉ ุงู„ูˆุงุญุฏุฉ) ูˆู„ูƒู†
ูŠู…ูƒู†ูƒ ุฅุนุงุฏุฉ ุชูˆุฌูŠู‡ ู‡ุฐู‡ ุงู„ู…ุนู„ูˆู…ุงุช ุฅู„ู‰ ู…ู„ู ูˆุงู„ุงุทู„ุงุน ุนู„ูŠู‡ุง ู…ุน ุงู„ู…ูุถู„ุฉ ู„ุฏูŠูƒ
ุงู„ู…ุญุฑุฑ ุฅุฐุง ุฃุฑุฏุชุŒ

$ ./waf --runุฎุฏุด/myfirst > log.out 2>&1

ุฃู†ุง ุดุฎุตูŠุงู‹ ุฃุณุชุฎุฏู… ู‡ุฐุง ุงู„ุฅุตุฏุงุฑ ุงู„ู…ุทูˆู„ ู„ู„ุบุงูŠุฉ ู…ู† ุงู„ุชุณุฌูŠู„ ุนู†ุฏู…ุง ูŠุชู… ุชู‚ุฏูŠู… ู…ู„ู
ู…ุดูƒู„ุฉ ูˆู„ูŠุณ ู„ุฏูŠ ุฃูŠ ููƒุฑุฉ ุฃูŠู† ุชุณูŠุฑ ุงู„ุฃู…ูˆุฑ ุจุดูƒู„ ุฎุงุทุฆ. ูŠู…ูƒู†ู†ูŠ ู…ุชุงุจุนุฉ ุงู„ุชู‚ุฏู… ุงู„ู…ุญุฑุฒ ููŠ
ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุจุณู‡ูˆู„ุฉ ุชุงู…ุฉ ุฏูˆู† ุงู„ุญุงุฌุฉ ุฅู„ู‰ ุชุนูŠูŠู† ู†ู‚ุงุท ุงู„ุชูˆู‚ู ูˆุงู„ุชู†ู‚ู„ ุฎู„ุงู„ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ููŠ ู…ุตุญุญ ุงู„ุฃุฎุทุงุก.
ูŠู…ูƒู†ู†ูŠ ูู‚ุท ุชุนุฏูŠู„ ุงู„ู…ุฎุฑุฌุงุช ููŠ ุงู„ู…ุญุฑุฑ ุงู„ู…ูุถู„ ู„ุฏูŠ ูˆุงู„ุจุญุซ ุนู† ุงู„ุฃุดูŠุงุก ุงู„ุชูŠ ุฃุชูˆู‚ุนู‡ุงุŒ
ูˆุฃุฑู‰ ุฃุดูŠุงุก ุชุญุฏุซ ู„ุง ุฃุชูˆู‚ุนู‡ุง. ุนู†ุฏู…ุง ูŠูƒูˆู† ู„ุฏูŠ ููƒุฑุฉ ุนุงู…ุฉ ุนู…ุง ู‡ูˆ
ุฅุฐุง ุญุฏุซ ุฎุทุฃุŒ ูุฅู†ู†ูŠ ุฃู†ุชู‚ู„ ุฅู„ู‰ ู…ุตุญุญ ุงู„ุฃุฎุทุงุก ู„ุฅุฌุฑุงุก ูุญุต ุฏู‚ูŠู‚ ู„ู„ู…ุดูƒู„ุฉ.
ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ู‡ุฐุง ุงู„ู†ูˆุน ู…ู† ุงู„ู…ุฎุฑุฌุงุช ู…ููŠุฏู‹ุง ุจุดูƒู„ ุฎุงุต ุนู†ุฏู…ุง ูŠู‚ูˆู… ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุงู„ุฎุงุต ุจูƒ ุจุนู…ู„ ุดูŠุก ู…ุง ุจุดูƒู„ ูƒุงู…ู„
ุบูŠุฑ ู…ุชูˆู‚ุน. ุฅุฐุง ูƒู†ุช ุชู†ุชู‚ู„ ุจุงุณุชุฎุฏุงู… ู…ุตุญุญ ุงู„ุฃุฎุทุงุกุŒ ูู‚ุฏ ุชููˆุชูƒ ุฑุญู„ุฉ ุบูŠุฑ ู…ุชูˆู‚ุนุฉ
ุจุงู„ูƒุงู…ู„. ุชุณุฌูŠู„ ุงู„ุฑุญู„ุฉ ูŠุฌุนู„ู‡ุง ู…ุฑุฆูŠุฉ ุจุณุฑุนุฉ.

ุฅุถุงูุฉ ุชุณุฌูŠู„ ุฅู„ู‰ ู„ูƒ ุฑู…ุฒ
ูŠู…ูƒู†ูƒ ุฅุถุงูุฉ ุชุณุฌูŠู„ ุฌุฏูŠุฏ ุฅู„ู‰ ุนู…ู„ูŠุงุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ุฎุงุตุฉ ุจูƒ ุนู† ุทุฑูŠู‚ ุฅุฌุฑุงุก ู…ูƒุงู„ู…ุงุช ุฅู„ู‰ ู…ูƒูˆู† ุงู„ุณุฌู„ ุนุจุฑ
ุนุฏุฉ ูˆุญุฏุงุช ู…ุงูƒุฑูˆ. ุฏุนูˆู†ุง ู†ูุนู„ ุฐู„ูƒ ููŠ myfirst.cc ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู„ุฏูŠู†ุง ููŠ ุฎุฏุด ุงู„ุฏู„ูŠู„.

ุชุฐูƒุฑ ุฃู†ู†ุง ู‚ู…ู†ุง ุจุชุนุฑูŠู ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„ ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ:

NS_LOG_COMPONENT_DEFINE ("FirstScriptExample")ุ›

ุฃู†ุช ุชุนู„ู… ุงู„ุขู† ุฃู†ู‡ ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ูƒุงูุฉ ุนู…ู„ูŠุงุช ุงู„ุชุณุฌูŠู„ ู„ู‡ุฐุง ุงู„ู…ูƒูˆู† ุนู† ุทุฑูŠู‚ ุชุนูŠูŠู†
NS_LOG ู…ุชุบูŠุฑ ุงู„ุจูŠุฆุฉ ุนู„ู‰ ู…ุฎุชู„ู ุงู„ู…ุณุชูˆูŠุงุช. ุฏุนูˆู†ุง ู†ู…ุถูŠ ู‚ุฏู…ุง ูˆู†ุถูŠู ุจุนุถ ุงู„ุชุณุฌูŠู„ ุฅู„ู‰
ุงู„ู†ุต. ุงู„ู…ุงูƒุฑูˆ ุงู„ู…ุณุชุฎุฏู… ู„ุฅุถุงูุฉ ุฑุณุงู„ุฉ ุณุฌู„ ู…ุณุชูˆู‰ ุงู„ู…ุนู„ูˆู…ุงุช ู‡ูˆ NS_LOG_INFO. ุงุฐู‡ุจ
ู„ู„ุฃู…ุงู… ูˆุฃุถู ูˆุงุญุฏุฉ (ู‚ุจู„ ุฃู† ู†ุจุฏุฃ ููŠ ุฅู†ุดุงุก ุงู„ุนู‚ุฏ ู…ุจุงุดุฑุฉ) ุชุฎุจุฑูƒ ุจุฃู† ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ
ู‡ูˆ "ุฅู†ุดุงุก ุทูˆุจูˆู„ูˆุฌูŠุง." ูˆูŠุชู… ุฐู„ูƒ ูƒู…ุง ููŠ ู…ู‚ุชุทู ุงู„ูƒูˆุฏ ู‡ุฐุงุŒ

ุณุงุนุงุช ุงู„ุนู…ู„ ุงู„ุตูุฑ/myfirst.cc ููŠ ู…ุญุฑุฑูƒ ุงู„ู…ูุถู„ ูˆุฃุถู ุงู„ุณุทุฑุŒ

NS_LOG_INFO ("ุฅู†ุดุงุก ุงู„ู‡ูŠูƒู„")ุ›

ู‚ุจู„ ุงู„ุณุทูˆุฑ ู…ุจุงุดุฑุฉ

ุนู‚ุฏ NodeContainer
ุงู„ุนู‚ุฏ.ุฅู†ุดุงุก (2);

ุงู„ุขู† ุฃู†ุดุฆ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุจุงุณุชุฎุฏุงู… waf ูˆุงู…ุณุญ ู…ู„ู NS_LOG ู…ุชุบูŠุฑ ู„ุฅูŠู‚ุงู ุณูŠู„
ุงู„ุชุณุฌูŠู„ ุงู„ุฐูŠ ู‚ู…ู†ุง ุจุชู…ูƒูŠู†ู‡ ุณุงุจู‚ู‹ุง:

$ ./ูˆุงู
$ ุชุตุฏูŠุฑ NS_LOG=

ุงู„ุขู†ุŒ ุฅุฐุง ู‚ู…ุช ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ

$ ./waf --ุชุดุบูŠู„ ุงู„ุตูุฑ/myfirst

ุณูˆู ู„ูŠุณ ุดุงู‡ุฏ ุฑุณุงู„ุชูƒ ุงู„ุฌุฏูŠุฏุฉ ู…ู†ุฐ ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„ ุงู„ู…ุฑุชุจุท ุจู‡ุง
(ู…ุซุงู„ FirstScript) ู„ู… ูŠุชู… ุชู…ูƒูŠู†ู‡. ู„ูƒูŠ ุชุฑู‰ ุฑุณุงู„ุชูƒ ูŠุฌุจ ุนู„ูŠูƒ ุฐู„ูƒ
ุชู…ูƒูŠู† ู…ุซุงู„ FirstScript ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„ ุจู…ุณุชูˆู‰ ุฃูƒุจุฑ ู…ู† ุฃูˆ ูŠุณุงูˆูŠ
NS_LOG_INFO. ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ูู‚ุท ุฑุคูŠุฉ ู‡ุฐุง ุงู„ู…ุณุชูˆู‰ ุงู„ู…ุญุฏุฏ ู…ู† ุงู„ุชุณุฌูŠู„ุŒ ููŠู…ูƒู†ูƒ ุชู…ูƒูŠู†ู‡
ุจูˆุงุณุทุฉุŒ

$export NS_LOG=FirstScriptExample=info

ุฅุฐุง ู‚ู…ุช ุงู„ุขู† ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ูุณุชุฑู‰ ุฑุณุงู„ุฉ ุณุฌู„ "ุฅู†ุดุงุก ุงู„ู‡ูŠูƒู„" ุงู„ุฌุฏูŠุฏุฉุŒ

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.404 ุซุงู†ูŠุฉ)
ุฎู„ู‚ ุงู„ุทูˆุจูˆู„ูˆุฌูŠุง
ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.1
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.2

ุจุงุณุชุฎุฏุงู… ุฃู…ุฑ ุฎุท ุงู„ุญุฌุฌ
ุชุฌุงูˆุฒ ุงู„ุชุฑุชูŠุจ ุงู„ุณู…ุงุช
ู‡ู†ุงูƒ ุทุฑูŠู‚ุฉ ุฃุฎุฑู‰ ูŠู…ูƒู†ูƒ ู…ู† ุฎู„ุงู„ู‡ุง ุชุบูŠูŠุฑ ุงู„ุทุฑูŠู‚ุฉ NS-3 ุชุชุตุฑู ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุฏูˆู† ุชุญุฑูŠุฑ ูˆูŠุชู… ุงู„ุจู†ุงุก ุนุจุฑู‡ุง
ุฃู…ุฑ ุฎุท ุงู„ุญุฌุฌ. ู†ุญู† ู†ู‚ุฏู… ุขู„ูŠุฉ ู„ุชุญู„ูŠู„ ูˆุณูŠุทุงุช ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ูˆ
ุชุนูŠูŠู† ุงู„ู…ุชุบูŠุฑุงุช ุงู„ู…ุญู„ูŠุฉ ูˆุงู„ุนุงู„ู…ูŠุฉ ุชู„ู‚ุงุฆูŠู‹ุง ุจู†ุงุกู‹ ุนู„ู‰ ุชู„ูƒ ุงู„ูˆุณุงุฆุท.

ุงู„ุฎุทูˆุฉ ุงู„ุฃูˆู„ู‰ ููŠ ุงุณุชุฎุฏุงู… ู†ุธุงู… ูˆุณูŠุทุฉ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ู‡ูŠ ุงู„ุฅุนู„ุงู† ุนู† ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ
ู…ุญู„ู„. ูŠุชู… ุฐู„ูƒ ุจูƒู„ ุจุณุงุทุฉ (ููŠ ุจุฑู†ุงู…ุฌูƒ ุงู„ุฑุฆูŠุณูŠ) ูƒู…ุง ููŠ ุงู„ูƒูˆุฏ ุงู„ุชุงู„ูŠุŒ

ู…ุงุฏุจุง
main (int argcุŒ char * argv [])
{


CommandLine ูƒู…ุฏ ุ›
cmd ุŒ Parse (argc ุŒ argv) ุ›


}

ู‡ุฐุง ุงู„ู…ู‚ุชุทู ุงู„ุจุณูŠุท ุงู„ู…ูƒูˆู† ู…ู† ุณุทุฑูŠู† ู…ููŠุฏ ุฌุฏู‹ุง ููŠ ุญุฏ ุฐุงุชู‡. ูุฅู†ู‡ ูŠูุชุญ ุงู„ุจุงุจ ุฃู…ุงู…
NS-3 ุงู„ู…ุชุบูŠุฑ ุงู„ุนุงู„ู…ูŠ ูˆ ุงู„ุณู…ุฉ ุฃู†ุธู…ุฉ. ุชูุถู„ ูˆุฃุถู ุณุทุฑูŠู† ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุฅู„ู‰
ู‡ูŠู‡ ุงู„ุตูุฑ/myfirst.cc ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ููŠ ุจุฏุงูŠุฉ ุฑุฆูŠุณูŠ. ุงู„ู…ุถูŠ ู‚ุฏู…ุง ูˆุจู†ุงุก ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ูˆุชุดุบูŠู„ู‡
ุนู„ูŠู‡ุŒ ูˆู„ูƒู† ุงุทู„ุจ ุงู„ู…ุณุงุนุฏุฉ ู…ู† ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุจุงู„ุทุฑูŠู‚ุฉ ุงู„ุชุงู„ูŠุฉุŒ

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

ุณูŠุทู„ุจ ู‡ุฐุง ู…ู† Waf ุชุดุบูŠู„ ู…ู„ู ุงู„ุตูุฑ/ู…ุงูŠ ููŠุฑุณุช ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ูˆุชู…ุฑูŠุฑ ูˆุณูŠุทุฉ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ
--PrintHelp ุฅู„ู‰ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ. ุนู„ุงู…ุงุช ุงู„ุงู‚ุชุจุงุณ ู…ุทู„ูˆุจุฉ ู„ูุฑุฒ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฐูŠ ูŠุญุตู„ ุนู„ูŠู‡
ุฏุนูˆู‰. ุณูˆู ูŠุฑู‰ ู…ุญู„ู„ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ุงู„ุขู† --PrintHelp ุงู„ุญุฌุฉ ูˆุงู„ุฑุฏ ุนู„ูŠู‡ุงุŒ

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.413 ุซุงู†ูŠุฉ)
TcpL4Protocol:TcpStateMachine()
CommandLine:HandleArgument(): ุงุณู… ูˆุณูŠุทุฉ ุงู„ุชุนุงู…ู„ = ู‚ูŠู…ุฉ PrintHelp =
--PrintHelp: ุงุทุจุน ุฑุณุงู„ุฉ ุงู„ู…ุณุงุนุฏุฉ ู‡ุฐู‡.
--PrintGroups: ุทุจุงุนุฉ ู‚ุงุฆู…ุฉ ุงู„ู…ุฌู…ูˆุนุงุช.
--PrintTypeIds: ุทุจุงุนุฉ ูƒุงูุฉ ู…ุนุฑูุงุช ุงู„ู†ูˆุน.
--PrintGroup=[group]: ุทุจุงุนุฉ ูƒุงูุฉ ู…ุนุฑูุงุช ุงู„ู…ุฌู…ูˆุนุฉ.
--PrintAttributes=[typeid]: ุทุจุงุนุฉ ูƒุงูุฉ ุณู…ุงุช typeid.
--PrintGlobals: ุทุจุงุนุฉ ู‚ุงุฆู…ุฉ ุงู„ุนุงู„ู…ูŠุงุช.

ุฏุนูˆู†ุง ู†ุฑูƒุฒ ุนู„ู‰ --ุณู…ุงุช ุงู„ุทุจุงุนุฉ ุฎูŠุงุฑ. ู„ู‚ุฏ ุฃุดุฑู†ุง ุจุงู„ูุนู„ ุฅู„ู‰ NS-3 ุงู„ุณู…ุฉ
ุงู„ู†ุธุงู… ุฃุซู†ุงุก ุงู„ู…ุดูŠ ู…ู† ุฎู„ุงู„ first.cc ุงู„ู†ุตูŠ. ู†ุธุฑู†ุง ุฅู„ู‰ ุงู„ุณุทูˆุฑ ุงู„ุชุงู„ูŠุฉ ู…ู†
ุงู„ุฑู…ุฒุŒ

PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate"ุŒ StringValue ("5 ู…ูŠุฌุง ุจุช ููŠ ุงู„ุซุงู†ูŠุฉ"))ุ›
pointToPoint.SetChannelAttribute ("Delay"ุŒ StringValue ("2ms"))ุ›

ูˆุฐูƒุฑ ุฐู„ูƒ ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ูƒุงู† ููŠ ุงู„ูˆุงู‚ุน ุงู„ุณู…ุฉ ู„ PointToPointNetDevice. ุฏุนูˆู†ุง
ุงุณุชุฎุฏู… ู…ุญู„ู„ ูˆุณูŠุทุฉ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ู„ุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ ุงู„ุณู…ุงุช ู„
PointToPointNetDevice. ุชู‚ูˆู„ ู‚ุงุฆู…ุฉ ุงู„ู…ุณุงุนุฏุฉ ุฃู†ู‡ ูŠุฌุจ ุนู„ูŠู†ุง ุชู‚ุฏูŠู… ู…ู„ู ุงู„ู†ูˆุน. ู‡ุฐุง
ูŠุชูˆุงูู‚ ู…ุน ุงุณู… ุงู„ูุฆุฉ ุงู„ุชูŠ ูŠู†ุชู…ูŠ ุฅู„ูŠู‡ุง ุงู„ุณู…ุงุช ูŠู†ุชู…ูŠ ู„. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ
ุณูŠูƒูˆู† ุฐู„ูƒ ns3::PointToPointNetDevice. ุฏุนู†ุง ู†ู…ุถูŠ ู‚ุฏู…ุง ูˆู†ูƒุชุจุŒ

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

ุณูŠู‚ูˆู… ุงู„ู†ุธุงู… ุจุทุจุงุนุฉ ูƒุงูุฉ ุงู„ุณู…ุงุช ู…ู† ู‡ุฐุง ุงู„ู†ูˆุน ู…ู† ุงู„ุฃุฌู‡ุฒุฉ ุงู„ุตุงููŠุฉ. ุจูŠู† ุงู„
ุงู„ุณู…ุงุช ุณุชุฑู‰ ุงู„ู…ุฏุฑุฌุฉ ู‡ูŠุŒ

--ns3::PointToPointNetDevice::DataRate=[32768bps]:
ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ุงู„ุงูุชุฑุงุถูŠ ู„ู„ุงุฑุชุจุงุทุงุช ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ

ู‡ุฐู‡ ู‡ูŠ ุงู„ู‚ูŠู…ุฉ ุงู„ุงูุชุฑุงุถูŠุฉ ุงู„ุชูŠ ุณูŠุชู… ุงุณุชุฎุฏุงู…ู‡ุง ุนู†ุฏู…ุง PointToPointNetDevice ุชู… ุฅู†ุดุงุคู‡ ููŠ
ู†ุธุงู…. ู„ู‚ุฏ ุชุฌุงูˆุฒู†ุง ู‡ุฐุง ุงู„ุงูุชุฑุงุถูŠ ู…ุน ุงู„ุณู…ุฉ ูˆุถุน ููŠ PointToPointHelper
ููˆู‚. ุฏุนูˆู†ุง ู†ุณุชุฎุฏู… ุงู„ู‚ูŠู… ุงู„ุงูุชุฑุงุถูŠุฉ ู„ู„ุฃุฌู‡ุฒุฉ ูˆุงู„ู‚ู†ูˆุงุช ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
ุญุฐู SetDeviceAttribute ุฏุนูˆุฉ ูˆ SetChannelAttribute ู…ูƒุงู„ู…ุฉ ู…ู† myfirst.cc
ู„ุฏูŠู†ุง ููŠ ุงู„ุฏู„ูŠู„ ุงู„ุตูุฑ.

ูŠุฌุจ ุฃู† ูŠุนู„ู† ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุงู„ุฎุงุต ุจูƒ ุงู„ุขู† ูู‚ุท ุนู† PointToPointHelper ูˆู„ุง ุชูุนู„ ุฃูŠ ุดูŠุก ุทู‚ู… ุนู…ู„ูŠุงุช
ูƒู…ุง ููŠ ุงู„ู…ุซุงู„ ุงู„ุชุงู„ูŠุŒ



ุนู‚ุฏ NodeContainer
ุงู„ุนู‚ุฏ.ุฅู†ุดุงุก (2);

PointToPointHelper pointToPoint;

ุฃุฌู‡ุฒุฉ NetDeviceContainerุ›
ุงู„ุฃุฌู‡ุฒุฉ = pointToPoint.Install (ุงู„ุนู‚ุฏ)ุ›



ุงู„ู…ุถูŠ ู‚ุฏู…ู‹ุง ูˆุฅู†ุดุงุก ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุงู„ุฌุฏูŠุฏ ุจุงุณุชุฎุฏุงู… Waf (./waff) ูˆุฏุนู†ุง ู†ุนูˆุฏ ูˆู†ู…ูƒู† ุงู„ุจุนุถ
ุงู„ุชุณุฌูŠู„ ู…ู† ุชุทุจูŠู‚ ุฎุงุฏู… ุตุฏู‰ UDP ูˆุชุดุบูŠู„ ุจุงุฏุฆุฉ ุงู„ูˆู‚ุช.

$ ุงู„ุชุตุฏูŠุฑ 'NS_LOG=UdpEchoServerApplication=level_all|prefix_time'

ุฅุฐุง ู‚ู…ุช ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุงู„ุขู† ุงู„ุฅุฎุฑุงุฌ ุงู„ุชุงู„ูŠุŒ

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.405 ุซุงู†ูŠุฉ)
0s UdpEchoServerApplication:UdpEchoServer()
1s UdpEchoServerApplication:StartApplication()
ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
2.25732s ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.1
2.25732s ุญุฒู…ุฉ ุตุฏู‰
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.2
10 ุซุงู†ูŠุฉ UdpEchoServerApplication:StopApplication()
UdpEchoServerApplication:DoDispose()
UdpEchoServerApplication:~UdpEchoServer()

ุชุฐูƒุฑ ุฃู†ู‡ ููŠ ุงู„ู…ุฑุฉ ุงู„ุฃุฎูŠุฑุฉ ุงู„ุชูŠ ู†ุธุฑู†ุง ููŠู‡ุง ุฅู„ู‰ ูˆู‚ุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ุฐูŠ ูƒุงู†ุช ููŠู‡ ุงู„ุญุฒู…ุฉ
ุชู… ุงุณุชู„ุงู…ู‡ุง ุจูˆุงุณุทุฉ ุฎุงุฏู… ุงู„ุตุฏู‰ุŒ ูˆูƒุงู†ุช ููŠ 2.00369 ุซุงู†ูŠุฉ.

2.00369s UdpEchoServerApplication:HandleRead(): ุชู… ุชู„ู‚ูŠ 1024 ุจุงูŠุช ู…ู† 10.1.1.1

ุงู„ุขู† ูŠุชู„ู‚ู‰ ุงู„ุญุฒู…ุฉ ููŠ 2.25732 ุซุงู†ูŠุฉ. ู‡ุฐุง ู„ุฃู†ู†ุง ุฃุณู‚ุทู†ุง ู„ู„ุชูˆ
ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช PointToPointNetDevice ูˆุตูˆู„ุง ุฅู„ู‰ ุงู„ุงูุชุฑุงุถูŠ 32768 ุจุช ููŠ ุงู„ุซุงู†ูŠุฉ ู…ู†
ุฎู…ุณุฉ ู…ูŠุบุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉ.

ู„ูˆ ุฃุฑุฏู†ุง ุฃู† ู†ู‚ุฏู… ุฌุฏูŠุฏุง ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ุจุงุณุชุฎุฏุงู… ุณุทุฑ ุงู„ุฃูˆุงู…ุฑุŒ ูŠู…ูƒู†ู†ุง ุชุณุฑูŠุน ุนู…ู„ูŠุฉ ุงู„ู…ุญุงูƒุงุฉ ู„ุฏูŠู†ุง
ู…ุฑุฉ ุฃุฎุฑู‰. ูˆู†ุญู† ู†ูุนู„ ุฐู„ูƒ ุจุงู„ุทุฑูŠู‚ุฉ ุงู„ุชุงู„ูŠุฉุŒ ูˆูู‚ุง ู„ู„ุตูŠุบุฉ ุงู„ุชูŠ ุชู†ุทูˆูŠ ุนู„ูŠู‡ุง ุงู„ู…ุณุงุนุฏุฉ
ุงู„ุจู†ุฏ:

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

ุณูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุชุนูŠูŠู† ุงู„ู‚ูŠู…ุฉ ุงู„ุงูุชุฑุงุถูŠุฉ ู„ู€ ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ุงู„ุณู…ุฉ ุงู„ุนูˆุฏุฉ ุฅู„ู‰ ุฎู…ุณุฉ ู…ูŠุบุงุจุช ู„ูƒู„
ุซุงู†ูŠุฉ. ู‡ู„ ุชูุงุฌุฃุช ุจุงู„ู†ุชูŠุฌุฉุŸ ูˆุชุจูŠู† ุฃู†ู‡ ู…ู† ุฃุฌู„ ุงู„ุญุตูˆู„ ุนู„ู‰ ุงู„ุฃุตู„
ู…ุฑุฉ ุฃุฎุฑู‰ุŒ ุณูŠุชุนูŠู† ุนู„ูŠู†ุง ุถุจุท ุชุฃุฎูŠุฑ ุณุฑุนุฉ ุงู„ุถูˆุก ู„ู„ู‚ู†ุงุฉ
ุฃูŠุถู‹ุง. ูŠู…ูƒู†ู†ุง ุฃู† ู†ุทู„ุจ ู…ู† ู†ุธุงู… ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ุทุจุงุนุฉ ุงู„ู…ู„ู ุงู„ุณู…ุงุช ู…ู† ุงู„ู‚ู†ุงุฉ
ุชู…ุงู…ู‹ุง ูƒู…ุง ูุนู„ู†ุง ู…ุน ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ:

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

ู†ูƒุชุดู ุชุฃุฎูŠุฑ ุงู„ุณู…ุฉ ูŠุชู… ุถุจุท ุงู„ู‚ู†ุงุฉ ุนู„ู‰ ุงู„ู†ุญูˆ ุงู„ุชุงู„ูŠ:

--ns3::PointToPointChannel::Delay=[0ns]:
ุชุฃุฎูŠุฑ ุงู„ุฅุฑุณุงู„ ุนุจุฑ ุงู„ู‚ู†ุงุฉ

ูŠู…ูƒู†ู†ุง ุจุนุฏ ุฐู„ูƒ ุชุนูŠูŠู† ูƒู„ ู…ู† ู‡ุฐู‡ ุงู„ู‚ูŠู… ุงู„ุงูุชุฑุงุถูŠุฉ ู…ู† ุฎู„ุงู„ ู†ุธุงู… ุณุทุฑ ุงู„ุฃูˆุงู…ุฑุŒ

$ ./waf --run "scratch/myfirst
--ns3::PointToPointNetDevice::DataRate=5 ู…ูŠุฌุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉ
--ns3::PointToPointChannel::Delay=2ms"

ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ู†ุณุชุนูŠุฏ ุงู„ุชูˆู‚ูŠุช ุงู„ุฐูŠ ูƒุงู† ู„ุฏูŠู†ุง ุนู†ุฏู…ุง ู‚ู…ู†ุง ุจุชุนูŠูŠู† ุตุฑุงุญุฉู‹ ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ุชุฃุฎูŠุฑ
ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ:

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.417 ุซุงู†ูŠุฉ)
0s UdpEchoServerApplication:UdpEchoServer()
1s UdpEchoServerApplication:StartApplication()
ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
2.00369s ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.1
2.00369s ุญุฒู…ุฉ ุตุฏู‰
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.2
10 ุซุงู†ูŠุฉ UdpEchoServerApplication:StopApplication()
UdpEchoServerApplication:DoDispose()
UdpEchoServerApplication:~UdpEchoServer()

ู„ุงุญุธ ุฃู† ุงู„ุฎุงุฏู… ูŠุณุชู‚ุจู„ ุงู„ุญุฒู…ุฉ ู…ุฑุฉ ุฃุฎุฑู‰ ููŠ 2.00369 ุซุงู†ูŠุฉ. ู†ุณุชุทูŠุน
ููŠ ุงู„ูˆุงู‚ุน ุชุนูŠูŠู† ุฃูŠ ู…ู† ุงู„ุณู…ุงุช ุงู„ู…ุณุชุฎุฏู…ุฉ ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุจู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ. ุนู„ู‰ ูˆุฌู‡ ุงู„ุฎุตูˆุต ูŠู…ูƒู†ู†ุง
ุชุนูŠูŠู† UdpEchoClient ุงู„ุณู…ุฉ MaxPackets ุฅู„ู‰ ู‚ูŠู…ุฉ ุฃุฎุฑู‰ ุบูŠุฑ ูˆุงุญุฏุฉ.

ูƒูŠู ูŠู…ูƒู†ูƒ ุฃู† ุชูุนู„ ุฐู„ูƒุŸ ุฌุฑุจู‡ุง. ุชุฐูƒุฑ ุฃู†ู‡ ุนู„ูŠูƒ ุงู„ุชุนู„ูŠู‚ ุนู„ู‰ ุงู„ู…ูƒุงู†
ู†ุญู† ู†ุชุฌุงูˆุฒ ุงู„ุงูุชุฑุงุถูŠ ุงู„ุณู…ุฉ ูˆุชุนูŠูŠู† ุตุฑุงุญุฉ MaxPackets ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ. ุซูู… ุฃู†ุช
ูŠุฌุจ ุฅุนุงุฏุฉ ุจู†ุงุก ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ. ุณูŠูƒูˆู† ุนู„ูŠูƒ ุฃูŠุถู‹ุง ุงู„ุนุซูˆุฑ ุนู„ู‰ ุจู†ุงุก ุงู„ุฌู…ู„ุฉ ู„ู„ุฅุนุฏุงุฏ ุงู„ูุนู„ูŠ
ู‚ูŠู…ุฉ ุงู„ุณู…ุฉ ุงู„ุงูุชุฑุงุถูŠุฉ ุงู„ุฌุฏูŠุฏุฉ ุจุงุณุชุฎุฏุงู… ูˆุณูŠู„ุฉ ู…ุณุงุนุฏุฉ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ. ุจู…ุฌุฑุฏ ุญุตูˆู„ูƒ ุนู„ู‰ ู‡ุฐุง
ุงูƒุชุดูุช ุฃู†ูƒ ูŠุฌุจ ุฃู† ุชูƒูˆู† ู‚ุงุฏุฑู‹ุง ุนู„ู‰ ุงู„ุชุญูƒู… ููŠ ุนุฏุฏ ุงู„ุญุฒู… ุงู„ุชูŠ ูŠุชู… ุชูƒุฑุงุฑู‡ุง ู…ู† ุงู„ุฃู…ุฑ
ุฎุท. ู†ุธุฑู‹ุง ู„ุฃู†ู†ุง ุฃุดุฎุงุต ู„ุทูŠููˆู†ุŒ ูุณู†ุฎุจุฑูƒ ุฃู†ู‡ ูŠุฌุจ ุฃู† ูŠู†ุชู‡ูŠ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ุงู„ุฎุงุต ุจูƒ ุจุงู„ุจุญุซ
ุดูŠุก ู…ุซู„ุŒ

$ ./waf --run "scratch/myfirst
--ns3::PointToPointNetDevice::DataRate=5 ู…ูŠุฌุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉ
--ns3::PointToPointChannel::Delay=2ms
--ns3::UdpEchoClient::MaxPackets=2"

ููŠู„ู… Hooking ู…ุนู„ู…ุชูƒ ุงู„ูŠูˆุบุง ุงู„ุฎุงุตุฉ ุงู„ู‚ูŠู…
ูŠู…ูƒู†ูƒ ุฃูŠุถู‹ุง ุฅุถุงูุฉ ุงู„ุฎุทุงูุงุช ุงู„ุฎุงุตุฉ ุจูƒ ุฅู„ู‰ ู†ุธุงู… ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ. ูˆูŠุชู… ุฐู„ูƒ ุจูƒู„ ุจุณุงุทุฉ ุนู† ุทุฑูŠู‚
ูŠุณุชุฎุฏู… ุงู„ ุงุฏูุงู„ูŠูˆ ุทุฑูŠู‚ุฉ ุฅู„ู‰ ู…ุญู„ู„ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ.

ุฏุนูˆู†ุง ู†ุณุชุฎุฏู… ู‡ุฐู‡ ุงู„ู…ูŠุฒุฉ ู„ุชุญุฏูŠุฏ ุนุฏุฏ ุงู„ุญุฒู… ุงู„ุชูŠ ุณูŠุชู… ุตุฏู‰ู‡ุง ุจุดูƒู„ ู…ุฎุชู„ู ุชู…ุงู…ู‹ุง
ุทุฑูŠู‚. ุฏุนูˆู†ุง ู†ุถูŠู ู…ุชุบูŠุฑ ู…ุญู„ูŠ ูŠุณู…ู‰ n ุงู„ุญุฒู… ุฅู„ู‰ ุฑุฆูŠุณูŠ ูˆุธูŠูุฉ. ุณู†ู‚ูˆู… ุจุงู„ุชู‡ูŠุฆุฉ
ุฅู„ู‰ ูˆุงุญุฏ ู„ู…ุทุงุจู‚ุฉ ุณู„ูˆูƒู†ุง ุงู„ุงูุชุฑุงุถูŠ ุงู„ุณุงุจู‚. ู„ู„ุณู…ุงุญ ู„ู…ุญู„ู„ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ุจุฐู„ูƒ
ู„ุชุบูŠูŠุฑ ู‡ุฐู‡ ุงู„ู‚ูŠู…ุฉุŒ ู†ุญุชุงุฌ ุฅู„ู‰ ุฑุจุท ุงู„ู‚ูŠู…ุฉ ุจุงู„ู…ุญู„ู„. ู†ุญู† ู†ูุนู„ ุฐู„ูƒ ุนู† ุทุฑูŠู‚ ุฅุถุงูุฉ ู…ูƒุงู„ู…ุฉ
ุฅู„ู‰ ุงุฏูุงู„ูŠูˆ. ุงู„ู…ุถูŠ ู‚ุฏู…ุง ูˆุชุบูŠูŠุฑ ุงู„ุตูุฑ/myfirst.cc ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู„ู„ุจุฏุก ุจู€
ุงู„ูƒูˆุฏ ุงู„ุชุงู„ูŠ ,

ู…ุงุฏุจุง
main (int argcุŒ char * argv [])
{
uint32_t nPackets = 1;

CommandLine ูƒู…ุฏ ุ›
cmd.AddValue("nPackets"ุŒ "ุนุฏุฏ ุงู„ุญุฒู… ุงู„ู…ุทู„ูˆุจ ุตุฏู‰"ุŒ nPackets)ุ›
cmd ุŒ Parse (argc ุŒ argv) ุ›



ู‚ู… ุจุงู„ุชู…ุฑูŠุฑ ู„ุฃุณูู„ ุฅู„ู‰ ุงู„ู†ู‚ุทุฉ ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุญูŠุซ ู‚ู…ู†ุง ุจุชุนูŠูŠู† MaxPackets ุงู„ุณู…ุฉ ูˆุชุบูŠูŠุฑู‡
ุจุญูŠุซ ูŠุชู… ุถุจุทู‡ ุนู„ู‰ ุงู„ู…ุชุบูŠุฑ n ุงู„ุญุฒู… ุจุฏู„ุง ู…ู† ุงู„ุซุงุจุช 1 ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ุฃุฏู†ุงู‡.

echoClient.SetAttribute ("MaxPackets"ุŒ UintegerValue (nPackets))ุ›

ุงู„ุขู† ุฅุฐุง ู‚ู…ุช ุจุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ูˆุชูˆููŠุฑ --PrintHelp ุญุฌุฉุŒ ูŠุฌุจ ุฃู† ุชุฑู‰ ุงู„ุฌุฏูŠุฏ ุงู„ุฎุงุต ุจูƒ
ุงุณู… ุงู„ู…ุณุชุฎุฏู… ุญุฌุฉ ุงู„ู…ุฏุฑุฌุฉ ููŠ ุดุงุดุฉ ุงู„ู…ุณุงุนุฏุฉ.

ูŠุญุงูˆู„ุŒ

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

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.403 ุซุงู†ูŠุฉ)
--PrintHelp: ุงุทุจุน ุฑุณุงู„ุฉ ุงู„ู…ุณุงุนุฏุฉ ู‡ุฐู‡.
--PrintGroups: ุทุจุงุนุฉ ู‚ุงุฆู…ุฉ ุงู„ู…ุฌู…ูˆุนุงุช.
--PrintTypeIds: ุทุจุงุนุฉ ูƒุงูุฉ ู…ุนุฑูุงุช ุงู„ู†ูˆุน.
--PrintGroup=[group]: ุทุจุงุนุฉ ูƒุงูุฉ ู…ุนุฑูุงุช ุงู„ู…ุฌู…ูˆุนุฉ.
--PrintAttributes=[typeid]: ุทุจุงุนุฉ ูƒุงูุฉ ุณู…ุงุช typeid.
--PrintGlobals: ุทุจุงุนุฉ ู‚ุงุฆู…ุฉ ุงู„ุนุงู„ู…ูŠุงุช.
ุญุฌุฌ ุงู„ู…ุณุชุฎุฏู…:
--nPackets: ุนุฏุฏ ุงู„ุญุฒู… ุงู„ู…ุฑุงุฏ ุตุฏู‰ู‡ุง

ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุชุญุฏูŠุฏ ุนุฏุฏ ุงู„ุญุฒู… ุงู„ู…ุฑุงุฏ ุตุฏู‰ ู„ู‡ุงุŒ ููŠู…ูƒู†ูƒ ุงู„ุขู† ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ ุนู† ุทุฑูŠู‚ ุชุนูŠูŠู†
--nPackets ุญุฌุฉ ููŠ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑุŒ

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

ูŠุฌุจ ุฃู† ุชุฑู‰ ุงู„ุขู†

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.404 ุซุงู†ูŠุฉ)
0s UdpEchoServerApplication:UdpEchoServer()
1s UdpEchoServerApplication:StartApplication()
ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
2.25732s ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.1
2.25732s ุญุฒู…ุฉ ุตุฏู‰
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.2
ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.1.2
3.25732s ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.1
3.25732s ุญุฒู…ุฉ ุตุฏู‰
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.2
10 ุซุงู†ูŠุฉ UdpEchoServerApplication:StopApplication()
UdpEchoServerApplication:DoDispose()
UdpEchoServerApplication:~UdpEchoServer()

ู„ู‚ุฏ ู‚ู…ุช ุงู„ุขู† ุจุชูƒุฑุงุฑ ุญุฒู…ุชูŠู†. ู…ู† ุงู„ุณู‡ู„ ุฌุฏุงุŒ ุฃู„ูŠุณ ูƒุฐู„ูƒุŸ

ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุฃู†ู‡ ุฅุฐุง ูƒู†ุช NS-3 ุงู„ู…ุณุชุฎุฏู…ุŒ ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ู†ุธุงู… ูˆุณูŠุทุฉ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ู„
ุงู„ุณูŠุทุฑุฉ ุนู„ู‰ ุงู„ู‚ูŠู… ุงู„ุนุงู„ู…ูŠุฉ ูˆ ุงู„ุณู…ุงุช. ุฅุฐุง ูƒู†ุช ู…ุคู„ู ู†ู…ูˆุฐุฌูŠุŒ ูŠู…ูƒู†ูƒ ุฅุถุงูุฉ ุฌุฏูŠุฏ
ุงู„ุณู…ุงุช ู„ุฏูŠูƒ ุงู„ุฃุฌุณุงู… ูˆุณุชูƒูˆู† ู…ุชุงุญุฉ ุชู„ู‚ุงุฆูŠู‹ุง ู„ู„ุฅุนุฏุงุฏ ู…ู† ุฎู„ุงู„ูƒ
ุงู„ู…ุณุชุฎุฏู…ูŠู† ู…ู† ุฎู„ุงู„ ู†ุธุงู… ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ. ุฅุฐุง ูƒู†ุช ู…ุคู„ู ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ูŠู…ูƒู†ูƒ ุฅุถุงูุฉ ุฌุฏูŠุฏ
ุงู„ู…ุชุบูŠุฑุงุช ุฅู„ู‰ ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุงู„ุฎุงุตุฉ ุจูƒ ูˆุฑุจุทู‡ุง ุจู†ุธุงู… ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ุฏูˆู† ุนู†ุงุก.

ุจุงุณุชุฎุฏุงู… ู‡ูŠู‡ ุงู„ุจุญุซ ุนู† ุงู„ู…ูู‚ูˆุฏูŠู†
ุจูŠุช ุงู„ู‚ุตูŠุฏ ู…ู† ุงู„ู…ุญุงูƒุงุฉ ู‡ูˆ ุชูˆู„ูŠุฏ ู…ุฎุฑุฌุงุช ู„ู…ุฒูŠุฏ ู…ู† ุงู„ุฏุฑุงุณุฉุŒ ูˆ NS-3
ู†ุธุงู… ุงู„ุชุชุจุน ู‡ูˆ ุงู„ุขู„ูŠุฉ ุงู„ุฃุณุงุณูŠุฉ ู„ุฐู„ูƒ. ู…ู†ุฐ NS-3 ู‡ูˆ ุจุฑู†ุงู…ุฌ C++ุŒ ู‚ูŠุงุณูŠ
ูŠู…ูƒู† ุงุณุชุฎุฏุงู… ู…ุฑุงูู‚ ุชูˆู„ูŠุฏ ุงู„ู…ุฎุฑุฌุงุช ู…ู† ุจุฑุงู…ุฌ C++:

#ูŠุดู…ู„

ุงู†ุช ู…ูŠู† ()
{

std :: cout << "ู‚ูŠู…ุฉ x ู‡ูŠ" << x << std :: endlุ›

}

ูŠู…ูƒู†ูƒ ุฃูŠุถู‹ุง ุงุณุชุฎุฏุงู… ูˆุญุฏุฉ ุงู„ุชุณุฌูŠู„ ู„ุฅุถุงูุฉ ุจู†ูŠุฉ ุตุบูŠุฑุฉ ุฅู„ู‰ ุงู„ุญู„ ุงู„ุฎุงุต ุจูƒ. ู‡ู†ุงูƒ
ู‡ู†ุงูƒ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ู…ุดุงูƒู„ ุงู„ู…ุนุฑูˆูุฉ ุงู„ู†ุงุชุฌุฉ ุนู† ู…ุซู„ ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ ูˆู„ุฐู„ูƒ ู‚ุฏู…ู†ุง
ุงู„ู†ุธุงู… ุงู„ูุฑุนูŠ ุงู„ุนุงู… ู„ุชุชุจุน ุงู„ุฃุญุฏุงุซ ู„ู…ุนุงู„ุฌุฉ ุงู„ู…ุดูƒู„ุงุช ุงู„ุชูŠ ุงุนุชู‚ุฏู†ุง ุฃู†ู‡ุง ู…ู‡ู…ุฉ.

ุงู„ุฃู‡ุฏุงู ุงู„ุฃุณุงุณูŠุฉ ู„ู„ NS-3 ู†ุธุงู… ุงู„ุชุชุจุน ู‡ูˆ:

ยท ุจุงู„ู†ุณุจุฉ ู„ู„ู…ู‡ุงู… ุงู„ุฃุณุงุณูŠุฉุŒ ูŠุฌุจ ุฃู† ูŠุณู…ุญ ู†ุธุงู… ุงู„ุชุชุจุน ู„ู„ู…ุณุชุฎุฏู… ุจุฅู†ุดุงุก ุชุชุจุน ู‚ูŠุงุณูŠ
ู„ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ุงู„ุดุงุฆุนุฉุŒ ูˆู„ุชุฎุตูŠุต ุงู„ูƒุงุฆู†ุงุช ุงู„ุชูŠ ุชู†ุดุฆ ุงู„ุชุชุจุนุ›

ยท ูŠุฌุจ ุฃู† ูŠูƒูˆู† ุงู„ู…ุณุชุฎุฏู…ูˆู† ุงู„ู…ุชูˆุณุทูˆู† ู‚ุงุฏุฑูŠู† ุนู„ู‰ ุชูˆุณูŠุน ู†ุธุงู… ุงู„ุชุชุจุน ู„ุชุนุฏูŠู„ ุชู†ุณูŠู‚ ุงู„ุฅุฎุฑุงุฌ
ุชู… ุฅู†ุดุงุคู‡ุงุŒ ุฃูˆ ู„ุฅุฏุฑุงุฌ ู…ุตุงุฏุฑ ุชุชุจุน ุฌุฏูŠุฏุฉุŒ ุฏูˆู† ุชุนุฏูŠู„ ุฌูˆู‡ุฑ ุงู„ู…ู„ู
ู…ุญุงูƒุงุฉ.

ูŠู…ูƒู† ู„ู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ู…ุชู‚ุฏู…ูŠู† ุชุนุฏูŠู„ ุฌูˆู‡ุฑ ุงู„ู…ุญุงูƒุงุฉ ู„ุฅุถุงูุฉ ู…ุตุงุฏุฑ ูˆู…ุตุงุฑู ุชุชุจุน ุฌุฏูŠุฏุฉ.

ุฅู†ู‘ NS-3 ู†ุธุงู… ุงู„ุชุชุจุน ู…ุจู†ูŠ ุนู„ู‰ ู…ูุงู‡ูŠู… ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ุงู„ู…ุณุชู‚ู„ุฉ ูˆ
ุชุชุจุน ุงู„ุฃุญูˆุงุถุŒ ูˆุขู„ูŠุฉ ู…ูˆุญุฏุฉ ู„ุฑุจุท ุงู„ู…ุตุงุฏุฑ ุจุงู„ุฃุญูˆุงุถ. ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ู‡ูŠ
ุงู„ูƒูŠุงู†ุงุช ุงู„ุชูŠ ูŠู…ูƒู†ู‡ุง ุงู„ุฅุดุงุฑุฉ ุฅู„ู‰ ุงู„ุฃุญุฏุงุซ ุงู„ุชูŠ ุชุญุฏุซ ููŠ ุงู„ู…ุญุงูƒุงุฉ ูˆุชูˆููŠุฑ ุงู„ูˆุตูˆู„ ุฅู„ูŠู‡ุง
ุงู„ุจูŠุงู†ุงุช ุงู„ุฃุณุงุณูŠุฉ ุงู„ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู…. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ูŠู…ูƒู† ุฃู† ูŠุดูŠุฑ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุฅู„ู‰ ูˆู‚ุช ูˆุฌูˆุฏ ุงู„ุญุฒู…ุฉ
ูŠุชู… ุงุณุชู„ุงู…ู‡ุง ุจูˆุงุณุทุฉ ุฌู‡ุงุฒ ุดุจูƒุฉ ูˆุชูˆูุฑ ุงู„ูˆุตูˆู„ ุฅู„ู‰ ู…ุญุชูˆูŠุงุช ุงู„ุญุฒู…ุฉ ู„ู„ุชุชุจุน ุงู„ู…ู‡ุชู…
ุงู„ู…ุตุงุฑู.

ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ู„ูŠุณุช ู…ููŠุฏุฉ ููŠ ุญุฏ ุฐุงุชู‡ุงุŒ ุจู„ ูŠุฌุจ ุฃู† ุชูƒูˆู† "ู…ุชุตู„ุฉ" ุจุฃุฌุฒุงุก ุฃุฎุฑู‰ ู…ู† ุงู„ู…ุตุฏุฑ
ุฑู…ุฒ ูŠูุนู„ ุดูŠุฆู‹ุง ู…ููŠุฏู‹ุง ุจุงู„ูุนู„ ุจุงู„ู…ุนู„ูˆู…ุงุช ุงู„ู…ู‚ุฏู…ุฉ ู…ู† ุงู„ุญูˆุถ. ูŠุชุนู‚ุจ
ุชุนุชุจุฑ ุงู„ู…ุตุงุฑู ู…ุณุชู‡ู„ูƒุฉ ู„ู„ุฃุญุฏุงุซ ูˆุงู„ุจูŠุงู†ุงุช ุงู„ุชูŠ ุชูˆูุฑู‡ุง ู…ุตุงุฏุฑ ุงู„ุชุชุจุน. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ
ูŠู…ูƒู† ู„ู„ู…ุฑุก ุฅู†ุดุงุก ุญูˆุถ ุชุชุจุน ู…ู† ุดุฃู†ู‡ (ุนู†ุฏ ุชูˆุตูŠู„ู‡ ุจู…ุตุฏุฑ ุงู„ุชุชุจุน ู„ู€
ุงู„ู…ุซุงู„ ุงู„ุณุงุจู‚) ู‚ู… ุจุทุจุงุนุฉ ุฃุฌุฒุงุก ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู… ู…ู† ุงู„ุญุฒู…ุฉ ุงู„ู…ุณุชู„ู…ุฉ.

ุงู„ุฃุณุงุณ ุงู„ู…ู†ุทู‚ูŠ ู„ู‡ุฐุง ุงู„ุชู‚ุณูŠู… ุงู„ุตุฑูŠุญ ู‡ูˆ ุงู„ุณู…ุงุญ ู„ู„ู…ุณุชุฎุฏู…ูŠู† ุจุฅุฑูุงู‚ ุฃู†ูˆุงุน ุฌุฏูŠุฏุฉ ู…ู† ุงู„ุฃุญูˆุงุถ
ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ุงู„ู…ูˆุฌูˆุฏุฉุŒ ุฏูˆู† ุงู„ุญุงุฌุฉ ุฅู„ู‰ ุชุญุฑูŠุฑ ูˆุฅุนุงุฏุฉ ุชุฌู…ูŠุน ุฌูˆู‡ุฑ ุงู„ู…ู„ู
ู…ุญุงูƒุงุฉ. ูˆุจุงู„ุชุงู„ูŠุŒ ููŠ ุงู„ู…ุซุงู„ ุฃุนู„ุงู‡ุŒ ูŠู…ูƒู† ู„ู„ู…ุณุชุฎุฏู… ุชุญุฏูŠุฏ ุญูˆุถ ุชุชุจุน ุฌุฏูŠุฏ ููŠู‡
ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ูˆุฅุฑูุงู‚ู‡ ุจู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ู…ูˆุฌูˆุฏ ุงู„ู…ุญุฏุฏ ููŠ ู‚ู„ุจ ุงู„ู…ุญุงูƒุงุฉ ุจูˆุงุณุทุฉ
ุชุญุฑูŠุฑ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู„ู„ู…ุณุชุฎุฏู… ูู‚ุท.

ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠุŒ ุณู†ุชุนุฑู ุนู„ู‰ ุจุนุถ ุงู„ู…ุตุงุฏุฑ ูˆุงู„ู…ุตุงุฑู ุงู„ู…ุญุฏุฏุฉ ู…ุณุจู‚ู‹ุง ูˆู†ูˆุถุญ ูƒูŠููŠุฉ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ
ูˆู‚ุฏ ูŠุชู… ุชุฎุตูŠุตู‡ุง ุจุฌู‡ุฏ ู‚ู„ูŠู„ ู…ู† ุฌุงู†ุจ ุงู„ู…ุณุชุฎุฏู…. ุฑุงุฌุน ุฏู„ูŠู„ ns-3 ุฃูˆ ุงู„ุฃู‚ุณุงู… ุงู„ุฅุฑุดุงุฏูŠุฉ
ู„ู„ุญุตูˆู„ ุนู„ู‰ ู…ุนู„ูˆู…ุงุช ุญูˆู„ ุชูƒูˆูŠู† ุงู„ุชุชุจุน ุงู„ู…ุชู‚ุฏู… ุจู…ุง ููŠ ุฐู„ูƒ ุชูˆุณูŠุน ุงู„ุชุชุจุน
ู…ุณุงุญุฉ ุงู„ุงุณู… ูˆุฅู†ุดุงุก ู…ุตุงุฏุฑ ุชุชุจุน ุฌุฏูŠุฏุฉ.

ASCII ุงู„ุจุญุซ ุนู† ุงู„ู…ูู‚ูˆุฏูŠู†
NS-3 ูŠูˆูุฑ ูˆุธูŠูุฉ ู…ุณุงุนุฏุฉ ุชุบู„ู ู†ุธุงู… ุงู„ุชุชุจุน ู…ู†ุฎูุถ ุงู„ู…ุณุชูˆู‰ ู„ู…ุณุงุนุฏุชูƒ
ู…ุน ุงู„ุชูุงุตูŠู„ ุงู„ู…ุชุนู„ู‚ุฉ ุจุชูƒูˆูŠู† ุจุนุถ ุขุซุงุฑ ุงู„ุญุฒู… ุงู„ุชูŠ ูŠู…ูƒู† ูู‡ู…ู‡ุง ุจุณู‡ูˆู„ุฉ. ุงุฐุง ุฃู†ุช
ุชู…ูƒูŠู† ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉุŒ ุณูˆู ุชุฑู‰ ุงู„ุฅุฎุฑุงุฌ ููŠ ู…ู„ูุงุช ASCII --- ูˆู…ู† ู‡ู†ุง ุงู„ุงุณู…. ู„
ุฃูˆู„ุฆูƒ ุงู„ุฐูŠู† ูŠุนุฑููˆู† NS-2 ุงู„ุฅุฎุฑุงุฌุŒ ูˆู‡ุฐุง ุงู„ู†ูˆุน ู…ู† ุงู„ุชุชุจุน ู…ุดุงุจู‡ ู„ู€ ุฎุงุฑุฌ.tr ูˆู„ุฏุช
ู…ู† ุฎู„ุงู„ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ู†ุตูˆุต.

ุฏุนู†ุง ู†ู†ุชู‚ู„ ู…ุจุงุดุฑุฉ ูˆู†ุถูŠู ุจุนุถ ู…ุฎุฑุฌุงุช ุชุชุจุน ASCII ุฅู„ู‰ ู…ู„ูู†ุง ุงู„ุตูุฑ/myfirst.cc
ุงู„ู†ุตูŠ. ู…ุจุงุดุฑุฉ ู‚ุจู„ ุงู„ู…ูƒุงู„ู…ุฉ ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ ()ุŒ ุฃุถู ุฃุณุทุฑ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุชุงู„ูŠุฉ:

asciiTraceHelper ascii;
pointToPoint.EnableAsciiAll (ascii.CreateFileStream ("myfirst.tr")) ุ›

ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุขุฎุฑูŠู† NS-3 ุงู„ุชุนุงุจูŠุฑุŒ ูŠุณุชุฎุฏู… ู‡ุฐุง ุงู„ุฑู…ุฒ ูƒุงุฆู†ู‹ุง ู…ุณุงุนุฏู‹ุง ู„ู„ู…ุณุงุนุฏุฉ ููŠ ุฅู†ุดุงุก ASCII
ุขุซุงุฑ. ูŠุญุชูˆูŠ ุงู„ุณุทุฑ ุงู„ุซุงู†ูŠ ุนู„ู‰ ุงุณุชุฏุนุงุกุงุช ุฃุณู„ูˆุจ ู…ุชุฏุงุฎู„ุฉ. ุทุฑูŠู‚ุฉ "ุงู„ุฏุงุฎู„"
ูƒุฑูŠุชูŠููŠู„ูŠุณุชุฑูŠู… () ูŠุณุชุฎุฏู… ู„ุบุฉ ูƒุงุฆู† ุบูŠุฑ ู…ุณู…ู‰ ู„ุฅู†ุดุงุก ูƒุงุฆู† ุฏูู‚ ู…ู„ู ุนู„ู‰
ุงู„ู…ูƒุฏุณ (ุจุฏูˆู† ุงุณู… ูƒุงุฆู†) ูˆุชู…ุฑูŠุฑู‡ ุฅู„ู‰ ุงู„ุทุฑูŠู‚ุฉ ุงู„ู…ุทู„ูˆุจุฉ. ุณูˆู ู†ุฐู‡ุจ ุฅู„ู‰ ู‡ุฐุง
ุงู„ู…ุฒูŠุฏ ููŠ ุงู„ู…ุณุชู‚ุจู„ุŒ ูˆู„ูƒู† ูƒู„ ู…ุง ุนู„ูŠูƒ ู…ุนุฑูุชู‡ ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ู‡ูˆ ุฃู†ูƒ ุชู‚ูˆู… ุจุฅู†ุดุงุก ู…ู„ู
ูƒุงุฆู† ูŠู…ุซู„ ู…ู„ูู‹ุง ูŠุณู…ู‰ "myfirst.tr" ูˆูŠู…ุฑุฑู‡ ุฅู„ูŠู‡ NS-3. ุงู†ุช ุชู‚ูˆู„
NS-3 ู„ู„ุชุนุงู…ู„ ู…ุน ู…ุดูƒู„ุงุช ุนู…ุฑ ุงู„ูƒุงุฆู† ุงู„ุฐูŠ ุชู… ุฅู†ุดุงุคู‡ ูˆุฃูŠุถู‹ุง ู„ู„ุชุนุงู…ู„ ู…ุน ุงู„ู…ุดูƒู„ุงุช
ู†ุงุชุฌ ุนู† ู‚ูŠูˆุฏ ุบูŠุฑ ู…ุนุฑูˆูุฉ (ู…ุชุนู…ุฏุฉ) ู„ูƒุงุฆู†ุงุช C++ ofstream ุงู„ู…ุชุนู„ู‚ุฉ ุจุงู„ู†ุณุฎ
ุงู„ุตุงู†ุนูŠู†.

ุงู„ู…ูƒุงู„ู…ุฉ ุงู„ุฎุงุฑุฌูŠุฉ ุฅู„ู‰ ุชู…ูƒูŠู† AsciiAll()ุŒ ูŠุฎุจุฑ ุงู„ู…ุณุงุนุฏ ุฃู†ูƒ ุชุฑูŠุฏ ุชู…ูƒูŠู† ASCII
ุงู„ุชุชุจุน ุนู„ู‰ ุฌู…ูŠุน ุงู„ุฃุฌู‡ุฒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ููŠ ุงู„ู…ุญุงูƒุงุฉ ุงู„ุฎุงุตุฉ ุจูƒุ› ูˆุชุฑูŠุฏ (ุงู„ู…ู‚ุฏู…ุฉ)
ุชุชุจุน ุงู„ู…ุตุงุฑู ู„ูƒุชุงุจุฉ ู…ุนู„ูˆู…ุงุช ุญูˆู„ ุญุฑูƒุฉ ุงู„ุญุฒู…ุฉ ุจุชู†ุณูŠู‚ ASCII.

ู„ู…ู† ู‡ู… ุนู„ู‰ ุฏุฑุงูŠุฉ NS-2ุŒ ูุฅู† ุงู„ุฃุญุฏุงุซ ุงู„ุชูŠ ุชู… ุชุชุจุนู‡ุง ุชุนุงุฏู„ ู†ู‚ุงุท ุงู„ุชุชุจุน ุงู„ุดุงุฆุนุฉ
ุงู„ุชูŠ ุชุณุฌู„ ุงู„ุฃุญุฏุงุซ "+" ูˆ"-" ูˆ"d" ูˆ"r".

ูŠู…ูƒู†ูƒ ุงู„ุขู† ุฅู†ุดุงุก ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ูˆุชุดุบูŠู„ู‡ ู…ู† ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ:

$ ./waf --ุชุดุบูŠู„ ุงู„ุตูุฑ/myfirst

ูƒู…ุง ุฑุฃูŠุช ุนุฏุฉ ู…ุฑุงุช ู…ู† ู‚ุจู„ุŒ ุณูˆู ุชุฑู‰ ุจุนุถ ุงู„ุฑุณุงุฆู„ ู…ู† ูˆุงู ูˆุจุนุฏ ุฐู„ูƒ
"ุชู… ุงู„ุงู†ุชู‡ุงุก ู…ู† ุงู„ุจู†ุงุก ุจู†ุฌุงุญ" ู…ุน ุนุฏุฏ ู…ู† ุงู„ุฑุณุงุฆู„ ู…ู† ุงู„ุจุฑู†ุงู…ุฌ ู‚ูŠุฏ ุงู„ุชุดุบูŠู„.

ุนู†ุฏ ุชุดุบูŠู„ู‡ุŒ ุณูŠูƒูˆู† ุงู„ุจุฑู†ุงู…ุฌ ู‚ุฏ ุฃู†ุดุฃ ู…ู„ูู‹ุง ุจุงุณู… myfirst.tr. ุจุณุจุจ ุงู„ุทุฑูŠู‚
ุฅุฐุง ูƒุงู† Waf ูŠุนู…ู„ุŒ ูู„ู† ูŠุชู… ุฅู†ุดุงุก ุงู„ู…ู„ู ููŠ ุงู„ุฏู„ูŠู„ ุงู„ู…ุญู„ูŠุŒ ุจู„ ูŠุชู… ุฅู†ุดุงุคู‡ ููŠ ู…ู„ู
ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ู„ู„ู…ุณุชูˆุฏุน ุจุดูƒู„ ุงูุชุฑุงุถูŠ. ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุงู„ุชุญูƒู… ููŠ ู…ูƒุงู† ุงู„ุขุซุงุฑ
ูŠุชู… ุญูุธู‡ุง ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… --cwd ุฎูŠุงุฑ Waf ู„ุชุญุฏูŠุฏ ุฐู„ูƒ. ู†ุญู† ู„ู… ู†ูุนู„ ุฐู„ูƒุŒ ูˆุจุงู„ุชุงู„ูŠ
ู†ุญุชุงุฌ ุฅู„ู‰ ุงู„ุชุบูŠูŠุฑ ุฅู„ู‰ ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ููŠ ุงู„ุฑูŠุจูˆ ุงู„ุฎุงุต ุจู†ุง ูˆุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ ASCII
ู…ู„ู ุงู„ุชุชุจุน myfirst.tr ููŠ ุงู„ู…ุญุฑุฑ ุงู„ู…ูุถู„ ู„ุฏูŠูƒ.

ุชูˆุฒูŠุน ุฃุณูƒูŠ ุขุซุงุฑ
ู‡ู†ุงูƒ ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ู…ุนู„ูˆู…ุงุช ู‡ู†ุงูƒ ููŠ ุดูƒู„ ูƒุซูŠู ุฌุฏู‹ุงุŒ ูˆู„ูƒู† ุฃูˆู„ ุดูŠุก ูŠุฌุจ ู…ู„ุงุญุธุชู‡
ู‡ูˆ ุฃู† ู‡ู†ุงูƒ ุนุฏุฏุง ู…ู† ุงู„ุฎุทูˆุท ุงู„ู…ู…ูŠุฒุฉ ููŠ ู‡ุฐุง ุงู„ู…ู„ู. ู‚ุฏ ูŠูƒูˆู† ู…ู† ุงู„ุตุนุจ ุฃู† ู†ุฑู‰
ู‡ุฐุง ูˆุงุถุญ ุฅู„ุง ุฅุฐุง ู‚ู…ุช ุจุชูˆุณูŠุน ู†ุงูุฐุชูƒ ุจุดูƒู„ ูƒุจูŠุฑ.

ูƒู„ ุณุทุฑ ููŠ ุงู„ู…ู„ู ูŠุชูˆุงูู‚ ู…ุน ุชุชุจุน ุญุฏุซ. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ู†ุญู† ู†ุชุชุจุน ุงู„ุฃุญุฏุงุซ
ู‡ูŠู‡ ู†ู‚ู„ ุทุงุจูˆุฑ ู…ูˆุฌูˆุฏุฉ ููŠ ูƒู„ ุฌู‡ุงุฒ ุดุจูƒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ููŠ ุงู„ู…ุญุงูƒุงุฉ. ุงู„
ู‚ุงุฆู…ุฉ ุงู†ุชุธุงุฑ ุงู„ุฅุฑุณุงู„ ู‡ูŠ ู‚ุงุฆู…ุฉ ุงู†ุชุธุงุฑ ูŠุชู… ู…ู† ุฎู„ุงู„ู‡ุง ุชูˆุฌูŠู‡ ูƒู„ ุญุฒู…ุฉ ุฅู„ู‰ ู‚ู†ุงุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
ูŠุฌุจ ุฃู† ุชู…ุฑ. ู„ุงุญุธ ุฃู† ูƒู„ ุณุทุฑ ููŠ ู…ู„ู ุงู„ุชุชุจุน ูŠุจุฏุฃ ุจุญุฑู ูˆุญูŠุฏ (ูŠุญุชูˆูŠ ุนู„ู‰
ุงู„ูุถุงุก ุจุนุฏู‡). ุณูŠูƒูˆู† ู„ู‡ุฐู‡ ุงู„ุดุฎุตูŠุฉ ุงู„ู…ุนู†ู‰ ุงู„ุชุงู„ูŠ:

ยท +: ุญุฏุซุช ุนู…ู„ูŠุฉ ุฅุฏุฑุงุฌ ููŠ ู‚ุงุฆู…ุฉ ุงู†ุชุธุงุฑ ุงู„ุฌู‡ุงุฒุ›

ยท -: ุญุฏุซุช ุนู…ู„ูŠุฉ ุฅู„ุบุงุก ุงู„ุงู†ุชุธุงุฑ ููŠ ู‚ุงุฆู…ุฉ ุงู†ุชุธุงุฑ ุงู„ุฌู‡ุงุฒุ›

ยท d: ุชู… ุฅุณู‚ุงุท ุงู„ุญุฒู…ุฉุŒ ุนุงุฏุฉู‹ ุจุณุจุจ ุงู…ุชู„ุงุก ู‚ุงุฆู…ุฉ ุงู„ุงู†ุชุธุงุฑุ›

ยท r: ุชู… ุงุณุชู„ุงู… ุญุฒู…ุฉ ุจูˆุงุณุทุฉ ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ.

ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุฃูƒุซุฑ ุชูุตูŠู„ุง ุนู„ู‰ ุงู„ุณุทุฑ ุงู„ุฃูˆู„ ููŠ ู…ู„ู ุงู„ุชุชุจุน. ุณูˆู ุฃูƒุณุฑู‡ุง
ุฅู„ู‰ ุฃู‚ุณุงู… (ุจู…ุณุงูุฉ ุจุงุฏุฆุฉ ู„ู„ุชูˆุถูŠุญ) ู…ุน ุฑู‚ู… ู…ุฑุฌุนูŠ ุนู„ู‰ ุงู„ุฌุงู†ุจ ุงู„ุฃูŠุณุฑ:

+
2
/NodeList/0/DeviceList/0/$ns3::PointToPointNetDevice/TxQueue/Enqueue
ns3::PppHeader (
ุจุฑูˆุชูˆูƒูˆู„ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ: IP (0x0021))
ns3::Ipv4Header (
tos 0x0 ttl 64 ู…ุนุฑู 0 ุจุฑูˆุชูˆูƒูˆู„ 17 ุฅุฒุงุญุฉ 0 ุฅุดุงุฑุฉ [ู„ุง ุดูŠุก]
ุงู„ุทูˆู„: 1052 10.1.1.1 > 10.1.1.2)
ns3::UdpHeader (
ุงู„ุทูˆู„: 1032 49153 > 9)
ุงู„ุญู…ูˆู„ุฉ (ุงู„ุญุฌู… = 1024)

ุงู„ู‚ุณู… ุงู„ุฃูˆู„ ู…ู† ุญุฏุซ ุงู„ุชุชุจุน ุงู„ู…ูˆุณุน ู‡ุฐุง (ุงู„ุฑู‚ู… ุงู„ู…ุฑุฌุนูŠ 0) ู‡ูˆ ุงู„ุนู…ู„ูŠุฉ. ู†ุญู†
ู„ุฏูŠูƒ + ุญุฑูุŒ ู„ุฐู„ูƒ ู‡ุฐุง ูŠุชูˆุงูู‚ ู…ุน ุฅุฏุฑุงุฌ ุจู‚ุงุฆู…ุฉ ุงู„ุงู†ุชุธุงุฑ ุงู„ุนู…ู„ูŠุฉ ุนู„ู‰ ู‚ุงุฆู…ุฉ ุงู†ุชุธุงุฑ ุงู„ุฅุฑุณุงู„.
ุงู„ู‚ุณู… ุงู„ุซุงู†ูŠ (ุงู„ู…ุฑุฌุน 1) ู‡ูˆ ูˆู‚ุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ู…ุนุจุฑ ุนู†ู‡ ุจุงู„ุซูˆุงู†ูŠ. ูŠู…ูƒู†ูƒ
ุฃุฐูƒุฑ ุฃู†ู†ุง ุทู„ุจู†ุง ู…ู† UdpEchoClientApplication ู„ุจุฏุก ุฅุฑุณุงู„ ุงู„ุญุฒู… ููŠ ุซุงู†ูŠุชูŠู†.
ูˆู‡ู†ุง ู†ุฑู‰ ุชุฃูƒูŠุฏู‹ุง ุนู„ู‰ ุฃู† ู‡ุฐุง ูŠุญุฏุซ ุจุงู„ูุนู„.

ูŠุฎุจุฑู†ุง ุงู„ู‚ุณู… ุงู„ุชุงู„ูŠ ู…ู† ู…ุซุงู„ ุงู„ุชุชุจุน (ุงู„ู…ุฑุฌุน 2) ุนู† ู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ุฐูŠ ู†ุดุฃ
ู‡ุฐุง ุงู„ุญุฏุซ (ุงู„ู…ุนุจุฑ ุนู†ู‡ ููŠ ู…ุณุงุญุฉ ุงุณู… ุงู„ุชุชุจุน). ูŠู…ูƒู†ูƒ ุงู„ุชููƒูŠุฑ ููŠ ู…ุณุงุญุฉ ุงุณู… ุงู„ุชุชุจุน
ุฅู„ู‰ ุญุฏ ู…ุง ู…ุซู„ู…ุง ุชูุนู„ ู…ุน ู…ุณุงุญุฉ ุงุณู… ู†ุธุงู… ุงู„ู…ู„ูุงุช. ุฌุฐุฑ ู…ุณุงุญุฉ ุงู„ุงุณู… ู‡ูˆ
NodeList. ูˆู‡ุฐุง ูŠุชูˆุงูู‚ ู…ุน ุญุงูˆูŠุฉ ุชุชู… ุฅุฏุงุฑุชู‡ุง ููŠ NS-3 ุงู„ูƒูˆุฏ ุงู„ุฃุณุงุณูŠ ุงู„ุฐูŠ ูŠุญุชูˆูŠ ุนู„ู‰ ูƒุงูุฉ
ู…ู† ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ. ุชู…ุงู…ู‹ุง ูƒู…ุง ู‚ุฏ ูŠุญุชูˆูŠ ู†ุธุงู… ุงู„ู…ู„ูุงุช ุนู„ู‰ ุฃุฏู„ุฉ
ุชุญุช ุงู„ุฌุฐุฑุŒ ู‚ุฏ ูŠูƒูˆู† ู„ุฏูŠู†ุง ุฃุฑู‚ุงู… ุงู„ุนู‚ุฏ ููŠ NodeList. ุงู„ุณู„ุณู„ุฉ /NodeList/0
ู„ุฐู„ูƒ ูŠุดูŠุฑ ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุตูุฑูŠุฉ ููŠ NodeList ูˆุงู„ุชูŠ ู†ููƒุฑ ุจู‡ุง ุนุงุฏุฉู‹ ุนู„ู‰ ุฃู†ู‡ุง "node
0". ุชูˆุฌุฏ ููŠ ูƒู„ ุนู‚ุฏุฉ ู‚ุงุฆู…ุฉ ุจุงู„ุฃุฌู‡ุฒุฉ ุงู„ุชูŠ ุชู… ุชุซุจูŠุชู‡ุง. ุชุธู‡ุฑ ู‡ุฐู‡ ุงู„ู‚ุงุฆู…ุฉ
ุงู„ุชุงู„ูŠ ููŠ ู…ุณุงุญุฉ ุงู„ุงุณู…. ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุฃู† ุญุฏุซ ุงู„ุชุชุจุน ู‡ุฐุง ูŠุฃุชูŠ ู…ู† ู‚ุงุฆู…ุฉ ุงู„ุฃุฌู‡ุฒุฉ/0 ูˆู‡ูˆ
ุงู„ุฌู‡ุงุฒ ุงู„ุตูุฑูŠ ุงู„ู…ุซุจุช ููŠ ุงู„ุนู‚ุฏุฉ.

ุงู„ุณู„ุณู„ุฉ ุงู„ุชุงู„ูŠุฉุŒ $ns3::PointToPointNetDevice ูŠุฎุจุฑูƒ ุจู†ูˆุน ุงู„ุฌู‡ุงุฒ ุงู„ู…ูˆุฌูˆุฏ ููŠ
ุงู„ู…ูˆุถุน ุงู„ุตูุฑูŠ ู„ู‚ุงุฆู…ุฉ ุงู„ุฃุฌู‡ุฒุฉ ู„ู„ุนู‚ุฏุฉ ุตูุฑ. ุฃุฐูƒุฑ ุฃู† ุงู„ุนู…ู„ูŠุฉ + ูˆุฌุฏุช ููŠ
ุงู„ู…ุฑุฌุน 00 ูŠุนู†ูŠ ุญุฏูˆุซ ุนู…ู„ูŠุฉ ู‚ุงุฆู…ุฉ ุงู†ุชุธุงุฑ ููŠ ู‚ุงุฆู…ุฉ ุงู†ุชุธุงุฑ ุงู„ุฅุฑุณุงู„ ุงู„ุฎุงุตุฉ ุจุงู„ุฌู‡ุงุฒ.
ูˆูŠู†ุนูƒุณ ู‡ุฐุง ููŠ ุงู„ุฃุฌุฒุงุก ุงู„ุฃุฎูŠุฑุฉ ู…ู† "ู…ุณุงุฑ ุงู„ุชุชุจุน" ูˆู‡ูŠ TxQueue/Enqueue.

ูŠุฌุจ ุฃู† ุชูƒูˆู† ุงู„ุฃู‚ุณุงู… ุงู„ู…ุชุจู‚ูŠุฉ ููŠ ุงู„ุชุชุจุน ุจุฏูŠู‡ูŠุฉ ุฅู„ู‰ ุญุฏ ู…ุง. ูˆุชุดูŠุฑ ุงู„ู…ุฑุงุฌุน 3-4
ุฃู† ุงู„ุญุฒู…ุฉ ู…ุบู„ูุฉ ููŠ ุจุฑูˆุชูˆูƒูˆู„ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ. ูˆุงู„ู…ุฑุงุฌุน 5-7 ุชุฏู„ ุนู„ู‰ ุฐู„ูƒ
ุชุญุชูˆูŠ ุงู„ุญุฒู…ุฉ ุนู„ู‰ ุฑุฃุณ ุฅุตุฏุงุฑ IP ุงู„ุฑุงุจุน ูˆู‚ุฏ ู†ุดุฃุช ู…ู† ุนู†ูˆุงู† IP 10.1.1.1 ูˆ
ู…ุฎุตุต ู„ู€ 10.1.1.2. ุชูˆุถุญ ุงู„ู…ุฑุงุฌุน 8-9 ุฃู† ู‡ุฐู‡ ุงู„ุญุฒู…ุฉ ุชุญุชูˆูŠ ุนู„ู‰ ุฑุฃุณ UDP ูˆุŒ
ูˆุฃุฎูŠุฑู‹ุงุŒ ูŠูˆุถุญ ุงู„ู…ุฑุฌุน 10 ุฃู† ุงู„ุญู…ูˆู„ุฉ ู‡ูŠ 1024 ุจุงูŠุช ุงู„ู…ุชูˆู‚ุนุฉ.

ูŠูุธู‡ุฑ ุงู„ุณุทุฑ ุงู„ุชุงู„ูŠ ููŠ ู…ู„ู ุงู„ุชุชุจุน ู†ูุณ ุงู„ุญุฒู…ุฉ ุงู„ุชูŠ ุชู… ูุตู„ู‡ุง ู…ู† ู‚ุงุฆู…ุฉ ุงู„ุฅุฑุณุงู„
ู‚ุงุฆู…ุฉ ุงู„ุงู†ุชุธุงุฑ ุนู„ู‰ ู†ูุณ ุงู„ุนู‚ุฏุฉ.

ูŠูุธู‡ุฑ ุงู„ุณุทุฑ ุงู„ุซุงู„ุซ ููŠ ู…ู„ู ุงู„ุชุชุจุน ุงู„ุญุฒู…ุฉ ุงู„ุชูŠ ูŠุชู„ู‚ุงู‡ุง ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ ุนู„ู‰
ุงู„ุนู‚ุฏุฉ ู…ุน ุฎุงุฏู… ุงู„ุตุฏู‰. ู„ู‚ุฏ ู‚ู…ุช ุจุฅุนุงุฏุฉ ุฅู†ุชุงุฌ ู‡ุฐุง ุงู„ุญุฏุซ ุฃุฏู†ุงู‡.

r
2.25732
/NodeList/1/DeviceList/0/$ns3::PointToPointNetDevice/MacRx
ns3::Ipv4Header (
tos 0x0 ttl 64 ู…ุนุฑู 0 ุจุฑูˆุชูˆูƒูˆู„ 17 ุฅุฒุงุญุฉ 0 ุฅุดุงุฑุฉ [ู„ุง ุดูŠุก]
ุงู„ุทูˆู„: 1052 10.1.1.1 > 10.1.1.2)
ns3::UdpHeader (
ุงู„ุทูˆู„: 1032 49153 > 9)
ุงู„ุญู…ูˆู„ุฉ (ุงู„ุญุฌู… = 1024)

ู„ุงุญุธ ุฃู† ุนู…ู„ูŠุฉ ุงู„ุชุชุจุน ุชุชู… ุงู„ุขู† r ูˆุฒุงุฏ ุฒู…ู† ุงู„ู…ุญุงูƒุงุฉ ุฅู„ู‰ 2.25732
ุซูˆุงู†ูŠ. ุฅุฐุง ูƒู†ุช ุชุชุจุน ุงู„ุฎุทูˆุงุช ุงู„ุชุนู„ูŠู…ูŠุฉ ุนู† ูƒุซุจุŒ ูู‡ุฐุง ูŠุนู†ูŠ ุฃู†ูƒ ู‚ู…ุช ุจุฐู„ูƒ
ุบุงุฏุฑ ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ู…ู† ุฃุฌู‡ุฒุฉ ุงู„ู†ุช ูˆุงู„ู‚ู†ุงุฉ ุชุฃุฎูŠุฑ ู„ุชุนูŠูŠู†ู‡ุง ุนู„ู‰ ู‚ูŠู…ู‡ุง ุงู„ุงูุชุฑุงุถูŠุฉ.
ูŠุฌุจ ุฃู† ุชูƒูˆู† ู‡ุฐู‡ ุงู„ู…ุฑุฉ ู…ุฃู„ูˆูุฉ ูƒู…ุง ุฑุฃูŠุชู‡ุง ู…ู† ู‚ุจู„ ููŠ ุงู„ู‚ุณู… ุงู„ุณุงุจู‚.

ุชู… ุชุบูŠูŠุฑ ุฅุฏุฎุงู„ ู…ุณุงุญุฉ ุงุณู… ู…ุตุฏุฑ ุงู„ุชุชุจุน (ุงู„ู…ุฑุฌุน 02) ู„ูŠุนูƒุณ ู‡ุฐุง ุงู„ุญุฏุซ
ู‚ุงุฏู…ุฉ ู…ู† ุงู„ุนู‚ุฏุฉ 1 (/NodeList/1) ูˆู…ุตุฏุฑ ุชุชุจุน ุงุณุชู‚ุจุงู„ ุงู„ุญุฒู…ุฉ (/ู…ุงูƒุฑูƒุณ). ู‡ูˆ - ู‡ูŠ
ูŠุฌุจ ุฃู† ูŠูƒูˆู† ู…ู† ุงู„ุณู‡ู„ ุฌุฏู‹ุง ุนู„ูŠูƒ ู…ุชุงุจุนุฉ ุชู‚ุฏู… ุงู„ุญุฒู…ุฉ ู…ู† ุฎู„ุงู„ ุงู„ู‡ูŠูƒู„
ุงู„ู†ุธุฑ ููŠ ุจู‚ูŠุฉ ุงู„ุขุซุงุฑ ููŠ ุงู„ู…ู„ู.

PCAP ุงู„ุจุญุซ ุนู† ุงู„ู…ูู‚ูˆุฏูŠู†
ุฅู†ู‘ NS-3 ูŠู…ูƒู† ุฃูŠุถู‹ุง ุงุณุชุฎุฏุงู… ู…ุณุงุนุฏูŠ ุงู„ุฌู‡ุงุฒ ู„ุฅู†ุดุงุก ู…ู„ูุงุช ุงู„ุชุชุจุน ููŠ ู…ู„ู .pcap ุดูƒู„. ุงู„
ูŠุฑู…ุฒ ุงู„ุงุฎุชุตุงุฑ pcap (ุงู„ุฐูŠ ูŠููƒุชุจ ุนุงุฏุฉู‹ ุจุฃุญุฑู ุตุบูŠุฑุฉ) ุฅู„ู‰ ุงู„ุชู‚ุงุท ุงู„ุญุฒู…ุŒ ูˆู‡ูˆ ููŠ ุงู„ูˆุงู‚ุน ุนุจุงุฑุฉ ุนู†
API ุงู„ุฐูŠ ูŠุชุถู…ู† ุชุนุฑูŠู ุฃ .pcap ุชู†ุณูŠู‚ ุงู„ู…ู„ู. ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฃูƒุซุฑ ุดุนุจูŠุฉ ุงู„ุฐูŠ
ูŠู…ูƒู† ู‚ุฑุงุกุฉ ู‡ุฐุง ุงู„ุชู†ุณูŠู‚ ูˆุนุฑุถู‡ ูˆู‡ูˆ Wireshark (ุงู„ู…ุนุฑูˆู ุณุงุจู‚ู‹ุง ุจุงุณู… Ethereal). ู…ู‡ู…ุง ูŠูƒู† ู‡ู†ุง
ู‡ู†ุงูƒ ุงู„ุนุฏูŠุฏ ู…ู† ุฃุฏูˆุงุช ุชุญู„ูŠู„ ุชุชุจุน ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุงู„ุชูŠ ุชุณุชุฎุฏู… ุชู†ุณูŠู‚ ุงู„ุญุฒู…ุฉ ู‡ุฐุง. ู†ุญู† ู†ุดุฌุน ุงู„ู…ุณุชุฎุฏู…ูŠู† ุนู„ู‰
ุงุณุชุบู„ุงู„ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฃุฏูˆุงุช ุงู„ู…ุชุงุญุฉ ู„ุชุญู„ูŠู„ ุขุซุงุฑ PCAP. ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠุŒ ู†ุญู†
ุฑูƒุฒ ุนู„ู‰ ุนุฑุถ ุขุซุงุฑ PCAP ุจุงุณุชุฎุฏุงู… tcpdump.

ุงู„ูƒูˆุฏ ุงู„ู…ุณุชุฎุฏู… ู„ุชู…ูƒูŠู† ุชุชุจุน pcap ู‡ูˆ ุณุทุฑ ูˆุงุญุฏ.

pointToPoint.EnablePcapAll ("myfirst")ุ›

ุชุงุจุน ูˆุฃุฏุฎู„ ู‡ุฐุง ุงู„ุณุทุฑ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุจุนุฏ ุฑู…ุฒ ุชุชุจุน ASCII ุงู„ุฐูŠ ุฃุถูู†ุงู‡ ู„ู„ุชูˆ
ุงู„ุตูุฑ/myfirst.cc. ู„ุงุญุธ ุฃู†ู†ุง ู…ุฑุฑู†ุง ุงู„ุณู„ุณู„ุฉ "myfirst" ูู‚ุทุŒ ูˆู„ูŠุณ
"myfirst.pcap" ุฃูˆ ุดูŠุก ู…ุดุงุจู‡. ูˆุฐู„ูƒ ู„ุฃู† ุงู„ู…ุนู„ู…ุฉ ู‡ูŠ ุจุงุฏุฆุฉ ูˆู„ูŠุณุช a
ุงุณู… ุงู„ู…ู„ู ุงู„ูƒุงู…ู„. ุณูŠู‚ูˆู… ุงู„ู…ุณุงุนุฏ ุจุงู„ูุนู„ ุจุฅู†ุดุงุก ู…ู„ู ุชุชุจุน ู„ูƒู„ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
ุงู„ุฌู‡ุงุฒ ููŠ ุงู„ู…ุญุงูƒุงุฉ. ุณูŠุชู… ุฅู†ุดุงุก ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช ุจุงุณุชุฎุฏุงู… ุงู„ุจุงุฏุฆุฉุŒ ูˆุฑู‚ู… ุงู„ุนู‚ุฏุฉุŒ
ุฑู‚ู… ุงู„ุฌู‡ุงุฒ ูˆู„ุงุญู‚ุฉ ".pcap".

ููŠ ุงู„ู…ุซุงู„ ุงู„ู†ุตูŠ ุงู„ุฎุงุต ุจู†ุงุŒ ุณู†ุฑู‰ ููŠ ุงู„ู†ู‡ุงูŠุฉ ุงู„ู…ู„ูุงุช ุงู„ู…ุณู…ุงุฉ "myfirst-0-0.pcap" ูˆ
"myfirst-1-0.pcap" ูˆู‡ูŠ ุชุชุจุนุงุช PCAP ู„ู„ุนู‚ุฏุฉ 0-device 0 ูˆุงู„ุนู‚ุฏุฉ 1-device 0ุŒ
ุนู„ู‰ ุงู„ุชูˆุงู„ูŠ.

ุจู…ุฌุฑุฏ ุฅุถุงูุฉ ุณุทุฑ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ู„ุชู…ูƒูŠู† ุชุชุจุน PCAPุŒ ูŠู…ูƒู†ูƒ ุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ููŠ ู…ู„ู
ุจุงู„ุทุฑูŠู‚ุฉ ุงู„ู…ุนุชุงุฏุฉ:

$ ./waf --ุชุดุบูŠู„ ุงู„ุตูุฑ/myfirst

ุฅุฐุง ู†ุธุฑุช ุฅู„ู‰ ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ู„ู„ุชูˆุฒูŠุน ุงู„ุฎุงุต ุจูƒุŒ ููŠุฌุจ ุฃู† ุชุฑู‰ ุงู„ุขู† ุซู„ุงุซุฉ ุณุฌู„ุงุช
ุงู„ู…ู„ูุงุช: myfirst.tr ู‡ูˆ ู…ู„ู ุชุชุจุน ASCII ุงู„ุฐูŠ ู‚ู…ู†ุง ุจูุญุตู‡ ู…ุณุจู‚ู‹ุง. myfirst-0-0.pcap
myfirst-1-0.pcap ู‡ูŠ ู…ู„ูุงุช pcap ุงู„ุฌุฏูŠุฏุฉ ุงู„ุชูŠ ุฃู†ุดุฃู†ุงู‡ุง ู„ู„ุชูˆ.

ุงู„ู‚ุฑุงุกุฉ ุงู„ู†ุงุชุฌ ู…ุน com.tcpdump
ุฃุณู‡ู„ ู…ุง ูŠู…ูƒู†ูƒ ูุนู„ู‡ ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ู‡ูˆ ุงู„ุงุณุชุฎุฏุงู… com.tcpdump ู„ู„ู†ุธุฑ ููŠ ุชู…ูˆูŠู„ู‡ ุงู„ู…ู„ูุงุช.

$ tcpdump -nn -tt -r myfirst-0-0.pcap
ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู myfirst-0-0.pcapุŒ PPP ู…ู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท (PPP)
2.000000 IP 10.1.1.1.49153 > 10.1.1.2.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.514648 IP 10.1.1.2.9 > 10.1.1.1.49153: UDPุŒ ุงู„ุทูˆู„ 1024

tcpdump -nn -tt -r myfirst-1-0.pcap
ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู myfirst-1-0.pcapุŒ PPP ู…ู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท (PPP)
2.257324 IP 10.1.1.1.49153 > 10.1.1.2.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.257324 IP 10.1.1.2.9 > 10.1.1.1.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ููŠ ุชูุฑูŠุบ myfirst-0-0.pcap (ุงู„ุฌู‡ุงุฒ ุงู„ุนู…ูŠู„) ุงู„ุฐูŠ ุชู…ุซู„ู‡ ุญุฒู…ุฉ ุงู„ุตุฏู‰
ุชู… ุฅุฑุณุงู„ู‡ุง ุฎู„ุงู„ ุซุงู†ูŠุชูŠู† ุฅู„ู‰ ุงู„ู…ุญุงูƒุงุฉ. ุฅุฐุง ู†ุธุฑุช ุฅู„ู‰ ุงู„ุชูุฑูŠุบ ุงู„ุซุงู†ูŠ (myfirst-1-0.pcap)
ูŠู…ูƒู†ูƒ ุฑุคูŠุฉ ุชู„ู‚ูŠ ุชู„ูƒ ุงู„ุญุฒู…ุฉ ููŠ 2.257324 ุซุงู†ูŠุฉ. ุชุฑู‰ ุงู„ุญุฒู…ุฉ ูŠุฌุฑูŠ
ุชู… ุชูƒุฑุงุฑู‡ ู…ุฑุฉ ุฃุฎุฑู‰ ุนู†ุฏ 2.257324 ุซุงู†ูŠุฉ ููŠ ุงู„ุชูุฑูŠุบ ุงู„ุซุงู†ูŠุŒ ูˆุฃุฎูŠุฑู‹ุงุŒ ุชุฑู‰ ุงู„ุญุฒู…ุฉ ู‚ูŠุฏ ุงู„ุชุดุบูŠู„
ุชู… ุงุณุชู„ุงู…ู‡ ู…ุฑุฉ ุฃุฎุฑู‰ ู„ุฏู‰ ุงู„ุนู…ูŠู„ ููŠ ุงู„ุชูุฑูŠุบ ุงู„ุฃูˆู„ ููŠ 2.514648 ุซุงู†ูŠุฉ.

ุงู„ู‚ุฑุงุกุฉ ุงู„ู†ุงุชุฌ ู…ุน ูŠุฑูŠุดุงุฑูƒ
ุฅุฐุง ู„ู… ุชูƒู† ู…ุนุชุงุฏู‹ุง ุนู„ู‰ ุงุณุชุฎุฏุงู… WiresharkุŒ ูู‡ู†ุงูƒ ู…ูˆู‚ุน ูˆูŠุจ ู…ุชุงุญ ูŠู…ูƒู†ูƒ ู…ู† ุฎู„ุงู„ู‡ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ
ุชุญู…ูŠู„ ุงู„ุจุฑุงู…ุฌ ูˆุงู„ูˆุซุงุฆู‚: http://www.wireshark.org/.

Wireshark ุนุจุงุฑุฉ ุนู† ูˆุงุฌู‡ุฉ ู…ุณุชุฎุฏู… ุฑุณูˆู…ูŠุฉ ูŠู…ูƒู† ุงุณุชุฎุฏุงู…ู‡ุง ู„ุนุฑุถ ู‡ุฐู‡ ุงู„ุขุซุงุฑ
ู…ู„ูุงุช. ุฅุฐุง ูƒุงู† Wireshark ู…ุชูˆูุฑู‹ุง ู„ุฏูŠูƒุŒ ููŠู…ูƒู†ูƒ ูุชุญ ูƒู„ ู…ู„ู ู…ู† ู…ู„ูุงุช ุงู„ุชุชุจุน ูˆุนุฑุถู‡
ุงู„ู…ุญุชูˆูŠุงุช ูƒู…ุง ู„ูˆ ูƒู†ุช ู‚ุฏ ุงู„ุชู‚ุทุช ุงู„ุญุฒู… ุจุงุณุชุฎุฏุงู… ู…ู„ู ุญุฒู…ุฉ ุงู„ุดู….

BUILDING ุนู„ูˆู… ุงู„ู‡ู†ุฏุณุฉ ุงู„ู„ุงูƒู…ูŠุฉ


ุงุจู†ูŠ a ุจุงุต ุดุจูƒุฉ ุทุจูŠุนุฉ ุงู„ูƒุงุจู„
ููŠ ู‡ุฐุง ุงู„ู‚ุณู… ุณู†ู‚ูˆู… ุจุชูˆุณูŠุน ุฅุชู‚ุงู†ู†ุง NS-3 ุฃุฌู‡ุฒุฉ ุงู„ุดุจูƒุฉ ูˆุงู„ู‚ู†ูˆุงุช ู„
ุชุบุทูŠุฉ ู…ุซุงู„ ู„ุดุจูƒุฉ ุงู„ุญุงูู„ุงุช. NS-3 ูŠูˆูุฑ ุฌู‡ุงุฒ ุดุจูƒุฉ ูˆู‚ู†ุงุฉ ู†ุณู…ูŠู‡ุง CSMA
(ุงู„ู†ุงู‚ู„ ุจู…ุนู†ู‰ ุงู„ูˆุตูˆู„ ุงู„ู…ุชุนุฏุฏ).

ุฅู†ู‘ NS-3 ูŠู‚ูˆู… ุฌู‡ุงุฒ CSMA ุจุชุตู…ูŠู… ุดุจูƒุฉ ุจุณูŠุทุฉ ุจุฑูˆุญ ุงู„ุฅูŠุซุฑู†ุช. ุฅูŠุซุฑู†ุช ุญู‚ูŠู‚ูŠ
ูŠุณุชุฎุฏู… ู†ุธุงู… CSMA/CD (ุงู„ูˆุตูˆู„ ุงู„ู…ุชุนุฏุฏ ู„ุชุญุณุณ ุงู„ู†ุงู‚ู„ ู…ุน ุงูƒุชุดุงู ุงู„ุชุตุงุฏู…) ู…ุน
ุฒูŠุงุฏุฉ ุงู„ุชุฑุงุฌุน ุจุดูƒู„ ูƒุจูŠุฑ ู„ู„ุชู†ุงูุณ ุนู„ู‰ ูˆุณูŠุท ุงู„ู†ู‚ู„ ุงู„ู…ุดุชุฑูƒ. ุงู„ NS-3
ุฃุฌู‡ุฒุฉ CSMA ูˆู†ู…ุงุฐุฌ ุงู„ู‚ู†ูˆุงุช ู„ูŠุณุช ุณูˆู‰ ู…ุฌู…ูˆุนุฉ ูุฑุนูŠุฉ ู…ู† ู‡ุฐุง.

ุชู…ุงู…ู‹ุง ูƒู…ุง ุฑุฃูŠู†ุง ูƒุงุฆู†ุงุช ู…ุณุงุนุฏุฉ ุทูˆุจูˆู„ูˆุฌูŠุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุนู†ุฏ ุงู„ุฅู†ุดุงุก
ุทุจูˆู„ูˆุฌูŠุง ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉุŒ ุณู†ุฑู‰ ู…ุณุงุนุฏูŠู† ู…ูƒุงูุฆูŠู† ู„ุทูˆุจูˆู„ูˆุฌูŠุง CSMA ููŠ ู‡ุฐุง ุงู„ู‚ุณู….
ูŠุฌุจ ุฃู† ูŠุจุฏูˆ ู…ุธู‡ุฑ ู‡ุคู„ุงุก ุงู„ู…ุณุงุนุฏูŠู† ูˆุนู…ู„ู‡ู… ู…ุฃู„ูˆูู‹ุง ุชู…ุงู…ู‹ุง ุจุงู„ู†ุณุจุฉ ู„ูƒ.

ู†ุญู† ู†ู‚ุฏู… ู…ุซุงู„ู‹ุง ู„ู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ููŠ ุฏู„ูŠู„ ุงู„ุฃู…ุซู„ุฉ/ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ}. ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ูŠุนุชู…ุฏ ุนู„ู‰
ู‡ูŠู‡ first.cc ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ูˆูŠุถูŠู ุดุจูƒุฉ CSMA ุฅู„ู‰ ุงู„ู…ุญุงูƒุงุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุงู„ุชูŠ ู‚ู…ู†ุง ุจู‡ุง ุจุงู„ูุนู„
ูŠุนุชุจุฑ. ุงู„ู…ุถูŠ ู‚ุฏู…ุง ูˆูุชุญ ุฃู…ุซู„ุฉ / ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ / Second.cc ููŠ ู…ุญุฑุฑูƒ ุงู„ู…ูุถู„ ุฃู†ุช
ุณูˆู ูŠูƒูˆู† ู‚ุฏ ุฑุฃู‰ ุจุงู„ูุนู„ ู…ุง ูŠูƒููŠ NS-3 ุฑู…ุฒ ู„ูู‡ู… ู…ุนุธู… ู…ุง ูŠุฌุฑูŠ ููŠ ู‡ุฐุง
ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ู„ูƒู†ู†ุง ุณู†ุฑุงุฌุน ุงู„ู†ุต ุจุฃูƒู…ู„ู‡ ูˆู†ูุญุต ุจุนุถู‹ุง ู…ู† ุงู„ู…ุฎุฑุฌุงุช.

ุชู…ุงู…ุง ูƒู…ุง ููŠ first.cc ู…ุซุงู„ (ูˆููŠ ุฌู…ูŠุน ุฃู…ุซู„ุฉ ns-3) ูŠุจุฏุฃ ุงู„ู…ู„ู ุจู€ emacs
ุฎุท ุงู„ูˆุถุน ูˆุจุนุถ GPL ุงู„ู…ุนูŠุงุฑูŠ.

ูŠุจุฏุฃ ุงู„ูƒูˆุฏ ุงู„ูุนู„ูŠ ุจุชุญู…ูŠู„ ุงู„ูˆุญุฏุฉ ุงู„ู†ู…ุทูŠุฉ ุงู„ุชูŠ ุชุชุถู…ู† ุงู„ู…ู„ูุงุช ุชู…ุงู…ู‹ุง ูƒู…ุง ุญุฏุซ ููŠ ู…ู„ู first.cc
ู…ุซุงู„.

# ุชุถู…ูŠู† "ns3 / core-module.h"
# ุชุถู…ูŠู† "ns3 / network-module.h"
#ุชุชุถู…ู† "ns3/csma-module.h"
# ุชุถู…ูŠู† "ns3 / internet-module.h"
# ุชุถู…ูŠู† "ns3 / point-to-point-module.h"
#include "ns3 / applications-module.h"
#ุชุชุถู…ู† "ns3/ipv4-global-routing-helper.h"

ุงู„ุดูŠุก ุงู„ูˆุญูŠุฏ ุงู„ุฐูŠ ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ู…ููŠุฏู‹ุง ุจุดูƒู„ ู…ุฏู‡ุด ู‡ูˆ ุฌุฒุก ุตุบูŠุฑ ู…ู† ูู† ASCII ุงู„ุฐูŠ ูŠุนุฑุถ ุฑุณู…ู‹ุง ูƒุงุฑูŠูƒุงุชูˆุฑูŠู‹ุง
ู„ุทูˆุจูˆู„ูˆุฌูŠุง ุงู„ุดุจูƒุฉ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ููŠ ุงู„ู…ุซุงู„. ุณุชุฌุฏ "ุฑุณู…ู‹ุง" ู…ุดุงุจู‡ู‹ุง ููŠ
ู…ุนุธู… ุงู„ุฃู…ุซู„ุฉ ู„ุฏูŠู†ุง.

ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุฃู†ู†ุง ุณู†ู‚ูˆู… ุจุชูˆุณูŠุน ู…ุซุงู„ู†ุง ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ (ุงู„ุฑุงุจุท
ุจูŠู† ุงู„ุนู‚ุฏุชูŠู† n0 ูˆn1 ุฃุฏู†ุงู‡) ุนู† ุทุฑูŠู‚ ุชุนู„ูŠู‚ ุดุจูƒุฉ ุงู„ุญุงูู„ุงุช ู…ู† ุงู„ุฌุงู†ุจ ุงู„ุฃูŠู…ู†. ูŠู„ุงุญุธ
ุฃู† ู‡ุฐู‡ ู‡ูŠ ุทูˆุจูˆู„ูˆุฌูŠุง ุงู„ุดุจูƒุฉ ุงู„ุงูุชุฑุงุถูŠุฉ ุญูŠุซ ูŠู…ูƒู†ูƒ ุจุงู„ูุนู„ ุชุบูŠูŠุฑ ุนุฏุฏ ุงู„ุนู‚ุฏ
ุชู… ุฅู†ุดุงุคู‡ุง ุนู„ู‰ ุงู„ุดุจูƒุฉ ุงู„ู…ุญู„ูŠุฉ. ุฅุฐุง ู‚ู…ุช ุจุชุนูŠูŠู† nCsma ุนู„ู‰ ูˆุงุญุฏุฉุŒ ูุณูŠูƒูˆู† ู‡ู†ุงูƒ ุฅุฌู…ุงู„ูŠ ุนู‚ุฏุชูŠู† ุนู„ู‰
LAN (ู‚ู†ุงุฉ CSMA) --- ุนู‚ุฏุฉ ูˆุงุญุฏุฉ ู…ุทู„ูˆุจุฉ ูˆุนู‚ุฏุฉ "ุฅุถุงููŠุฉ" ูˆุงุญุฏุฉ. ุจุดูƒู„ ุงูุชุฑุงุถูŠ ู‡ู†ุงูƒ ุซู„ุงุซุฉ
ุงู„ุนู‚ุฏ "ุงู„ุฅุถุงููŠุฉ" ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ุฃุฏู†ุงู‡:

// ุทูˆุจูˆู„ูˆุฌูŠุง ุงู„ุดุจูƒุฉ ุงู„ุงูุชุฑุงุถูŠุฉ
//
/ / 10.1.1.0
// n0 -------------- n1 n2 n3 n4
// ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ | | | |
// ============
// ู„ุงู† 10.1.2.0

ุซู… ู…ุณุงุญุฉ ุงู„ุงุณู… ns-3 ู‡ูŠ ู…ุณุชุนู…ู„ ูˆูŠุชู… ุชุนุฑูŠู ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„. ู‡ุฐุง ู‡ูˆ ูƒู„ ุดูŠุก ุชู…ุงู…ุง ูƒู…ุง
ูƒุงู† ููŠู‡ first.ccุŒ ู„ุฐู„ูƒ ู„ุง ูŠูˆุฌุฏ ุดูŠุก ุฌุฏูŠุฏ ุญุชู‰ ุงู„ุขู†.

ุจุงุณุชุฎุฏุงู… ู…ุณุงุญุฉ ุงู„ุงุณู… ns3 ุ›

NS_LOG_COMPONENT_DEFINE ("SecondScriptExample")ุ›

ูŠุจุฏุฃ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฑุฆูŠุณูŠ ุจุชุทูˆุฑ ู…ุฎุชู„ู ู‚ู„ูŠู„ุงู‹. ู†ุญู† ู†ุณุชุฎุฏู… ุนู„ุงู…ุฉ ู…ุทูˆู„ุฉ ู„
ุชุญุฏูŠุฏ ู…ุง ุฅุฐุง ูƒุงู† UdpEchoClientApplication UdpEchoServerApplication ุชุณุฌูŠู„
ุชู… ุชู…ูƒูŠู† ุงู„ู…ูƒูˆู†ุงุช. ู‡ุฐู‡ ุงู„ุนู„ุงู…ุฉ ุงู„ุงูุชุฑุงุถูŠุฉ ู‡ูŠ ุตุญูŠุญ (ูŠุชู… ุชู…ูƒูŠู† ู…ูƒูˆู†ุงุช ุงู„ุชุณุฌูŠู„)
ูˆู„ูƒู†ู‡ ูŠุณู…ุญ ู„ู†ุง ุจุฅูŠู‚ุงู ุชุดุบูŠู„ ุงู„ุชุณุฌูŠู„ ุฃุซู†ุงุก ุงุฎุชุจุงุฑ ุงู„ุงู†ุญุฏุงุฑ ู„ู‡ุฐุง ุงู„ู…ุซุงู„.

ุณุชุฑู‰ ุจุนุถ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ู…ุฃู„ูˆูุฉ ุงู„ุชูŠ ุณุชุณู…ุญ ู„ูƒ ุจุชุบูŠูŠุฑ ุนุฏุฏ ุงู„ุฃุฌู‡ุฒุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ุนู„ู‰
ุดุจูƒุฉ CSMA ุนุจุฑ ูˆุณูŠุทุฉ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ. ู„ู‚ุฏ ูุนู„ู†ุง ุดูŠุฆู‹ุง ู…ุดุงุจู‡ู‹ุง ุนู†ุฏู…ุง ุณู…ุญู†ุง ู„ู€
ุนุฏุฏ ุงู„ุญุฒู… ุงู„ู…ุฑุณู„ุฉ ู„ู„ุชุบูŠูŠุฑ ููŠ ุงู„ู‚ุณู… ุงู„ุฎุงุต ู„ูˆุณุงุฆุท ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ. ุงู„ุงุฎูŠุฑ
ูŠุชุฃูƒุฏ ุงู„ุฎุท ู…ู† ุฃู† ู„ุฏูŠูƒ ุนู‚ุฏุฉ "ุฅุถุงููŠุฉ" ูˆุงุญุฏุฉ ุนู„ู‰ ุงู„ุฃู‚ู„.

ูŠุชูƒูˆู† ุงู„ูƒูˆุฏ ู…ู† ุฃุดูƒุงู„ ู…ุฎุชู„ูุฉ ู„ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ุงู„ุชูŠ ุชู…ุช ุชุบุทูŠุชู‡ุง ู…ุณุจู‚ู‹ุงุŒ ู„ุฐุง ูŠุฌุจ ุฃู† ุชูƒูˆู† ูƒุฐู„ูƒ ุจุงู„ูƒุงู…ู„
ู…ุฑูŠุญ ู…ุน ุงู„ูƒูˆุฏ ุงู„ุชุงู„ูŠ ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ ู…ู† ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ.

ู…ู†ุทู‚ูŠ ู…ุทูˆู„ = ุตุญูŠุญุ›
uint32_t nCsma = 3;

CommandLine ูƒู…ุฏ ุ›
cmd.AddValue ("nCsma"ุŒ "ุนุฏุฏ ุนู‚ุฏ/ุฃุฌู‡ุฒุฉ CSMA \"ุงู„ุฅุถุงููŠุฉ\""ุŒ nCsma)ุ›
cmd.AddValue ("ู…ุทูˆู„"ุŒ "ุฃุฎุจุฑ ุชุทุจูŠู‚ุงุช ุงู„ุตุฏู‰ ุจุงู„ุชุณุฌูŠู„ ุฅุฐุง ูƒุงู†ุช ุตุญูŠุญุฉ"ุŒ ู…ุทูˆู„)ุ›

cmd ุŒ Parse (argc ุŒ argv) ุ›

ุฅุฐุง (ู…ุทูˆู„)
{
LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_INFO);
}

nCsma = nCsma == 0 ุŸ 1 : ู†ูƒุณู…ุงุ›

ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ ู‡ูŠ ุฅู†ุดุงุก ุนู‚ุฏุชูŠู† ุณู†ู‚ูˆู… ุจุชูˆุตูŠู„ู‡ู…ุง ุนุจุฑ ุฑุงุจุท ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ.
ุฅู†ู‘ NodeContainer ูŠุชู… ุงุณุชุฎุฏุงู…ู‡ ู„ู„ู‚ูŠุงู… ุจุฐู„ูƒ ุชู…ุงู…ู‹ุง ูƒู…ุง ุญุฏุซ ููŠ first.cc.

NodeContainer p2pNodes;
p2pNodes.Create (2);

ุจุนุฏ ุฐู„ูƒุŒ ู†ุนู„ู† ุขุฎุฑ NodeContainer ู„ู„ุงุญุชูุงุธ ุจุงู„ุนู‚ุฏ ุงู„ุชูŠ ุณุชูƒูˆู† ุฌุฒุกู‹ุง ู…ู† ุงู„ุญุงูู„ุฉ
ุดุจูƒุฉ (CSMA). ุฃูˆู„ุงู‹ุŒ ู†ู‚ูˆู… ูู‚ุท ุจุฅู†ุดุงุก ูƒุงุฆู† ุงู„ุญุงูˆูŠุฉ ู†ูุณู‡.

NodeContainer csmaNodes;
csmaNodes.Add (p2pNodes.Get (1));
csmaNodes.Create (nCsma);

ุงู„ุณุทุฑ ุงู„ุชุงู„ูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ูŠุญุตู„ ุงู„ุนู‚ุฏุฉ ุงู„ุฃูˆู„ู‰ (ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ูˆุฌูˆุฏ ูู‡ุฑุณ ูˆุงุญุฏ) ู…ู†
ุญุงูˆูŠุฉ ุงู„ุนู‚ุฏุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูˆุฅุถุงูุชู‡ุง ุฅู„ู‰ ุญุงูˆูŠุฉ ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุณุชุญุตู„ ุนู„ู‰ CSMA
ุงู„ุฃุฌู‡ุฒุฉ. ุณุชู†ุชู‡ูŠ ุงู„ุนู‚ุฏุฉ ุงู„ู…ุนู†ูŠุฉ ุจุฌู‡ุงุฒ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ CSMA
ุฌู‡ุงุฒ. ู†ู‚ูˆู… ุจุนุฏ ุฐู„ูƒ ุจุฅู†ุดุงุก ุนุฏุฏ ู…ู† ุงู„ุนู‚ุฏ "ุงู„ุฅุถุงููŠุฉ" ุงู„ุชูŠ ุชุดูƒู„ ุงู„ุฌุฒุก ุงู„ู…ุชุจู‚ูŠ ู…ู† CSMA
ุดุจูƒุฉ. ู†ุธุฑู‹ุง ู„ุฃู† ู„ุฏูŠู†ุง ุจุงู„ูุนู„ ุนู‚ุฏุฉ ูˆุงุญุฏุฉ ููŠ ุดุจูƒุฉ CSMA - ุงู„ุนู‚ุฏุฉ ุงู„ุชูŠ ุณุชุญุชูˆูŠ ุนู„ูŠู‡ุง
ุณูˆุงุกู‹ ูƒุงู† ุฌู‡ุงุฒ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุฃูˆ ุฌู‡ุงุฒ ุดุจูƒุฉ CSMAุŒ ูุฅู† ุนุฏุฏ ุงู„ุนู‚ุฏ "ุงู„ุฅุถุงููŠุฉ" ูŠุนู†ูŠ ุงู„ุนุฏุฏ
ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุชุฑูŠุฏู‡ุง ููŠ ู‚ุณู… CSMA ู†ุงู‚ุต ูˆุงุญุฏ.

ูŠุฌุจ ุฃู† ูŠูƒูˆู† ุงู„ุฌุฒุก ุงู„ุชุงู„ูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ู…ุฃู„ูˆูู‹ุง ุชู…ุงู…ู‹ุง ุงู„ุขู†. ู†ุญู† ู†ู…ุซู„ ุฃ PointToPointHelper
ูˆู‚ู… ุจุชุนูŠูŠู† ุงู„ุฅุนุฏุงุฏ ุงู„ุงูุชุฑุงุถูŠ ุงู„ู…ุฑุชุจุท ุงู„ุณู…ุงุช ุญุชู‰ ู†ุชู…ูƒู† ู…ู† ุฅู†ุดุงุก ุฎู…ุณุฉ ู…ูŠุบุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉ
ุฌู‡ุงุฒ ุงู„ุฅุฑุณุงู„ ุนู„ู‰ ุงู„ุฃุฌู‡ุฒุฉ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุจุงุณุชุฎุฏุงู… ุงู„ู…ุณุงุนุฏ ูˆุชุฃุฎูŠุฑ XNUMX ู…ู„ู„ูŠ ุซุงู†ูŠุฉ ุนู„ู‰ ุงู„ู‚ู†ูˆุงุช
ุชู… ุฅู†ุดุงุคู‡ุง ุจูˆุงุณุทุฉ ุงู„ู…ุณุงุนุฏ.

PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate"ุŒ StringValue ("5 ู…ูŠุฌุง ุจุช ููŠ ุงู„ุซุงู†ูŠุฉ"))ุ›
pointToPoint.SetChannelAttribute ("Delay"ุŒ StringValue ("2ms"))ุ›

NetDeviceContainer p2pDevices;
p2pDevices = pointToPoint.Install (p2pNodes)ุ›

ู†ู‚ูˆู… ุจุนุฏ ุฐู„ูƒ ุจุฅู†ุดุงุก ู…ุซูŠู„ ู„ู€ a NetDeviceContainer ู„ุชุชุจุน ุฃุฌู‡ุฒุฉ ุงู„ุดุจูƒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
ูˆ ู†ุญู† ุชุซุจูŠุช ุงู„ุฃุฌู‡ุฒุฉ ุนู„ู‰ ุงู„ุนู‚ุฏ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ.

ู„ู‚ุฏ ุฐูƒุฑู†ุง ุฃุนู„ุงู‡ ุฃู†ูƒ ุณุชุดุงู‡ุฏ ู…ุณุงุนุฏู‹ุง ู„ุฃุฌู‡ุฒุฉ ูˆู‚ู†ูˆุงุช CSMAุŒ ูˆ
ุงู„ุณุทูˆุฑ ุงู„ุชุงู„ูŠุฉ ุชุนุฑูู‡ู…. ุงู„ com.CsmaHelper ูŠุนู…ู„ ุชู…ุงู…ุง ู…ุซู„ PointToPointHelperุŒ ู„ูƒู†
ูŠู‚ูˆู… ุจุฅู†ุดุงุก ูˆุฑุจุท ุฃุฌู‡ุฒุฉ ูˆู‚ู†ูˆุงุช CSMA. ููŠ ุญุงู„ุฉ ุฌู‡ุงุฒ CSMA ูˆ
ุฒูˆุฌ ุงู„ู‚ู†ูˆุงุชุŒ ู„ุงุญุธ ุฃู† ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ู…ุญุฏุฏ ุจูˆุงุณุทุฉ ุฃ ู‚ู†ุงุฉ ุงู„ุณู…ุฉ ุจุฏู„ุง ู…ู†
ุฌู‡ุงุฒ ุงู„ุณู…ุฉ. ูˆุฐู„ูƒ ู„ุฃู† ุดุจูƒุฉ CSMA ุงู„ุญู‚ูŠู‚ูŠุฉ ู„ุง ุชุณู…ุญ ู„ุฃุญุฏ ุจุงู„ุงุฎุชู„ุงุท
ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุฃุฌู‡ุฒุฉ 10Base-T ูˆ100Base-T ุนู„ู‰ ู‚ู†ุงุฉ ู…ุนูŠู†ุฉ. ู‚ู…ู†ุง ุฃูˆู„ุงู‹ ุจุชุนูŠูŠู† ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ุนู„ู‰
100 ู…ูŠุบุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉุŒ ุซู… ุงุถุจุท ุชุฃุฎูŠุฑ ุณุฑุนุฉ ุงู„ุถูˆุก ู„ู„ู‚ู†ุงุฉ ุนู„ู‰ 6560
ู†ุงู†ูˆ ุซุงู†ูŠุฉ (ูŠุชู… ุงุฎุชูŠุงุฑู‡ุง ุจุดูƒู„ ุนุดูˆุงุฆูŠ ุนู„ู‰ ุฃู†ู‡ุง 1 ู†ุงู†ูˆ ุซุงู†ูŠุฉ ู„ูƒู„ ู‚ุฏู… ุนู„ู‰ ู‚ุทุนุฉ ุทูˆู„ู‡ุง 100 ู…ุชุฑ).
ู„ุงุญุธ ุฃู†ู‡ ูŠู…ูƒู†ูƒ ุชุนูŠูŠู† ุงู„ุณู…ุฉ ุจุงุณุชุฎุฏุงู… ู†ูˆุน ุงู„ุจูŠุงู†ุงุช ุงู„ุฃุตู„ูŠ ุงู„ุฎุงุต ุจู‡.

CsmaHelper csma;
csma.SetChannelAttribute ("DataRate"ุŒ StringValue ("100 ู…ูŠุฌุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉ"))ุ›
csma.SetChannelAttribute ("Delay"ุŒ TimeValue (NanoSeconds (6560)))ุ›

NetDeviceContainer csmaDevices;
csmaDevices = csma.Install (csmaNodes);

ุชู…ุงู…ุง ูƒู…ุง ุฃู†ุดุฃู†ุง NetDeviceContainer ู„ู„ุงุญุชูุงุธ ุจุงู„ุฃุฌู‡ุฒุฉ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุจูˆุงุณุทุฉ
PointToPointHelper ู†ุฎู„ู‚ NetDeviceContainer ู„ุนู‚ุฏ ุงู„ุฃุฌู‡ุฒุฉ ุงู„ุชูŠ ุฃู†ุดุฃุชู‡ุง ู„ุฏูŠู†ุง
com.CsmaHelper. ู†ุญู† ู†ุณู…ูŠ ุชุซุจูŠุช ุทุฑูŠู‚ุฉ com.CsmaHelper ู„ุชุซุจูŠุช ุงู„ุฃุฌู‡ุฒุฉ ููŠ
ุนู‚ุฏ com.csmaNodes NodeContainer.

ู„ู‚ุฏ ุชู… ุงู„ุขู† ุฅู†ุดุงุก ุงู„ุนู‚ุฏ ูˆุงู„ุฃุฌู‡ุฒุฉ ูˆุงู„ู‚ู†ูˆุงุช ุงู„ุฎุงุตุฉ ุจู†ุงุŒ ู„ูƒู† ู„ูŠุณ ู„ุฏูŠู†ุง ู…ุฌู…ูˆุนุงุช ุจุฑูˆุชูˆูƒูˆู„ุงุช
ุญุงุถุฑ. ุชู…ุงู…ุง ูƒู…ุง ููŠ first.cc ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ุณูˆู ู†ุณุชุฎุฏู… InternetStackHelper ู„ุชุซุจูŠุช
ู‡ุฐู‡ ุงู„ุฃูƒูˆุงู….

ู…ูƒุฏุณ InternetStackHelperุ›
Stack.Install (p2pNodes.Get (0));
Stack.Install (csmaNodes);

ุชุฐูƒุฑ ุฃู†ู†ุง ุฃุฎุฐู†ุง ุฅุญุฏู‰ ุงู„ุนู‚ุฏ ู…ู† p2pNodes ุงู„ุญุงูˆูŠุฉ ูˆุฅุถุงูุชู‡ุง ุฅู„ู‰
com.csmaNodes ุญุงูˆูŠุฉ. ูˆุจุงู„ุชุงู„ูŠ ู†ุญุชุงุฌ ูู‚ุท ุฅู„ู‰ ุชุซุจูŠุช ุงู„ุฃูƒูˆุงู… ุนู„ู‰ ุงู„ุจุงู‚ูŠ p2pNodes
ุงู„ุนู‚ุฏุฉุŒ ูˆุฌู…ูŠุน ุงู„ุนู‚ุฏ ููŠ com.csmaNodes ุญุงูˆูŠุฉ ู„ุชุบุทูŠุฉ ูƒุงูุฉ ุงู„ุนู‚ุฏ ููŠ
ู…ุญุงูƒุงุฉ.

ุชู…ุงู…ุง ูƒู…ุง ููŠ first.cc ู…ุซุงู„ ุนู„ู‰ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ุณูˆู ู†ุณุชุฎุฏู… IPv4AddressHelper ุฅู„ู‰
ุชุนูŠูŠู† ุนู†ุงูˆูŠู† IP ู„ูˆุงุฌู‡ุงุช ุฃุฌู‡ุฒุชู†ุง. ุฃูˆู„ุงู‹ ู†ุณุชุฎุฏู… ุงู„ุดุจูƒุฉ 10.1.1.0 ู„ู„ุฅู†ุดุงุก
ุงู„ุนู†ูˆุงู†ูŠู† ุงู„ู„ุงุฒู…ูŠู† ู„ุฌู‡ุงุฒูŠ ุงู„ุงุชุตุงู„ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ.

ุนู†ูˆุงู† Ipv4AddressHelperุ›
ุนู†ูˆุงู†.SetBase ("10.1.1.0"ุŒ "255.255.255.0")ุ›
Ipv4InterfaceContainer p2pInterfaces;
p2pInterfaces = Address.Assign (p2pDevices);

ุชุฐูƒุฑ ุฃู†ู†ุง ู†ุญูุธ ุงู„ูˆุงุฌู‡ุงุช ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ููŠ ุญุงูˆูŠุฉ ู„ุชุณู‡ูŠู„ ุณุญุจู‡ุง
ู…ุนุงู„ุฌุฉ ุงู„ู…ุนู„ูˆู…ุงุช ู„ุงุญู‚ู‹ุง ู„ุงุณุชุฎุฏุงู…ู‡ุง ููŠ ุฅุนุฏุงุฏ ุงู„ุชุทุจูŠู‚ุงุช.

ู†ุญุชุงุฌ ุงู„ุขู† ุฅู„ู‰ ุชุนูŠูŠู† ุนู†ุงูˆูŠู† IP ู„ูˆุงุฌู‡ุงุช ุฌู‡ุงุฒ CSMA ุงู„ุฎุงุตุฉ ุจู†ุง. ุงู„ุนู…ู„ูŠุฉ ุชุนู…ู„
ุชู…ุงู…ู‹ุง ูƒู…ุง ุญุฏุซ ููŠ ุญุงู„ุฉ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉุŒ ุฅู„ุง ุฃู†ู†ุง ุงู„ุขู† ู†ุฌุฑูŠ ุงู„ุนู…ู„ูŠุฉ
ุญุงูˆูŠุฉ ุชุญุชูˆูŠ ุนู„ู‰ ุนุฏุฏ ู…ุชุบูŠุฑ ู…ู† ุฃุฌู‡ุฒุฉ CSMA --- ุชุฐูƒุฑ ุฃู†ู†ุง ู‚ู…ู†ุง ุจุฅุนุฏุงุฏ ุนุฏุฏ
ุฃุฌู‡ุฒุฉ CSMA ู‚ุงุจู„ุฉ ู„ู„ุชุบูŠูŠุฑ ุนู† ุทุฑูŠู‚ ูˆุณูŠุทุฉ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ. ุณูŠุชู… ุฑุจุท ุฃุฌู‡ุฒุฉ CSMA
ุจุนู†ุงูˆูŠู† IP ู…ู† ุฑู‚ู… ุงู„ุดุจูƒุฉ 10.1.2.0 ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ุฃุฏู†ุงู‡.

ุนู†ูˆุงู†.SetBase ("10.1.2.0"ุŒ "255.255.255.0")ุ›
Ipv4InterfaceContainer csmaInterfaces;
csmaInterfaces = Address.Assign (csmaDevices);

ุงู„ุขู† ู„ุฏูŠู†ุง ุทูˆุจูˆู„ูˆุฌูŠุง ู…ุจู†ูŠุฉุŒ ูˆู„ูƒู†ู†ุง ุจุญุงุฌุฉ ุฅู„ู‰ ุชุทุจูŠู‚ุงุช. ู‡ุฐุง ุงู„ู‚ุณู… ุณูŠูƒูˆู†
ูŠุดุจู‡ ุจุดูƒู„ ุฃุณุงุณูŠ ู‚ุณู… ุงู„ุชุทุจูŠู‚ุงุช ููŠ first.cc ู„ูƒู†ู†ุง ุฐุงู‡ุจูˆู† ุฅู„ู‰
ู‚ู… ุจุฅู†ุดุงุก ู…ุซูŠู„ ู„ู„ุฎุงุฏู… ุนู„ู‰ ุฅุญุฏู‰ ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุชุญุชูˆูŠ ุนู„ู‰ ุฌู‡ุงุฒ CSMA ูˆุงู„ุนู…ูŠู„ ุนู„ู‰
ุงู„ุนู‚ุฏุฉ ุงู„ุชูŠ ุชุญุชูˆูŠ ูู‚ุท ุนู„ู‰ ุฌู‡ุงุฒ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ.

ุฃูˆู„ุงู‹ุŒ ู‚ู…ู†ุง ุจุฅุนุฏุงุฏ ุฎุงุฏู… ุงู„ุตุฏู‰. ู†ู‚ูˆู… ุจุฅู†ุดุงุก ุฃ UdpEchoServerHelper ูˆุชู‚ุฏูŠู… ุงู„ู…ุทู„ูˆุจ
ุงู„ุณู…ุฉ ุงู„ู‚ูŠู…ุฉ ู„ู„ู…ู†ุดุฆ ูˆู‡ูˆ ุฑู‚ู… ู…ู†ูุฐ ุงู„ุฎุงุฏู…. ุฃุฐูƒุฑ ุฃู† ู‡ุฐุง ุงู„ู…ู†ูุฐ
ูŠู…ูƒู† ุชุบูŠูŠุฑู‡ุง ู„ุงุญู‚ู‹ุง ุจุงุณุชุฎุฏุงู… SetAttribute ุงู„ุทุฑูŠู‚ุฉ ุฅุฐุง ุฑุบุจุช ููŠ ุฐู„ูƒุŒ ูˆู„ูƒู†ู†ุง ู†ุทู„ุจ ุฐู„ูƒ
ุงู„ู…ู‚ุฏู…ุฉ ู„ู„ู…ู†ุดุฆ.

UdpEchoServerHelper echoServer (9);

ApplicationContainer serverApps = echoServer.Install (csmaNodes.Get (nCsma));
serverApps.Start (Seconds (1.0));
serverApps.Stop (ุซูˆุงู†ูŠ (10.0))ุ›

ุฃุฐูƒุฑ ุฃู† com.csmaNodes NodeContainer ูŠุญุชูˆูŠ ุนู„ู‰ ุฅุญุฏู‰ ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ู„ู€
ุดุจูƒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูˆ nCsma ุงู„ุนู‚ุฏ "ุงู„ุฅุถุงููŠุฉ". ู…ุง ู†ุฑูŠุฏ ุงู„ูˆุตูˆู„ ุฅู„ูŠู‡ ู‡ูˆ ุงู„ุฃุฎูŠุฑ
ุงู„ุนู‚ุฏ "ุงู„ุฅุถุงููŠุฉ". ุงู„ุฏุฎูˆู„ ุงู„ุตูุฑูŠ ู„ู„ com.csmaNodes ุณุชูƒูˆู† ุงู„ุญุงูˆูŠุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
ุงู„ุนู‚ุฏุฉ. ุงู„ุทุฑูŠู‚ุฉ ุงู„ุณู‡ู„ุฉ ู„ู„ุชููƒูŠุฑ ููŠ ู‡ุฐุง ุงู„ุฃู…ุฑ ู‡ูŠ ุฅุฐุง ู‚ู…ู†ุง ุจุฅู†ุดุงุก ุนู‚ุฏุฉ CSMA "ุฅุถุงููŠุฉ" ูˆุงุญุฏุฉุŒ ูุณุชูƒูˆู† ูƒุฐู„ูƒ
ุณูŠูƒูˆู† ููŠ ุงู„ูู‡ุฑุณ ูˆุงุญุฏ ู…ู† com.csmaNodes ุญุงูˆูŠุฉ. ุจุงู„ุงุณุชู‚ุฑุงุก ุฅุฐุง ุฎู„ู‚ู†ุง nCsma "ุฅุถุงููŠ"
ุงู„ุนู‚ุฏ ุงู„ุฃุฎูŠุฑุฉ ุณุชูƒูˆู† ููŠ ุงู„ูู‡ุฑุณ nCsma. ุชุฑู‰ ู‡ุฐุง ู…ุนุฑูˆุถุง ููŠ ุชูˆุงุตู„ ู…ู† ุฃูˆู„
ุณุทุฑ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ.

ุชู… ุฅุนุฏุงุฏ ุชุทุจูŠู‚ ุงู„ุนู…ูŠู„ ุชู…ุงู…ู‹ุง ูƒู…ุง ูุนู„ู†ุง ููŠ first.cc ู…ุซุงู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ. ู…ุฑุฉ ุฃุฎุฑู‰ุŒ
ู†ุญู† ู†ู‚ุฏู… ุงู„ู…ุทู„ูˆุจุฉ ุงู„ุณู…ุงุช ุฅู„ู‰ UdpEchoClientHelper ููŠ ุงู„ู…ู†ุดุฆ (ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ
ุงู„ุนู†ูˆุงู† ุงู„ุจุนูŠุฏ ูˆุงู„ู…ู†ูุฐ). ู†ุทู„ุจ ู…ู† ุงู„ุนู…ูŠู„ ุฅุฑุณุงู„ ุงู„ุญุฒู… ุฅู„ู‰ ุงู„ุฎุงุฏู… ุงู„ุฐูŠ ู†ุฑูŠุฏู‡ ูู‚ุท
ู…ุซุจุชุฉ ุนู„ู‰ ุขุฎุฑ ุนู‚ุฏ CSMA "ุงู„ุฅุถุงููŠุฉ". ู†ู‚ูˆู… ุจุชุซุจูŠุช ุงู„ุนู…ูŠู„ ููŠ ุฃู‚ุตู‰ ุงู„ูŠุณุงุฑ
ุนู‚ุฏุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุชุธู‡ุฑ ููŠ ุงู„ุฑุณู… ุงู„ุชูˆุถูŠุญูŠ ู„ู„ุทูˆุจูˆู„ูˆุฌูŠุง.

UdpEchoClientHelper echoClient (csmaInterfaces.GetAddress (nCsma)ุŒ 9)ุ›
echoClient.SetAttribute ("MaxPackets"ุŒ UintegerValue (1))ุ›
echoClient.SetAttribute ("Interval"ุŒ TimeValue (Seconds (1.0)))ุ›
echoClient.SetAttribute ("PacketSize"ุŒ UintegerValue (1024))ุ›

ApplicationContainer clientApps = echoClient.Install (p2pNodes.Get (0));
ClientApps.Start (ุซูˆุงู†ูŠ (2.0))ุ›
ClientApps.Stop (Seconds (10.0));

ูˆุจู…ุง ุฃู†ู†ุง ู‚ู…ู†ุง ุจุงู„ูุนู„ ุจุจู†ุงุก ุดุจูƒุฉ ุจูŠู†ูŠุฉ ู‡ู†ุงุŒ ูุฅู†ู†ุง ุจุญุงุฌุฉ ุฅู„ู‰ ุดูƒู„ ู…ู† ุฃุดูƒุงู„ ุงู„ุดุจูƒุงุช ุงู„ุจูŠู†ูŠุฉ
ุงู„ุชูˆุฌูŠู‡. NS-3 ูŠูˆูุฑ ู…ุง ู†ุณู…ูŠู‡ ุงู„ุชูˆุฌูŠู‡ ุงู„ุนุงู„ู…ูŠ ู„ู…ุณุงุนุฏุชูƒ. ูŠุฃุฎุฐ ุงู„ุชูˆุฌูŠู‡ ุงู„ุนุงู„ู…ูŠ
ุงู„ุงุณุชูุงุฏุฉ ู…ู† ุญู‚ูŠู‚ุฉ ุฃู† ุงู„ุดุจูƒุฉ ุงู„ุจูŠู†ูŠุฉ ุจุฃูƒู…ู„ู‡ุง ูŠู…ูƒู† ุงู„ูˆุตูˆู„ ุฅู„ูŠู‡ุง ููŠ ุงู„ู…ุญุงูƒุงุฉ ูˆ
ูŠู…ุฑ ุนุจุฑ ุฌู…ูŠุน ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ู„ู„ู…ุญุงูƒุงุฉ --- ูู‡ูˆ ูŠู‚ูˆู… ุจุงู„ุนู…ู„ ุงู„ุดุงู‚
ุฅุนุฏุงุฏ ุงู„ุชูˆุฌูŠู‡ ู„ูƒ ุฏูˆู† ุงู„ุญุงุฌุฉ ุฅู„ู‰ ุชูƒูˆูŠู† ุฃุฌู‡ุฒุฉ ุงู„ุชูˆุฌูŠู‡.

ููŠ ุงู„ุฃุณุงุณุŒ ู…ุง ูŠุญุฏุซ ู‡ูˆ ุฃู† ูƒู„ ุนู‚ุฏุฉ ุชุชุตุฑู ูƒู…ุง ู„ูˆ ูƒุงู†ุช ู…ูˆุฌู‡ OSPF
ูŠุชูˆุงุตู„ ุจุดูƒู„ ููˆุฑูŠ ูˆุจุทุฑูŠู‚ุฉ ุณุญุฑูŠุฉ ู…ุน ุฌู…ูŠุน ุฃุฌู‡ุฒุฉ ุงู„ุชูˆุฌูŠู‡ ุงู„ุฃุฎุฑู‰ ุฎู„ู ุงู„ูƒูˆุงู„ูŠุณ. ูƒู„ ุนู‚ุฏุฉ
ูŠู‚ูˆู… ุจุฅู†ุดุงุก ุฅุนู„ุงู†ุงุช ุงู„ุงุฑุชุจุงุท ูˆุชูˆุตูŠู„ู‡ุง ู…ุจุงุดุฑุฉ ุฅู„ู‰ ู…ุฏูŠุฑ ุงู„ุทุฑูŠู‚ ุงู„ุนุงู„ู…ูŠ
ูˆุงู„ุฐูŠ ูŠุณุชุฎุฏู… ู‡ุฐู‡ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุนุงู…ุฉ ู„ุฅู†ุดุงุก ุฌุฏุงูˆู„ ุงู„ุชูˆุฌูŠู‡ ู„ูƒู„ ุนู‚ุฏุฉ. ุฌู„ุณุฉ
ู‡ุฐุง ุงู„ู†ูˆุน ู…ู† ุงู„ุชูˆุฌูŠู‡ ุนุจุงุฑุฉ ุนู† ุจุทุงู†ุฉ ูˆุงุญุฏุฉ:

Ipv4GlobalRoutingHelper::PopulateRoutingTables();

ุจุนุฏ ุฐู„ูƒ ู†ู‚ูˆู… ุจุชู…ูƒูŠู† ุชุชุจุน PCAP. ุงู„ุณุทุฑ ุงู„ุฃูˆู„ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ู„ุชู…ูƒูŠู† ุชุชุจุน PCAP ููŠ ู…ู„ู
ูŠุฌุจ ุฃู† ูŠูƒูˆู† ุงู„ู…ุณุงุนุฏ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ู…ุฃู„ูˆูู‹ุง ู„ูƒ ุงู„ุขู†. ุงู„ุณุทุฑ ุงู„ุซุงู†ูŠ ูŠู…ูƒู‘ู† PCAP
ุงู„ุชุชุจุน ููŠ ู…ุณุงุนุฏ CSMA ูˆู‡ู†ุงูƒ ู…ุนู„ู…ุฉ ุฅุถุงููŠุฉ ู„ู… ุชูˆุงุฌู‡ู‡ุง ุจุนุฏ.

pointToPoint.EnablePcapAll ("ุงู„ุซุงู†ูŠุฉ") ุŒ
csma.EnablePcap ("ุงู„ุซุงู†ูŠุฉ"ุŒ csmaDevices.Get (1)ุŒ ุตุญูŠุญ)ุ›

ุดุจูƒุฉ CSMA ู‡ูŠ ุดุจูƒุฉ ู…ุชุนุฏุฏุฉ ุงู„ู†ู‚ุงุท. ูˆู‡ุฐุง ูŠุนู†ูŠ ุฃู†ู‡ ูŠู…ูƒู† (ูˆู‡ู†ุงูƒ
ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ) ู†ู‚ุงุท ู†ู‡ุงูŠุฉ ู…ุชุนุฏุฏุฉ ุนู„ู‰ ูˆุณูŠุท ู…ุดุชุฑูƒ. ูƒู„ ู†ู‚ุทุฉ ู…ู† ู†ู‚ุงุท ุงู„ู†ู‡ุงูŠุฉ ู‡ุฐู‡ ู„ุฏูŠู‡ุง ุดุจูƒุฉ
ุงู„ุฌู‡ุงุฒ ุงู„ู…ุฑุชุจุท ุจู‡. ู‡ู†ุงูƒ ู†ูˆุนุงู† ู…ู† ุงู„ุจุฏุงุฆู„ ุงู„ุฃุณุงุณูŠุฉ ู„ุฌู…ุน ุงู„ุฃุซุฑ
ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† ู…ุซู„ ู‡ุฐู‡ ุงู„ุดุจูƒุฉ. ุฅุญุฏู‰ ุงู„ุทุฑู‚ ู‡ูŠ ุฅู†ุดุงุก ู…ู„ู ุชุชุจุน ู„ูƒู„ ุฌู‡ุงุฒ ุฅู†ุชุฑู†ุช
ูˆุชุฎุฒูŠู† ูู‚ุท ุงู„ุญุฒู… ุงู„ุชูŠ ูŠุตุฏุฑู‡ุง ุฃูˆ ูŠุณุชู‡ู„ูƒู‡ุง ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ ู‡ุฐุง. ุทุฑูŠู‚ ุงุฎุฑ
ู‡ูˆ ุงุฎุชูŠุงุฑ ุฃุญุฏ ุงู„ุฃุฌู‡ุฒุฉ ูˆูˆุถุนู‡ ููŠ ุงู„ูˆุถุน ุงู„ู…ุฎุชู„ุท. ู‡ุฐุง ุงู„ุฌู‡ุงุฒ ุงู„ูˆุญูŠุฏ ุฅุฐู†
"ูŠุดู…" ุงู„ุดุจูƒุฉ ู„ุฌู…ูŠุน ุงู„ุญุฒู… ูˆูŠุฎุฒู†ู‡ุง ููŠ ู…ู„ู pcap ูˆุงุญุฏ. ู‡ุฐู‡ ู‡ูŠ ุงู„ุทุฑูŠู‚ุฉ
com.tcpdumpุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ูŠุนู…ู„. ุชุฎุจุฑ ู‡ุฐู‡ ุงู„ู…ุนู„ู…ุฉ ุงู„ู†ู‡ุงุฆูŠุฉ ู…ุณุงุนุฏ CSMA ู…ุง ุฅุฐุง ูƒุงู† ุณูŠุชู… ุฐู„ูƒ ุฃู… ู„ุง
ุงู„ุชุฑุชูŠุจ ู„ุงู„ุชู‚ุงุท ุงู„ุญุฒู… ููŠ ุงู„ูˆุถุน ุงู„ู…ุฎุชู„ุท.

ููŠ ู‡ุฐุง ุงู„ู…ุซุงู„ุŒ ุณู†ู‚ูˆู… ุจุงุฎุชูŠุงุฑ ุฃุญุฏ ุงู„ุฃุฌู‡ุฒุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ุนู„ู‰ ุดุจูƒุฉ CSMA ูˆู†ุทู„ุจ ู…ู†ู‡ ุฐู„ูƒ
ู„ุฅุฌุฑุงุก ุดู… ุบูŠุฑ ุดุฑุนูŠ ู„ู„ุดุจูƒุฉุŒ ูˆุจุงู„ุชุงู„ูŠ ู…ุญุงูƒุงุฉ ู…ุง com.tcpdump ุณุชูุนู„.
ุฅุฐุง ูƒู†ุช ุชุณุชุฎุฏู… ุฌู‡ุงุฒ LinuxุŒ ูู‚ุฏ ุชูุนู„ ุดูŠุฆู‹ุง ู…ุซู„ com.tcpdump -i eth0 ู„ู„ุญุตูˆู„ ุนู„ู‰
ูŠุชุนู‚ุจ. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ู†ุญุฏุฏ ุงู„ุฌู‡ุงุฒ ุงู„ุฐูŠ ูŠุณุชุฎุฏู…ู‡ csmaDevices.Get(1)ุŒ ูˆุงู„ุฐูŠ ูŠุญุฏุฏ ู…ู„ู
ุงู„ุฌู‡ุงุฒ ุงู„ุฃูˆู„ ููŠ ุงู„ุญุงูˆูŠุฉ. ูŠุคุฏูŠ ุชุนูŠูŠู† ุงู„ู…ุนู„ู…ุฉ ุงู„ู†ู‡ุงุฆูŠุฉ ุฅู„ู‰ ุตุญูŠุญ ุฅู„ู‰ ุชู…ูƒูŠู† ุงู„ุงุฎุชู„ุงุท
ูŠู„ุชู‚ุท.

ูŠุชู… ุชุดุบูŠู„ ุงู„ู‚ุณู… ุงู„ุฃุฎูŠุฑ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ูˆุชู†ุธูŠู ุงู„ู…ุญุงูƒุงุฉ ุชู…ุงู…ู‹ุง ู…ุซู„ first.cc
ู…ุซุงู„.

ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ () ุ›
ุฌู‡ุงุฒ ู…ุญุงูƒุงุฉ :: ุชุฏู…ูŠุฑ () ุ›
0 ุงู„ุนูˆุฏุฉุ›
}

ู„ุชุดุบูŠู„ ู‡ุฐุง ุงู„ู…ุซุงู„ุŒ ุงู†ุณุฎ ู…ู„ู Second.cc ู…ุซุงู„ ุนู„ู‰ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ููŠ ุฏู„ูŠู„ ุงู„ุตูุฑ
ูˆุงุณุชุฎุฏู… waf ู„ู„ุจู†ุงุก ุชู…ุงู…ู‹ุง ูƒู…ุง ูุนู„ุช ู…ุน ู…ู„ู first.cc ู…ุซุงู„. ุฅุฐุง ูƒู†ุช ููŠ
ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ู„ู„ู…ุณุชูˆุฏุน ุงู„ุฐูŠ ูƒุชุจุชู‡ ู„ู„ุชูˆุŒ

ุฃู…ุซู„ุฉ $ cp/tutorial/ Second.cc Scratch/mySecond.cc
$ ./ูˆุงู

ุชุญุฐูŠุฑ: ู†ุญู† ู†ุณุชุฎุฏู… ุงู„ู…ู„ู Second.cc ูƒูˆุงุญุฏ ู…ู† ุงุฎุชุจุงุฑุงุช ุงู„ุงู†ุญุฏุงุฑ ู„ุฏูŠู†ุง ู„ู„ุชุญู‚ู‚ ู…ู† ุฃู†ู‡ ูŠุนู…ู„
ุชู…ุงู…ู‹ุง ูƒู…ุง ู†ุนุชู‚ุฏ ุฃู†ู‡ ูŠู†ุจุบูŠ ุฃู† ู†ุฌุนู„ ุชุฌุฑุจุชูƒ ุงู„ุชุนู„ูŠู…ูŠุฉ ุชุฌุฑุจุฉ ุฅูŠุฌุงุจูŠุฉ.
ูˆู‡ุฐุง ูŠุนู†ูŠ ุฃู† ุงู„ู…ู„ู ุงู„ู‚ุงุจู„ ู„ู„ุชู†ููŠุฐ ุงู„ู…ุณู…ู‰ ุซุงู† ู…ูˆุฌูˆุฏ ุจุงู„ูุนู„ ููŠ ุงู„ู…ุดุฑูˆุน. ู„ุชุฌู†ุจ ุฃูŠ
ู‡ู†ุงูƒ ุงุฑุชุจุงูƒ ุญูˆู„ ู…ุง ุชู‚ูˆู… ุจุชู†ููŠุฐู‡ุŒ ูŠุฑุฌู‰ ุฅุฌุฑุงุก ุฅุนุงุฏุฉ ุงู„ุชุณู…ูŠุฉ ุฅู„ู‰ mySecond.cc ุงู‚ุชุฑุญ
ููŠ ุงู„ุงุนู„ู‰.

ุฅุฐุง ูƒู†ุช ุชุชุงุจุน ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุฏูŠู†ูŠู‹ุง (ุฃู†ุช ูƒุฐู„ูƒุŒ ุฃู„ูŠุณ ูƒุฐู„ูƒ) ูู„ุง ูŠุฒุงู„ ู„ุฏูŠูƒ
ู…ุฌู…ูˆุนุฉ ุงู„ู…ุชุบูŠุฑุงุช NS_LOGุŒ ู„ุฐุง ู‚ู… ุจู…ุณุญ ู‡ุฐุง ุงู„ู…ุชุบูŠุฑ ูˆุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ.

$ ุชุตุฏูŠุฑ NS_LOG=
$ ./waf --ุชุดุบูŠู„ ุงู„ุตูุฑ/mySecond

ู†ุธุฑู‹ุง ู„ุฃู†ู†ุง ู‚ู…ู†ุง ุจุฅุนุฏุงุฏ ุชุทุจูŠู‚ุงุช ุตุฏู‰ UDP ู„ุชุณุฌูŠู„ ุงู„ุฏุฎูˆู„ ุชู…ุงู…ู‹ุง ูƒู…ุง ูุนู„ู†ุง first.ccุŒ ูˆุณูˆู
ุฑุคูŠุฉ ู…ุฎุฑุฌุงุช ู…ู…ุงุซู„ุฉ ุนู†ุฏ ุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ.

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.415 ุซุงู†ูŠุฉ)
ุชู… ุฅุฑุณุงู„ 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.2.4
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.1.1
ุชู… ุงุณุชู„ุงู… 1024 ุจุงูŠุช ู…ู† 10.1.2.4

ุฃุฐูƒุฑ ุฃู† ุงู„ุฑุณุงู„ุฉ ุงู„ุฃูˆู„ู‰ุŒ "ุฃุฑุณู„ุช 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.2.4"ุŒ ู‡ูˆ ุนู…ูŠู„ ุตุฏู‰ UDP
ุฅุฑุณุงู„ ุญุฒู…ุฉ ุฅู„ู‰ ุงู„ุฎุงุฏู…. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ุงู„ุฎุงุฏู… ู…ูˆุฌูˆุฏ ุนู„ู‰ ุดุจูƒุฉ ู…ุฎุชู„ูุฉ
(10.1.2.0). ุงู„ุฑุณุงู„ุฉ ุงู„ุซุงู†ูŠุฉ "ุชู… ุงู„ุงุณุชู„ุงู… 1024 ุจุงูŠุช ุชุจุฏุฃ ู…ู† 10.1.1.1"ุŒ ู…ู† ุตุฏู‰ UDP
ุงู„ุฎุงุฏู…ุŒ ุงู„ุฐูŠ ูŠุชู… ุฅู†ุดุงุคู‡ ุนู†ุฏู…ุง ูŠุชู„ู‚ู‰ ุญุฒู…ุฉ ุงู„ุตุฏู‰. ุงู„ุฑุณุงู„ุฉ ุงู„ุงุฎูŠุฑุฉ "ุชู… ุงู„ุงุณุชู„ุงู… 1024
ุจุงูŠุช ุชุจุฏุฃ ู…ู† 10.1.2.4"ุŒ ู…ู† ุนู…ูŠู„ ุงู„ุตุฏู‰ุŒ ู…ู…ุง ูŠุดูŠุฑ ุฅู„ู‰ ุฃู†ู‡ ุชู„ู‚ู‰ ุงู„ุตุฏู‰ ุงู„ุฎุงุต ุจู‡
ุงู„ุนูˆุฏุฉ ู…ู† ุงู„ุฎุงุฏู….

ุฅุฐุง ุฐู‡ุจุช ุงู„ุขู† ูˆุจุญุซุช ููŠ ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ุŒ ูุณุชุฌุฏ ุซู„ุงุซุฉ ู…ู„ูุงุช ุชุชุจุน:

second-0-0.pcap second-1-0.pcap second-2-0.pcap

ุฏุนูˆู†ุง ู†ุชูˆู‚ู ู„ุญุธุฉ ู„ู†ู†ุธุฑ ุฅู„ู‰ ุชุณู…ูŠุฉ ู‡ุฐู‡ ุงู„ู…ู„ูุงุช. ูƒู„ู‡ู… ู†ูุณ ุงู„ุดูƒู„
- - .pcap. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุงู„ู…ู„ู ุงู„ุฃูˆู„ ููŠ ุงู„ู‚ุงุฆู…ุฉ ู‡ูˆ
ุซุงู†ูŠุฉ-0-0.pcap ูˆู‡ูˆ ุชุชุจุน PCAP ู…ู† ุงู„ุนู‚ุฏุฉ ุตูุฑุŒ ุงู„ุฌู‡ุงุฒ ุตูุฑ. ู‡ุฐุง ุงู„
ุฌู‡ุงุฒ ุดุจูƒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุนู„ู‰ ุงู„ุนู‚ุฏุฉ ุตูุฑ. ุงู„ู…ู„ู ุซุงู†ูŠุฉ-1-0.pcap ู‡ูˆ ุชุชุจุน PCAP ู„
ุงู„ุฌู‡ุงุฒ ุตูุฑ ุนู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุฃูˆู„ู‰ุŒ ูˆู‡ูˆ ุฃูŠุถู‹ุง ุฌู‡ุงุฒ ุดุจูƒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉุ› ูˆุงู„ู…ู„ู ุซุงู†ูŠุฉ-2-0.pcap is
ุชุชุจุน PCAP ู„ู„ุฌู‡ุงุฒ ุตูุฑ ุนู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุซุงู†ูŠุฉ.

ุฅุฐุง ุฑุฌุนุช ุฅู„ู‰ ุงู„ุฑุณู… ุงู„ุชูˆุถูŠุญูŠ ู„ู„ุทูˆุจูˆู„ูˆุฌูŠุง ููŠ ุจุฏุงูŠุฉ ุงู„ู‚ุณู…ุŒ ูุณูˆู ุชุฑู‰
ุชู„ูƒ ุงู„ุนู‚ุฏุฉ ุตูุฑ ู‡ูŠ ุงู„ุนู‚ุฏุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุฃู‚ุตู‰ ูŠุณุงุฑ ุงู„ุงุฑุชุจุงุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูˆุงู„ุนู‚ุฏุฉ ุงู„ุฃูˆู„ู‰ ู‡ูŠ ุงู„ุนู‚ุฏุฉ
ูŠุญุชูˆูŠ ุนู„ู‰ ุฌู‡ุงุฒ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูˆุฌู‡ุงุฒ CSMA. ุณุชุฑู‰ ุฃู† ุงู„ุนู‚ุฏุฉ ุงู„ุซุงู†ูŠุฉ ู‡ูŠ
ุชู… ุงุฎุชูŠุงุฑ ุงู„ุนู‚ุฏุฉ "ุงู„ุฅุถุงููŠุฉ" ุงู„ุฃูˆู„ู‰ ุนู„ู‰ ุดุจูƒุฉ CSMA ูˆุฌู‡ุงุฒู‡ุง ุตูุฑ ูƒุฌู‡ุงุฒ
ู„ุงู„ุชู‚ุงุท ุฃุซุฑ ุงู„ูˆุถุน ุงู„ู…ุฎุชู„ุท.

ุงู„ุขู†ุŒ ุฏุนูˆู†ุง ู†ุชุจุน ุญุฒู…ุฉ ุงู„ุตุฏู‰ ู…ู† ุฎู„ุงู„ ุงู„ุดุจูƒุฉ ุงู„ุจูŠู†ูŠุฉ. ุฃูˆู„ุงู‹ุŒ ู‚ู… ุจุฅุฌุฑุงุก tcpdump ู„ู…ู„ู
ู…ู„ู ุงู„ุชุชุจุน ู„ู„ุนู‚ุฏุฉ ููŠ ุฃู‚ุตู‰ ุงู„ูŠุณุงุฑ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ --- ุงู„ุนู‚ุฏุฉ ุตูุฑ.

$ tcpdump -nn -tt -r Second-0-0.pcap

ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ู…ุญุชูˆูŠุงุช ู…ู„ู pcap ู…ุนุฑูˆุถุฉ:

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู Second-0-0.pcapุŒ PPP ู…ู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท (PPP)
2.000000 IP 10.1.1.1.49153 > 10.1.2.4.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.017607 IP 10.1.2.4.9 > 10.1.1.1.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ูŠุดูŠุฑ ุงู„ุณุทุฑ ุงู„ุฃูˆู„ ู…ู† ุงู„ุชูุฑูŠุบ ุฅู„ู‰ ุฃู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท ู‡ูˆ PPP (ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ) ูˆู‡ูˆ ู…ุง ู†ู‚ูˆู… ุจู‡
ูŠุชูˆู‚ุน. ุณุชุดุงู‡ุฏ ุจุนุฏ ุฐู„ูƒ ุญุฒู…ุฉ ุงู„ุตุฏู‰ ุงู„ุชูŠ ุชุชุฑูƒ ุงู„ุนู‚ุฏุฉ ุตูุฑ ุนุจุฑ ุงู„ุฌู‡ุงุฒ ุงู„ู…ุฑุชุจุท ุจู€ IP
ุงู„ุนู†ูˆุงู† 10.1.1.1 ู…ุชุฌู‡ ุฅู„ู‰ ุนู†ูˆุงู† IP 10.1.2.4 (ุนู‚ุฏุฉ CSMA ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุฃู‚ุตู‰ ุงู„ูŠู…ูŠู†). ู‡ุฐู‡ ุงู„ุญุฒู…ุฉ
ุณูŠุชุญุฑูƒ ุนุจุฑ ุงู„ุฑุงุจุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูˆุณูŠุชู… ุงุณุชู‚ุจุงู„ู‡ ุจูˆุงุณุทุฉ ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
ุงู„ุนู‚ุฏุฉ ุงู„ุฃูˆู„ู‰. ู„ู†ู„ู‚ูŠ ู†ุธุฑุฉ:

$ tcpdump -nn -tt -r Second-1-0.pcap

ูŠู†ุจุบูŠ ุฃู† ุชุดุงู‡ุฏ ุงู„ุขู† ู…ุฎุฑุฌุงุช ุชุชุจุน pcap ุนู„ู‰ ุงู„ุฌุงู†ุจ ุงู„ุขุฎุฑ ู…ู† ุงู„ุงุฑุชุจุงุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ:

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู Second-1-0.pcapุŒ PPP ู…ู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท (PPP)
2.003686 IP 10.1.1.1.49153 > 10.1.2.4.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.013921 IP 10.1.2.4.9 > 10.1.1.1.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ู†ุฑู‰ ู‡ู†ุง ุฃู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท ู‡ูˆ ุฃูŠุถู‹ุง PPP ูƒู…ุง ู†ุชูˆู‚ุน. ุชุฑู‰ ุงู„ุญุฒู…ุฉ ู…ู† IP
ุงู„ุนู†ูˆุงู† 10.1.1.1 (ุงู„ุฐูŠ ุชู… ุฅุฑุณุงู„ู‡ ุฎู„ุงู„ 2.000000 ุซุงู†ูŠุฉ) ูŠุชุฌู‡ ู†ุญูˆ ุนู†ูˆุงู† IP 10.1.2.4
ุชุธู‡ุฑ ุนู„ู‰ ู‡ุฐู‡ ุงู„ูˆุงุฌู‡ุฉ ุงู„ุขู†ุŒ ุฏุงุฎู„ูŠู‹ุง ุฅู„ู‰ ู‡ุฐู‡ ุงู„ุนู‚ุฏุฉุŒ ุณูŠุชู… ุฅุนุงุฏุฉ ุชูˆุฌูŠู‡ ุงู„ุญุฒู…ุฉ ุฅู„ูŠู‡ุง
ูˆุงุฌู‡ุฉ CSMA ูˆูŠุฌุจ ุฃู† ู†ุฑุงู‡ุง ุชู†ุจุซู‚ ุนู„ู‰ ู‡ุฐุง ุงู„ุฌู‡ุงุฒ ู…ุชุฌู‡ุฉ ุฅู„ู‰ ู†ู‡ุงูŠุชู‡ุง
ุงู„ูˆุฌู‡ุฉ.

ุชุฐูƒุฑ ุฃู†ู†ุง ุงุฎุชุฑู†ุง ุงู„ุนู‚ุฏุฉ 2 ู„ุชูƒูˆู† ุนู‚ุฏุฉ ุงู„ุดู… ุบูŠุฑ ุงู„ุดุฑุนูŠุฉ ู„ุดุจูƒุฉ CSMA
ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ Second-2-0.pcap ูˆู†ุฑู‰ ู…ุง ุฅุฐุง ูƒุงู† ู…ูˆุฌูˆุฏู‹ุง ู‡ู†ุงูƒ.

$ tcpdump -nn -tt -r Second-2-0.pcap

ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุงู„ุขู† ุงู„ุชูุฑูŠุบ ุบูŠุฑ ุงู„ุดุฑุนูŠ ู„ู„ุนู‚ุฏุฉ ุงู„ุซุงู†ูŠุฉุŒ ุงู„ุฌู‡ุงุฒ ุตูุฑ:

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู Second-2-0.pcapุŒ ู†ูˆุน ุงู„ุงุฑุชุจุงุท EN10MB (Ethernet)
2.007698 ARPุŒ ุทู„ุจ ู…ู† ู„ุฏูŠู‡ 10.1.2.4 (ff:ff:ff:ff:ff:ff) ุฃุฎุจุฑ 10.1.2.1ุŒ ุงู„ุทูˆู„ 50
2.007710 ARPุŒ ุงู„ุฑุฏ 10.1.2.4 ู…ูˆุฌูˆุฏ ููŠ 00:00:00:00:00:06ุŒ ุงู„ุทูˆู„ 50
2.007803 IP 10.1.1.1.49153 > 10.1.2.4.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.013815 ARPุŒ ุทู„ุจ ู…ู† ู„ุฏูŠู‡ 10.1.2.1 (ff:ff:ff:ff:ff:ff) ุฃุฎุจุฑ 10.1.2.4ุŒ ุงู„ุทูˆู„ 50
2.013828 ARPุŒ ุงู„ุฑุฏ 10.1.2.1 ู…ูˆุฌูˆุฏ ููŠ 00:00:00:00:00:03ุŒ ุงู„ุทูˆู„ 50
2.013921 IP 10.1.2.4.9 > 10.1.1.1.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ูƒู…ุง ุชุฑู‰ุŒ ุฃุตุจุญ ู†ูˆุน ุงู„ุฑุงุจุท ุงู„ุขู† "Ethernet". ูˆู…ุน ุฐู„ูƒุŒ ูู‚ุฏ ุธู‡ุฑ ุดูŠุก ุฌุฏูŠุฏ. ุงู„
ุงุญุชูŠุงุฌุงุช ุดุจูƒุฉ ุงู„ุญุงูู„ุงุช ARPุŒ ุจุฑูˆุชูˆูƒูˆู„ ุชุญู„ูŠู„ ุงู„ุนู†ูˆุงู†. ุนู‚ุฏุฉ ุฃุญุฏ ูŠุนุฑู ุฃู†ู‡ ูŠุญุชุงุฌ ุฅู„ู‰ ุฅุฑุณุงู„
ุงู„ุญุฒู…ุฉ ุฅู„ู‰ ุนู†ูˆุงู† IP 10.1.2.4ุŒ ู„ูƒู†ู‡ุง ู„ุง ุชุนุฑู ุนู†ูˆุงู† MAC ุงู„ุฎุงุต ุจุงู„ุฌู‡ุงุฒ
ุงู„ุนู‚ุฏุฉ ุงู„ู…ู‚ุงุจู„ุฉ. ูŠุชู… ุงู„ุจุซ ุนู„ู‰ ุดุจูƒุฉ CSMA (ff:ff:ff:ff:ff:ff) ูˆูŠุทู„ุจ ู…ู†ูƒ ุฐู„ูƒ
ุงู„ุฌู‡ุงุฒ ุงู„ุฐูŠ ูŠุญุชูˆูŠ ุนู„ู‰ ุนู†ูˆุงู† IP 10.1.2.4. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ุงู„ุนู‚ุฏุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุฃู‚ุตู‰ ุงู„ูŠู…ูŠู† ุชุฑุฏ ู‚ุงุฆู„ุฉู‹ ุฐู„ูƒ
ู…ูˆุฌูˆุฏ ุนู„ู‰ ุนู†ูˆุงู† MAC 00:00:00:00:00:06. ู„ุงุญุธ ุฃู† ุงู„ุนู‚ุฏุฉ ุงู„ุซุงู†ูŠุฉ ู„ูŠุณุช ู…ุชูˆุฑุทุฉ ุจุดูƒู„ ู…ุจุงุดุฑ ููŠ ู‡ุฐุง
ExchangeุŒ ูˆู„ูƒู†ู‡ ูŠุชุนุฑู ุนู„ู‰ ุงู„ุดุจูƒุฉ ูˆูŠุจู„ุบ ุนู† ูƒู„ ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุงู„ุชูŠ ูŠุฑุงู‡ุง.

ูˆู†ุฑู‰ ู‡ุฐุง ุงู„ุชุจุงุฏู„ ููŠ ุงู„ุณุทูˆุฑ ุงู„ุชุงู„ูŠุฉุŒ

2.007698 ARPุŒ ุทู„ุจ ู…ู† ู„ุฏูŠู‡ 10.1.2.4 (ff:ff:ff:ff:ff:ff) ุฃุฎุจุฑ 10.1.2.1ุŒ ุงู„ุทูˆู„ 50
2.007710 ARPุŒ ุงู„ุฑุฏ 10.1.2.4 ู…ูˆุฌูˆุฏ ููŠ 00:00:00:00:00:06ุŒ ุงู„ุทูˆู„ 50

ุซู… ุชุชู‚ุฏู… ุงู„ุนู‚ุฏุฉ ุงู„ุฃูˆู„ู‰ุŒ ุงู„ุฌู‡ุงุฒ ุงู„ุฃูˆู„ ูˆูŠุฑุณู„ ุญุฒู…ุฉ ุงู„ุตุฏู‰ ุฅู„ู‰ ุฎุงุฏู… ุตุฏู‰ UDP ุนู„ู‰
ุนู†ูˆุงู† IP 10.1.2.4.

2.007803 IP 10.1.1.1.49153 > 10.1.2.4.9: UDPุŒ ุงู„ุทูˆู„ 1024

ูŠุชู„ู‚ู‰ ุงู„ุฎุงุฏู… ุทู„ุจ ุงู„ุงุฑุชุฏุงุฏ ูˆูŠู‚ู„ุจ ุงู„ุญุฒู…ุฉ ู…ุญุงูˆู„ู‹ุง ุฅุฑุณุงู„ู‡ุง ู…ุฑุฉ ุฃุฎุฑู‰ ุฅู„ูŠู‡
ุงู„ู…ุตุฏุฑ. ูŠุนุฑู ุงู„ุฎุงุฏู… ุฃู† ู‡ุฐุง ุงู„ุนู†ูˆุงู† ู…ูˆุฌูˆุฏ ุนู„ู‰ ุดุจูƒุฉ ุฃุฎุฑู‰ ูŠุตู„ ุนุจุฑู‡ุง
ุนู†ูˆุงู† IP 10.1.2.1. ูˆุฐู„ูƒ ู„ุฃู†ู†ุง ู‚ู…ู†ุง ุจุชู‡ูŠุฆุฉ ุงู„ุชูˆุฌูŠู‡ ุงู„ุนุงู„ู…ูŠ ูˆู‚ุฏ ุงูƒุชุดู ูƒู„ ุดูŠุก
ู…ู† ู‡ุฐุง ุจุงู„ู†ุณุจุฉ ู„ู†ุง. ู„ูƒู† ุนู‚ุฏุฉ ุฎุงุฏู… ุงู„ุตุฏู‰ ู„ุง ุชุนุฑู ุนู†ูˆุงู† MAC ุงู„ุฃูˆู„
ุนู‚ุฏุฉ CSMAุŒ ู„ุฐุง ูŠุฌุจ ุนู„ูŠู‡ุง ุงุณุชุฎุฏุงู… ARP ู„ู‡ุง ุชู…ุงู…ู‹ุง ูƒู…ุง ูƒุงู† ุนู„ู‰ ุนู‚ุฏุฉ CSMA ุงู„ุฃูˆู„ู‰ ุฃู† ุชูุนู„.

2.013815 ARPุŒ ุทู„ุจ ู…ู† ู„ุฏูŠู‡ 10.1.2.1 (ff:ff:ff:ff:ff:ff) ุฃุฎุจุฑ 10.1.2.4ุŒ ุงู„ุทูˆู„ 50
2.013828 ARPุŒ ุงู„ุฑุฏ 10.1.2.1 ู…ูˆุฌูˆุฏ ููŠ 00:00:00:00:00:03ุŒ ุงู„ุทูˆู„ 50

ุซู… ูŠุฑุณู„ ุงู„ุฎุงุฏู… ุงู„ุตุฏู‰ ู…ุฑุฉ ุฃุฎุฑู‰ ุฅู„ู‰ ุนู‚ุฏุฉ ุฅุนุงุฏุฉ ุงู„ุชูˆุฌูŠู‡.

2.013921 IP 10.1.2.4.9 > 10.1.1.1.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ุฅุฐุง ู†ุธุฑู†ุง ุฅู„ู‰ ุงู„ูˆุฑุงุก ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุฃู‚ุตู‰ ุงู„ูŠู…ูŠู† ู„ู„ุงุฑุชุจุงุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉุŒ

$ tcpdump -nn -tt -r Second-1-0.pcap

ูŠู…ูƒู†ูƒ ุงู„ุขู† ุฑุคูŠุฉ ุงู„ุญุฒู…ุฉ ุงู„ุชูŠ ุชู… ุตุฏู‰ู‡ุง ุชุนูˆุฏ ุฅู„ู‰ ุงู„ุงุฑุชุจุงุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุจุงุนุชุจุงุฑู‡ุง ุงู„ุฃุฎูŠุฑุฉ
ุฎุท ุชูุฑูŠุบ ุงู„ุชุชุจุน.

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู Second-1-0.pcapุŒ PPP ู…ู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท (PPP)
2.003686 IP 10.1.1.1.49153 > 10.1.2.4.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.013921 IP 10.1.2.4.9 > 10.1.1.1.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ูˆุฃุฎูŠุฑู‹ุงุŒ ูŠู…ูƒู†ูƒ ุงู„ุฑุฌูˆุน ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุชูŠ ุฃู†ุดุฃุช ุงู„ุตุฏู‰

$ tcpdump -nn -tt -r Second-0-0.pcap

ูˆู„ุงุญุธ ุฃู† ุงู„ุญุฒู…ุฉ ุงู„ุชูŠ ุชู… ุตุฏู‰ู‡ุง ุชุนูˆุฏ ุฅู„ู‰ ุงู„ู…ุตุฏุฑ ููŠ 2.007602 ุซุงู†ูŠุฉุŒ

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู Second-0-0.pcapุŒ PPP ู…ู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท (PPP)
2.000000 IP 10.1.1.1.49153 > 10.1.2.4.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.017607 IP 10.1.2.4.9 > 10.1.1.1.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ุฃุฎูŠุฑู‹ุงุŒ ุชุฐูƒุฑ ุฃู†ู†ุง ุฃุถูู†ุง ุงู„ู‚ุฏุฑุฉ ุนู„ู‰ ุงู„ุชุญูƒู… ููŠ ุนุฏุฏ ุฃุฌู‡ุฒุฉ CSMA ููŠ
ุงู„ู…ุญุงูƒุงุฉ ุจูˆุงุณุทุฉ ูˆุณูŠุทุฉ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ. ูŠู…ูƒู†ูƒ ุชุบูŠูŠุฑ ู‡ุฐู‡ ุงู„ูˆุณูŠุทุฉ ุจู†ูุณ ุทุฑูŠู‚ุฉ ุชุบูŠูŠุฑ ู…ุชู‰
ู†ุธุฑู†ุง ููŠ ุชุบูŠูŠุฑ ุนุฏุฏ ุงู„ุญุฒู… ุงู„ุชูŠ ุชู… ุชูƒุฑุงุฑู‡ุง ููŠ ู…ู„ู first.cc ู…ุซุงู„. ุญุงูˆู„ ุงู„ุฌุฑูŠ
ุงู„ุจุฑู†ุงู…ุฌ ู…ุน ุถุจุท ุนุฏุฏ ุงู„ุฃุฌู‡ุฒุฉ "ุงู„ุฅุถุงููŠุฉ" ุนู„ู‰ ุฃุฑุจุนุฉ:

$ ./waf --run "scratch/mysec --nCsma=4"

ูŠุฌุจ ุฃู† ุชุฑู‰ ุงู„ุขู†ุŒ

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.405 ุซุงู†ูŠุฉ)
ููŠ ุงู„ูˆู‚ุช 2sุŒ ุฃุฑุณู„ ุงู„ุนู…ูŠู„ 1024 ุจุงูŠุช ุฅู„ู‰ ุงู„ู…ู†ูุฐ 10.1.2.5 9
ููŠ ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจุŒ ุชู„ู‚ู‰ ุฎุงุฏู… 2.0118s 1024 ุจุงูŠุช ู…ู† ุงู„ู…ู†ูุฐ 10.1.1.1 ุฑู‚ู… 49153
ููŠ ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจุŒ ุฃุฑุณู„ ุฎุงุฏู… 2.0118s 1024 ุจุงูŠุช ุฅู„ู‰ ุงู„ู…ู†ูุฐ 10.1.1.1 ุฑู‚ู… 49153
ููŠ ุงู„ูˆู‚ุช 2.02461 ุชู„ู‚ู‰ ุงู„ุนู…ูŠู„ 1024 ุจุงูŠุช ู…ู† ุงู„ู…ู†ูุฐ 10.1.2.5 9

ู„ุงุญุธ ุฃู†ู‡ ุชู… ุงู„ุขู† ู†ู‚ู„ ุฎุงุฏู… ุงู„ุตุฏู‰ ุฅู„ู‰ ุขุฎุฑ ุนู‚ุฏ CSMAุŒ ูˆู‡ูŠ
10.1.2.5 ุจุฏู„ุงู‹ ู…ู† ุงู„ุญุงู„ุฉ ุงู„ุงูุชุฑุงุถูŠุฉุŒ 10.1.2.4.

ู…ู† ุงู„ู…ู…ูƒู† ุฃู„ุง ุชูƒูˆู† ุฑุงุถูŠู‹ุง ุนู† ู…ู„ู ุงู„ุชุชุจุน ุงู„ุฐูŠ ุฃู†ุดุฃู‡ ุฃุญุฏ ุงู„ู…ุงุฑุฉ
ุดุจูƒุฉ CSMA ู‚ุฏ ุชุฑุบุจ ุญู‚ู‹ุง ููŠ ุงู„ุญุตูˆู„ ุนู„ู‰ ุชุชุจุน ู…ู† ุฌู‡ุงุฒ ูˆุงุญุฏุŒ ูˆู‚ุฏ ู„ุง ุชุฑุบุจ ุจุฐู„ูƒ
ุชูƒูˆู† ู…ู‡ุชู…ุฉ ุจุฃูŠ ุญุฑูƒุฉ ู…ุฑูˆุฑ ุฃุฎุฑู‰ ุนู„ู‰ ุงู„ุดุจูƒุฉ. ูŠู…ูƒู†ูƒ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ ุจุณู‡ูˆู„ุฉ ุฅู„ู‰ ุญุฏ ู…ุง.

ุฏุนู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ ุงู„ุตูุฑ/my Second.cc ูˆุฃุถู ู‡ุฐุง ุงู„ูƒูˆุฏ ุงู„ุฐูŠ ูŠู…ูƒู†ู†ุง ู…ู† ุฃู† ู†ูƒูˆู† ุฃูƒุซุฑ
ู…ุญุฏุฏ. NS-3 ูŠูˆูุฑ ุงู„ู…ุณุงุนุฏูˆู† ุทุฑู‚ู‹ุง ุชุฃุฎุฐ ุฑู‚ู… ุงู„ุนู‚ุฏุฉ ูˆุฑู‚ู… ุงู„ุฌู‡ุงุฒ
ุญุฏูˆุฏ. ุงู„ู…ุถูŠ ู‚ุฏู…ุง ูˆุงุณุชุจุฏุงู„ ุชู…ูƒูŠู†Pcap ุงู„ู…ูƒุงู„ู…ุงุช ู…ุน ุงู„ู…ูƒุงู„ู…ุงุช ุฃุฏู†ุงู‡.

pointToPoint.EnablePcap ("second"ุŒ p2pNodes.Get (0) -> GetId ()ุŒ 0) ุ›
csma.EnablePcap ("ุงู„ุซุงู†ูŠุฉ"ุŒ csmaNodes.Get (nCsma)->GetId ()ุŒ 0ุŒ false)ุ›
csma.EnablePcap ("ุงู„ุซุงู†ูŠุฉ"ุŒ csmaNodes.Get (nCsma-1)->GetId ()ุŒ 0ุŒ false)ุ›

ู†ุญู† ู†ุนู„ู… ุฃู†ู†ุง ู†ุฑูŠุฏ ุฅู†ุดุงุก ู…ู„ู pcap ุจุงู„ุงุณู… ุงู„ุฃุณุงุณูŠ "ุงู„ุซุงู†ูŠ" ูˆู†ุนู„ู… ุฃูŠุถู‹ุง
ุฃู† ุงู„ุฌู‡ุงุฒ ู…ุญู„ ุงู„ุงู‡ุชู…ุงู… ููŠ ูƒู„ุชุง ุงู„ุญุงู„ุชูŠู† ุณูŠูƒูˆู† ุตูุฑู‹ุงุŒ ู„ุฐุง ูุฅู† ู‡ุฐู‡ ุงู„ู…ุนู„ู…ุงุช ู„ูŠุณุช ูƒุฐู„ูƒ
ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู… ุญู‚ุง.

ู…ู† ุฃุฌู„ ุงู„ุญุตูˆู„ ุนู„ู‰ ุฑู‚ู… ุงู„ุนู‚ุฏุฉุŒ ู„ุฏูŠูƒ ุฎูŠุงุฑุงู†: ุฃูˆู„ุงุŒ ูŠุชู… ุชุฑู‚ูŠู… ุงู„ุนู‚ุฏ ููŠ
ุฒูŠุงุฏุฉ ุงู„ู…ูˆุถุฉ ุจุดูƒู„ ุฑุชูŠุจ ุจุฏุกู‹ุง ู…ู† ุงู„ุตูุฑ ุจุงู„ุชุฑุชูŠุจ ุงู„ุฐูŠ ู‚ู…ุช ุจุฅู†ุดุงุฆู‡
ู‡ู…. ุฅุญุฏู‰ ุงู„ุทุฑู‚ ู„ู„ุญุตูˆู„ ุนู„ู‰ ุฑู‚ู… ุงู„ุนู‚ุฏุฉ ู‡ูŠ ู…ุนุฑูุฉ ู‡ุฐุง ุงู„ุฑู‚ู… "ูŠุฏูˆูŠู‹ุง".
ุงู„ุชููƒูŠุฑ ููŠ ุชุฑุชูŠุจ ุฅู†ุดุงุก ุงู„ุนู‚ุฏุฉ. ุฅุฐุง ุฃู„ู‚ูŠุช ู†ุธุฑุฉ ุนู„ู‰ ุทูˆุจูˆู„ูˆุฌูŠุง ุงู„ุดุจูƒุฉ
ููŠ ุงู„ุฑุณู… ุงู„ุชูˆุถูŠุญูŠ ุงู„ู…ูˆุฌูˆุฏ ููŠ ุจุฏุงูŠุฉ ุงู„ู…ู„ูุŒ ู‚ู…ู†ุง ุจู‡ุฐุง ู…ู† ุฃุฌู„ูƒ ูˆูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุฃู† ู…ู„ู
ุขุฎุฑ ุนู‚ุฏุฉ CSMA ุณุชูƒูˆู† ุฑู‚ู… ุงู„ุนู‚ุฏุฉ nCsma + 1. ูŠู…ูƒู† ุฃู† ูŠุตุจุญ ู‡ุฐุง ุงู„ู†ู‡ุฌ ู…ุฒุนุฌู‹ุง
ู…ู† ุงู„ุตุนุจ ููŠ ุนู…ู„ูŠุงุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ุฃูƒุจุฑ.

ูˆุงู„ุทุฑูŠู‚ุฉ ุงู„ุจุฏูŠู„ุฉ ุงู„ุชูŠ ู†ุณุชุฎุฏู…ู‡ุง ู‡ู†ุง ู‡ูŠ ุฃู† ู†ุฏุฑูƒ ุฃู† NodeContainers ุชุญุชูˆูŠ ุนู„ู‰
ู…ุคุดุฑุงุช ู„ NS-3 ุงู„ุนู‚ุฏุฉ ุฃุดูŠุงุก. ุงู„ ุงู„ุนู‚ุฏุฉ ุงู„ูƒุงุฆู† ู„ุฏูŠู‡ ุทุฑูŠู‚ุฉ ุชุณู…ู‰ ู…ุนุฑู_ุฌูŠุช ูˆุงู„ุชูŠ ุณูˆู
ู‚ู… ุจุฅุฑุฌุงุน ู…ุนุฑู ุชู„ูƒ ุงู„ุนู‚ุฏุฉุŒ ูˆู‡ูˆ ุฑู‚ู… ุงู„ุนู‚ุฏุฉ ุงู„ุฐูŠ ู†ุณุนู‰ ุฅู„ูŠู‡. ุฏุนู†ุง ู†ุฐู‡ุจ ู„ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰
ุฏูˆูƒุณูŠุฌูŠู† ู„ ุงู„ุนู‚ุฏุฉ ูˆุชุญุฏูŠุฏ ู…ูˆู‚ุน ู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉุŒ ูˆุงู„ุชูŠ ู‡ูŠ ุฃุจุนุฏ ู…ู† ุฐู„ูƒ ููŠ NS-3 ุงู„ูƒูˆุฏ ุงู„ุฃุณุงุณูŠ
ู…ู…ุง ุฑุฃูŠู†ุงู‡ ุญุชู‰ ุงู„ุขู†ุ› ูˆู„ูƒู† ููŠ ุจุนุถ ุงู„ุฃุญูŠุงู† ูŠุชุนูŠู† ุนู„ูŠูƒ ุงู„ุจุญุซ ุจุฌุฏ ุนู† ุงู„ุฃุดูŠุงุก ุงู„ู…ููŠุฏุฉ.

ุงู†ุชู‚ู„ ุฅู„ู‰ ูˆุซุงุฆู‚ Doxygen ุงู„ุฎุงุตุฉ ุจุฅุตุฏุงุฑูƒ (ุชุฐูƒุฑ ุฃู†ู‡ ูŠู…ูƒู†ูƒ ุงู„ุนุซูˆุฑ ุนู„ูŠู‡ุง ุนู„ู‰
ู…ูˆู‚ุน ุงู„ู…ุดุฑูˆุน ุนู„ู‰ ุดุจูƒุฉ ุงู„ุฅู†ุชุฑู†ุช). ูŠู…ูƒู†ูƒ ุงู„ูˆุตูˆู„ ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุชูˆุซูŠู‚ ู…ู† ุฎู„ุงู„ ุงู„ู†ุธุฑ ููŠ
ุนู„ุงู…ุฉ ุงู„ุชุจูˆูŠุจ "ุงู„ูุตูˆู„" ุซู… ู‚ู… ุจุงู„ุชู…ุฑูŠุฑ ู„ุฃุณูู„ ููŠ "ู‚ุงุฆู…ุฉ ุงู„ูุฆุงุช" ุญุชู‰ ุชุฌุฏู‡ุง ns3 :: ุนู‚ุฏุฉ. ุญุฏุฏ
ns3 :: ุนู‚ุฏุฉ ูˆุณูŠุชู… ู†ู‚ู„ูƒ ุฅู„ู‰ ุงู„ูˆุซุงุฆู‚ ุงู„ุฎุงุตุฉ ุจู€ ุงู„ุนู‚ุฏุฉ ูุตู„. ุฅุฐุง ูƒู†ุช ุงู„ุขู†
ู‚ู… ุจุงู„ุชู…ุฑูŠุฑ ู„ุฃุณูู„ ุฅู„ู‰ ู…ุนุฑู_ุฌูŠุช ุงู„ุทุฑูŠู‚ุฉ ูˆุงุฎุชูŠุงุฑู‡ุงุŒ ุณูŠุชู… ู†ู‚ู„ูƒ ุฅู„ู‰ ุงู„ุชูุงุตูŠู„
ูˆุซุงุฆู‚ ู„ู„ุทุฑูŠู‚ุฉ. ุจุงุณุชุฎุฏุงู… ู…ุนุฑู_ุฌูŠุช ูŠู…ูƒู† ุฃู† ุชุญุฏุฏ ุงู„ุทุฑูŠู‚ุฉ ุฃุฑู‚ุงู… ุงู„ุนู‚ุฏุฉ
ุฃุณู‡ู„ ุจูƒุซูŠุฑ ููŠ ุงู„ุทุจูˆู„ูˆุฌูŠุง ุงู„ู…ุนู‚ุฏุฉ.

ู„ู†ู‚ู… ุจู…ุณุญ ู…ู„ูุงุช ุงู„ุชุชุจุน ุงู„ู‚ุฏูŠู…ุฉ ู…ู† ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ู„ุชุฌู†ุจ ุญุฏูˆุซ ุฃูŠ ุงุฑุชุจุงูƒ ุจุดุฃู†ู‡ุง
ู…ุง ุงู„ุฐูŠ ูŠุฌุฑูŠุŒ

$ rm *.pcap
$ rm *.tr

ุฅุฐุง ู‚ู…ุช ุจุฅู†ุดุงุก ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุงู„ุฌุฏูŠุฏ ูˆุชุดุบูŠู„ ุฅุนุฏุงุฏ ุงู„ู…ุญุงูƒุงุฉ nCsma ุฅู„ู‰ ุดู†ูˆู…ูƒุณุŒ

$ ./waf --run "scratch/mysec --nCsma=100"

ุณุชุฑู‰ ุงู„ุฅุฎุฑุงุฌ ุงู„ุชุงู„ูŠ:

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.407 ุซุงู†ูŠุฉ)
ููŠ ุงู„ูˆู‚ุช 2sุŒ ุฃุฑุณู„ ุงู„ุนู…ูŠู„ 1024 ุจุงูŠุช ุฅู„ู‰ ุงู„ู…ู†ูุฐ 10.1.2.101 9
ููŠ ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจุŒ ุชู„ู‚ู‰ ุฎุงุฏู… 2.0068s 1024 ุจุงูŠุช ู…ู† ุงู„ู…ู†ูุฐ 10.1.1.1 ุฑู‚ู… 49153
ููŠ ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจุŒ ุฃุฑุณู„ ุฎุงุฏู… 2.0068s 1024 ุจุงูŠุช ุฅู„ู‰ ุงู„ู…ู†ูุฐ 10.1.1.1 ุฑู‚ู… 49153
ููŠ ุงู„ูˆู‚ุช 2.01761 ุชู„ู‚ู‰ ุงู„ุนู…ูŠู„ 1024 ุจุงูŠุช ู…ู† ุงู„ู…ู†ูุฐ 10.1.2.101 9

ู„ุงุญุธ ุฃู† ุฎุงุฏู… ุงู„ุตุฏู‰ ู…ูˆุฌูˆุฏ ุงู„ุขู† ุนู„ู‰ 10.1.2.101 ูˆู‡ูˆ ู…ุง ูŠุชูˆุงูู‚ ู…ุน ูˆุฌูˆุฏ 100
ุนู‚ุฏ CSMA "ุงู„ุฅุถุงููŠุฉ" ู…ุน ุฎุงุฏู… ุงู„ุตุฏู‰ ููŠ ุงู„ุนู‚ุฏุฉ ุงู„ุฃุฎูŠุฑุฉ. ุฅุฐุง ู‚ู…ุช ุจุฅุฏุฑุงุฌ ู…ู„ูุงุช pcap ููŠ
ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ุงู„ุฐูŠ ุณุชุฑุงู‡ุŒ

second-0-0.pcap second-100-0.pcap second-101-0.pcap

ู…ู„ู ุงู„ุชุชุจุน ุซุงู†ูŠุฉ-0-0.pcap ู‡ูˆ ุฌู‡ุงุฒ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ "ุฃู‚ุตู‰ ุงู„ูŠุณุงุฑ" ูˆู‡ูˆ ุงู„ุตุฏู‰
ู…ุตุฏุฑ ุงู„ุญุฒู…ุฉ. ุงู„ู…ู„ู ุซุงู†ูŠุฉ-101-0.pcap ูŠุชูˆุงูู‚ ู…ุน ุฌู‡ุงุฒ CSMA ุงู„ู…ูˆุฌูˆุฏ ููŠ ุฃู‚ุตู‰ ุงู„ูŠู…ูŠู†
ู‡ูˆ ุงู„ู…ูƒุงู† ุงู„ุฐูŠ ูŠูˆุฌุฏ ููŠู‡ ุฎุงุฏู… ุงู„ุตุฏู‰. ุฑุจู…ุง ู„ุงุญุธุช ุฃู† ุงู„ู…ุนู„ู…ุฉ ุงู„ู†ู‡ุงุฆูŠุฉ ุนู„ู‰
ูƒุงู† ุงู„ุงุชุตุงู„ ู„ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ุนู‚ุฏุฉ ุฎุงุฏู… ุงู„ุตุฏู‰ ุฎุทุฃ. ูˆู‡ุฐุง ูŠุนู†ูŠ ุฃู† ุงู„ุชุชุจุน
ุงู„ู…ุชุฌู…ุนุฉ ุนู„ู‰ ุชู„ูƒ ุงู„ุนู‚ุฏุฉ ูƒุงู†ุช ููŠ ูˆุถุน ุบูŠุฑ ู…ุฎุชู„ุท.

ู„ุชูˆุถูŠุญ ุงู„ูุฑู‚ ุจูŠู† ุงู„ุขุซุงุฑ ุบูŠุฑ ุงู„ู…ุฎุชู„ุทุฉ ูˆุบูŠุฑ ุงู„ู…ุฎุชู„ุทุฉุŒ ู†ุญู† ุฃูŠุถุง
ุทู„ุจ ุชุชุจุนู‹ุง ุบูŠุฑ ู…ุฎุชู„ุท ู„ู„ุนู‚ุฏุฉ ุงู„ุชุงู„ูŠุฉ ู„ู„ุฃุฎูŠุฑุฉ. ุงู„ู…ุถูŠ ู‚ุฏู…ุง ูˆู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰
ู‡ูŠู‡ com.tcpdump ู„ู€ ุซุงู†ูŠุฉ-100-0.pcap.

$ tcpdump -nn -tt -r Second-100-0.pcap

ูŠู…ูƒู†ูƒ ุงู„ุขู† ุฃู† ุชุฑู‰ ุฃู† ุงู„ุนู‚ุฏุฉ 100 ู‡ูŠ ุจุงู„ูุนู„ ู…ุชูุฑุฌ ููŠ ุชุจุงุฏู„ ุงู„ุตุฏู‰. ุงู„ูˆุญูŠุฏ
ุงู„ุญุฒู… ุงู„ุชูŠ ูŠุชู„ู‚ุงู‡ุง ู‡ูŠ ุทู„ุจุงุช ARP ุงู„ุชูŠ ูŠุชู… ุจุซู‡ุง ุฅู„ู‰ CSMA ุจุฃูƒู…ู„ู‡
ุดุจูƒุฉ.

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู Second-100-0.pcapุŒ ู†ูˆุน ุงู„ุงุฑุชุจุงุท EN10MB (Ethernet)
2.006698 ARPุŒ ุทู„ุจ ู…ู† ู„ุฏูŠู‡ 10.1.2.101 (ff:ff:ff:ff:ff:ff) ุฃุฎุจุฑ 10.1.2.1ุŒ ุงู„ุทูˆู„ 50
2.013815 ARPุŒ ุทู„ุจ ู…ู† ู„ุฏูŠู‡ 10.1.2.1 (ff:ff:ff:ff:ff:ff) ุฃุฎุจุฑ 10.1.2.101ุŒ ุงู„ุทูˆู„ 50

ุงู„ุขู† ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ com.tcpdump ู„ู€ ุซุงู†ูŠุฉ-101-0.pcap.

$ tcpdump -nn -tt -r Second-101-0.pcap

ูŠู…ูƒู†ูƒ ุงู„ุขู† ุฃู† ุชุฑู‰ ุฃู† ุงู„ุนู‚ุฏุฉ 101 ู‡ูŠ ุจุงู„ูุนู„ ุงู„ู…ุดุงุฑูƒุฉ ููŠ ุชุจุงุฏู„ ุงู„ุตุฏู‰.

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู Second-101-0.pcapุŒ ู†ูˆุน ุงู„ุงุฑุชุจุงุท EN10MB (Ethernet)
2.006698 ARPุŒ ุทู„ุจ ู…ู† ู„ุฏูŠู‡ 10.1.2.101 (ff:ff:ff:ff:ff:ff) ุฃุฎุจุฑ 10.1.2.1ุŒ ุงู„ุทูˆู„ 50
2.006698 ARPุŒ ุงู„ุฑุฏ 10.1.2.101 ู…ูˆุฌูˆุฏ ููŠ 00:00:00:00:00:67ุŒ ุงู„ุทูˆู„ 50
2.006803 IP 10.1.1.1.49153 > 10.1.2.101.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.013803 ARPุŒ ุทู„ุจ ู…ู† ู„ุฏูŠู‡ 10.1.2.1 (ff:ff:ff:ff:ff:ff) ุฃุฎุจุฑ 10.1.2.101ุŒ ุงู„ุทูˆู„ 50
2.013828 ARPุŒ ุงู„ุฑุฏ 10.1.2.1 ู…ูˆุฌูˆุฏ ููŠ 00:00:00:00:00:03ุŒ ุงู„ุทูˆู„ 50
2.013828 IP 10.1.2.101.9 > 10.1.1.1.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ุนุงุฑุถุงุช ุงุฒูŠุงุกุŒ ุงู„ุณู…ุงุช ูˆุงู‚ุน
ู‡ุฐุง ู…ูƒุงู† ู…ู†ุงุณุจ ู„ู„ู‚ูŠุงู… ุจุฑุญู„ุฉ ุตุบูŠุฑุฉ ูˆุชูˆุถูŠุญ ู†ู‚ุทุฉ ู…ู‡ู…ุฉ. ู…ู…ูƒู†
ุฃูˆ ู‚ุฏ ู„ุง ูŠูƒูˆู† ุฐู„ูƒ ูˆุงุถุญู‹ุง ุจุงู„ู†ุณุจุฉ ู„ูƒุŒ ูˆู„ูƒู† ุนู†ุฏู…ุง ูŠุณุชุฎุฏู… ุฃุญุฏ ุงู„ู…ุญุงูƒุงุฉุŒ ูู…ู† ุงู„ู…ู‡ู… ุฃู† ุชูุนู„ ุฐู„ูƒ
ูู‡ู… ุจุงู„ุถุจุท ู…ุง ูŠุชู… ุชุตู…ูŠู…ู‡ ูˆู…ุง ู‡ูˆ ู„ูŠุณ ูƒุฐู„ูƒ. ูˆู…ู† ุงู„ู…ุบุฑูŠุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุฃู†
ููƒุฑ ููŠ ุฃุฌู‡ุฒุฉ ูˆู‚ู†ูˆุงุช CSMA ุงู„ู…ุณุชุฎุฏู…ุฉ ููŠ ุงู„ู‚ุณู… ุงู„ุณุงุจู‚ ูƒู…ุง ู„ูˆ ูƒุงู†ุช ุญู‚ูŠู‚ูŠุฉ
ุฃุฌู‡ุฒุฉ ุฅูŠุซุฑู†ุชุ› ูˆุชูˆู‚ุน ุฃู† ุชุนูƒุณ ู†ุชูŠุฌุฉ ุงู„ู…ุญุงูƒุงุฉ ุจุดูƒู„ ู…ุจุงุดุฑ ู…ุง ุณูŠุญุฏุซ
ููŠ ุฅูŠุซุฑู†ุช ุญู‚ูŠู‚ูŠ. ู„ูŠุณุช ู‡ุฐู‡ ู‡ูŠ ุงู„ู‚ุถูŠุฉ.

ุงู„ู†ู…ูˆุฐุฌุŒ ุจุญูƒู… ุชุนุฑูŠูู‡ุŒ ู‡ูˆ ุชุฌุฑูŠุฏ ู„ู„ูˆุงู‚ุน. ุฅู†ู‡ุง ุงู„ู…ุณุคูˆู„ูŠุฉ ููŠ ู†ู‡ุงูŠุฉ ุงู„ู…ุทุงู
ู„ู…ุคู„ู ู†ุต ุงู„ู…ุญุงูƒุงุฉ ู„ุชุญุฏูŠุฏ ู…ุง ูŠุณู…ู‰ ุจู€ "ู†ุทุงู‚ ุงู„ุฏู‚ุฉ" ูˆ"ุงู„ู…ุฌุงู„
ุฅู…ูƒุงู†ูŠุฉ ุชุทุจูŠู‚" ุงู„ู…ุญุงูƒุงุฉ ูƒูƒู„ุŒ ูˆุจุงู„ุชุงู„ูŠ ุงู„ุฃุฌุฒุงุก ุงู„ู…ูƒูˆู†ุฉ ู„ู‡ุง.

ููŠ ุจุนุถ ุงู„ุญุงู„ุงุช ู…ุซู„ CsmaุŒ ู‚ุฏ ูŠูƒูˆู† ู…ู† ุงู„ุณู‡ู„ ุฅู„ู‰ ุญุฏ ู…ุง ุชุญุฏูŠุฏ ู…ุง ู‡ูˆ ู„ูŠุณ ุนู„ู‰ ุบุฑุงุฑ. ุจูˆุงุณุทุฉ
ู‚ุฑุงุกุฉ ูˆุตู ุงู„ู†ู…ูˆุฐุฌ (csma.h) ูŠู…ูƒู†ูƒ ุฃู† ุชุฌุฏ ุฃู†ู‡ ู„ุง ูŠูˆุฌุฏ ูƒุดู ุงู„ุงุตุทุฏุงู…
ููŠ ู†ู…ูˆุฐุฌ CSMA ูˆุชุญุฏูŠุฏ ู…ุฏู‰ ู‚ุงุจู„ูŠุฉ ุชุทุจูŠู‚ู‡ ููŠ ุงู„ู…ุญุงูƒุงุฉ ุงู„ุฎุงุตุฉ ุจูƒ ุฃู… ู…ุงุฐุง
ุงู„ุชุญุฐูŠุฑุงุช ุงู„ุชูŠ ู‚ุฏ ุชุฑุบุจ ููŠ ุชุถู…ูŠู†ู‡ุง ู…ุน ู†ุชุงุฆุฌูƒ. ูˆููŠ ุญุงู„ุงุช ุฃุฎุฑู‰ุŒ ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ุงู„ุฃู…ุฑ ุณู‡ู„ุงู‹ ู„ู„ุบุงูŠุฉ
ู„ุชูƒูˆูŠู† ุณู„ูˆูƒูŠุงุช ู‚ุฏ ู„ุง ุชุชูู‚ ู…ุน ุฃูŠ ูˆุงู‚ุน ูŠู…ูƒู†ูƒ ุงู„ุฎุฑูˆุฌ ูˆุดุฑุงุคู‡. ู‡ูˆ - ู‡ูŠ
ุณูŠูƒูˆู† ู…ู† ุงู„ู…ููŠุฏ ู‚ุถุงุก ุจุนุถ ุงู„ูˆู‚ุช ููŠ ุงู„ุชุญู‚ูŠู‚ ููŠ ุจุนุถ ู‡ุฐู‡ ุงู„ุญุงู„ุงุชุŒ ูˆูƒูŠู
ูŠู…ูƒู†ูƒ ุจุณู‡ูˆู„ุฉ ุงู„ุงู†ุญุฑุงู ุฎุงุฑุฌ ุญุฏูˆุฏ ุงู„ูˆุงู‚ุน ููŠ ุนู…ู„ูŠุงุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ุฎุงุตุฉ ุจูƒ.

ูƒู…ุง ุฑุฃูŠุชู…ุŒ NS-3 ูˆูŠูˆูุฑ ุงู„ุณู…ุงุช ูˆุงู„ุชูŠ ูŠู…ูƒู† ู„ู„ู…ุณุชุฎุฏู… ุถุจุทู‡ุง ุจุณู‡ูˆู„ุฉ ู„ุชุบูŠูŠุฑ ุงู„ู†ู…ูˆุฐุฌ
ุณู„ูˆูƒ. ุงู„ู†ุธุฑ ููŠ ุงุซู†ูŠู† ู…ู† ุงู„ุณู…ุงุช ู„ ุฌู‡ุงุฒ CsmaNet: MTU
ูˆุถุน ุงู„ุชุบู„ูŠู. MTU ุชุดูŠุฑ ุงู„ุณู…ุฉ ุฅู„ู‰ ุงู„ุญุฏ ุงู„ุฃู‚ุตู‰ ู„ูˆุญุฏุฉ ุงู„ู†ู‚ู„ ุฅู„ู‰
ุฌู‡ุงุฒ. ู‡ุฐุง ู‡ูˆ ุญุฌู… ุฃูƒุจุฑ ูˆุญุฏุฉ ุจูŠุงู†ุงุช ุจุฑูˆุชูˆูƒูˆู„ (PDU) ูŠุณุชุทูŠุน ุงู„ุฌู‡ุงุฒ ุงู„ู‚ูŠุงู… ุจู‡ุง
ูŠุฑุณู„.

ูŠุจู„ุบ ุญุฌู… MTU ุงู„ุงูุชุฑุงุถูŠ 1500 ุจุงูŠุช ููŠ ู…ู„ู ุฌู‡ุงุฒ CsmaNet. ู‡ุฐุง ุงู„ุงูุชุฑุงุถูŠ ูŠุชูˆุงูู‚ ู…ุน ุฑู‚ู…
ุชู… ุงู„ุนุซูˆุฑ ุนู„ูŠู‡ ููŠ RFC 894ุŒ "ู…ุนูŠุงุฑ ู„ู†ู‚ู„ ู…ุฎุทุทุงุช ุจูŠุงู†ุงุช IP ุนุจุฑ ุงู„ุฅูŠุซุฑู†ุช
ุงู„ุดุจูƒุงุช." ุงู„ุฑู‚ู… ู…ุดุชู‚ ูุนู„ูŠู‹ุง ู…ู† ุงู„ุญุฏ ุงู„ุฃู‚ุตู‰ ู„ุญุฌู… ุงู„ุญุฒู…ุฉ ู„ู€ 10Base5
ุดุจูƒุงุช (ุฅูŠุซุฑู†ุช ูƒุงู…ู„ุฉ ุงู„ู…ูˆุงุตูุงุช) - 1518 ุจุงูŠุช. ุฅุฐุง ู‚ู…ุช ุจุทุฑุญ ุชุบู„ูŠู DIX
ุงู„ุญู…ู„ ุงู„ุฒุงุฆุฏ ู„ุญุฒู… Ethernet (18 ุจุงูŠุช) ุณูŠู†ุชู‡ูŠ ุจูƒ ุงู„ุฃู…ุฑ ุจุฃู‚ุตู‰ ุญุฌู… ู…ู…ูƒู† ู„ู„ุจูŠุงู†ุงุช
(MTU) 1500 ุจุงูŠุช. ูŠู…ูƒู† ู„ู„ู…ุฑุก ุฃูŠุถู‹ุง ุฃู† ูŠุฌุฏ ุฃู† MTU ู„ุดุจูƒุงุช IEEE 802.3 ู‡ูˆ 1492
ุจุงูŠุช. ูˆุฐู„ูƒ ู„ุฃู† ุชุบู„ูŠู LLC/SNAP ูŠุถูŠู ุซู…ุงู†ูŠุฉ ุจุงูŠุช ุฅุถุงููŠุฉ ู…ู† ุงู„ุญู…ู„ ุฅู„ู‰
ุงู„ุญุฒู…ุฉ. ููŠ ูƒู„ุชุง ุงู„ุญุงู„ุชูŠู†ุŒ ูŠู…ูƒู† ู„ู„ุฃุฌู‡ุฒุฉ ุงู„ุฃุณุงุณูŠุฉ ุฅุฑุณุงู„ 1518 ุจุงูŠุช ูู‚ุทุŒ ูˆู„ูƒู† ุงู„ุจูŠุงู†ุงุช
ุงู„ุญุฌู… ู…ุฎุชู„ู.

ู…ู† ุฃุฌู„ ุถุจุท ูˆุถุน ุงู„ุชุบู„ูŠูุŒ ุฌู‡ุงุฒ CsmaNet ูŠูˆูุฑ ุงู„ุณู…ุฉ ุชุณู…ู‰
ูˆุถุน ุงู„ุชุบู„ูŠู ูˆุงู„ุชูŠ ูŠู…ูƒู† ุฃู† ุชุฃุฎุฐ ุนู„ู‰ ุงู„ู‚ูŠู… ุฏูŠูƒุณ or ุฐ. ู‡ุฐู‡ ุชุชูˆุงูู‚ ู…ุน ุฅูŠุซุฑู†ุช
ูˆุชุฃุทูŠุฑ LLC/SNAP ุนู„ู‰ ุงู„ุชูˆุงู„ูŠ.

ุฅุฐุง ุชุฑูƒ ุฃุญุฏ MTU ุนู†ุฏ 1500 ุจุงูŠุช ูˆูŠุบูŠุฑ ูˆุถุน ุงู„ุชุบู„ูŠู ุฅู„ู‰ ุฐุŒ ุงู„ู†ุชูŠุฌุฉ
ุณุชูƒูˆู† ุนุจุงุฑุฉ ุนู† ุดุจูƒุฉ ุชุญุชูˆูŠ ุนู„ู‰ 1500 ุจุงูŠุช ู…ู† ูˆุญุฏุงุช PDU ู…ุน ุชุฃุทูŠุฑ LLC/SNAP ู…ู…ุง ูŠุคุฏูŠ ุฅู„ู‰
ุญุฒู… ู…ู† 1526 ุจุงูŠุชุŒ ูˆุงู„ุชูŠ ู‚ุฏ ุชูƒูˆู† ุบูŠุฑ ู‚ุงู†ูˆู†ูŠุฉ ููŠ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุดุจูƒุงุชุŒ ุญูŠุซ ุฃู†ู‡ุง ูŠู…ูƒู† ุฃู† ุชู†ู‚ู„
ุงู„ุญุฏ ุงู„ุฃู‚ุตู‰ 1518 ุจุงูŠุช ู„ูƒู„ ุญุฒู…ุฉ. ูˆู‡ุฐุง ู…ู† ุดุฃู†ู‡ ุฃู† ูŠุคุฏูŠ ุนู„ู‰ ุงู„ุฃุฑุฌุญ ุฅู„ู‰ ู…ุญุงูƒุงุฉ ุฐู„ูƒ
ุจู…ู‡ุงุฑุฉ ู„ุง ุชุนูƒุณ ุงู„ูˆุงู‚ุน ุงู„ุฐูŠ ู‚ุฏ ุชุชูˆู‚ุนู‡.

ูู‚ุท ู„ุชุนู‚ูŠุฏ ุงู„ุตูˆุฑุฉุŒ ุชูˆุฌุฏ ุฅุทุงุฑุงุช ุถุฎู…ุฉ ุฌุฏู‹ุง (1500 < MTU <= 9000 ุจุงูŠุช) ูˆ
ุงู„ุฅุทุงุฑุงุช ูุงุฆู‚ุฉ ุงู„ุฌุงู…ุจูˆ (MTU > 9000 ุจุงูŠุช) ุงู„ุชูŠ ู„ู… ูŠุชู… ุงุนุชู…ุงุฏู‡ุง ุฑุณู…ูŠู‹ุง ุจูˆุงุณุทุฉ IEEE ูˆู„ูƒู†ู‡ุง
ู…ุชูˆูุฑ ููŠ ุจุนุถ ุงู„ุดุจูƒุงุช ุนุงู„ูŠุฉ ุงู„ุณุฑุนุฉ (Gigabit) ูˆุจุทุงู‚ุงุช NIC. ูŠู…ูƒู† ู„ู„ู…ุฑุก ุฃู† ูŠุชุฑูƒ
ุชู… ุถุจุท ูˆุถุน ุงู„ุชุบู„ูŠู ุนู„ู‰ ุฏูŠูƒุณุŒ ูˆุงุถุจุท MTU ุงู„ุณู…ุฉ ุนู„ู‰ ุฌู‡ุงุฒ CsmaNet ุฅู„ู‰ 64000 ุจุงูŠุช
-- ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ู‡ ู…ุฑุชุจุท ู‚ู†ุงุฉ CsmaChannel ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ุชู… ุถุจุทู‡ ุนู„ู‰ 10 ู…ูŠุบุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉ. ู‡ุฐุง
ู…ู† ุดุฃู†ู‡ ุฃู† ูŠุตู…ู… ุจุดูƒู„ ุฃุณุงุณูŠ ู…ุญูˆู„ ุฅูŠุซุฑู†ุช ู…ุตู†ูˆุนู‹ุง ู…ู† ุทุฑุงุฒ 1980Base10 ุงู„ุฐูŠ ุชู… ุงุณุชุบู„ุงู„ู‡ ู…ู† ู‚ุจู„ ู…ุตุงุตูŠ ุงู„ุฏู…ุงุก ููŠ ุงู„ุซู…ุงู†ูŠู†ูŠุงุช
ุงู„ุดุจูƒุงุช ุงู„ุชูŠ ุชุฏุนู… ู…ุฎุทุทุงุช ุงู„ุจูŠุงู†ุงุช ุงู„ุถุฎู…ุฉ. ูˆู‡ุฐุง ุจุงู„ุชุฃูƒูŠุฏ ู„ูŠุณ ุดูŠุฆู‹ุง ูƒุงู†
ู„ู… ูŠุชู… ุชุตู†ูŠุนู‡ุง ุนู„ู‰ ุงู„ุฅุทู„ุงู‚ุŒ ูˆู…ู† ุบูŠุฑ ุงู„ู…ุฑุฌุญ ุฃู† ูŠุชู… ุชุตู†ูŠุนู‡ุง ุนู„ู‰ ุงู„ุฅุทู„ุงู‚ุŒ ูˆู„ูƒู† ู…ู† ุงู„ุณู‡ู„ ุฌุฏู‹ุง ุนู„ูŠูƒ ุชู‡ูŠุฆุชู‡ุง.

ููŠ ุงู„ู…ุซุงู„ ุงู„ุณุงุจู‚ุŒ ุงุณุชุฎุฏู…ุช ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ู„ุฅู†ุดุงุก ู…ุญุงูƒุงุฉ ุชุญุชูˆูŠ ุนู„ู‰ 100
Csma ุงู„ุนู‚ุฏ. ูƒุงู† ุจุฅู…ูƒุงู†ูƒ ุจุณู‡ูˆู„ุฉ ุฅู†ุดุงุก ู…ุญุงูƒุงุฉ ุชุญุชูˆูŠ ุนู„ู‰ 500 ุนู‚ุฏุฉ. ุงุฐุง ุฃู†ุช
ูƒู†ุง ููŠ ุงู„ูˆุงู‚ุน ู†ุตู…ู… ุดุจูƒุฉ 10Base5 vampire-tapุŒ ูˆู‡ูˆ ุงู„ุญุฏ ุงู„ุฃู‚ุตู‰ ู„ุทูˆู„ ุงู„ู…ูˆุงุตูุงุช ุงู„ูƒุงู…ู„ุฉ
ูŠุจู„ุบ ุทูˆู„ ูƒุงุจู„ ุฅูŠุซุฑู†ุช 500 ู…ุชุฑุŒ ู…ุน ู…ุณุงูุฉ ู„ุง ุชู‚ู„ ุนู† 2.5 ู…ุชุฑ. ูˆู‡ุฐุง ูŠุนู†ูŠ ู‡ู†ุงูƒ
ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† 200 ู†ู‚ุฑุฉ ูู‚ุท ุนู„ู‰ ุดุจูƒุฉ ุญู‚ูŠู‚ูŠุฉ. ูƒุงู† ู…ู† ุงู„ู…ู…ูƒู† ุฃู† ุชู‚ูˆู… ุจุณู‡ูˆู„ุฉ ุจุจู†ุงุก ู…ุดุฑูˆุน ุบูŠุฑ ู‚ุงู†ูˆู†ูŠ
ุงู„ุดุจูƒุฉ ุจู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ ุฃูŠุถู‹ุง. ู‚ุฏ ูŠุคุฏูŠ ู‡ุฐุง ุฃูˆ ู„ุง ูŠุคุฏูŠ ุฅู„ู‰ ู…ุญุงูƒุงุฉ ุฐุงุช ู…ุนู†ู‰
ุงุนุชู…ุงุฏู‹ุง ุนู„ู‰ ู…ุง ุชุญุงูˆู„ ุชุตู…ูŠู…ู‡.

ูŠู…ูƒู† ุฃู† ุชุญุฏุซ ุญุงู„ุงุช ู…ู…ุงุซู„ุฉ ููŠ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฃู…ุงูƒู† ููŠ NS-3 ูˆููŠ ุฃูŠ ุฌู‡ุงุฒ ู…ุญุงูƒุงุฉ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ
ู‚ุฏ ุชุชู…ูƒู† ู…ู† ูˆุถุน ุงู„ุนู‚ุฏ ุจุทุฑูŠู‚ุฉ ุชุฌุนู„ู‡ุง ุชุดุบู„ ู†ูุณ ุงู„ู…ุณุงุญุฉ ููŠ
ููŠ ู†ูุณ ุงู„ูˆู‚ุชุŒ ุฃูˆ ู‚ุฏ ุชุชู…ูƒู† ู…ู† ุชูƒูˆูŠู† ู…ูƒุจุฑุงุช ุงู„ุตูˆุช ุฃูˆ ู…ุณุชูˆูŠุงุช ุงู„ุถูˆุถุงุก ุงู„ุชูŠ ุชู†ุชู‡ูƒ
ุงู„ู‚ูˆุงู†ูŠู† ุงู„ุฃุณุงุณูŠุฉ ู„ู„ููŠุฒูŠุงุก.

NS-3 ูŠูุถู„ ุจุดูƒู„ ุนุงู… ุงู„ู…ุฑูˆู†ุฉุŒ ูˆุณุชุณู…ุญ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ู†ู…ุงุฐุฌ ุจุงู„ุฅุนุฏุงุฏ ุจุญุฑูŠุฉ ุงู„ุณู…ุงุช
ุฏูˆู† ู…ุญุงูˆู„ุฉ ูุฑุถ ุฃูŠ ุงุชุณุงู‚ ุชุนุณููŠ ุฃูˆ ู…ูˆุงุตูุงุช ุฃุณุงุณูŠุฉ ู…ุนูŠู†ุฉ.

ุงู„ุดูŠุก ุงู„ุฐูŠ ูŠุฌุจ ุฃุฎุฐู‡ ู…ู† ู‡ุฐุง ุฅู„ู‰ ุงู„ู…ู†ุฒู„ ู‡ูˆ ุฐู„ูƒ NS-3 ุณูˆู ุชูˆูุฑ ู‚ุงุนุฏุฉ ูุงุฆู‚ุฉ ุงู„ู…ุฑูˆู†ุฉ
ู„ุชุฌุฑุจุชู‡ุง. ุงู„ุฃู…ุฑ ู…ุชุฑูˆูƒ ู„ูƒ ู„ูู‡ู… ู…ุง ุชุทู„ุจู‡ ู…ู† ุงู„ู†ุธุงู…
ู„ู„ู‚ูŠุงู… ุจู‡ ูˆุงู„ุชุฃูƒุฏ ู…ู† ุฃู† ุนู…ู„ูŠุงุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ุชูŠ ุชู‚ูˆู… ุจุฅู†ุดุงุฆู‡ุง ู„ู‡ุง ุจุนุถ ุงู„ู…ุนู†ู‰ ูˆุจุนุถู‡ุง
ุงุชุตุงู„ ู…ุน ูˆุงู‚ุน ุญุฏุฏุชู‡ ุฃู†ุช.

ุงุจู†ูŠ a ู„ุงุณู„ูƒูŠ ุดุจูƒุฉ ุทุจูŠุนุฉ ุงู„ูƒุงุจู„
ููŠ ู‡ุฐุง ุงู„ู‚ุณู… ุณู†ู‚ูˆู… ุจุชูˆุณูŠุน ู…ุนุฑูุชู†ุง NS-3 ุฃุฌู‡ุฒุฉ ุงู„ุดุจูƒุฉ ูˆ
ุงู„ู‚ู†ูˆุงุช ู„ุชุบุทูŠุฉ ู…ุซุงู„ ุนู„ู‰ ุดุจูƒุฉ ู„ุงุณู„ูƒูŠุฉ. NS-3 ูŠูˆูุฑ ู…ุฌู…ูˆุนุฉ ู…ู† ู†ู…ุงุฐุฌ 802.11
ุงู„ุชูŠ ุชุญุงูˆู„ ุชูˆููŠุฑ ุชุทุจูŠู‚ ุฏู‚ูŠู‚ ุนู„ู‰ ู…ุณุชูˆู‰ MAC ู„ู…ูˆุงุตูุงุช 802.11
ูˆู†ู…ูˆุฐุฌ ู…ุณุชูˆู‰ PHY "ู„ูŠุณ ุจุทูŠุฆู‹ุง ุฌุฏู‹ุง" ู„ู…ูˆุงุตูุงุช 802.11a.

ุชู…ุงู…ู‹ุง ูƒู…ุง ุฑุฃูŠู†ุง ูƒุงุฆู†ุงุช ู…ุณุงุนุฏุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูˆุทูˆุจูˆู„ูˆุฌูŠุง CSMA ู…ุชู‰
ุจู†ุงุก ุทุจูˆู„ูˆุฌูŠุง ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉุŒ ูˆุณูˆู ู†ุฑู‰ ู…ุง ูŠุนุงุฏู„ู‡ุง ูˆุงูŠ ูุงูŠ ู…ุณุงุนุฏูŠู† ุทูˆุจูˆู„ูˆุฌูŠุง ููŠ
ู‡ุฐุง ุงู„ู‚ุณู…. ูŠุฌุจ ุฃู† ูŠุจุฏูˆ ู…ุธู‡ุฑ ู‡ุคู„ุงุก ุงู„ู…ุณุงุนุฏูŠู† ูˆุนู…ู„ู‡ู… ู…ุฃู„ูˆูู‹ุง ุชู…ุงู…ู‹ุง
ุฃู†ุช.

ู†ุญู† ู†ู‚ุฏู… ู…ุซุงู„ุง ุนู„ู‰ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ููŠ ู…ู†ุทู‚ุชู†ุง ุฃู…ุซู„ุฉ / ุชุนู„ูŠู…ูŠ ุงู„ุฏู„ูŠู„. ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ูŠุนุชู…ุฏ ุนู„ู‰
ู‡ูŠู‡ Second.cc ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ูˆูŠุถูŠู ุดุจูƒุฉ Wifi. ุงู„ู…ุถูŠ ู‚ุฏู…ุง ูˆูุชุญ
ุฃู…ุซู„ุฉ/ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ/third.cc ููŠ ู…ุญุฑุฑูƒ ุงู„ู…ูุถู„ ุณูˆู ุชูƒูˆู† ู‚ุฏ ุฑุฃูŠุช ุจุงู„ูุนู„ ู…ุง ูŠูƒููŠ
NS-3 ุฑู…ุฒ ู„ูู‡ู… ู…ุนุธู… ู…ุง ูŠุฌุฑูŠ ููŠ ู‡ุฐุง ุงู„ู…ุซุงู„ุŒ ูˆู„ูƒู† ู‡ู†ุงูƒ ุนุฏุฏ ู‚ู„ูŠู„ ู…ู† ุงู„ุฌุฏูŠุฏ
ุงู„ุฃุดูŠุงุกุŒ ู„ุฐู„ูƒ ุณูˆู ู†ุฑุงุฌุน ุงู„ู†ุต ุจุฃูƒู…ู„ู‡ ูˆู†ูุญุต ุจุนุถ ุงู„ู…ุฎุฑุฌุงุช.

ุชู…ุงู…ุง ูƒู…ุง ููŠ Second.cc ู…ุซุงู„ (ูˆููŠ ุงู„ูƒู„ NS-3 ุฃู…ุซู„ุฉ) ูŠุจุฏุฃ ุงู„ู…ู„ู ุจู€ emacs
ุฎุท ุงู„ูˆุถุน ูˆุจุนุถ GPL ุงู„ู…ุนูŠุงุฑูŠ.

ุฃู„ู‚ู ู†ุธุฑุฉ ุนู„ู‰ ุฑุณู… ASCII (ุงู„ู…ุณุชู†ุณุฎ ุฃุฏู†ุงู‡) ูˆุงู„ุฐูŠ ูŠูุธู‡ุฑ ุทูˆุจูˆู„ูˆุฌูŠุง ุงู„ุดุจูƒุฉ ุงู„ุงูุชุฑุงุถูŠุฉ
ุจู†ูŠุช ููŠ ุงู„ู…ุซุงู„. ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุฃู†ู†ุง ุณู†ู‚ูˆู… ุจุชูˆุณูŠุน ู…ุซุงู„ู†ุง
ุนู† ุทุฑูŠู‚ ุชุนู„ูŠู‚ ุดุจูƒุฉ ู„ุงุณู„ูƒูŠุฉ ู…ู† ุงู„ุฌุงู†ุจ ุงู„ุฃูŠุณุฑ. ู„ุงุญุธ ุฃู† ู‡ุฐู‡ ู‡ูŠ ุงู„ุดุจูƒุฉ ุงู„ุงูุชุฑุงุถูŠุฉ
ุงู„ุทูˆุจูˆู„ูˆุฌูŠุง ุญูŠุซ ูŠู…ูƒู†ูƒ ููŠ ุงู„ูˆุงู‚ุน ุชุบูŠูŠุฑ ุนุฏุฏ ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุนู„ู‰ ุงู„ุณู„ูƒูŠุฉ ูˆุงู„ู„ุงุณู„ูƒูŠุฉ
ุงู„ุดุจูƒุงุช. ุชู…ุงู…ุง ูƒู…ุง ููŠ Second.cc ุญุงู„ุฉ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ุฅุฐุง ู‚ู…ุช ุจุชุบูŠูŠุฑ nCsmaุŒ ุณูˆู ูŠุนุทูŠูƒ
ุนุฏุฏ ุนู‚ุฏ CSMA "ุงู„ุฅุถุงููŠุฉ". ูˆุจุงู„ู…ุซู„ุŒ ูŠู…ูƒู†ูƒ ุชุนูŠูŠู† nWifi ู„ู„ุชุญูƒู… ููŠ ูƒู… S
ูŠุชู… ุฅู†ุดุงุก ุงู„ุนู‚ุฏ (ุงู„ู…ุญุทุฉ) ููŠ ุงู„ู…ุญุงูƒุงุฉ. ุณูŠูƒูˆู† ู‡ู†ุงูƒ ุฏุงุฆู…ุง ูˆุงุญุฏ AP (ู†ู‚ุทุฉ ุฏุฎูˆู„)
ุนู‚ุฏุฉ ุนู„ู‰ ุงู„ุดุจูƒุฉ ุงู„ู„ุงุณู„ูƒูŠุฉ. ุจุดูƒู„ ุงูุชุฑุงุถูŠ ู‡ู†ุงูƒ ุซู„ุงุซ ุนู‚ุฏ CSMA "ุฅุถุงููŠุฉ" ูˆุซู„ุงุซุฉ
ู„ุงุณู„ูƒูŠ S ุงู„ุนู‚ุฏ.

ูŠุจุฏุฃ ุงู„ูƒูˆุฏ ุจุชุญู…ูŠู„ ุงู„ูˆุญุฏุฉ ุงู„ู†ู…ุทูŠุฉ ุงู„ุชูŠ ุชุชุถู…ู† ุงู„ู…ู„ูุงุช ุชู…ุงู…ู‹ุง ูƒู…ุง ุญุฏุซ ููŠ ู…ู„ู Second.cc ู…ุซุงู„.
ู‡ู†ุงูƒ ุจุนุถ ุงู„ุฅุถุงูุงุช ุงู„ุฌุฏูŠุฏุฉ ุงู„ู…ุชูˆุงูู‚ุฉ ู…ุน ูˆุญุฏุฉ Wifi ูˆุฅู…ูƒุงู†ูŠุฉ ุงู„ุชู†ู‚ู„
ุงู„ูˆุญุฏุฉ ุงู„ุชูŠ ุณู†ู†ุงู‚ุดู‡ุง ุฃุฏู†ุงู‡.

# ุชุถู…ูŠู† "ns3 / core-module.h"
# ุชุถู…ูŠู† "ns3 / point-to-point-module.h"
# ุชุถู…ูŠู† "ns3 / network-module.h"
#include "ns3 / applications-module.h"
#ุชุชุถู…ู† "ns3/wifi-module.h"
#ุชุชุถู…ู† "ns3/mobility-module.h"
#ุชุชุถู…ู† "ns3/csma-module.h"
# ุชุถู…ูŠู† "ns3 / internet-module.h"

ููŠู…ุง ูŠู„ูŠ ุงู„ุฑุณู… ุงู„ุชูˆุถูŠุญูŠ ู„ุทูˆุจูˆู„ูˆุฌูŠุง ุงู„ุดุจูƒุฉ:

// ุทูˆุจูˆู„ูˆุฌูŠุง ุงู„ุดุจูƒุฉ ุงู„ุงูุชุฑุงุถูŠุฉ
//
// ูˆุงูŠ ูุงูŠ 10.1.3.0
// ุง ู ุจ
// * * * *
// | | | | 10.1.1.0
// n5 n6 n7 n0 -------------- n1 n2 n3 n4
// ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ | | | |
// ============
// ู„ุงู† 10.1.2.0

ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุฃู†ู†ุง ู†ุถูŠู ุฌู‡ุงุฒ ุดุจูƒุฉ ุฌุฏูŠุฏู‹ุง ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ุนู„ู‰ ุงู„ุฌุงู†ุจ ุงู„ุฃูŠุณุฑ ู…ู†
ุงุฑุชุจุงุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูŠุตุจุญ ู†ู‚ุทุฉ ุงู„ูˆุตูˆู„ ู„ู„ุดุจูƒุฉ ุงู„ู„ุงุณู„ูƒูŠุฉ. ุนุฏุฏ ู…ู†
ูŠุชู… ุฅู†ุดุงุก ุนู‚ุฏ STA ุงู„ู„ุงุณู„ูƒูŠุฉ ู„ู…ู„ุก ุดุจูƒุฉ 10.1.3.0 ุงู„ุฌุฏูŠุฏุฉ ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ุนู„ู‰ ุงู„ูŠุณุงุฑ
ุฌุงู†ุจ ู…ู† ุงู„ุฑุณู… ุงู„ุชูˆุถูŠุญูŠ

ุจุนุฏ ุงู„ุฑุณู… ุงู„ุชูˆุถูŠุญูŠุŒ NS-3 ู…ุณุงุญุฉ ุงู„ุงุณู… ู‡ูŠ ู…ุณุชุนู…ู„ ูˆูŠุชู… ุชุนุฑูŠู ู…ูƒูˆู† ุงู„ุชุณุฌูŠู„.
ูŠุฌุจ ุฃู† ูŠูƒูˆู† ูƒู„ ู‡ุฐุง ู…ุฃู„ูˆูู‹ุง ุชู…ุงู…ู‹ุง ุงู„ุขู†.

ุจุงุณุชุฎุฏุงู… ู…ุณุงุญุฉ ุงู„ุงุณู… ns3 ุ›

NS_LOG_COMPONENT_DEFINE ("ู…ุซุงู„ ุงู„ู†ุต ุงู„ุซุงู„ุซ")ุ›

ูŠุจุฏุฃ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฑุฆูŠุณูŠ ุชู…ุงู…ุง ู…ุซู„ Second.cc ุนู† ุทุฑูŠู‚ ุฅุถุงูุฉ ุจุนุถ ู…ุนู„ู…ุงุช ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ ู„ู€
ุชู…ูƒูŠู† ุฃูˆ ุชุนุทูŠู„ ู…ูƒูˆู†ุงุช ุงู„ุชุณุฌูŠู„ ูˆู„ุชุบูŠูŠุฑ ุนุฏุฏ ุงู„ุฃุฌู‡ุฒุฉ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง.

ู…ู†ุทู‚ูŠ ู…ุทูˆู„ = ุตุญูŠุญุ›
uint32_t nCsma = 3;
uint32_t nWifi = 3;

CommandLine ูƒู…ุฏ ุ›
cmd.AddValue ("nCsma"ุŒ "ุนุฏุฏ ุนู‚ุฏ/ุฃุฌู‡ุฒุฉ CSMA \"ุงู„ุฅุถุงููŠุฉ\""ุŒ nCsma)ุ›
cmd.AddValue ("nWifi"ุŒ "ุนุฏุฏ ุฃุฌู‡ุฒุฉ wifi STA"ุŒ nWifi)ุ›
cmd.AddValue ("ู…ุทูˆู„"ุŒ "ุฃุฎุจุฑ ุชุทุจูŠู‚ุงุช ุงู„ุตุฏู‰ ุจุงู„ุชุณุฌูŠู„ ุฅุฐุง ูƒุงู†ุช ุตุญูŠุญุฉ"ุŒ ู…ุทูˆู„)ุ›

cmd.Parse (argc,argv);

ุฅุฐุง (ู…ุทูˆู„)
{
LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_INFO);
}

ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ุฌู…ูŠุน ุงู„ุฃู…ุซู„ุฉ ุงู„ุณุงุจู‚ุฉุŒ ูุฅู† ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ ู‡ูŠ ุฅู†ุดุงุก ุนู‚ุฏุชูŠู† ุณู†ู‚ูˆู… ุจุฐู„ูƒ
ุงู„ุงุชุตุงู„ ุนุจุฑ ุงู„ุฑุงุจุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ.

NodeContainer p2pNodes;
p2pNodes.Create (2);

ุจุนุฏ ุฐู„ูƒุŒ ู†ุฑู‰ ุตุฏูŠู‚ู‹ุง ู‚ุฏูŠู…ู‹ุง. ู†ุญู† ู†ู…ุซู„ ุฃ PointToPointHelper ูˆุชุนูŠูŠู† ุงู„ู…ุฑุชุจุทุฉ
ุงู„ุงูุชุฑุงุถูŠ ุงู„ุณู…ุงุช ุญุชู‰ ู†ุชู…ูƒู† ู…ู† ุฅู†ุดุงุก ุฌู‡ุงุฒ ุฅุฑุณุงู„ ุจุณุฑุนุฉ XNUMX ู…ูŠุบุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉ ุนู„ู‰ ุงู„ุฃุฌู‡ุฒุฉ
ุชู… ุฅู†ุดุงุคู‡ุง ุจุงุณุชุฎุฏุงู… ุงู„ู…ุณุงุนุฏ ูˆุชุฃุฎูŠุฑ ุจู…ู‚ุฏุงุฑ ู…ูŠู„ูŠ ุซุงู†ูŠุฉ ุนู„ู‰ ุงู„ู‚ู†ูˆุงุช ุงู„ุชูŠ ุฃู†ุดุฃู‡ุง ุงู„ู…ุณุงุนุฏ.
ู†ุญู† ุซู… ูƒุงู…ู„ ุงู„ุฃุฌู‡ุฒุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ุนู„ู‰ ุงู„ุนู‚ุฏ ูˆุงู„ู‚ู†ุงุฉ ุจูŠู†ู‡ุง.

PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate"ุŒ StringValue ("5 ู…ูŠุฌุง ุจุช ููŠ ุงู„ุซุงู†ูŠุฉ"))ุ›
pointToPoint.SetChannelAttribute ("Delay"ุŒ StringValue ("2ms"))ุ›

NetDeviceContainer p2pDevices;
p2pDevices = pointToPoint.Install (p2pNodes)ุ›

ุจุนุฏ ุฐู„ูƒุŒ ู†ุนู„ู† ุขุฎุฑ NodeContainer ู„ู„ุงุญุชูุงุธ ุจุงู„ุนู‚ุฏ ุงู„ุชูŠ ุณุชูƒูˆู† ุฌุฒุกู‹ุง ู…ู† ุงู„ุญุงูู„ุฉ
ุดุจูƒุฉ (CSMA).

NodeContainer csmaNodes;
csmaNodes.Add (p2pNodes.Get (1));
csmaNodes.Create (nCsma);

ุงู„ุณุทุฑ ุงู„ุชุงู„ูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ูŠุญุตู„ ุงู„ุนู‚ุฏุฉ ุงู„ุฃูˆู„ู‰ (ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ูˆุฌูˆุฏ ูู‡ุฑุณ ูˆุงุญุฏ) ู…ู†
ุญุงูˆูŠุฉ ุงู„ุนู‚ุฏุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูˆุฅุถุงูุชู‡ุง ุฅู„ู‰ ุญุงูˆูŠุฉ ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุณุชุญุตู„ ุนู„ู‰ CSMA
ุงู„ุฃุฌู‡ุฒุฉ. ุณุชู†ุชู‡ูŠ ุงู„ุนู‚ุฏุฉ ุงู„ู…ุนู†ูŠุฉ ุจุฌู‡ุงุฒ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูˆCSMA
ุฌู‡ุงุฒ. ู†ู‚ูˆู… ุจุนุฏ ุฐู„ูƒ ุจุฅู†ุดุงุก ุนุฏุฏ ู…ู† ุงู„ุนู‚ุฏ "ุงู„ุฅุถุงููŠุฉ" ุงู„ุชูŠ ุชุดูƒู„ ุงู„ุฌุฒุก ุงู„ู…ุชุจู‚ูŠ ู…ู† CSMA
ุดุจูƒุฉ.

ู†ู‚ูˆู… ุจุนุฏ ุฐู„ูƒ ุจุฅู†ุดุงุก ู…ุซูŠู„ ู„ู€ a com.CsmaHelper ูˆุชุนูŠูŠู† ู„ู‡ุง ุงู„ุณู…ุงุช ูƒู…ุง ูุนู„ู†ุง ููŠ ุงู„ู…ุซุงู„ ุงู„ุณุงุจู‚.
ู†ู‚ูˆู… ุจุฅู†ุดุงุก ู…ู„ู NetDeviceContainer ู„ุชุชุจุน ุฃุฌู‡ุฒุฉ ุดุจูƒุฉ CSMA ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุซู… ู†ู‚ูˆู… ุจุฐู„ูƒ
ุชุซุจูŠุช ุฃุฌู‡ุฒุฉ CSMA ุนู„ู‰ ุงู„ุนู‚ุฏ ุงู„ู…ุญุฏุฏุฉ.

CsmaHelper csma;
csma.SetChannelAttribute ("DataRate"ุŒ StringValue ("100 ู…ูŠุฌุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉ"))ุ›
csma.SetChannelAttribute ("Delay"ุŒ TimeValue (NanoSeconds (6560)))ุ›

NetDeviceContainer csmaDevices;
csmaDevices = csma.Install (csmaNodes);

ุจุนุฏ ุฐู„ูƒุŒ ุณู†ู‚ูˆู… ุจุฅู†ุดุงุก ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุณุชูƒูˆู† ุฌุฒุกู‹ุง ู…ู† ุดุจูƒุฉ Wifi. ู†ุญู†
ุณู†ู‚ูˆู… ุจุฅู†ุดุงุก ุนุฏุฏ ู…ู† ุนู‚ุฏ "ุงู„ู…ุญุทุฉ" ูƒู…ุง ู‡ูˆ ู…ุญุฏุฏ ุจูˆุงุณุทุฉ ูˆุณูŠุทุฉ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑุŒ ูˆ
ุณู†ุณุชุฎุฏู… ุงู„ุนู‚ุฏุฉ "ุฃู‚ุตู‰ ุงู„ูŠุณุงุฑ" ู„ู„ุงุฑุชุจุงุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ูƒุนู‚ุฏุฉ ู„ู€
ู†ู‚ุทุฉ ุฏุฎูˆู„.

NodeContainer wifiStaNodes;
wifiStaNodes.Create (nWifi);
NodeContainer wifiApNode = p2pNodes.Get (0);

ูŠู‚ูˆู… ุงู„ุฌุฒุก ุงู„ุชุงู„ูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุจุจู†ุงุก ุฃุฌู‡ุฒุฉ wifi ูˆู‚ู†ุงุฉ ุงู„ุงุชุตุงู„ ุงู„ุจูŠู†ูŠ ุจูŠู†ู‡ุง
ุนู‚ุฏ wifi ู‡ุฐู‡. ุฃูˆู„ุงู‹ุŒ ู†ู‚ูˆู… ุจุชูƒูˆูŠู† PHY ูˆู…ุณุงุนุฏูŠ ุงู„ู‚ู†ูˆุงุช:

YansWifiChannelHelperchannel = YansWifiChannelHelper::Default ();
YansWifiPhyHelper phy = YansWifiPhyHelper::Default ();

ู„ู„ุชุจุณูŠุทุŒ ูŠุณุชุฎุฏู… ู‡ุฐุง ุงู„ูƒูˆุฏ ุชูƒูˆูŠู† ุทุจู‚ุฉ PHY ุงู„ุงูุชุฑุงุถูŠุฉ ูˆู†ู…ุงุฐุฌ ุงู„ู‚ู†ูˆุงุช
ูˆุงู„ุชูŠ ุชู… ุชูˆุซูŠู‚ู‡ุง ููŠ ูˆุซุงุฆู‚ API Doxygen ู„ู€
YansWifiChannelHelper::Default YansWifiPhyHelper::Default ุทูุฑู‚. ู…ุฑุฉ ูˆุงุญุฏุฉ ู‡ุฐู‡ ุงู„ูƒุงุฆู†ุงุช
ูŠุชู… ุฅู†ุดุงุคู‡ุงุŒ ู†ู‚ูˆู… ุจุฅู†ุดุงุก ูƒุงุฆู† ู‚ู†ุงุฉ ูˆุฑุจุทู‡ ุจู…ุฏูŠุฑ ูƒุงุฆู† ุทุจู‚ุฉ PHY ุงู„ุฎุงุต ุจู†ุง
ู„ู„ุชุฃูƒุฏ ู…ู† ุฃู† ูƒุงูุฉ ูƒุงุฆู†ุงุช ุทุจู‚ุฉ PHY ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุจูˆุงุณุทุฉ YansWifiPhyHelper ู…ุดุงุฑูƒุฉ
ู†ูุณ ุงู„ู‚ู†ุงุฉ ุงู„ุฃุณุงุณูŠุฉุŒ ุฃูŠ ุฃู†ู‡ุง ุชุดุชุฑูƒ ููŠ ู†ูุณ ุงู„ูˆุณูŠุท ุงู„ู„ุงุณู„ูƒูŠ ูˆูŠู…ูƒู†ู‡ุง ุฐู„ูƒ
ุงู„ุชูˆุงุตู„ ูˆุงู„ุชุฏุฎู„:

phy.SetChannel (channel.Create ());

ุจู…ุฌุฑุฏ ุชูƒูˆูŠู† ู…ุณุงุนุฏ PHYุŒ ูŠู…ูƒู†ู†ุง ุงู„ุชุฑูƒูŠุฒ ุนู„ู‰ ุทุจู‚ุฉ MAC. ู‡ู†ุง ู†ุฎุชุงุฑ ุงู„ุนู…ู„
ู…ุน ุฃุฌู‡ุฒุฉ MAC ุบูŠุฑ ุงู„ุชุงุจุนุฉ ู„ู€ QosุŒ ู„ุฐู„ูƒ ู†ุณุชุฎุฏู… ูƒุงุฆู† NqosWifiMacHelper ู„ุชุนูŠูŠู† ู…ุนู„ู…ุงุช MAC.

WifiHelper wifi = WifiHelper::Default ();
wifi.SetRemoteStationManager("ns3::AarfWifiManager");

NqosWifiMacHelper mac = NqosWifiMacHelper::Default ();

ุฅู†ู‘ SetRemoteStationManager ุชุฎุจุฑ ุงู„ุทุฑูŠู‚ุฉ ุงู„ู…ุณุงุนุฏ ุจู†ูˆุน ุฎูˆุงุฑุฒู…ูŠุฉ ุงู„ุชุญูƒู… ููŠ ุงู„ู…ุนุฏู„
ูŠุณุชุฎุฏู…. ู‡ู†ุงุŒ ูŠุทู„ุจ ู…ู† ุงู„ู…ุณุงุนุฏ ุงุณุชุฎุฏุงู… ุฎูˆุงุฑุฒู…ูŠุฉ AARF --- ุงู„ุชูุงุตูŠู„ ุจุงู„ุทุจุนุŒ
ู…ุชูˆูุฑ ููŠ ุฏูˆูƒุณูŠุฌูŠู†.

ุจุนุฏ ุฐู„ูƒุŒ ู†ู‚ูˆู… ุจุชูƒูˆูŠู† ู†ูˆุน MACุŒ ูˆู‡ูˆ SSID ู„ุดุจูƒุฉ ุงู„ุจู†ูŠุฉ ุงู„ุชุญุชูŠุฉ ุงู„ุชูŠ ู†ุฑูŠุฏู‡ุง
ุงู„ุฅุนุฏุงุฏ ูˆุงู„ุชุฃูƒุฏ ู…ู† ุฃู† ู…ุญุทุงุชู†ุง ู„ุง ุชู‚ูˆู… ุจุฅุฌุฑุงุก ูุญุต ู†ุดุท:

Ssid ssid = Ssid ("ns-3-ssid")ุ›
mac.SetType ("ns3::StaWifiMac"ุŒ
"Ssid"ุŒ ู‚ูŠู…ุฉ Ssid (SSID)ุŒ
"ActiveProbing"ุŒ ู‚ูŠู…ุฉ ู…ู†ุทู‚ูŠุฉ (ุฎุทุฃ))ุ›

ูŠู‚ูˆู… ู‡ุฐุง ุงู„ุฑู…ุฒ ุฃูˆู„ุงู‹ ุจุฅู†ุดุงุก ูƒุงุฆู† ู…ุนุฑู ู…ุฌู…ูˆุนุฉ ุงู„ุฎุฏู…ุฉ (SSID) 802.11 ุงู„ุฐูŠ ุณูŠุชู… ุงุณุชุฎุฏุงู…ู‡
ู„ุชุนูŠูŠู† ู‚ูŠู…ุฉ "Ssid" ุงู„ุณู…ุฉ ุชู†ููŠุฐ ุทุจู‚ุฉ MAC. ุนู„ู‰ ูˆุฌู‡ ุงู„ุฎุตูˆุต
ูŠุชู… ุชุญุฏูŠุฏ ู†ูˆุน ุทุจู‚ุฉ MAC ุงู„ุชูŠ ุณูŠุชู… ุฅู†ุดุงุคู‡ุง ุจูˆุงุณุทุฉ ุงู„ู…ุณุงุนุฏ ุจูˆุงุณุทุฉ ุงู„ุณู…ุฉ ุจุงุนุชุจุงุฑู‡ ู…ู†
ุงู„ู†ูˆุน "ns3::StaWifiMac". ุงุณุชุฎุฏุงู… NqosWifiMacHelper ุณูŠุถู…ู† ุฃู†
"ุฌูˆุฏุฉ ุงู„ุฎุฏู…ุฉ ุงู„ู…ุฏุนูˆู…ุฉ" ุงู„ุณู…ุฉ ู„ูƒุงุฆู†ุงุช MAC ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุชู… ุชุนูŠูŠู†ู‡ุง ุนู„ู‰ ุฎุทุฃ. ู…ุฒูŠุฌ ู…ู† ู‡ุฐู‡
ูŠุนู†ูŠ ุงู„ุชูƒูˆูŠู†ุงู† ุฃู† ู…ุซูŠู„ MAC ุงู„ุฐูŠ ุชู… ุฅู†ุดุงุคู‡ ุจุนุฏ ุฐู„ูƒ ุณูŠูƒูˆู† ุบูŠุฑ ู…ุฑุชุจุท ุจุฌูˆุฏุฉ ุงู„ุฎุฏู…ุฉ ูˆุบูŠุฑ AP
ู…ุญุทุฉ (STA) ููŠ ุจู†ูŠุฉ ุฃุณุงุณูŠุฉ BSS (ุฃูŠ BSS ู…ุน ู†ู‚ุทุฉ ูˆุตูˆู„). ูˆุฃุฎูŠุฑุงุŒ ูุฅู†
"ุงู„ูุญุต ุงู„ู†ุดุท" ุงู„ุณู…ุฉ ุชู… ุถุจุทู‡ ุนู„ู‰ ุฎุทุฃ. ูˆู‡ุฐุง ูŠุนู†ูŠ ุฃู† ุทู„ุจุงุช ุงู„ุชุญู‚ูŠู‚ ู„ู† ุชูƒูˆู†
ุชู… ุฅุฑุณุงู„ู‡ุง ุจูˆุงุณุทุฉ ุฃุฌู‡ุฒุฉ MAC ุงู„ุชูŠ ุฃู†ุดุฃู‡ุง ู‡ุฐุง ุงู„ู…ุณุงุนุฏ.

ุจู…ุฌุฑุฏ ุชูƒูˆูŠู† ูƒุงูุฉ ุงู„ู…ุนู„ู…ุงุช ุงู„ุฎุงุตุฉ ุจุงู„ู…ุญุทุฉ ุจุดูƒู„ ูƒุงู…ู„ุŒ ุณูˆุงุก ููŠ MAC ุฃูˆ PHY
ุงู„ุทุจู‚ุงุชุŒ ูŠู…ูƒู†ู†ุง ุงุณุชุฏุนุงุก ู…ุฃู„ูˆูุฉ ู„ุฏูŠู†ุง ุงู„ุขู† ุชุซุจูŠุช ุทุฑูŠู‚ุฉ ู„ุฅู†ุดุงุก ุฃุฌู‡ุฒุฉ ูˆุงูŠ ูุงูŠ ู…ู† ู‡ุฐู‡
ู…ุญุทุงุช:

NetDeviceContainer staDevices;
staDevices = wifi.Install (phy, mac, wifiStaNodes);

ู„ู‚ุฏ ู‚ู…ู†ุง ุจุชูƒูˆูŠู† Wifi ู„ุฌู…ูŠุน ุนู‚ุฏ STA ู„ุฏูŠู†ุงุŒ ูˆู†ุญู† ุงู„ุขู† ุจุญุงุฌุฉ ุฅู„ู‰ ุชูƒูˆูŠู† AP
ุนู‚ุฏุฉ (ู†ู‚ุทุฉ ุงู„ูˆุตูˆู„). ู†ุจุฏุฃ ู‡ุฐู‡ ุงู„ุนู…ู„ูŠุฉ ุจุชุบูŠูŠุฑ ุงู„ุฅุนุฏุงุฏ ุงู„ุงูุชุฑุงุถูŠ ุงู„ุณู…ุงุช ู„
NqosWifiMacHelper ู„ุชุนูƒุณ ู…ุชุทู„ุจุงุช AP.

mac.SetType ("ns3::ApWifiMac"ุŒ
"Ssid"ุŒ SsidValue (ssid))ุ›

ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ ุŒ ูุฅู† NqosWifiMacHelper ุณูŠู‚ูˆู… ุจุฅู†ุดุงุก ุทุจู‚ุงุช MAC ู„ู€ "ns3::ApWifiMac"ุŒ
ูŠุญุฏุฏ ุงู„ุฃุฎูŠุฑ ุฃู†ู‡ ูŠุฌุจ ุฅู†ุดุงุก ู…ุซูŠู„ MAC ุงู„ุฐูŠ ุชู… ุชูƒูˆูŠู†ู‡ ูƒู†ู‚ุทุฉ ูˆุตูˆู„ุŒ ู…ุน ู…ู„ุญู‚
ู†ูˆุน ุงู„ู…ุณุงุนุฏ ุงู„ุฐูŠ ูŠุดูŠุฑ ุฅู„ู‰ ุฃู† "QosSupported" ุงู„ุณู…ุฉ ูŠุฌุจ ุถุจุทู‡ ุนู„ู‰ ุฎุทุฃ - ุชุนุทูŠู„
ุฏุนู… ุฌูˆุฏุฉ ุงู„ุฎุฏู…ุฉ ุจู†ู…ุท 802.11e/WMM ุนู†ุฏ ู†ู‚ุงุท ุงู„ูˆุตูˆู„ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง.

ุชู†ุดุฆ ุงู„ุฃุณุทุฑ ุงู„ุชุงู„ูŠุฉ ู†ู‚ุทุฉ ูˆุตูˆู„ ูˆุงุญุฏุฉ ุชุดุชุฑูƒ ููŠ ู†ูุณ ู…ุฌู…ูˆุนุฉ ู…ุณุชูˆู‰ PHY ุงู„ุณู…ุงุช (ูˆ
ุงู„ู‚ู†ุงุฉ) ูƒุงู„ู…ุญุทุงุช:

NetDeviceContainer apDevicesุ›
apDevices = wifi.Install (phy, mac, wifiApNode);

ุงู„ุขู†ุŒ ุณู†ู‚ูˆู… ุจุฅุถุงูุฉ ู†ู…ุงุฐุฌ ุงู„ุชู†ู‚ู„. ู†ุฑูŠุฏ ุฃู† ุชูƒูˆู† ุนู‚ุฏ STA ู…ุชู†ู‚ู„ุฉ ูˆู…ุชุฌูˆู„ุฉ
ุฏุงุฎู„ ุงู„ู…ุฑุจุน ุงู„ู…ุญูŠุทุŒ ูˆู†ุฑูŠุฏ ุฃู† ู†ุฌุนู„ ุนู‚ุฏุฉ AP ุซุงุจุชุฉ. ู†ุญู† ู†ุณุชุฎุฏู… ุงู„
MobilityHelper ู„ุฌุนู„ ู‡ุฐุง ุณู‡ู„ุง ุจุงู„ู†ุณุจุฉ ู„ู†ุง. ุฃูˆู„ุงู‹ุŒ ู†ู‚ูˆู… ุจุฅู†ุดุงุก ู…ุซูŠู„ ุฃ MobilityHelper ู…ูˆุถูˆุน
ูˆุชุนูŠูŠู† ุจุนุถ ุงู„ุณู…ุงุช ุงู„ุชุญูƒู… ููŠ ูˆุธูŠูุฉ "ู…ุฎุตุต ุงู„ู…ูˆุถุน".

ุงู„ุชู†ู‚ู„

ุงู„ุชู†ู‚ู„.SetPositionAllocator ("ns3::GridPositionAllocator"ุŒ
"ู…ูŠู†ูƒุณ"ุŒ ู‚ูŠู…ุฉ ู…ุฒุฏูˆุฌุฉ (0.0)ุŒ
"ู…ูŠู†ูŠ"ุŒ ู‚ูŠู…ุฉ ู…ุฒุฏูˆุฌุฉ (0.0)ุŒ
"DeltaX" ุŒ DoubleValue (5.0) ุŒ
"DeltaY" ุŒ DoubleValue (10.0) ุŒ
"GridWidth" ุŒ UintegerValue (3) ุŒ
"LayoutType" ุŒ StringValue ("RowFirst")) ุ›

ูŠุฎุจุฑ ู‡ุฐุง ุงู„ุฑู…ุฒ ู…ุณุงุนุฏ ุงู„ุชู†ู‚ู„ ุจุงุณุชุฎุฏุงู… ุดุจูƒุฉ ุซู†ุงุฆูŠุฉ ุงู„ุฃุจุนุงุฏ ู„ูˆุถุน ุงู„ู…ู„ู ููŠ ุงู„ุจุฏุงูŠุฉ
ุนู‚ุฏ STA. ู„ุง ุชุชุฑุฏุฏ ููŠ ุงุณุชูƒุดุงู Doxygen ู„ู„ูุตู„ ns3::GridPositionAllocator ู„ู…ุนุฑูุฉ
ุจุงู„ุถุจุท ู…ุง ูŠุฌุฑูŠ ุงู„ู‚ูŠุงู… ุจู‡.

ู„ู‚ุฏ ู‚ู…ู†ุง ุจุชุฑุชูŠุจ ุนู‚ุฏู†ุง ุนู„ู‰ ุดุจูƒุฉ ุฃูˆู„ูŠุฉุŒ ูˆู„ูƒู† ุนู„ูŠู†ุง ุงู„ุขู† ุฃู† ู†ุฎุจุฑู‡ุง ุจูƒูŠููŠุฉ ุงู„ุชุญุฑูƒ.
ู†ุฎุชุงุฑ RandomWalk2dMobilityModel ุงู„ุฐูŠ ุชุชุญุฑูƒ ููŠู‡ ุงู„ุนู‚ุฏ ููŠ ุงุชุฌุงู‡ ุนุดูˆุงุฆูŠ ุนู†ุฏ
ุณุฑุนุฉ ุนุดูˆุงุฆูŠุฉ ุฏุงุฎู„ ุงู„ู…ุฑุจุน ุงู„ู…ุญูŠุท.

ุงู„ุชู†ู‚ู„.SetMobilityModel ("ns3::RandomWalk2dMobilityModel"ุŒ
"ุงู„ุญุฏูˆุฏ"ุŒ ู‚ูŠู…ุฉ ุงู„ู…ุณุชุทูŠู„ (ุงู„ู…ุณุชุทูŠู„ (-50ุŒ 50ุŒ -50ุŒ 50)))ุ›

ู†ุญู† ุงู„ุขู† ู†ู‚ูˆู„ ู„ MobilityHelper ู„ุชุซุจูŠุช ู†ู…ุงุฐุฌ ุงู„ุชู†ู‚ู„ ุนู„ู‰ ุนู‚ุฏ STA.

ุงู„ุชู†ู‚ู„. ุงู„ุชุซุจูŠุช (wifiStaNodes)ุ›

ู†ุฑูŠุฏ ุฃู† ุชุธู„ ู†ู‚ุทุฉ ุงู„ูˆุตูˆู„ ููŠ ูˆุถุน ุซุงุจุช ุฃุซู†ุงุก ุงู„ู…ุญุงูƒุงุฉ. ู†ุญู†
ูŠู…ูƒู†ูƒ ุชุญู‚ูŠู‚ ุฐู„ูƒ ุนู† ุทุฑูŠู‚ ุชุนูŠูŠู† ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„ ู„ู‡ุฐู‡ ุงู„ุนู‚ุฏุฉ ู„ูŠูƒูˆู†
ns3::ConstantPositionMobilityModel:

ุงู„ุชู†ู‚ู„.SetMobilityModel("ns3::ConstantPositionMobilityModel");
ุงู„ุชู†ู‚ู„. ุงู„ุชุซุจูŠุช (wifiApNode)ุ›

ู„ุฏูŠู†ุง ุงู„ุขู† ุนู‚ุฏู†ุง ูˆุฃุฌู‡ุฒุชู†ุง ูˆู‚ู†ูˆุงุชู†ุง ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ูˆู†ู…ุงุฐุฌ ุงู„ุชู†ู‚ู„ ุงู„ู…ุฎุชุงุฑุฉ ู„ู€
ุนู‚ุฏ WifiุŒ ู„ูƒู† ู„ูŠุณ ู„ุฏูŠู†ุง ุฃูŠ ู…ุฌู…ูˆุนุงุช ุจุฑูˆุชูˆูƒูˆู„ุงุช ู…ูˆุฌูˆุฏุฉ. ุชู…ุงู…ุง ูƒู…ุง ูุนู„ู†ุง ุณุงุจู‚ุง ููŠ ูƒุซูŠุฑ ู…ู† ุงู„ุฃุญูŠุงู†
ู…ุฑุงุชุŒ ุณูˆู ู†ุณุชุฎุฏู… InternetStackHelper ู„ุชุซุจูŠุช ู‡ุฐู‡ ุงู„ุฃูƒูˆุงู….

ู…ูƒุฏุณ InternetStackHelperุ›
Stack.Install (csmaNodes);
Stack.Install (wifiApNode)ุ›
Stack.Install (wifiStaNodes)ุ›

ุชู…ุงู…ุง ูƒู…ุง ููŠ Second.cc ู…ุซุงู„ ุนู„ู‰ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ุณูˆู ู†ุณุชุฎุฏู… IPv4AddressHelper ุฅู„ู‰
ุชุนูŠูŠู† ุนู†ุงูˆูŠู† IP ู„ูˆุงุฌู‡ุงุช ุฃุฌู‡ุฒุชู†ุง. ุฃูˆู„ุงู‹ ู†ุณุชุฎุฏู… ุงู„ุดุจูƒุฉ 10.1.1.0 ู„ู„ุฅู†ุดุงุก
ุงู„ุนู†ูˆุงู†ูŠู† ุงู„ู„ุงุฒู…ูŠู† ู„ุฌู‡ุงุฒูŠ ุงู„ุงุชุตุงู„ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ. ุซู… ู†ุณุชุฎุฏู… ุงู„ุดุจูƒุฉ 10.1.2.0
ู„ุชุนูŠูŠู† ุนู†ุงูˆูŠู† ู„ุดุจูƒุฉ CSMA ุซู… ู†ู‚ูˆู… ุจุชุนูŠูŠู† ุนู†ุงูˆูŠู† ู…ู† ุงู„ุดุจูƒุฉ 10.1.3.0
ู„ูƒู„ ู…ู† ุฃุฌู‡ุฒุฉ STA ูˆู†ู‚ุทุฉ ุงู„ูˆุตูˆู„ ุนู„ู‰ ุงู„ุดุจูƒุฉ ุงู„ู„ุงุณู„ูƒูŠุฉ.

ุนู†ูˆุงู† Ipv4AddressHelperุ›

ุนู†ูˆุงู†.SetBase ("10.1.1.0"ุŒ "255.255.255.0")ุ›
Ipv4InterfaceContainer p2pInterfaces;
p2pInterfaces = Address.Assign (p2pDevices);

ุนู†ูˆุงู†.SetBase ("10.1.2.0"ุŒ "255.255.255.0")ุ›
Ipv4InterfaceContainer csmaInterfaces;
csmaInterfaces = Address.Assign (csmaDevices);

ุนู†ูˆุงู†.SetBase ("10.1.3.0"ุŒ "255.255.255.0")ุ›
ุนู†ูˆุงู†.ุชุฎุตูŠุต (staDevices)ุ›
ุนู†ูˆุงู†.ุชุฎุตูŠุต (apDevices)ุ›

ู„ู‚ุฏ ูˆุถุนู†ุง ุฎุงุฏู… ุงู„ุตุฏู‰ ุนู„ู‰ ุงู„ุนู‚ุฏุฉ "ุฃู‚ุตู‰ ุงู„ูŠู…ูŠู†" ููŠ ุงู„ุฑุณู… ุงู„ุชูˆุถูŠุญูŠ ููŠ ุจุฏุงูŠุฉ ุงู„ู…ู„ู
ู…ู„ู. ู„ู‚ุฏ ูุนู„ู†ุง ู‡ุฐุง ู…ู† ู‚ุจู„.

UdpEchoServerHelper echoServer (9);

ApplicationContainer serverApps = echoServer.Install (csmaNodes.Get (nCsma));
serverApps.Start (Seconds (1.0));
serverApps.Stop (ุซูˆุงู†ูŠ (10.0))ุ›

ูˆู†ุถุน ุนู…ูŠู„ ุงู„ุตุฏู‰ ุนู„ู‰ ุขุฎุฑ ุนู‚ุฏุฉ STA ู‚ู…ู†ุง ุจุฅู†ุดุงุฆู‡ุงุŒ ูˆู†ูˆุฌู‡ู‡ ุฅู„ู‰ ุงู„ุฎุงุฏู… ู‚ูŠุฏ ุงู„ุชุดุบูŠู„
ุดุจูƒุฉ CSMA ู„ู‚ุฏ ุดู‡ุฏู†ุง ุฃูŠุถู‹ุง ุนู…ู„ูŠุงุช ู…ู…ุงุซู„ุฉ ู…ู† ู‚ุจู„.

UdpEchoClientHelper echoClient (csmaInterfaces.GetAddress (nCsma)ุŒ 9)ุ›
echoClient.SetAttribute ("MaxPackets"ุŒ UintegerValue (1))ุ›
echoClient.SetAttribute ("Interval"ุŒ TimeValue (Seconds (1.0)))ุ›
echoClient.SetAttribute ("PacketSize"ุŒ UintegerValue (1024))ุ›

ApplicationContainer clientApps =
echoClient.Install (wifiStaNodes.Get (nWifi - 1));
ClientApps.Start (ุซูˆุงู†ูŠ (2.0))ุ›
ClientApps.Stop (Seconds (10.0));

ูˆุจู…ุง ุฃู†ู†ุง ู‚ู…ู†ุง ุจุจู†ุงุก ุดุจูƒุฉ ุจูŠู†ูŠุฉ ู‡ู†ุงุŒ ูู†ุญู† ุจุญุงุฌุฉ ุฅู„ู‰ ุชู…ูƒูŠู† ุชูˆุฌูŠู‡ ุงู„ุดุจูƒุฉ ุงู„ุจูŠู†ูŠุฉ ุฃูŠุถู‹ุง
ูุนู„ู†ุง ููŠ Second.cc ู…ุซุงู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ.

Ipv4GlobalRoutingHelper::PopulateRoutingTables();

ุงู„ุดูŠุก ุงู„ูˆุญูŠุฏ ุงู„ุฐูŠ ูŠู…ูƒู† ุฃู† ูŠูุงุฌุฆ ุจุนุถ ุงู„ู…ุณุชุฎุฏู…ูŠู† ู‡ูˆ ุญู‚ูŠู‚ุฉ ุงู„ู…ุญุงูƒุงุฉ ุงู„ุชูŠ ุฃู†ุดุฃู†ุงู‡ุง ู„ู„ุชูˆ
ู„ู† ุชุชูˆู‚ู ุฃุจุฏู‹ุง "ุจุดูƒู„ ุทุจูŠุนูŠ". ูˆุฐู„ูƒ ู„ุฃู†ู†ุง ุทู„ุจู†ุง ู…ู† ู†ู‚ุทุฉ ุงู„ูˆุตูˆู„ ุงู„ู„ุงุณู„ูƒูŠุฉ
ุชูˆู„ูŠุฏ ู…ู†ุงุฑุงุช. ูˆุณูˆู ุชูˆู„ุฏ ู…ู†ุงุฑุงุช ุฅู„ู‰ ุงู„ุฃุจุฏุŒ ูˆู‡ุฐุง ุณูˆู ูŠุคุฏูŠ ุฅู„ู‰ ู…ุญุงูƒุงุฉ
ุชุชู… ุฌุฏูˆู„ุฉ ุงู„ุฃุญุฏุงุซ ููŠ ุงู„ู…ุณุชู‚ุจู„ ุฅู„ู‰ ุฃุฌู„ ุบูŠุฑ ู…ุณู…ู‰ุŒ ู„ุฐู„ูƒ ูŠุฌุจ ุฃู† ู†ุทู„ุจ ู…ู† ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ ุฃู† ูŠุชูˆู‚ู
ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ู‡ ู‚ุฏ ูŠูƒูˆู† ู„ุฏูŠู‡ ุฃุญุฏุงุซ ุฅู†ุดุงุก ู…ู†ุงุฑุฉ ู…ุฌุฏูˆู„ุฉ. ุงู„ุณุทุฑ ุงู„ุชุงู„ูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ
ูŠุฎุจุฑ ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ ุจุงู„ุชูˆู‚ู ุญุชู‰ ู„ุง ู†ุญุงูƒูŠ ุงู„ู…ู†ุงุฑุงุช ุฅู„ู‰ ุงู„ุฃุจุฏ ูˆู†ุฏุฎู„ ุฅู„ู‰ ู…ุง ู‡ูˆ ู…ูˆุฌูˆุฏ
ููŠ ุงู„ุฃุณุงุณ ุญู„ู‚ุฉ ู„ุง ู†ู‡ุงูŠุฉ ู„ู‡ุง.

ู…ุญุงูƒูŠ::ุชูˆู‚ู (ุซูˆุงู†ูŠ (10.0))ุ›

ู†ู‚ูˆู… ุจุฅู†ุดุงุก ู…ุง ูŠูƒููŠ ู…ู† ุงู„ุชุชุจุน ู„ุชุบุทูŠุฉ ุงู„ุดุจูƒุงุช ุงู„ุซู„ุงุซ:

pointToPoint.EnablePcapAll ("ุงู„ุซุงู„ุซ")ุ›
phy.EnablePcap ("ุงู„ุซุงู„ุซ"ุŒ apDevices.Get (0))ุ›
csma.EnablePcap ("ุซุงู„ุซ"ุŒ csmaDevices.Get (0)ุŒ true) ุ›

ุณุชุจุฏุฃ ู‡ุฐู‡ ุงู„ุฃุณุทุฑ ุงู„ุซู„ุงุซุฉ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ููŠ ุชุชุจุน PCAP ุนู„ู‰ ูƒู„ุง ุงู„ุนู‚ุฏุชูŠู† ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
ุจู…ุซุงุจุฉ ุงู„ุนู…ูˆุฏ ุงู„ูู‚ุฑูŠ ู„ุฏูŠู†ุงุŒ ูˆุณูˆู ูŠุจุฏุฃ ุชุชุจุน ุงู„ูˆุถุน ุบูŠุฑ ุงู„ุดุฑุนูŠ (ุงู„ู…ุฑุงู‚ุจุฉ) ุนู„ู‰ ุดุจูƒุฉ ูˆุงูŠ ูุงูŠุŒ
ูˆุณูŠุจุฏุฃ ุชุชุจุนู‹ุง ุบูŠุฑ ุดุฑุนูŠ ุนู„ู‰ ุดุจูƒุฉ CSMA. ูˆู‡ุฐุง ุณูˆู ูŠุชูŠุญ ู„ู†ุง ุฑุคูŠุฉ ูƒู„
ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ู…ุน ุงู„ุญุฏ ุงู„ุฃุฏู†ู‰ ู„ุนุฏุฏ ู…ู„ูุงุช ุงู„ุชุชุจุน.

ุฃุฎูŠุฑู‹ุงุŒ ู†ู‚ูˆู… ุจุงู„ูุนู„ ุจุชุดุบูŠู„ ุงู„ู…ุญุงูƒุงุฉ ูˆุชู†ุธูŠู ุงู„ุจุฑู†ุงู…ุฌ ุซู… ุงู„ุฎุฑูˆุฌ ู…ู†ู‡.

ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ () ุ›
ุฌู‡ุงุฒ ู…ุญุงูƒุงุฉ :: ุชุฏู…ูŠุฑ () ุ›
0 ุงู„ุนูˆุฏุฉุ›
}

ู„ุชุดุบูŠู„ ู‡ุฐุง ุงู„ู…ุซุงู„ุŒ ุนู„ูŠูƒ ู†ุณุฎ ู…ู„ู ุงู„ุซุงู„ุซ.cc ู…ุซุงู„ ุนู„ู‰ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ููŠ
ุงุฎุฏุด ุงู„ุฏู„ูŠู„ ูˆุงุณุชุฎุฏู… Waf ู„ู„ุฅู†ุดุงุก ุชู…ุงู…ู‹ุง ูƒู…ุง ูุนู„ุช ู…ุน ู…ู„ู Second.cc ู…ุซุงู„. ุงุฐุง ุฃู†ุช
ู…ูˆุฌูˆุฏุฉ ููŠ ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ู„ู„ู…ุณุชูˆุฏุน ุงู„ุฐูŠ ุณุชูƒุชุจู‡ุŒ

ุฃู…ุซู„ุฉ $ cp/tutorial/third.ccุฎุฏุด/mythird.cc
$ ./ูˆุงู
$ ./waf --ุชุดุบูŠู„ ุงู„ุตูุฑ/mythird

ู…ุฑุฉ ุฃุฎุฑู‰ุŒ ู†ุธุฑู‹ุง ู„ุฃู†ู†ุง ู‚ู…ู†ุง ุจุฅุนุฏุงุฏ ุชุทุจูŠู‚ุงุช ุตุฏู‰ UDP ุชู…ุงู…ู‹ุง ูƒู…ุง ูุนู„ู†ุง ููŠ ู…ู„ู Second.cc
ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠุŒ ุณุชุฑู‰ ุฅุฎุฑุงุฌ ู…ู…ุงุซู„.

Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.407 ุซุงู†ูŠุฉ)
ููŠ ุงู„ูˆู‚ุช 2sุŒ ุฃุฑุณู„ ุงู„ุนู…ูŠู„ 1024 ุจุงูŠุช ุฅู„ู‰ ุงู„ู…ู†ูุฐ 10.1.2.4 9
ููŠ ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจุŒ ุชู„ู‚ู‰ ุฎุงุฏู… 2.01796s 1024 ุจุงูŠุช ู…ู† ุงู„ู…ู†ูุฐ 10.1.3.3 ุฑู‚ู… 49153
ููŠ ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจุŒ ุฃุฑุณู„ ุฎุงุฏู… 2.01796s 1024 ุจุงูŠุช ุฅู„ู‰ ุงู„ู…ู†ูุฐ 10.1.3.3 ุฑู‚ู… 49153
ููŠ ุงู„ูˆู‚ุช 2.03364 ุชู„ู‚ู‰ ุงู„ุนู…ูŠู„ 1024 ุจุงูŠุช ู…ู† ุงู„ู…ู†ูุฐ 10.1.2.4 9

ุฃุฐูƒุฑ ุฃู† ุงู„ุฑุณุงู„ุฉ ุงู„ุฃูˆู„ู‰ุŒ ุฃุฑุณู„ุช 1024 ุจุงูŠุช ุฅู„ู‰ 10.1.2.4"ุŒ ู‡ูˆ ุนู…ูŠู„ ุตุฏู‰ UDP
ุฅุฑุณุงู„ ุญุฒู…ุฉ ุฅู„ู‰ ุงู„ุฎุงุฏู…. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ูŠูƒูˆู† ุงู„ุนู…ูŠู„ ู…ุชุตู„ุงู‹ ุจุงู„ุดุจูƒุฉ ุงู„ู„ุงุณู„ูƒูŠุฉ
(10.1.3.0). ุงู„ุฑุณุงู„ุฉ ุงู„ุซุงู†ูŠุฉ "ุชู… ุงู„ุงุณุชู„ุงู… 1024 ุจุงูŠุช ุชุจุฏุฃ ู…ู† 10.1.3.3"ุŒ ู…ู† ุตุฏู‰ UDP
ุงู„ุฎุงุฏู…ุŒ ุงู„ุฐูŠ ูŠุชู… ุฅู†ุดุงุคู‡ ุนู†ุฏู…ุง ูŠุชู„ู‚ู‰ ุญุฒู…ุฉ ุงู„ุตุฏู‰. ุงู„ุฑุณุงู„ุฉ ุงู„ุงุฎูŠุฑุฉ "ุชู… ุงู„ุงุณุชู„ุงู… 1024
ุจุงูŠุช ุชุจุฏุฃ ู…ู† 10.1.2.4"ุŒ ู…ู† ุนู…ูŠู„ ุงู„ุตุฏู‰ุŒ ู…ู…ุง ูŠุดูŠุฑ ุฅู„ู‰ ุฃู†ู‡ ุชู„ู‚ู‰ ุงู„ุตุฏู‰ ุงู„ุฎุงุต ุจู‡
ุงู„ุนูˆุฏุฉ ู…ู† ุงู„ุฎุงุฏู….

ุฅุฐุง ุฐู‡ุจุช ุงู„ุขู† ูˆุจุญุซุช ููŠ ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ุŒ ูุณุชุฌุฏ ุฃุฑุจุนุฉ ู…ู„ูุงุช ุชุชุจุน ู…ู†
ู‡ุฐู‡ ุงู„ู…ุญุงูƒุงุฉุŒ ุงุซู†ุงู† ู…ู† ุงู„ุนู‚ุฏุฉ ุตูุฑ ูˆุงุซู†ุงู† ู…ู† ุงู„ุนู‚ุฏุฉ ุงู„ุฃูˆู„ู‰:

third-0-0.pcap third-0-1.pcap third-1-0.pcap third-1-1.pcap

ูŠุชูˆุงูู‚ ุงู„ู…ู„ู "third-0-0.pcap" ู…ุน ุฌู‡ุงุฒ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุนู„ู‰ ุงู„ุนู‚ุฏุฉ ุตูุฑ -
ุงู„ุฌุงู†ุจ ุงู„ุฃูŠุณุฑ ู…ู† "ุงู„ุนู…ูˆุฏ ุงู„ูู‚ุฑูŠ". ุงู„ู…ู„ู "third-1-0.pcap" ูŠุชูˆุงูู‚ ู…ุน ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
ุงู„ุฌู‡ุงุฒ ุนู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุฃูˆู„ู‰ - ุงู„ุฌุงู†ุจ ุงู„ุฃูŠู…ู† ู…ู† "ุงู„ุนู…ูˆุฏ ุงู„ูู‚ุฑูŠ". ุณูŠูƒูˆู† ุงู„ู…ู„ู "ุงู„ุซุงู„ุซ-0-1.pcap".
ุงู„ุชุชุจุน ุงู„ู…ุฎุชู„ุท (ูˆุถุน ุงู„ุดุงุดุฉ) ู…ู† ุดุจูƒุฉ Wifi ูˆุงู„ู…ู„ู "third-1-1.pcap"
ุณูŠูƒูˆู† ุงู„ุชุชุจุน ุบูŠุฑ ุงู„ุดุฑุนูŠ ู…ู† ุดุจูƒุฉ CSMA. ู‡ู„ ูŠู…ูƒู†ูƒ ุงู„ุชุญู‚ู‚ ู…ู† ุฐู„ูƒ ุนู† ุทุฑูŠู‚ ุงู„ูุญุต
ุงู„ุฑู…ุฒุŸ

ู†ุธุฑู‹ุง ู„ูˆุฌูˆุฏ ุนู…ูŠู„ ุงู„ุตุฏู‰ ุนู„ู‰ ุดุจูƒุฉ WifiุŒ ูู„ู†ุจุฏุฃ ู…ู† ู‡ู†ุงูƒ. ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰
ุชุชุจุน ุบูŠุฑ ุดุฑุนูŠ (ูˆุถุน ุงู„ุดุงุดุฉ) ุงู„ุชู‚ุทู†ุงู‡ ุนู„ู‰ ุชู„ูƒ ุงู„ุดุจูƒุฉ.

$ tcpdump -nn -tt -r Third-0-1.pcap

ู…ู† ุงู„ู…ูุชุฑุถ ุฃู† ุชุดุงู‡ุฏ ุจุนุถ ุงู„ู…ุญุชูˆูŠุงุช ุงู„ุชูŠ ุชุดุจู‡ ุดุจูƒุฉ wifi ูˆุงู„ุชูŠ ู„ู… ุชุดุงู‡ุฏู‡ุง ู‡ู†ุง ู…ู† ู‚ุจู„:

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู ุงู„ุซุงู„ุซ-0-1.pcapุŒ ู†ูˆุน ุงู„ุฑุงุจุท IEEE802_11 (802.11)
0.000025 ู…ู†ุงุฑุฉ (ns-3-ssid) [6.0*9.0 12.0 18.0 24.0 36.0 48.0 54.0 ู…ูŠุฌุงุจุช] IBSS
0.000308 ุทู„ุจ ู…ุณุงุนุฏ (ns-3-ssid) [6.0 9.0 12.0 18.0 24.0 36.0 48.0 54.0 ู…ูŠุฌุงุจุช]
0.000324 Acknowledgment RA:00:00:00:00:00:08
0.000402 ุงุณุชุฌุงุจุฉ ู…ุณุงุนุฏ ู…ุณุงุนุฏุฉ(0) :: ู†ุงุฌุญ
0.000546 Acknowledgment RA:00:00:00:00:00:0a
0.000721 ุทู„ุจ ู…ุณุงุนุฏ (ns-3-ssid) [6.0 9.0 12.0 18.0 24.0 36.0 48.0 54.0 ู…ูŠุฌุงุจุช]
0.000737 Acknowledgment RA:00:00:00:00:00:07
0.000824 ุงุณุชุฌุงุจุฉ ู…ุณุงุนุฏ ู…ุณุงุนุฏุฉ(0) :: ู†ุงุฌุญ
0.000968 Acknowledgment RA:00:00:00:00:00:0a
0.001134 ุทู„ุจ ู…ุณุงุนุฏ (ns-3-ssid) [6.0 9.0 12.0 18.0 24.0 36.0 48.0 54.0 ู…ูŠุฌุงุจุช]
0.001150 Acknowledgment RA:00:00:00:00:00:09
0.001273 ุงุณุชุฌุงุจุฉ ู…ุณุงุนุฏ ู…ุณุงุนุฏุฉ(0) :: ู†ุงุฌุญ
0.001417 Acknowledgment RA:00:00:00:00:00:0a
0.102400 ู…ู†ุงุฑุฉ (ns-3-ssid) [6.0*9.0 12.0 18.0 24.0 36.0 48.0 54.0 ู…ูŠุฌุงุจุช] IBSS
0.204800 ู…ู†ุงุฑุฉ (ns-3-ssid) [6.0*9.0 12.0 18.0 24.0 36.0 48.0 54.0 ู…ูŠุฌุงุจุช] IBSS
0.307200 ู…ู†ุงุฑุฉ (ns-3-ssid) [6.0*9.0 12.0 18.0 24.0 36.0 48.0 54.0 ู…ูŠุฌุงุจุช] IBSS

ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุฃู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท ุฃุตุจุญ ุงู„ุขู† 802.11 ูƒู…ุง ุชุชูˆู‚ุน. ุฑุจู…ุง ูŠู…ูƒู†ูƒ ุฐู„ูƒ
ุงูู‡ู… ู…ุง ูŠุญุฏุซ ูˆุงุจุญุซ ุนู† ุทู„ุจ ุตุฏู‰ IP ูˆุญุฒู… ุงู„ุงุณุชุฌุงุจุฉ ููŠ ู‡ุฐุง
ูŠุชุนู‚ุจ. ู†ุชุฑูƒ ุงู„ุฃู…ุฑ ูƒุชู…ุฑูŠู† ู„ุชุญู„ูŠู„ ุชูุฑูŠุบ ุงู„ุชุชุจุน ุจุงู„ูƒุงู…ู„.

ุงู„ุขู†ุŒ ุงู†ุธุฑ ุฅู„ู‰ ู…ู„ู pcap ุงู„ู…ูˆุฌูˆุฏ ุนู„ู‰ ุงู„ุฌุงู†ุจ ุงู„ุฃูŠู…ู† ู…ู† ุงู„ุฑุงุจุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉุŒ

$ tcpdump -nn -tt -r Third-0-0.pcap

ู…ุฑุฉ ุฃุฎุฑู‰ุŒ ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุจุนุถ ุงู„ู…ุญุชูˆูŠุงุช ุงู„ู…ุฃู„ูˆูุฉ:

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู ุงู„ุซุงู„ุซ-0-0.pcapุŒ PPP ู…ู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท (PPP)
2.008151 IP 10.1.3.3.49153 > 10.1.2.4.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.026758 IP 10.1.2.4.9 > 10.1.3.3.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ู‡ุฐู‡ ู‡ูŠ ุญุฒู…ุฉ ุงู„ุตุฏู‰ ุงู„ุชูŠ ุชู†ุชู‚ู„ ู…ู† ุงู„ูŠุณุงุฑ ุฅู„ู‰ ุงู„ูŠู…ูŠู† (ู…ู† Wifi ุฅู„ู‰ CSMA) ุซู… ุชุนูˆุฏ ู…ุฑุฉ ุฃุฎุฑู‰
ุงู„ุฑุงุจุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ.

ุงู„ุขู†ุŒ ุงู†ุธุฑ ุฅู„ู‰ ู…ู„ู pcap ุงู„ู…ูˆุฌูˆุฏ ุนู„ู‰ ุงู„ุฌุงู†ุจ ุงู„ุฃูŠู…ู† ู…ู† ุงู„ุฑุงุจุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉุŒ

$ tcpdump -nn -tt -r Third-1-0.pcap

ู…ุฑุฉ ุฃุฎุฑู‰ุŒ ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุจุนุถ ุงู„ู…ุญุชูˆูŠุงุช ุงู„ู…ุฃู„ูˆูุฉ:

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู ุงู„ุซุงู„ุซ-1-0.pcapุŒ PPP ู…ู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท (PPP)
2.011837 IP 10.1.3.3.49153 > 10.1.2.4.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.023072 IP 10.1.2.4.9 > 10.1.3.3.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ู‡ุฐู‡ ุฃูŠุถู‹ุง ู‡ูŠ ุญุฒู…ุฉ ุงู„ุตุฏู‰ ุงู„ุชูŠ ุชู†ุชู‚ู„ ู…ู† ุงู„ูŠุณุงุฑ ุฅู„ู‰ ุงู„ูŠู…ูŠู† (ู…ู† Wifi ุฅู„ู‰ CSMA) ูˆุงู„ุนูˆุฏุฉ ู…ุฑุฉ ุฃุฎุฑู‰
ุนุจุฑ ุงู„ุฑุงุจุท ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ู…ุน ุชูˆู‚ูŠุชุงุช ู…ุฎุชู„ูุฉ ู‚ู„ูŠู„ุงู‹ ูƒู…ุง ู‚ุฏ ุชุชูˆู‚ุน.

ุฎุงุฏู… ุงู„ุตุฏู‰ ู…ูˆุฌูˆุฏ ุนู„ู‰ ุดุจูƒุฉ CSMAุŒ ูู„ู†ู„ู‚ู ู†ุธุฑุฉ ุนู„ู‰ ุงู„ุชุชุจุน ุงู„ู…ุฎุชู„ุท ู‡ู†ุงูƒ:

$ tcpdump -nn -tt -r Third-1-1.pcap

ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุจุนุถ ุงู„ู…ุญุชูˆูŠุงุช ุฐุงุช ุงู„ู…ุธู‡ุฑ ุงู„ู…ุฃู„ูˆู:

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู ุงู„ุซุงู„ุซ 1-1.pcapุŒ ู†ูˆุน ุงู„ุฑุงุจุท EN10MB (ุฅูŠุซุฑู†ุช)
2.017837 ARPุŒ ุทู„ุจ ู…ู† ู„ุฏูŠู‡ 10.1.2.4 (ff:ff:ff:ff:ff:ff) ุฃุฎุจุฑ 10.1.2.1ุŒ ุงู„ุทูˆู„ 50
2.017861 ARPุŒ ุงู„ุฑุฏ 10.1.2.4 ู…ูˆุฌูˆุฏ ููŠ 00:00:00:00:00:06ุŒ ุงู„ุทูˆู„ 50
2.017861 IP 10.1.3.3.49153 > 10.1.2.4.9: UDPุŒ ุงู„ุทูˆู„ 1024
2.022966 ARPุŒ ุทู„ุจ ู…ู† ู„ุฏูŠู‡ 10.1.2.1 (ff:ff:ff:ff:ff:ff) ุฃุฎุจุฑ 10.1.2.4ุŒ ุงู„ุทูˆู„ 50
2.022966 ARPุŒ ุงู„ุฑุฏ 10.1.2.1 ู…ูˆุฌูˆุฏ ููŠ 00:00:00:00:00:03ุŒ ุงู„ุทูˆู„ 50
2.023072 IP 10.1.2.4.9 > 10.1.3.3.49153: UDPุŒ ุงู„ุทูˆู„ 1024

ูˆูŠู†ุจุบูŠ ุฃู† ูŠูƒูˆู† ู…ูู‡ูˆู…ุง ุจุณู‡ูˆู„ุฉ. ุฅุฐุง ู†ุณูŠุชุŒ ุงุฑุฌุน ูˆุงู†ุธุฑ ุฅู„ู‰ ุงู„ู…ู†ุงู‚ุดุฉ
in Second.cc. ู‡ุฐุง ู‡ูˆ ู†ูุณ ุงู„ุชุณู„ุณู„.

ุงู„ุขู†ุŒ ู‚ุถูŠู†ุง ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ูˆู‚ุช ููŠ ุฅุนุฏุงุฏ ู†ู…ุงุฐุฌ ุงู„ุชู†ู‚ู„ ู„ู„ุดุจูƒุฉ ุงู„ู„ุงุณู„ูƒูŠุฉุŒ ูˆู‡ูƒุฐุง
ุณูŠูƒูˆู† ู…ู† ุงู„ุนุงุฑ ุงู„ุงู†ุชู‡ุงุก ู…ู† ุฐู„ูƒ ุฏูˆู† ุฅุธู‡ุงุฑ ุฃู† ุนู‚ุฏ STA ุชุชุญุฑูƒ ุจุงู„ูุนู„
ุญูˆู„ู‡ุง ุฃุซู†ุงุก ุงู„ู…ุญุงูƒุงุฉ. ุฏุนูˆู†ุง ู†ูุนู„ ุฐู„ูƒ ุนู† ุทุฑูŠู‚ ุงู„ุฑุจุท ููŠ MobilityModel ุงู„ุฏูˆุฑุฉ
ุชุบูŠูŠุฑ ู…ุตุฏุฑ ุงู„ุชุชุจุน. ู‡ุฐู‡ ู…ุฌุฑุฏ ู†ุธุฑุฉ ุฎุงุทูุฉ ุนู„ู‰ ู‚ุณู… ุงู„ุชุชุจุน ุงู„ุชูุตูŠู„ูŠ
ู‚ุงุฏู…ุŒ ูˆู„ูƒู† ูŠุจุฏูˆ ุฃู† ู‡ุฐุง ู…ูƒุงู† ุฌู…ูŠู„ ุฌุฏู‹ุง ู„ู„ุญุตูˆู„ ุนู„ู‰ ู…ุซุงู„ ููŠู‡.

ูƒู…ุง ู‡ูˆ ู…ุฐูƒูˆุฑ ููŠ ู‚ุณู… "ุงู„ุชุจุฏูŠู„ ูˆุงู„ุชุจุฏูŠู„ ns-3"ุŒ ูุฅู† NS-3 ูŠู†ู‚ุณู… ู†ุธุงู… ุงู„ุชุชุจุน ุฅู„ู‰ ุชุชุจุน
ุงู„ู…ุตุงุฏุฑ ูˆุฃุญูˆุงุถ ุงู„ุชุชุจุนุŒ ูˆู†ูˆูุฑ ูˆุธุงุฆู ู„ู„ุฑุจุท ุจูŠู† ุงู„ุงุซู†ูŠู†. ุณูˆู ู†ุณุชุฎุฏู…
ูŠู‚ูˆู… ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„ ุงู„ู…ุญุฏุฏ ู…ุณุจู‚ู‹ุง ุจุชุบูŠูŠุฑ ู…ุตุฏุฑ ุงู„ุชุชุจุน ู„ุฅู†ุดุงุก ุฃุญุฏุงุซ ุงู„ุชุชุจุน. ู†ุญู†
ุณูˆู ุชุญุชุงุฌ ุฅู„ู‰ ูƒุชุงุจุฉ ู…ุตุฏุฑ ุชุชุจุน ู„ู„ุงุชุตุงู„ ุจู‡ุฐุง ุงู„ู…ุตุฏุฑ ุงู„ุฐูŠ ุณูŠุนุฑุถ ุจุนุถ ุงู„ุฌู…ุงู„
ุงู„ู…ุนู„ูˆู…ุงุช ุจุงู„ู†ุณุจุฉ ู„ู†ุง. ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุณู…ุนุชู‡ุง ุจุฃู†ู‡ุง ุตุนุจุฉุŒ ุฅู„ุง ุฃู†ู‡ุง ููŠ ุงู„ุญู‚ูŠู‚ุฉ ุจุณูŠุทุฉ ู„ู„ุบุงูŠุฉ.
ู‚ุจู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฑุฆูŠุณูŠ ู„ู„ ุงู„ุตูุฑ/mythird.cc ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ (ุฃูŠ ุจุนุฏ
NS_LOG_COMPONENT_DEFINE ุจูŠุงู†)ุŒ ุฃุถู ุงู„ูˆุธูŠูุฉ ุงู„ุชุงู„ูŠุฉ:

ุจุงุทู„
CourseChange (std::string contextุŒ Ptr ู†ู…ูˆุฐุฌ)
{
ู…ูˆุถุน ุงู„ู…ุชุฌู‡ = model->GetPosition ();
NS_LOG_UNCOND (ุงู„ุณูŠุงู‚ <
" x = " << ุงู„ู…ูˆุถุน.x << ", y = " << ุงู„ู…ูˆุถุน.y);
}

ูŠู‚ูˆู… ู‡ุฐุง ุงู„ุฑู…ุฒ ูู‚ุท ุจุณุญุจ ู…ุนู„ูˆู…ุงุช ุงู„ู…ูˆู‚ุน ู…ู† ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„ ูˆุฏูˆู† ู‚ูŠุฏ ุฃูˆ ุดุฑุท
ูŠุณุฌู„ ู…ูˆุถุน x ูˆ y ู„ู„ุนู‚ุฏุฉ. ุณู†ู‚ูˆู… ุจุชุฑุชูŠุจ ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ
ูŠุชู… ุงุณุชุฏุนุงุคู‡ ููŠ ูƒู„ ู…ุฑุฉ ุชู‚ูˆู… ููŠู‡ุง ุงู„ุนู‚ุฏุฉ ุงู„ู„ุงุณู„ูƒูŠุฉ ู…ุน ุนู…ูŠู„ ุงู„ุตุฏู‰ ุจุชุบูŠูŠุฑ ู…ูˆุถุนู‡ุง. ู†ุญู† ู†ูุนู„ ู‡ุฐุง
ูŠุณุชุฎุฏู… ุงู„ ุงู„ุชูƒูˆูŠู†::ุงุชุตุงู„ ูˆุธูŠูุฉ. ุฃุถู ุฃุณุทุฑ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุชุงู„ูŠุฉ ุฅู„ู‰ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ูู‚ุท
ุฃู…ุงู… ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ ู…ูƒุงู„ู…ุฉ.

std::ostringstream oss;
ุฃูˆุณ <
"/NodeList/" << wifiStaNodes.Get (nWifi - 1)->GetId () <
"/$ns3::MobilityModel/CourseChange";

ุงู„ุชูƒูˆูŠู†::Connect (oss.str ()ุŒ MakeCallback (&CourseChange));

ู…ุง ู†ู‚ูˆู… ุจู‡ ู‡ู†ุง ู‡ูˆ ุฅู†ุดุงุก ุณู„ุณู„ุฉ ุชุญุชูˆูŠ ุนู„ู‰ ู…ุณุงุฑ ู…ุณุงุญุฉ ุงุณู… ุงู„ุชุชุจุน ู„ู„ุญุฏุซ
ุงู„ุฐูŠ ู†ุฑูŠุฏ ุงู„ุงุชุตุงู„ ุจู‡. ุฃูˆู„ุงู‹ุŒ ูŠุชุนูŠู† ุนู„ูŠู†ุง ู…ุนุฑูุฉ ุงู„ุนู‚ุฏุฉ ุงู„ุชูŠ ู†ุฑูŠุฏ ุงุณุชุฎุฏุงู…ู‡ุง
ู‡ูŠู‡ ู…ุนุฑู_ุฌูŠุช ุงู„ุทุฑูŠู‚ุฉ ูƒู…ุง ุดุฑุญุช ุณุงุจู‚ุง . ููŠ ุญุงู„ุฉ ุงู„ุฑู‚ู… ุงู„ุงูุชุฑุงุถูŠ ู„ู€ CSMA ูˆ
ุงู„ุนู‚ุฏ ุงู„ู„ุงุณู„ูƒูŠุฉุŒ ูˆุชุจูŠู† ุฃู† ู‡ุฐู‡ ู‡ูŠ ุงู„ุนู‚ุฏุฉ ุงู„ุณุงุจุนุฉ ูˆู…ุณุงุฑ ู…ุณุงุญุฉ ุงุณู… ุงู„ุชุชุจุน ุฅู„ู‰
ุณูŠุจุฏูˆ ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„ุŒ

/NodeList/7/$ns3::MobilityModel/CourseChange

ุงุณุชู†ุงุฏุง ุฅู„ู‰ ุงู„ู…ู†ุงู‚ุดุฉ ููŠ ู‚ุณู… ุงู„ุชุชุจุนุŒ ู‚ุฏ ุชุณุชู†ุชุฌ ุฃู† ู…ุณุงุฑ ุงู„ุชุชุจุน ู‡ุฐุง
ูŠุดูŠุฑ ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุณุงุจุนุฉ ููŠ NodeList ุงู„ุนุงู„ู…ูŠุฉ. ูˆูŠุญุฏุฏ ู…ุง ูŠุณู…ู‰
ูƒุงุฆู† ู…ุฌู…ุน ู…ู† ุงู„ู†ูˆุน ns3 :: MobilityModel. ุชุดูŠุฑ ุจุงุฏุฆุฉ ุนู„ุงู…ุฉ ุงู„ุฏูˆู„ุงุฑ ุฅู„ู‰ ุฃู†
ูŠุชู… ุชุฌู…ูŠุน MobilityModel ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุณุงุจุนุฉ. ุงู„ุนู†ุตุฑ ุงู„ุฃุฎูŠุฑ ู…ู† ุงู„ู…ุณุงุฑ ูŠุนู†ูŠ ุฃู†ู†ุง
ูŠุชู… ุฑุจุทู‡ู… ุจุญุฏุซ "CourseChange" ู„ู‡ุฐุง ุงู„ู†ู…ูˆุฐุฌ.

ู†ู‚ูˆู… ุจุฅุฌุฑุงุก ุงุชุตุงู„ ุจูŠู† ู…ุตุฏุฑ ุงู„ุชุชุจุน ููŠ ุงู„ุนู‚ุฏุฉ ุงู„ุณุงุจุนุฉ ู…ุน ู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ุฎุงุต ุจู†ุง ุนู† ุทุฑูŠู‚ ุงู„ุงุชุตุงู„
ุงู„ุชูƒูˆูŠู†::ุงุชุตุงู„ ูˆุชู…ุฑูŠุฑ ู…ุณุงุฑ ู…ุณุงุญุฉ ุงู„ุงุณู… ู‡ุฐุง. ูˆุจู…ุฌุฑุฏ ุงู„ุงู†ุชู‡ุงุก ู…ู† ุฐู„ูƒุŒ ุชุชุบูŠุฑ ูƒู„ ุฏูˆุฑุฉ
ุณูŠุชู… ุฑุจุท ุงู„ุญุฏุซ ุงู„ู…ูˆุฌูˆุฏ ุนู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุณุงุจุนุฉ ุจู…ุตุฑู ุงู„ุชุชุจุน ุงู„ุฎุงุต ุจู†ุงุŒ ูˆุงู„ุฐูŠ ุณูŠู‚ูˆู… ุจุฏูˆุฑู‡ ุจุทุจุงุนุฉ ู…ู„ู
ู…ุฑูƒุฒ ุฌุฏูŠุฏ.

ุฅุฐุง ู‚ู…ุช ุงู„ุขู† ุจุชุดุบูŠู„ ุงู„ู…ุญุงูƒุงุฉุŒ ูุณูˆู ุชุฑู‰ ุชุบูŠูŠุฑุงุช ุงู„ู…ู‚ุฑุฑ ุงู„ุฏุฑุงุณูŠ ู…ุนุฑูˆุถุฉ ููˆุฑ ุญุฏูˆุซู‡ุง.

ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (5.989 ุซุงู†ูŠุฉ)
/NodeList/7/$ns3::MobilityModel/CourseChange x = 10, y = 0
/NodeList/7/$ns3::MobilityModel/CourseChange x = 10.3841, y = 0.923277
/NodeList/7/$ns3::MobilityModel/CourseChange x = 10.2049, y = 1.90708
/NodeList/7/$ns3::MobilityModel/CourseChange x = 10.8136, y = 1.11368
/NodeList/7/$ns3::MobilityModel/CourseChange x = 10.8452, y = 2.11318
/NodeList/7/$ns3::MobilityModel/CourseChange x = 10.9797, y = 3.10409
ููŠ ุงู„ูˆู‚ุช 2sุŒ ุฃุฑุณู„ ุงู„ุนู…ูŠู„ 1024 ุจุงูŠุช ุฅู„ู‰ ุงู„ู…ู†ูุฐ 10.1.2.4 9
ููŠ ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจุŒ ุชู„ู‚ู‰ ุฎุงุฏู… 2.01796s 1024 ุจุงูŠุช ู…ู† ุงู„ู…ู†ูุฐ 10.1.3.3 ุฑู‚ู… 49153
ููŠ ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจุŒ ุฃุฑุณู„ ุฎุงุฏู… 2.01796s 1024 ุจุงูŠุช ุฅู„ู‰ ุงู„ู…ู†ูุฐ 10.1.3.3 ุฑู‚ู… 49153
ููŠ ุงู„ูˆู‚ุช 2.03364 ุชู„ู‚ู‰ ุงู„ุนู…ูŠู„ 1024 ุจุงูŠุช ู…ู† ุงู„ู…ู†ูุฐ 10.1.2.4 9
/NodeList/7/$ns3::MobilityModel/CourseChange x = 11.3273, y = 4.04175
/NodeList/7/$ns3::MobilityModel/CourseChange x = 12.013, y = 4.76955
/NodeList/7/$ns3::MobilityModel/CourseChange x = 12.4317, y = 5.67771
/NodeList/7/$ns3::MobilityModel/CourseChange x = 11.4607, y = 5.91681
/NodeList/7/$ns3::MobilityModel/CourseChange x = 12.0155, y = 6.74878
/NodeList/7/$ns3::MobilityModel/CourseChange x = 13.0076, y = 6.62336
/NodeList/7/$ns3::MobilityModel/CourseChange x = 12.6285, y = 5.698
/NodeList/7/$ns3::MobilityModel/CourseChange x = 13.32, y = 4.97559
/NodeList/7/$ns3::MobilityModel/CourseChange x = 13.1134, y = 3.99715
/NodeList/7/$ns3::MobilityModel/CourseChange x = 13.8359, y = 4.68851
/NodeList/7/$ns3::MobilityModel/CourseChange x = 13.5953, y = 3.71789
/NodeList/7/$ns3::MobilityModel/CourseChange x = 12.7595, y = 4.26688
/NodeList/7/$ns3::MobilityModel/CourseChange x = 11.7629, y = 4.34913
/NodeList/7/$ns3::MobilityModel/CourseChange x = 11.2292, y = 5.19485
/NodeList/7/$ns3::MobilityModel/CourseChange x = 10.2344, y = 5.09394
/NodeList/7/$ns3::MobilityModel/CourseChange x = 9.3601, y = 4.60846
/NodeList/7/$ns3::MobilityModel/CourseChange x = 8.40025, y = 4.32795
/NodeList/7/$ns3::MobilityModel/CourseChange x = 9.14292, y = 4.99761
/NodeList/7/$ns3::MobilityModel/CourseChange x = 9.08299, y = 5.99581
/NodeList/7/$ns3::MobilityModel/CourseChange x = 8.26068, y = 5.42677
/NodeList/7/$ns3::MobilityModel/CourseChange x = 8.35917, y = 6.42191
/NodeList/7/$ns3::MobilityModel/CourseChange x = 7.66805, y = 7.14466
/NodeList/7/$ns3::MobilityModel/CourseChange x = 6.71414, y = 6.84456
/NodeList/7/$ns3::MobilityModel/CourseChange x = 6.42489, y = 7.80181

ุงู‚ุชูุงุก ุฃุซุฑ


ุฎู„ููŠู‘ุฉ
ูƒู…ุง ู‡ูˆ ู…ุฐูƒูˆุฑ ููŠ UsingTracingSystemุŒ ูุฅู† ุงู„ู‡ุฏู ุงู„ุฃุณุงุณูŠ ู…ู† ุชุดุบูŠู„ ู…ู„ู NS-3 ุงู„ู…ุญุงูƒุงุฉ ู‡ูŠ
ุชูˆู„ูŠุฏ ุงู„ู…ุฎุฑุฌุงุช ู„ู„ุฏุฑุงุณุฉ. ู„ุฏูŠูƒ ุงุณุชุฑุงุชูŠุฌูŠุชูŠู† ุฃุณุงุณูŠุชูŠู† ู„ู„ุญุตูˆู„ ุนู„ู‰ ุงู„ู…ุฎุฑุฌุงุช ู…ู†ู‡ู…ุง NS-3:
ุจุงุณุชุฎุฏุงู… ุขู„ูŠุงุช ุงู„ุฅุฎุฑุงุฌ ุงู„ู…ุฌู…ุนุฉ ุงู„ุนุงู…ุฉ ุงู„ู…ุญุฏุฏุฉ ู…ุณุจู‚ู‹ุง ูˆุชุญู„ูŠู„ ู…ุญุชูˆุงู‡ุง ู„ุงุณุชุฎุฑุงุฌู‡ุง
ู…ุนู„ูˆู…ุงุช ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู…ุ› ุฃูˆ ุจุทุฑูŠู‚ุฉ ุฃูˆ ุจุฃุฎุฑู‰ ุชุทูˆูŠุฑ ุขู„ูŠุฉ ุงู„ุฅุฎุฑุงุฌ ุงู„ุชูŠ ุชู†ู‚ู„ ุจุงู„ุถุจุท
(ูˆุฑุจู…ุง ูู‚ุท) ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ู…ุทู„ูˆุจุฉ.

ูŠุชู…ุชุน ุงุณุชุฎุฏุงู… ุขู„ูŠุงุช ุงู„ุฅุฎุฑุงุฌ ุงู„ู…ุฌู…ุนุฉ ุงู„ู…ุญุฏุฏุฉ ู…ุณุจู‚ู‹ุง ุจู…ูŠุฒุฉ ุนุฏู… ุงู„ุญุงุฌุฉ ุฅู„ู‰ ุฅุฌุฑุงุก ุฃูŠ ุชุบูŠูŠุฑุงุช ุนู„ูŠู‡ุง
NS-3ุŒ ูˆู„ูƒู† ู‚ุฏ ูŠุชุทู„ุจ ุงู„ุฃู…ุฑ ูƒุชุงุจุฉ ู†ุตูˆุต ุจุฑู…ุฌูŠุฉ ู„ุชุญู„ูŠู„ ุงู„ุจูŠุงู†ุงุช ู…ุญู„ ุงู„ุงู‡ุชู…ุงู… ูˆุชุตููŠุชู‡ุง. ุบุงู„ุจุงู‹ุŒ
PCAP ุฃูˆ NS_LOG ูŠุชู… ุฌู…ุน ุฑุณุงุฆู„ ุงู„ุฅุฎุฑุงุฌ ุฃุซู†ุงุก ุชุดุบูŠู„ ุงู„ู…ุญุงูƒุงุฉ ูˆุชุดุบูŠู„ู‡ุง ุจุดูƒู„ ู…ู†ูุตู„
ู…ู† ุฎู„ุงู„ ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ ุงู„ุชูŠ ุชุณุชุฎุฏู… ุงู„ุจู‚ุฑู‰, ุนุทุด or AWK ู„ุชุญู„ูŠู„ ุงู„ุฑุณุงุฆู„ ูˆุชู‚ู„ูŠู„ู‡ุง ูˆุชุญูˆูŠู„ู‡ุง
ุงู„ุจูŠุงู†ุงุช ุฅู„ู‰ ู†ู…ูˆุฐุฌ ูŠู…ูƒู† ุงู„ุชุญูƒู… ููŠู‡. ูŠุฌุจ ูƒุชุงุจุฉ ุงู„ุจุฑุงู…ุฌ ู„ู„ู‚ูŠุงู… ุจุงู„ุชุญูˆูŠู„ุŒ ู„ุฐู„ูƒ ู‡ุฐุง
ู„ุง ูŠุฃุชูŠ ู…ุฌุงู†ุง. NS_LOG ู„ุง ูŠุนุชุจุฑ ุงู„ุฅุฎุฑุงุฌ ุฌุฒุกุง ู…ู† NS-3 APIุŒ ูˆูŠู…ูƒู†
ุงู„ุชุบูŠูŠุฑ ุฏูˆู† ุณุงุจู‚ ุฅู†ุฐุงุฑ ุจูŠู† ุงู„ุฅุตุฏุงุฑุงุช. ูุถู„ุงู‹ ุนู† ุฐู„ูƒุŒ NS_LOG ุงู„ุฅุฎุฑุงุฌ ู…ุชุงุญ ูู‚ุท ููŠ
ูŠุชู… ุฅู†ุดุงุก ุชุตุญูŠุญ ุงู„ุฃุฎุทุงุกุŒ ู„ุฐุง ูุฅู† ุงู„ุงุนุชู…ุงุฏ ุนู„ูŠู‡ ูŠูุฑุถ ุนู‚ูˆุจุฉ ุนู„ู‰ ุงู„ุฃุฏุงุก. ูˆุจุทุจูŠุนุฉ ุงู„ุญุงู„ุŒ ุฅุฐุง
ุงู„ู…ุนู„ูˆู…ุงุช ุฐุงุช ุงู„ุฃู‡ู…ูŠุฉ ุบูŠุฑ ู…ูˆุฌูˆุฏุฉ ููŠ ุฃูŠ ู…ู† ุขู„ูŠุงุช ุงู„ุฅุฎุฑุงุฌ ุงู„ู…ุญุฏุฏุฉ ู…ุณุจู‚ู‹ุง
ูุดู„ ุงู„ู†ู‡ุฌ.

ุฅุฐุง ูƒู†ุช ุจุญุงุฌุฉ ุฅู„ู‰ ุฅุถุงูุฉ ุจุนุถ ุงู„ู…ุนู„ูˆู…ุงุช ุฅู„ู‰ ุงู„ุขู„ูŠุงุช ุงู„ู…ุฌู…ุนุฉ ุงู„ู…ุญุฏุฏุฉ ู…ุณุจู‚ู‹ุงุŒ ููŠู…ูƒู† ุฐู„ูƒ
ุจุงู„ุชุฃูƒูŠุฏ ูŠุฌุจ ุงู„ู‚ูŠุงู… ุจู‡ุ› ูˆุฅุฐุง ูƒู†ุช ุชุณุชุฎุฏู… ูˆุงุญุฏุฉ ู…ู† NS-3 ุงู„ุขู„ูŠุงุชุŒ ู‚ุฏ ุชุชู… ุฅุถุงูุฉ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุฎุงุตุฉ ุจูƒ
ูƒู…ุณุงู‡ู…ุฉ.

NS-3 ูŠูˆูุฑ ุขู„ูŠุฉ ุฃุฎุฑู‰ุŒ ุชุณู…ู‰ ุงู„ุชุชุจุนุŒ ูˆุงู„ุชูŠ ุชุชุฌู†ุจ ุจุนุถ ุงู„ู…ุดุงูƒู„ ุงู„ูƒุงู…ู†ุฉ
ููŠ ุขู„ูŠุงุช ุงู„ุฅุฎุฑุงุฌ ุงู„ุณุงุฆุจุฉ. ูˆู„ู‡ุง ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ู…ุฒุงูŠุง ุงู„ู‡ุงู…ุฉ. ุฃูˆู„ุงุŒ ูŠู…ูƒู†ูƒ
ู‚ู… ุจุชู‚ู„ูŠู„ ูƒู…ูŠุฉ ุงู„ุจูŠุงู†ุงุช ุงู„ุชูŠ ูŠุชุนูŠู† ุนู„ูŠูƒ ุฅุฏุงุฑุชู‡ุง ู…ู† ุฎู„ุงู„ ุชุชุจุน ุงู„ุฃุญุฏุงุซ ุงู„ุชูŠ ุชู‡ู…ูƒ ูู‚ุท
(ุจุงู„ู†ุณุจุฉ ู„ุนู…ู„ูŠุงุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ูƒุจูŠุฑุฉุŒ ูŠู…ูƒู† ุฃู† ูŠุคุฏูŠ ุชูุฑูŠุบ ูƒู„ ุดูŠุก ุนู„ู‰ ุงู„ู‚ุฑุต ู„ู„ู…ุนุงู„ุฌุฉ ุงู„ู„ุงุญู‚ุฉ ุฅู„ู‰ ุฅู†ุดุงุก ุนู…ู„ูŠุงุช ุฅุฏุฎุงู„/ุฅุฎุฑุงุฌ
ุงู„ุงุฎุชู†ุงู‚ุงุช). ุซุงู†ูŠู‹ุงุŒ ุฅุฐุง ูƒู†ุช ุชุณุชุฎุฏู… ู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉุŒ ููŠู…ูƒู†ูƒ ุงู„ุชุญูƒู… ููŠ ุชู†ุณูŠู‚ ุงู„ุฅุฎุฑุงุฌ
ู…ุจุงุดุฑุฉ ุญุชู‰ ุชุชุฌู†ุจ ุฎุทูˆุฉ ู…ุง ุจุนุฏ ุงู„ู…ุนุงู„ุฌุฉ ุนุทุด, AWK, ุจูŠุฑู„ or ุงู„ุซุนุจุงู† ู†ุตูˆุต. ู„ูˆ
ุญุณุจ ุฑุบุจุชูƒุŒ ูŠู…ูƒู† ุชู†ุณูŠู‚ ู…ุฎุฑุฌุงุชูƒ ู…ุจุงุดุฑุฉ ููŠ ู†ู…ูˆุฐุฌ ู…ู‚ุจูˆู„ ุจูˆุงุณุทุฉ gnuplot
ู…ุซุงู„ (ุงู†ุธุฑ ุฃูŠุถู‹ุง GnuplotHelper). ูŠู…ูƒู†ูƒ ุฅุถุงูุฉ ุฎุทุงูุงุช ููŠ ุงู„ู‚ู„ุจ ูˆุงู„ุชูŠ ูŠู…ูƒู† ุจุนุฏ ุฐู„ูƒ
ูŠู…ูƒู† ุงู„ูˆุตูˆู„ ุฅู„ูŠู‡ุง ู…ู† ู‚ุจู„ ู…ุณุชุฎุฏู…ูŠู† ุขุฎุฑูŠู†ุŒ ูˆู„ูƒู†ู‡ุง ู„ู† ุชู†ุชุฌ ุฃูŠ ู…ุนู„ูˆู…ุงุช ู…ุง ู„ู… ูŠุทู„ุจ ุฐู„ูƒ ุตุฑุงุญุฉ
ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ. ูˆู„ู‡ุฐู‡ ุงู„ุฃุณุจุงุจ ู†ุนุชู‚ุฏ ุฃู† NS-3 ู†ุธุงู… ุงู„ุชุชุจุน ู‡ูˆ ุฃูุถู„ ูˆุณูŠู„ุฉ ู„ู„ุญุตูˆู„ ุนู„ู‰
ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† ุงู„ู…ุญุงูƒุงุฉ ูˆุจุงู„ุชุงู„ูŠ ูู‡ูŠ ุฃูŠุถู‹ุง ุฅุญุฏู‰ ุฃู‡ู… ุงู„ุขู„ูŠุงุช
ู„ูู‡ู… ููŠ NS-3.

ูƒู„ูŠู„ ุงู„ุฃุฏูˆุงุช
ู‡ู†ุงูƒ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุทุฑู‚ ู„ู„ุญุตูˆู„ ุนู„ู‰ ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† ุงู„ุจุฑู†ุงู…ุฌ. ุงู„ุทุฑูŠู‚ุฉ ุงู„ุฃูƒุซุฑ ู…ุจุงุดุฑุฉ ู‡ูŠ
ู„ุทุจุงุนุฉ ุงู„ู…ุนู„ูˆู…ุงุช ู…ุจุงุดุฑุฉ ุฅู„ู‰ ุงู„ุฅุฎุฑุงุฌ ุงู„ู‚ูŠุงุณูŠุŒ ูƒู…ุง ููŠ:

#ูŠุดู…ู„

ุจุงุทู„
ุจุนุถ ุงู„ูˆุธุงุฆู (ุจุงุทู„ุฉ)
{
uint32_t x = SOME_INTERESTING_VALUE;

std :: cout << "ู‚ูŠู…ุฉ x ู‡ูŠ" << x << std :: endlุ›

}

ู„ู† ูŠู…ู†ุนูƒ ุฃุญุฏ ู…ู† ุงู„ุชุนู…ู‚ ููŠ ุฌูˆู‡ุฑ NS-3 ูˆุฅุถุงูุฉ ุงู„ุทุจุงุนุฉ
ุตูŠุงุบุงุช. ู…ู† ุงู„ุณู‡ู„ ุฌุฏู‹ุง ุงู„ู‚ูŠุงู… ุจุฐู„ูƒุŒ ูˆุจุนุฏ ูƒู„ ุดูŠุกุŒ ู„ุฏูŠูƒ ุงู„ุณูŠุทุฑุฉ ุงู„ูƒุงู…ู„ุฉ ุนู„ู‰ ุฌู‡ุงุฒูƒ
ุงู„ุฎุงุตุฉ NS-3 ูุฑุน. ุฑุจู…ุง ู„ู† ูŠูƒูˆู† ู‡ุฐุง ู…ุฑุถูŠู‹ุง ู„ู„ุบุงูŠุฉ ุนู„ู‰ ุงู„ู…ุฏู‰ ุงู„ุทูˆูŠู„
ู…ุตุทู„ุญุŒ ุนู„ู‰ ุฃูŠุฉ ุญุงู„.

ู…ุน ุฒูŠุงุฏุฉ ุนุฏุฏ ุนุจุงุฑุงุช ุงู„ุทุจุงุนุฉ ููŠ ุจุฑุงู…ุฌูƒุŒ ุชุฒุฏุงุฏ ู…ู‡ู…ุฉ ุงู„ุชุนุงู…ู„ ู…ุน
ุณูˆู ูŠุตุจุญ ุนุฏุฏ ูƒุจูŠุฑ ู…ู† ุงู„ู†ูˆุงุชุฌ ุฃูƒุซุฑ ูˆุฃูƒุซุฑ ุชุนู‚ูŠุฏุง. ููŠ ู†ู‡ุงูŠุฉ ุงู„ู…ุทุงูุŒ ู‚ุฏ ุชุดุนุฑ
ุงู„ุญุงุฌุฉ ุฅู„ู‰ ุงู„ุชุญูƒู… ููŠ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุชูŠ ุชุชู… ุทุจุงุนุชู‡ุง ุจุทุฑูŠู‚ุฉ ู…ุงุŒ ุฑุจู…ุง ุนู† ุทุฑูŠู‚ ุงู„ุชุดุบูŠู„
ูˆุฅูŠู‚ุงู ูุฆุงุช ู…ุนูŠู†ุฉ ู…ู† ุงู„ู…ุทุจูˆุนุงุชุŒ ุฃูˆ ุฒูŠุงุฏุฉ ุฃูˆ ุชู‚ู„ูŠู„ ูƒู…ูŠุฉ
ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุชูŠ ุชุฑูŠุฏู‡ุง. ุฅุฐุง ูˆุงุตู„ุช ุงู„ุณูŠุฑ ููŠ ู‡ุฐุง ุงู„ุทุฑูŠู‚ ูู‚ุฏ ุชูƒุชุดู ุฃู†ูƒ ู‚ุฏ ู‚ู…ุช ุจุฐู„ูƒ
ุฃุนูŠุฏ ุชู†ููŠุฐ NS_LOG ุงู„ุขู„ูŠุฉ (ุงู†ุธุฑ ุงุณุชุฎุฏุงู… ุงู„ุชุณุฌูŠู„). ูˆู…ู† ุฃุฌู„ ุชุฌู†ุจ ุฐู„ูƒุŒ ุฃุญุฏ
ุฃูˆู„ ุงู„ุฃุดูŠุงุก ุงู„ุชูŠ ู‚ุฏ ุชููƒุฑ ููŠู‡ุง ู‡ูŠ ุงุณุชุฎุฏุงู… NS_LOG ู†ูุณู‡ุง.

ู„ู‚ุฏ ุฐูƒุฑู†ุง ุฃุนู„ุงู‡ ุฃู† ุฅุญุฏู‰ ุงู„ุทุฑู‚ ู„ู„ุญุตูˆู„ ุนู„ู‰ ุงู„ู…ุนู„ูˆู…ุงุช ู…ู†ู‡ุง NS-3 ู‡ูˆ ุชุญู„ูŠู„ ุงู„ู…ูˆุฌูˆุฏ NS_LOG
ุงู„ุฅุฎุฑุงุฌ ู„ู„ุญุตูˆู„ ุนู„ู‰ ู…ุนู„ูˆู…ุงุช ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู…. ุฅุฐุง ุงูƒุชุดูุช ุฃู† ุจุนุถ ุงู„ู…ุนู„ูˆู…ุงุช ู„ุง ุจุฃุณ ุจู‡ุง
ุงู„ุญุงุฌุฉ ุบูŠุฑ ู…ูˆุฌูˆุฏุฉ ููŠ ู…ุฎุฑุฌุงุช ุงู„ุณุฌู„ ุงู„ู…ูˆุฌูˆุฏุฉุŒ ูŠู…ูƒู†ูƒ ุชุนุฏูŠู„ ุฌูˆู‡ุฑู‡ุง NS-3 ูˆุฃุถู ุจุจุณุงุทุฉ
ู…ุนู„ูˆู…ุงุชูƒ ุงู„ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู… ุฅู„ู‰ ุฏูู‚ ุงู„ุฅุฎุฑุงุฌ. ุงู„ุขู†ุŒ ู‡ุฐุง ุจุงู„ุชุฃูƒูŠุฏ ุฃูุถู„ ู…ู†
ุฅุถุงูุฉ ุจูŠุงู†ุงุช ุงู„ุทุจุงุนุฉ ุงู„ุฎุงุตุฉ ุจูƒ ู„ุฃู†ู‡ ูŠุชุจุน NS-3 ุงุชูุงู‚ูŠุงุช ุงู„ุชุฑู…ูŠุฒ ูˆูŠู…ูƒู†
ู…ู† ุงู„ู…ุญุชู…ู„ ุฃู† ุชูƒูˆู† ู…ููŠุฏุฉ ู„ุฃุดุฎุงุต ุขุฎุฑูŠู† ูƒุชุตุญูŠุญ ู„ู„ู†ูˆุงุฉ ุงู„ู…ูˆุฌูˆุฏุฉ.

ุฏุนูˆู†ุง ู†ุฎุชุงุฑ ู…ุซุงู„ุง ุนุดูˆุงุฆูŠุง. ุฅุฐุง ูƒู†ุช ุชุฑุบุจ ููŠ ุฅุถุงูุฉ ุงู„ู…ุฒูŠุฏ ู…ู† ุงู„ุชุณุฌูŠู„ ุฅู„ู‰ NS-3 ู…ู‚ุจุณ TCP
(tcp-socket-base.cc) ูŠู…ูƒู†ูƒ ูู‚ุท ุฅุถุงูุฉ ุฑุณุงู„ุฉ ุฌุฏูŠุฏุฉ ููŠ ุงู„ุชู†ููŠุฐ. ูŠู„ุงุญุธ
ุฃู†ู‡ ููŠ TcpSocketBase::ReceivedAck() ู„ุง ุชูˆุฌุฏ ุฑุณุงู„ุฉ ุณุฌู„ ู„ุญุงู„ุฉ no ACK. ุฃู†ุช
ูŠู…ูƒู† ุจุจุณุงุทุฉ ุฅุถุงูุฉ ูˆุงุญุฏุŒ ูˆุชุบูŠูŠุฑ ุงู„ูƒูˆุฏ. ู‡ู†ุง ู‡ูˆ ุงู„ุฃุตู„ูŠ:

/** ู…ุนุงู„ุฌุฉ ACK ุงู„ู…ุณุชู„ู… ุญุฏูŠุซู‹ุง */
ุจุงุทู„
TcpSocketBase::ReceivedAck (Ptr ุงู„ุญุฒู…ุฉุŒ const TcpHeader ูˆtcpHeader)
{
NS_LOG_FUNCTION (ู‡ุฐุง << tcpHeader)ุ›

// ุชู… ุงุณุชู„ุงู… ACK. ู‚ุงุฑู† ุฑู‚ู… ACK ุจุฃุนู„ู‰ ุฑู‚ู… ุชุณู„ุณู„ูŠ ุบูŠุฑ ู…ุซุจุช
ุฅุฐุง (0 == (tcpHeader.GetFlags () & TcpHeader::ACK))
{ // ุชุฌุงู‡ู„ ููŠ ุญุงู„ุฉ ุนุฏู… ูˆุฌูˆุฏ ุนู„ุงู…ุฉ ACK
}


ู„ุชุณุฌูŠู„ ุญุงู„ุฉ ุนุฏู… ูˆุฌูˆุฏ ACKุŒ ูŠู…ูƒู†ูƒ ุฅุถุงูุฉ ุญุงู„ุฉ ุฌุฏูŠุฏุฉ NS_LOG_LOGIC ููŠ ุงู„ if ุฌุณู… ุงู„ุจูŠุงู†:

/** ู…ุนุงู„ุฌุฉ ACK ุงู„ู…ุณุชู„ู… ุญุฏูŠุซู‹ุง */
ุจุงุทู„
TcpSocketBase::ReceivedAck (Ptr ุงู„ุญุฒู…ุฉุŒ const TcpHeader ูˆtcpHeader)
{
NS_LOG_FUNCTION (ู‡ุฐุง << tcpHeader)ุ›

// ุชู… ุงุณุชู„ุงู… ACK. ู‚ุงุฑู† ุฑู‚ู… ACK ุจุฃุนู„ู‰ ุฑู‚ู… ุชุณู„ุณู„ูŠ ุบูŠุฑ ู…ุซุจุช
ุฅุฐุง (0 == (tcpHeader.GetFlags () & TcpHeader::ACK))
{ // ุชุฌุงู‡ู„ ููŠ ุญุงู„ุฉ ุนุฏู… ูˆุฌูˆุฏ ุนู„ุงู…ุฉ ACK
NS_LOG_LOGIC ("TcpSocketBase " << ู‡ุฐุง << " ู„ุง ูŠูˆุฌุฏ ุนู„ุงู…ุฉ ACK")ุ›
}


ู‚ุฏ ูŠุจุฏูˆ ู‡ุฐุง ุจุณูŠุทู‹ุง ูˆู…ุฑุถูŠู‹ุง ุฅู„ู‰ ุญุฏ ู…ุง ู„ู„ูˆู‡ู„ุฉ ุงู„ุฃูˆู„ู‰ุŒ ูˆู„ูƒู† ู‡ู†ุงูƒ ุดูŠุก ูŠุฌุจ ู…ุฑุงุนุงุชู‡
ุฃู†ูƒ ุณูˆู ุชูƒุชุจ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ู„ุฅุถุงูุชู‡ุง NS_LOG ุงู„ุจูŠุงู†ุงุช ูˆุณูŠูƒูˆู† ุนู„ูŠูƒ ุฃูŠุถู‹ุง ุงู„ูƒุชุงุจุฉ
ุงู„ูƒูˆุฏ (ูƒู…ุง ููŠ ุงู„ุจู‚ุฑู‰, ุนุทุด or AWK ุงู„ุจุฑุงู…ุฌ ุงู„ู†ุตูŠุฉ) ู„ุชุญู„ูŠู„ ุฅุฎุฑุงุฌ ุงู„ุณุฌู„ ู…ู† ุฃุฌู„ ุนุฒู„ ู…ู„ููƒ
ู…ุนู„ูˆู…ุฉ. ู‡ุฐุง ู„ุฃู†ู‡ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู† ู„ุฏูŠูƒ ุจุนุถ ุงู„ุชุญูƒู… ููŠ ู…ุง ูŠุชู… ุฅุฎุฑุงุฌู‡ ุจูˆุงุณุทุฉ ู…ู„ู
ู†ุธุงู… ุงู„ุชุณุฌูŠู„ุŒ ู„ุฏูŠูƒ ูู‚ุท ุงู„ุชุญูƒู… ูˆุตูˆู„ุงู‹ ุฅู„ู‰ ู…ุณุชูˆู‰ ู…ูƒูˆู† ุงู„ุณุฌู„ุŒ ูˆู‡ูˆ ุนุงุฏุฉู‹ ู…ุง ูŠูƒูˆู†
ู…ู„ู ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ู…ุตุฏุฑ ุจุฃูƒู…ู„ู‡.

ุฅุฐุง ูƒู†ุช ุชู‚ูˆู… ุจุฅุถุงูุฉ ุชุนู„ูŠู…ุงุช ุจุฑู…ุฌูŠุฉ ุฅู„ู‰ ูˆุญุฏุฉ ู…ูˆุฌูˆุฏุฉุŒ ูุณูŠุชุนูŠู† ุนู„ูŠูƒ ุฃูŠุถู‹ุง ุงู„ุชุนุงูŠุด ู…ุน ุงู„ู…ุฎุฑุฌุงุช
ุงู„ุชูŠ ูˆุฌุฏู‡ุง ูƒู„ ู…ุทูˆุฑ ุขุฎุฑ ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู…. ู‚ุฏ ุชุฌุฏ ุฃู†ู‡ ู…ู† ุฃุฌู„ ุงู„ุญุตูˆู„ ุนู„ู‰
ูƒู…ูŠุฉ ุตุบูŠุฑุฉ ู…ู† ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุชูŠ ุชุญุชุงุฌู‡ุงุŒ ู‚ุฏ ุชุถุทุฑ ุฅู„ู‰ ุงู„ุฎูˆุถ ููŠ ูƒู…ูŠุงุช ู‡ุงุฆู„ุฉ ู…ู† ุงู„ู…ุนู„ูˆู…ุงุช
ุฑุณุงุฆู„ ุบุฑูŠุจุฉ ู„ุง ุชู‡ู…ูƒ. ู‚ุฏ ุชุถุทุฑ ุฅู„ู‰ ุญูุธ ุณุฌู„ ุถุฎู…
ุงู„ู…ู„ูุงุช ุฅู„ู‰ ุงู„ู‚ุฑุต ูˆู…ุนุงู„ุฌุชู‡ุง ูˆุตูˆู„ุงู‹ ุฅู„ู‰ ุจุถุนุฉ ุฃุณุทุฑ ุนู†ุฏู…ุง ุชุฑูŠุฏ ุงู„ู‚ูŠุงู… ุจุฃูŠ ุดูŠุก.

ู„ุฃู†ู‡ ู„ุง ุชูˆุฌุฏ ุถู…ุงู†ุงุช ููŠ NS-3 ุญูˆู„ ุงุณุชู‚ุฑุงุฑ NS_LOG ุงู„ุฅุฎุฑุงุฌุŒ ูŠู…ูƒู†ูƒ ุฃูŠุถุง
ุงูƒุชุดู ุฃู† ุฃุฌุฒุงุก ู…ุฎุฑุฌุงุช ุงู„ุณุฌู„ ุงู„ุชูŠ ุชุนุชู…ุฏ ุนู„ูŠู‡ุง ุชุฎุชููŠ ุฃูˆ ุชุชุบูŠุฑ ุจูŠู†ู‡ุง
ุฅุทู„ุงู‚. ุฅุฐุง ูƒู†ุช ุชุนุชู…ุฏ ุนู„ู‰ ุจู†ูŠุฉ ุงู„ุฅุฎุฑุงุฌุŒ ูู‚ุฏ ุชุฌุฏ ุฑุณุงุฆู„ ุฃุฎุฑู‰
ุชู…ุช ุฅุถุงูุชู‡ุง ุฃูˆ ุญุฐูู‡ุง ู…ู…ุง ู‚ุฏ ูŠุคุซุฑ ุนู„ู‰ ูƒูˆุฏ ุงู„ุชุญู„ูŠู„ ุงู„ุฎุงุต ุจูƒ.

ูˆููŠ ุงู„ุฎุชุงู… NS_LOG ุงู„ุฅุฎุฑุงุฌ ู…ุชุงุญ ูู‚ุท ููŠ ุฅุตุฏุงุฑุงุช ุชุตุญูŠุญ ุงู„ุฃุฎุทุงุกุŒ ูˆู„ุง ูŠู…ูƒู†ูƒ ุงู„ุญุตูˆู„ ุนู„ู‰ ุฅุฎุฑุงุฌ ุงู„ุณุฌู„ ู…ู†ู‡
ุงู„ุฅุตุฏุงุฑุงุช ุงู„ู…ุญุณู†ุฉุŒ ูˆุงู„ุชูŠ ุชุนู…ู„ ุจุณุฑุนุฉ ู…ุถุงุนูุฉ ุชู‚ุฑูŠุจู‹ุง. ูŠุนุชู…ุฏ ุนู„ู‰ NS_LOG ูŠูุฑุถ ุงู„ุฃุฏุงุก
ุถุฑุจุฉ ุฌุฒุงุก.

ู„ู‡ุฐู‡ ุงู„ุฃุณุจุงุจุŒ ูุฅู†ู†ุง ู†ุนุชุจุฑ ุงู„ู…ุทุจูˆุนุงุช ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ูƒูˆุช NS_LOG ุฃู† ุชูƒูˆู† ุงู„ุฑุณุงุฆู„ ุณุฑูŠุนุฉ ูˆ
ุทุฑู‚ ู‚ุฐุฑุฉ ู„ู„ุญุตูˆู„ ุนู„ู‰ ู…ุฒูŠุฏ ู…ู† ุงู„ู…ุนู„ูˆู…ุงุช NS-3ูˆู„ูƒู†ู‡ุง ุบูŠุฑ ู…ู†ุงุณุจุฉ ู„ู„ุนู…ู„ ุงู„ุฌุงุฏ.

ู…ู† ุงู„ู…ุฑุบูˆุจ ููŠู‡ ุฃู† ูŠูƒูˆู† ู„ุฏูŠูƒ ู…ู†ุดุฃุฉ ู…ุณุชู‚ุฑุฉ ุชุณุชุฎุฏู… ูˆุงุฌู‡ุงุช ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (APIs) ุงู„ู…ุณุชู‚ุฑุฉ ุงู„ุชูŠ ุชุณู…ุญ ู„ู„ุดุฎุต ุจุงู„ูˆุตูˆู„ ุฅู„ูŠู‡ุง
ุงู„ู†ุธุงู… ุงู„ุฃุณุงุณูŠ ูˆุงู„ุญุตูˆู„ ุนู„ู‰ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ู…ุทู„ูˆุจุฉ ูู‚ุท. ู…ู† ุงู„ู…ุฑุบูˆุจ ููŠู‡ ุฃู† ุชูƒูˆู† ู‚ุงุฏุฑู‹ุง ุนู„ู‰ ุงู„ู‚ูŠุงู… ุจู‡
ู‡ุฐุง ุฏูˆู† ุงู„ุญุงุฌุฉ ุฅู„ู‰ ุชุบูŠูŠุฑ ูˆุฅุนุงุฏุฉ ุชุฑุฌู…ุฉ ุงู„ู†ุธุงู… ุงู„ุฃุณุงุณูŠ. ูˆุงู„ุฃูุถู„ ู…ู† ุฐู„ูƒ ุณูŠูƒูˆู† ุฃ
ุงู„ู†ุธุงู… ุงู„ุฐูŠ ูŠู‚ูˆู… ุจุฅุนู„ุงู… ุฑู…ุฒ ุงู„ู…ุณุชุฎุฏู… ุนู†ุฏ ุชุบูŠูŠุฑ ุนู†ุตุฑ ู…ุญู„ ุงู‡ุชู…ุงู… ุฃูˆ ุญุฏุซ ู…ุซูŠุฑ ู„ู„ุงู‡ุชู…ุงู…
ุญุฏุซ ุฐู„ูƒ ุญุชู‰ ู„ุง ูŠุถุทุฑ ุงู„ู…ุณุชุฎุฏู… ุฅู„ู‰ ุงู„ุจุญุซ ุจู†ุดุงุท ููŠ ุงู„ู†ุธุงู… ุจุญุซู‹ุง ุนู†ู‡
ุงู„ุฃุดูŠุงุก.

ุฅู†ู‘ NS-3 ุชู… ุชุตู…ูŠู… ู†ุธุงู… ุงู„ุชุชุจุน ู„ู„ุนู…ู„ ุนู„ู‰ ุทูˆู„ ู‡ุฐู‡ ุงู„ุฎุทูˆุท ูˆู…ุชูƒุงู…ู„ ุจุดูƒู„ ุฌูŠุฏ ู…ุน
ุงู„ุณู…ุฉ ูˆ ุงู„ุชูƒูˆูŠู† ุงู„ุฃู†ุธู…ุฉ ุงู„ูุฑุนูŠุฉ ุชุณู…ุญ ุจุณูŠู†ุงุฑูŠูˆู‡ุงุช ุงุณุชุฎุฏุงู… ุจุณูŠุทุฉ ู†ุณุจูŠู‹ุง.

ู†ุธุฑุฉ ุนุงู…ุฉ
ุฅู†ู‘ NS-3 ู†ุธุงู… ุงู„ุชุชุจุน ู…ุจู†ูŠ ุนู„ู‰ ู…ูุงู‡ูŠู… ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ุงู„ู…ุณุชู‚ู„ุฉ ูˆ
ุชุชุจุน ุงู„ุฃุญูˆุงุถุŒ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุขู„ูŠุฉ ู…ูˆุญุฏุฉ ู„ุฑุจุท ุงู„ู…ุตุงุฏุฑ ุจุงู„ุฃุญูˆุงุถ.

ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ู‡ูŠ ุงู„ูƒูŠุงู†ุงุช ุงู„ุชูŠ ูŠู…ูƒู†ู‡ุง ุงู„ุฅุดุงุฑุฉ ุฅู„ู‰ ุงู„ุฃุญุฏุงุซ ุงู„ุชูŠ ุชุญุฏุซ ููŠ ู…ุญุงูƒุงุฉ ูˆุชู‚ุฏูŠู…ู‡ุง
ุงู„ูˆุตูˆู„ ุฅู„ู‰ ุงู„ุจูŠุงู†ุงุช ุงู„ุฃุณุงุณูŠุฉ ุงู„ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู…. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ูŠู…ูƒู† ุฃู† ูŠุดูŠุฑ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุนู†ุฏู…ุง ูŠูƒูˆู† ู…ู„ู
ูŠุชู… ุงุณุชู„ุงู… ุงู„ุญุฒู…ุฉ ุจูˆุงุณุทุฉ ุฌู‡ุงุฒ ุดุจูƒุฉ ูˆุชูˆูุฑ ุงู„ูˆุตูˆู„ ุฅู„ู‰ ู…ุญุชูˆูŠุงุช ุงู„ุญุฒู…ุฉ ู„ู€
ุฃุซุฑ ุงู„ู…ุตุงุฑู ุงู„ู…ู‡ุชู…ุฉ. ู‚ุฏ ูŠุดูŠุฑ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุฃูŠุถู‹ุง ุฅู„ู‰ ุญุงู„ุฉ ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู…
ุงู„ุชุบูŠูŠุฑ ูŠุญุฏุซ ููŠ ุงู„ู†ู…ูˆุฐุฌ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู… ู„ู†ู…ูˆุฐุฌ TCP ู‡ูŠ ุฃูˆู„ูŠุฉ
ู…ุฑุดุญ ู„ู…ุตุฏุฑ ุงู„ุชุชุจุน. ููŠ ูƒู„ ู…ุฑุฉ ุชุชุบูŠุฑ ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู… ุงู„ุชุชุจุน ุงู„ู…ุชุตู„
ูŠุชู… ุฅุฎุทุงุฑ ุงู„ู…ุตุงุฑู ุจุงู„ู‚ูŠู…ุฉ ุงู„ู‚ุฏูŠู…ุฉ ูˆุงู„ุฌุฏูŠุฏุฉ.

ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ู„ูŠุณุช ู…ููŠุฏุฉ ููŠ ุญุฏ ุฐุงุชู‡ุง ุ› ูŠุฌุจ ุฃู† ุชูƒูˆู† ู…ุชุตู„ุฉ ุจุฃุฌุฒุงุก ุฃุฎุฑู‰ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ
ุชูุนู„ ุดูŠุฆู‹ุง ู…ููŠุฏู‹ุง ุจุงู„ูุนู„ ู…ุน ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ู…ู‚ุฏู…ุฉ ู…ู† ุงู„ู…ุตุฏุฑ. ุงู„
ุงู„ูƒูŠุงู†ุงุช ุงู„ุชูŠ ุชุณุชู‡ู„ูƒ ู…ุนู„ูˆู…ุงุช ุงู„ุชุชุจุน ุชุณู…ู‰ ุฃุญูˆุงุถ ุงู„ุชุชุจุน. ู…ุตุงุฏุฑ ุงู„ุชุชุจุน
ู…ูˆู„ุฏุงุช ุงู„ุจูŠุงู†ุงุช ูˆุฃุญูˆุงุถ ุงู„ุชุชุจุน ู‡ู… ุงู„ู…ุณุชู‡ู„ูƒูˆู†. ู‡ุฐุง ุงู„ุชู‚ุณูŠู… ุงู„ุตุฑูŠุญ ูŠุณู…ุญ ุจู…ุณุงุญุฉ ูƒุจูŠุฑุฉ
ุฃุนุฏุงุฏ ู…ู† ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ุงู„ู…ู†ุชุดุฑุฉ ุญูˆู„ ุงู„ู†ุธุงู… ููŠ ุงู„ุฃู…ุงูƒู† ุงู„ุชูŠ ูŠุตู…ู…ู‡ุง ุงู„ู…ุคู„ููˆู† ุงู„ู†ู…ูˆุฐุฌูŠูˆู†
ู†ุนุชู‚ุฏ ู‚ุฏ ูŠูƒูˆู† ู…ููŠุฏุง. ูŠุคุฏูŠ ุฅุฏุฎุงู„ ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ุฅู„ู‰ ุชู†ููŠุฐ ุนู…ู„ูŠุฉ ุชู†ููŠุฐ ุตุบูŠุฑุฉ ุฌุฏู‹ุง
ุชูƒุงู„ูŠู ุบูŠุฑ ู…ุจุงุดุฑุฉ.

ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ู‡ู†ุงูƒ ุตูุฑ ุฃูˆ ุฃูƒุซุฑ ู…ู† ุงู„ู…ุณุชู‡ู„ูƒูŠู† ู„ุฃุญุฏุงุซ ุงู„ุชุชุจุน ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุจูˆุงุณุทุฉ ู…ุตุฏุฑ ุงู„ุชุชุจุน. ูŠู…ูƒู† ู„ู„ู…ุฑุก
ููƒุฑ ููŠ ู…ุตุฏุฑ ุงู„ุชุชุจุน ูƒู†ูˆุน ู…ู† ุฑุงุจุท ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ุนุฏุฉ ู†ู‚ุงุท. ุงู„ุฑู…ุฒ ุงู„ุฎุงุต ุจูƒ
ุงู„ุจุญุซ ุนู† ุฃุญุฏุงุซ ุงู„ุชุชุจุน ู…ู† ุฌุฒุก ู…ุนูŠู† ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุฃุณุงุณูŠุฉ ูŠู…ูƒู† ุฃู† ูŠุชุนุงูŠุด ู…ุนู‡ุง ุจุณุนุงุฏุฉ
ุฑู…ุฒ ุขุฎุฑ ูŠูุนู„ ุดูŠุฆู‹ุง ู…ุฎุชู„ูู‹ุง ุชู…ุงู…ู‹ุง ุนู† ู†ูุณ ุงู„ู…ุนู„ูˆู…ุงุช.

ูˆู…ุง ู„ู… ูŠู‚ูˆู… ุงู„ู…ุณุชุฎุฏู… ุจุชูˆุตูŠู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุจุฃุญุฏ ู‡ุฐู‡ ุงู„ู…ุตุงุฏุฑุŒ ูู„ู† ูŠุชู… ุฅุฎุฑุงุฌ ุฃูŠ ุดูŠุก. ุจุงุณุชุฎุฏุงู…
ู†ุธุงู… ุงู„ุชุชุจุนุŒ ุงู„ุฐูŠ ุชุญุตู„ ุนู„ูŠู‡ ุฃู†ุช ูˆุงู„ุฃุดุฎุงุต ุงู„ุขุฎุฑูˆู† ุงู„ู…ุชุตู„ูˆู† ุจู†ูุณ ู…ุตุฏุฑ ุงู„ุชุชุจุน
ุจุงู„ุถุจุท ู…ุง ูŠุฑูŠุฏูˆู† ูˆู…ุง ูŠุฑูŠุฏูˆู† ูู‚ุท ู…ู† ุงู„ู†ุธุงู…. ู„ุง ุฃุญุฏ ู…ู†ูƒู…
ุงู„ุชุฃุซูŠุฑ ุนู„ู‰ ุฃูŠ ู…ุณุชุฎุฏู… ุขุฎุฑ ุนู† ุทุฑูŠู‚ ุชุบูŠูŠุฑ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุชูŠ ูŠุฎุฑุฌู‡ุง ุงู„ู†ุธุงู…. ุงุฐุง ุฃู†ุช
ุฅุฐุง ู‚ู…ุช ุจุฅุถุงูุฉ ู…ุตุฏุฑ ุชุชุจุนุŒ ูุฅู† ุนู…ู„ูƒ ูƒู…ูˆุงุทู† ุตุงู„ุญ ู…ูุชูˆุญ ุงู„ู…ุตุฏุฑ ู‚ุฏ ูŠุณู…ุญ ู„ู„ุขุฎุฑูŠู†
ุงู„ู…ุณุชุฎุฏู…ูŠู† ู„ุชูˆููŠุฑ ุฃุฏูˆุงุช ู…ุณุงุนุฏุฉ ุฌุฏูŠุฏุฉ ุฑุจู…ุง ุชูƒูˆู† ู…ููŠุฏุฉ ุฌุฏู‹ุง ุจุดูƒู„ ุนุงู…ุŒ ุฏูˆู† ุฅู†ุดุงุก ุฃูŠ ู…ู†ู‡ุง
ุงู„ุชุบูŠูŠุฑุงุช ููŠ NS-3 ุงู„ุฃุณุงุณูŠุฉ.

ุงู„ุงุดุงุฑุงุช ู…ุซุงู„
ู„ู†ุฃุฎุฐ ุจุถุน ุฏู‚ุงุฆู‚ ูˆู†ุณุชุนุฑุถ ู…ุซุงู„ู‹ุง ุจุณูŠุทู‹ุง ู„ู„ุชุชุจุน. ุณู†ุญุชุงุฌ
ุฎู„ููŠุฉ ุตุบูŠุฑุฉ ุนู† ุนู…ู„ูŠุงุช ุงู„ุงุณุชุฑุฌุงุนุงุช ู„ูู‡ู… ู…ุง ูŠุญุฏุซ ููŠ ุงู„ู…ุซุงู„ุŒ ู„ุฐู„ูƒ ู†ุญู†
ูŠุฌุจ ุฃู† ุชุฃุฎุฐ ู…ู†ุนุทูู‹ุง ุตุบูŠุฑู‹ุง ุนู„ู‰ ุงู„ููˆุฑ.

ุงู„ุงุณุชุฑุฌุงุนุงุช
ุงู„ู‡ุฏู ู…ู† ู†ุธุงู… ุฑุฏ ุงู„ุงุชุตุงู„ ููŠ NS-3 ู‡ูˆ ุงู„ุณู…ุงุญ ู„ู‚ุทุนุฉ ูˆุงุญุฏุฉ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุจุงุณุชุฏุนุงุก ูˆุธูŠูุฉ
(ุฃูˆ ุงู„ุทุฑูŠู‚ุฉ ููŠ C++) ุฏูˆู† ุฃูŠ ุชุจุนูŠุฉ ู…ุญุฏุฏุฉ ุจูŠู† ุงู„ูˆุญุฏุงุช. ูˆู‡ุฐุง ูŠุนู†ูŠ ููŠ ู†ู‡ุงูŠุฉ ุงู„ู…ุทุงู
ุฃู†ุช ุจุญุงุฌุฉ ุฅู„ู‰ ู†ูˆุน ู…ู† ุงู„ู…ุฑุงูˆุบุฉ - ูุฃู†ุช ุชุชุนุงู…ู„ ู…ุน ุนู†ูˆุงู† ุงู„ูˆุธูŠูุฉ ุงู„ู…ุทู„ูˆุจุฉ ุนู„ู‰ ุฃู†ู‡ a
ุนุงู…ู„. ูŠุณู…ู‰ ู‡ุฐุง ุงู„ู…ุชุบูŠุฑ ู…ุชุบูŠุฑ ุงู„ู…ุคุดุฑ ุฅู„ู‰ ุงู„ูˆุธูŠูุฉ. ุงู„ุนู„ุงู‚ุฉ
ุจูŠู† ุงู„ูˆุธูŠูุฉ ูˆุงู„ู…ุคุดุฑ ุฅู„ู‰ ุงู„ูˆุธูŠูุฉ ู„ุง ูŠุฎุชู„ู ุญู‚ู‹ุง ุนู† ุงู„ูƒุงุฆู† ูˆ
ู…ุคุดุฑ ุฅู„ู‰ ูƒุงุฆู†.

ููŠ ู„ุบุฉ C ุŒ ูŠูƒูˆู† ุงู„ู…ุซุงู„ ุงู„ุฃุณุงุณูŠ ู„ู…ุคุดุฑ ุฅู„ู‰ ูˆุธูŠูุฉ ู‡ูˆ ุฃ
ู…ุคุดุฑ ุฅู„ู‰ ูˆุธูŠูุฉ ุฅุฑุฌุงุน ุนุฏุฏ ุตุญูŠุญ (PFI). ู„ู„ุญุตูˆู„ ุนู„ู‰ PFI ุฃุฎุฐ ูˆุงุญุฏุฉ ู…ุงุฏุจุง ุงู„ู…ุนู„ู…ุฉุŒ ู‡ุฐุง
ูŠู…ูƒู† ุงู„ุฅุนู„ุงู† ุนู†ู‡ุง ู…ุซู„ุŒ

int (* pfi) (int arg) = 0 ุ›

(ู„ูƒู† ุงู‚ุฑุฃ C++-ุงู„ุฃุณุฆู„ุฉ ุงู„ุดุงุฆุนุฉ ุงู„ู‚ุณู… 33 ู‚ุจู„ ูƒุชุงุจุฉ ุฑู…ุฒ ู…ุซู„ ู‡ุฐุง!) ู…ุง ุชุญุตู„ ุนู„ูŠู‡ ู…ู† ู‡ุฐุง
ู‡ูˆ ู…ุชุบูŠุฑ ุงุณู…ู‡ ุจุจุณุงุทุฉ ุงู„ุฑุงุจุทุฉ ุชู…ุช ุชู‡ูŠุฆุชู‡ ุฅู„ู‰ ุงู„ู‚ูŠู…ุฉ 0. ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุฐู„ูƒ
ุชู‡ูŠุฆุฉ ู‡ุฐุง ุงู„ู…ุคุดุฑ ุฅู„ู‰ ุดูŠุก ุฐูŠ ู…ุนู†ู‰ุŒ ูŠุฌุจ ุฃู† ูŠูƒูˆู† ู„ุฏูŠูƒ ูˆุธูŠูุฉ ู…ุน
ุงู„ุชูˆู‚ูŠุน ุงู„ู…ุทุงุจู‚. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ูŠู…ูƒู†ูƒ ุชูˆููŠุฑ ุฏุงู„ุฉ ุชุจุฏูˆ ูƒู…ุง ูŠู„ูŠ:

int MyFunction (int arg) {}

ุฅุฐุง ูƒุงู† ู„ุฏูŠูƒ ู‡ุฐุง ุงู„ู‡ุฏูุŒ ููŠู…ูƒู†ูƒ ุชู‡ูŠุฆุฉ ุงู„ู…ุชุบูŠุฑ ู„ู„ุฅุดุงุฑุฉ ุฅู„ู‰ ูˆุธูŠูุชูƒ:

pfi = ูˆุธูŠูุชูŠ ุ›

ูŠู…ูƒู†ูƒ ุจุนุฏ ุฐู„ูƒ ุงู„ุงุชุตุงู„ ุจู€ MyFunction ุจุดูƒู„ ุบูŠุฑ ู…ุจุงุดุฑ ุจุงุณุชุฎุฏุงู… ุงู„ุดูƒู„ ุงู„ุฃูƒุซุฑ ุฅูŠุญุงุกู‹ุง ู„ู„ู…ูƒุงู„ู…ุฉ:

ู†ุชูŠุฌุฉ int = (* pfi) (1234) ุ›

ู‡ุฐุง ู…ูˆุญูŠ ู„ุฃู†ู‡ ูŠุจุฏูˆ ุฃู†ูƒ ุชู‚ูˆู… ุจุฅู„ุบุงุก ุงู„ุฅุดุงุฑุฉ ุฅู„ู‰ ู…ุคุดุฑ ุงู„ูˆุธูŠูุฉ ูู‚ุท
ูƒู…ุง ู„ูˆ ูƒู†ุช ุชุฑุบุจ ููŠ ุนุฏู… ุงู„ุฅุดุงุฑุฉ ุฅู„ู‰ ุฃูŠ ู…ุคุดุฑ. ูˆู…ุน ุฐู„ูƒ ุŒ ุนุงุฏุฉู‹ ู…ุง ูŠุณุชููŠุฏ ุงู„ุฃุดุฎุงุต ู…ู†
ุญู‚ูŠู‚ุฉ ุฃู† ุงู„ู…ุชุฑุฌู… ูŠุนุฑู ู…ุง ูŠุฌุฑูŠ ูˆุณูŠุณุชุฎุฏู… ุตูŠุบุฉ ุฃู‚ุตุฑ:

ู†ุชูŠุฌุฉ int = pfi (1234) ุ›

ูŠุจุฏูˆ ุฃู†ูƒ ุชุชุตู„ ุจูˆุธูŠูุฉ ู…ุณู…ุงุฉ ุงู„ุฑุงุจุทุฉุŒ ูˆู„ูƒู† ุงู„ู…ุชุฑุฌู… ุฐูƒูŠ ุจู…ุง ููŠู‡ ุงู„ูƒูุงูŠุฉ ู„ู„ู‚ูŠุงู… ุจุฐู„ูƒ
ุชุนุฑู ุนู„ู‰ ุงู„ุงุชุตุงู„ ู…ู† ุฎู„ุงู„ ุงู„ู…ุชุบูŠุฑ ุงู„ุฑุงุจุทุฉ ุจุดูƒู„ ุบูŠุฑ ู…ุจุงุดุฑ ุฅู„ู‰ ุงู„ูˆุธูŠูุฉ MyFunction.

ู…ู† ุงู„ู†ุงุญูŠุฉ ุงู„ู†ุธุฑูŠุฉุŒ ู‡ุฐู‡ ู‡ูŠ ุงู„ุทุฑูŠู‚ุฉ ุงู„ุชูŠ ูŠุนู…ู„ ุจู‡ุง ู†ุธุงู… ุงู„ุชุชุจุน ุชู‚ุฑูŠุจู‹ุง. ููŠ ุงู„ุฃุณุงุณุŒ ุฃุซุฑ
ุจุงู„ูˆุนุฉ is ุฑุฏ ุงู„ุงุชุตุงู„. ุนู†ุฏู…ุง ูŠุนุจุฑ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุนู† ุงู‡ุชู…ุงู…ู‡ ุจุชู„ู‚ูŠ ุฃุญุฏุงุซ ุงู„ุชุชุจุนุŒ ูุฅู†ู‡
ูŠุถูŠู ู†ูุณู‡ ูƒุฑุฏ ุงุชุตุงู„ ุฅู„ู‰ ู‚ุงุฆู…ุฉ ุนู…ู„ูŠุงุช ุงู„ุงุณุชุฑุฌุงุนุงุช ุงู„ุชูŠ ูŠุญุชูุธ ุจู‡ุง ู…ุตุฏุฑ ุงู„ุชุชุจุน ุฏุงุฎู„ูŠู‹ุง.
ุนู†ุฏู…ุง ูŠุญุฏุซ ุญุฏุซ ู…ุซูŠุฑ ู„ู„ุงู‡ุชู…ุงู…ุŒ ูŠุณุชุฏุนูŠ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ุฎุงุต ุจู‡ ุงู„ู…ุดุบู„ ุฃูˆ ุงู„ุนุงู…ู„(...) ุชูˆููŠุฑ
ุตูุฑ ุฃูˆ ุฃูƒุซุฑ ู…ู† ุงู„ุญุฌุฌ. ุงู„ ุงู„ู…ุดุบู„ ุฃูˆ ุงู„ุนุงู…ู„(...) ูŠุชุฌูˆู„ ููŠ ู†ู‡ุงูŠุฉ ุงู„ู…ุทุงู ุฅู„ู‰ ุฃุณูู„ ููŠ ุงู„ู†ุธุงู… ูˆ
ูŠูุนู„ ุดูŠุฆู‹ุง ูŠุดุจู‡ ุจุดูƒู„ ู…ู„ุญูˆุธ ุงู„ู…ูƒุงู„ู…ุฉ ุบูŠุฑ ุงู„ู…ุจุงุดุฑุฉ ุงู„ุชูŠ ุฑุฃูŠุชู‡ุง ู„ู„ุชูˆุŒ ุญูŠุซ ูŠู‚ุฏู… ุตูุฑู‹ุง ุฃูˆ ุฃูƒุซุฑ
ุงู„ู…ุนู„ู…ุงุชุŒ ุชู…ุงู…ุง ูƒู…ุง ุงู„ุฏุนูˆุฉ ุฅู„ู‰ ุงู„ุฑุงุจุทุฉ ุฃุนู„ุงู‡ ู…ุฑุฑ ู…ุนู„ู…ุฉ ูˆุงุญุฏุฉ ุฅู„ู‰ ุงู„ูˆุธูŠูุฉ ุงู„ู…ุณุชู‡ุฏูุฉ
MyFunction.

ูˆุงู„ูุฑู‚ ุงู„ู…ู‡ู… ุงู„ุฐูŠ ูŠุถูŠูู‡ ู†ุธุงู… ุงู„ุชุชุจุน ู‡ูˆ ุฃู†ู‡ ุจุงู„ู†ุณุจุฉ ู„ูƒู„ ู…ุตุฏุฑ ุชุชุจุน ู‡ู†ุงูƒ
ู‡ูŠ ู‚ุงุฆู…ุฉ ุฏุงุฎู„ูŠุฉ ู„ุนู…ู„ูŠุงุช ุงู„ุงุณุชุฑุฌุงุนุงุช. ุจุฏู„ุงู‹ ู…ู† ู…ุฌุฑุฏ ุฅุฌุฑุงุก ู…ูƒุงู„ู…ุฉ ูˆุงุญุฏุฉ ุบูŠุฑ ู…ุจุงุดุฑุฉุŒ ูŠู…ูƒู†ูƒ ุงู„ุชุชุจุน
ู‚ุฏ ูŠุณุชุฏุนูŠ ุงู„ู…ุตุฏุฑ ุนู…ู„ูŠุงุช ุฑุฏ ุงุชุตุงู„ ู…ุชุนุฏุฏุฉ. ุนู†ุฏู…ุง ูŠุนุจุฑ ุจุงู„ูˆุนุฉ ุงู„ุชุชุจุน ุนู† ุงู‡ุชู…ุงู…ู‡ ุจู€
ุงู„ุฅุฎุทุงุฑุงุช ู…ู† ู…ุตุฏุฑ ุงู„ุชุชุจุนุŒ ูู‡ูŠ ููŠ ุงู„ุฃุณุงุณ ุชู‚ูˆู… ูู‚ุท ุจุชุฑุชูŠุจ ุฅุถุงูุฉ ูˆุธูŠูุชู‡ุง ุงู„ุฎุงุตุฉ ุฅู„ูŠู‡ุง
ู‚ุงุฆู…ุฉ ุฑุฏ ุงู„ุงุชุตุงู„.

ุฅุฐุง ูƒู†ุช ู…ู‡ุชู…ู‹ุง ุจู…ุฒูŠุฏ ู…ู† ุงู„ุชูุงุตูŠู„ ุญูˆู„ ูƒูŠููŠุฉ ุชุฑุชูŠุจ ุฐู„ูƒ ูุนู„ูŠู‹ุง NS-3ุŒ ูŠุดุนุฑ
ุญุฑูŠุฉ ุงู„ุงุทู„ุงุน ุนู„ู‰ ู‚ุณู… ุฑุฏ ุงู„ุงุชุตุงู„ ููŠ NS-3 ุฏู„ูŠู„.

ุชุฌูˆู„: ุงู„ุฑุงุจุน.cc
ู„ู‚ุฏ ู‚ุฏู…ู†ุง โ€‹โ€‹ุจุนุถ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ู„ุชู†ููŠุฐ ู…ุง ู‡ูˆ ููŠ ุงู„ูˆุงู‚ุน ุฃุจุณุท ู…ุซุงู„ ุนู„ู‰ ุงู„ุชุชุจุน
ุงู„ุชูŠ ูŠู…ูƒู† ุชุฌู…ูŠุนู‡ุง. ูŠู…ูƒู†ูƒ ุงู„ุนุซูˆุฑ ุนู„ู‰ ู‡ุฐุง ุงู„ุฑู…ุฒ ููŠ ุฏู„ูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ุจุงุณู… ุงู„ุฑุงุจุน.cc.
ุฏุนูˆู†ุง ู†ุณูŠุฑ ู…ู† ุฎู„ุงู„ ุฐู„ูƒ:

/ * - * - ุงู„ูˆุถุน: C ++ ุ› ู†ู…ุท ู…ู„ู c: "gnu" ุ› ูˆุถุน ุนู„ุงู…ุงุช ุงู„ุฌุฏูˆู„ุฉ ุงู„ุจุงุฏุฆุฉ: ู„ุง ุดูŠุก ุ› - * - * /
/*
* ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ู…ุฌุงู†ูŠ ุ› ูŠู…ูƒู†ูƒ ุฅุนุงุฏุฉ ุชูˆุฒูŠุนู‡ ูˆ / ุฃูˆ ุชุนุฏูŠู„ู‡
* ุจู…ูˆุฌุจ ุดุฑูˆุท ุฑุฎุตุฉ ุฌู†ูˆ ุงู„ุนู…ูˆู…ูŠุฉ ุงู„ุฅุตุฏุงุฑ 2 ูƒู€
* ู†ุดุฑุชู‡ ู…ุคุณุณุฉ ุงู„ุจุฑู…ุฌูŠุงุช ุงู„ุญุฑุฉ ุ›
*
* ูŠุชู… ุชูˆุฒูŠุน ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุนู„ู‰ ุฃู…ู„ ุฃู† ูŠูƒูˆู† ู…ููŠุฏุง ุŒ
* ูˆู„ูƒู† ุจุฏูˆู† ุฃูŠ ุถู…ุงู† ุ› ุญุชู‰ ุจุฏูˆู† ุงู„ุถู…ุงู† ุงู„ุถู…ู†ูŠ ู„ู€
* ุงู„ู‚ุงุจู„ูŠุฉ ู„ู„ุชุณูˆูŠู‚ ุฃูˆ ุงู„ู…ู„ุงุกู…ุฉ ู„ุบุฑุถ ู…ุนูŠู†. ุงู†ุธุฑ
* ุฑุฎุตุฉ ุฌู†ูˆ ุงู„ุนู…ูˆู…ูŠุฉ ู„ู…ุฒูŠุฏ ู…ู† ุงู„ุชูุงุตูŠู„.
*
* ูŠุฌุจ ุฃู† ุชูƒูˆู† ู‚ุฏ ุชู„ู‚ูŠุช ู†ุณุฎุฉ ู…ู† ุฑุฎุตุฉ ุฌู†ูˆ ุงู„ุนู…ูˆู…ูŠุฉ ุงู„ุนุงู…ุฉ
* ู…ุน ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุ› ุฅุฐุง ู„ู… ูŠูƒู† ูƒุฐู„ูƒ ุŒ ูุงูƒุชุจ ุฅู„ู‰ ุงู„ุจุฑู…ุฌูŠุงุช ุงู„ุญุฑุฉ
* FoundationุŒ Inc.ุŒ 59 Temple PlaceุŒ Suite 330ุŒ BostonุŒ MA 02111-1307 USA
*/

# ุชุถู…ูŠู† "ns3 / object.h"
# ุชุถู…ูŠู† "ns3 / uinteger.h"
#ุชุชุถู…ู† "ns3/traced-value.h"
# ุชุถู…ูŠู† "ns3 / trace-source-accessor.h"

#ูŠุดู…ู„

ุจุงุณุชุฎุฏุงู… ู…ุณุงุญุฉ ุงู„ุงุณู… ns3 ุ›

ูŠุฌุจ ุฃู† ุชูƒูˆู† ู…ุนุธู… ู‡ุฐู‡ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ู…ุฃู„ูˆูุฉ ู„ูƒ ุชู…ุงู…ู‹ุง. ูƒู…ุง ุฐูƒุฑู†ุง ุฃุนู„ุงู‡ุŒ ู†ุธุงู… ุงู„ุชุชุจุน
ูŠุณุชุฎุฏู… ุฃู†ุธู…ุฉ ุงู„ูƒุงุฆู†ุงุช ูˆุงู„ุณู…ุงุช ุจุดูƒู„ ู…ูƒุซูุŒ ู„ุฐุง ุณุชุญุชุงุฌ ุฅู„ู‰ ุชุถู…ูŠู†ู‡ุง.
ูŠุชุถู…ู† ุงู„ุฃูˆู„ุงู† ุฃุนู„ุงู‡ ุชู‚ุฏูŠู… ุงู„ุฅุนู„ุงู†ุงุช ุงู„ุฎุงุตุฉ ุจู‡ุฐู‡ ุงู„ุฃู†ุธู…ุฉ ุจุดูƒู„ ุตุฑูŠุญ. ุฃู†ุช
ูŠู…ูƒู†ู†ุง ุงุณุชุฎุฏุงู… ุฑุฃุณ ุงู„ูˆุญุฏุฉ ุงู„ุฃุณุงุณูŠุฉ ู„ู„ุญุตูˆู„ ุนู„ู‰ ูƒู„ ุดูŠุก ู…ุฑุฉ ูˆุงุญุฏุฉุŒ ู„ูƒู†ู†ุง ู†ู‚ูˆู… ุจุงู„ุชุถู…ูŠู†
ุจูˆุถูˆุญ ู‡ู†ุง ู„ุชูˆุถูŠุญ ู…ุฏู‰ ุจุณุงุทุฉ ูƒู„ ู‡ุฐุง ุญู‚ู‹ุง.

ุงู„ู…ู„ูุŒ ุชุชุจุน ุงู„ู‚ูŠู…ุฉ ูŠุฌู„ุจ ุงู„ุฅุนู„ุงู†ุงุช ุงู„ู…ุทู„ูˆุจุฉ ู„ุชุชุจุน ุงู„ุจูŠุงู†ุงุช ุงู„ุชูŠ
ูŠุทูŠุน ุฏู„ุงู„ุงุช ุงู„ู‚ูŠู…ุฉ. ุจุดูƒู„ ุนุงู…ุŒ ุฏู„ุงู„ุงุช ุงู„ู‚ูŠู…ุฉ ุชุนู†ูŠ ูู‚ุท ุฃู†ู‡ ูŠู…ูƒู†ูƒ ุงุฌุชูŠุงุฒ
ุงู„ูƒุงุฆู† ู†ูุณู‡ ุญูˆู„ู‡ุŒ ุจุฏู„ุงู‹ ู…ู† ุชู…ุฑูŠุฑ ุนู†ูˆุงู† ุงู„ูƒุงุฆู†. ู…ุง ู‡ุฐุง ูƒู„ู‡ ุญู‚ุง
ูŠุนู†ูŠ ุฃู†ูƒ ุณูˆู ุชูƒูˆู† ู‚ุงุฏุฑู‹ุง ุนู„ู‰ ุชุชุจุน ุฌู…ูŠุน ุงู„ุชุบูŠูŠุฑุงุช ุงู„ุชูŠ ุชู… ุฅุฌุฑุงุคู‡ุง ุนู„ู‰ TracedValue ุจุดูƒู„ ุญู‚ูŠู‚ูŠ
ุทุฑูŠู‚ุฉ ุจุณูŠุทุฉ.

ู†ุธุฑู‹ุง ู„ุฃู† ู†ุธุงู… ุงู„ุชุชุจุน ูŠุชูƒุงู…ู„ ู…ุน ุงู„ุณู…ุงุช ุŒ ูˆุชุนู…ู„ ุงู„ุณู…ุงุช ู…ุน ุงู„ูƒุงุฆู†ุงุช ุŒ
ูŠุฌุจ ุฃู† ูŠูƒูˆู† ู‡ู†ุงูƒ NS-3 ู‡ุฏู ู„ู…ุตุฏุฑ ุงู„ุชุชุจุน ู„ู„ุนูŠุด ููŠู‡. ู…ู‚ุชุทู ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุชุงู„ูŠ
ูŠุนู„ู† ูˆูŠุญุฏุฏ ูƒุงุฆู†ู‹ุง ุจุณูŠุทู‹ุง ูŠู…ูƒู†ู†ุง ุงู„ุนู…ู„ ู…ุนู‡.

ูุฆุฉ MyObject: ุงู„ูƒุงุฆู† ุงู„ุนุงู…
{
ุงู„ุฌู…ู‡ูˆุฑ:
TypeId ุซุงุจุช GetTypeId (ุจุงุทู„)
{
ุซุงุจุช TypeId tid = TypeId ("MyObject")
.SetParent (Object :: GetTypeId ())
.AddConstructor ()
.AddTraceSource ("MyInteger"ุŒ
"ู‚ูŠู…ุฉ ุนุฏุฏ ุตุญูŠุญ ู„ู„ุชุชุจุน." ุŒ
MakeTraceSourceAccessor (&MyObject::m_myInt)ุŒ
"ns3::Traced::Value::Int32Callback")
;
ุนูˆุฏุฉ ุงู„ู…ุฏ
}

ูƒุงุฆู†ูŠ () {}
TracedValue m_myInt;
};

ุงู„ุณุทุฑูŠู† ุงู„ู…ู‡ู…ูŠู† ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุฃุนู„ุงู‡ุŒ ููŠู…ุง ูŠุชุนู„ู‚ ุจุงู„ุชุชุจุน ู‡ู…ุง .AddTraceSource
ูˆ TracedValue ุฅุนู„ุงู† ุนู† m_myInt.

ุฅู†ู‘ .AddTraceSource ูŠูˆูุฑ "ุงู„ุฎุทุงูุงุช" ุงู„ู…ุณุชุฎุฏู…ุฉ ู„ุชูˆุตูŠู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุจู€
ุงู„ุนุงู„ู… ุงู„ุฎุงุฑุฌูŠ ู…ู† ุฎู„ุงู„ ู†ุธุงู… ุงู„ุชูƒูˆูŠู†. ุงู„ูˆุณูŠุทุฉ ุงู„ุฃูˆู„ู‰ ู‡ูŠ ุงุณู… ู„ู‡ุฐุง ุงู„ุชุชุจุน
ุงู„ู…ุตุฏุฑุŒ ู…ู…ุง ูŠุฌุนู„ู‡ ู…ุฑุฆูŠู‹ุง ููŠ ู†ุธุงู… ุงู„ุชูƒูˆูŠู†. ุงู„ูˆุณูŠุทุฉ ุงู„ุซุงู†ูŠุฉ ู‡ูŠ ุณู„ุณู„ุฉ ุชุนู„ูŠู…ุงุช.
ุงู†ุธุฑ ุงู„ุขู† ุฅู„ู‰ ุงู„ุญุฌุฉ ุงู„ุซุงู„ุซุฉุŒ ููŠ ุงู„ูˆุงู‚ุน ุฑูƒุฒ ุนู„ู‰ ุญุฌุฉ ู…ู† ุงู„ุญุฌุฉ ุงู„ุซุงู„ุซุฉ:
&MyObject::m_myInt. ู‡ุฐู‡ ู‡ูŠ TracedValue ุงู„ุชูŠ ุชุชู… ุฅุถุงูุชู‡ุง ุฅู„ู‰ ุงู„ูุตู„ุ› ุฅู†ู‡ุง
ุฏุงุฆู…ู‹ุง ุนุถูˆ ุจูŠุงู†ุงุช ุงู„ูุตู„. (ุงู„ุญุฌุฉ ุงู„ุฃุฎูŠุฑุฉ ู‡ูŠ ุงุณู… ุฃ typedef ูˆ ู„
ู†ูˆุน TracedValueุŒ ูƒุณู„ุณู„ุฉ. ูŠุชู… ุงุณุชุฎุฏุงู… ู‡ุฐุง ู„ุฅู†ุดุงุก ูˆุซุงุฆู‚ ู„ู„ุตุญูŠุญ
ุชูˆู‚ูŠุน ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„ุŒ ูˆู‡ูˆ ู…ููŠุฏ ุจุดูƒู„ ุฎุงุต ู„ู„ุฃู†ูˆุงุน ุงู„ุฃูƒุซุฑ ุนู…ูˆู…ูŠุฉ ู…ู†
ุนู…ู„ูŠุงุช ุงู„ุงุณุชุฑุฌุงุนุงุช.)

ุฅู†ู‘ ู‚ูŠู…ุฉ ุงู„ุชุชุจุน<> ูŠูˆูุฑ ุงู„ุฅุนู„ุงู† ุงู„ุจู†ูŠุฉ ุงู„ุชุญุชูŠุฉ ุงู„ุชูŠ ุชุฏูุน ุฑุฏ ุงู„ุงุชุตุงู„
ุนู…ู„ูŠุฉ. ููŠ ุฃูŠ ูˆู‚ุช ูŠุชู… ููŠู‡ ุชุบูŠูŠุฑ ุงู„ู‚ูŠู…ุฉ ุงู„ุฃุณุงุณูŠุฉุŒ ุณุชูˆูุฑ ุขู„ูŠุฉ TracedValue
ูƒู„ ู…ู† ุงู„ู‚ูŠู…ุฉ ุงู„ู‚ุฏูŠู…ุฉ ูˆุงู„ุฌุฏูŠุฏุฉ ู„ู‡ุฐุง ุงู„ู…ุชุบูŠุฑุŒ ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ int32_t ู‚ูŠู…ุฉ. ุงู„ุฃุซุฑ
ุณูˆู ุชุญุชุงุฌ ูˆุธูŠูุฉ ุงู„ุญูˆุถ ุงู„ุฎุงุตุฉ ุจู€ TracedValue ุฅู„ู‰ ุงู„ุชูˆู‚ูŠุน

void (* TracedValueCallback)(const int32_t oldValue, const int32_t newValue);

ูŠุฌุจ ุฃู† ุชุญุชูˆูŠ ุฌู…ูŠุน ุฃุญูˆุงุถ ุงู„ุชุชุจุน ุงู„ุชูŠ ุชุฑุจุท ู…ุตุฏุฑ ุงู„ุชุชุจุน ู‡ุฐุง ุนู„ู‰ ู‡ุฐุง ุงู„ุชูˆู‚ูŠุน. ุณู†ู†ุงู‚ุด ุฃุฏู†ุงู‡
ูƒูŠู ูŠู…ูƒู†ูƒ ุชุญุฏูŠุฏ ุชูˆู‚ูŠุน ุฑุฏ ุงู„ุงุชุตุงู„ ุงู„ู…ุทู„ูˆุจ ููŠ ุญุงู„ุงุช ุฃุฎุฑู‰.

ุจุงู„ุชุฃูƒูŠุฏุŒ ุงู„ุงุณุชู…ุฑุงุฑ ู…ู† ุฎู„ุงู„ ุงู„ุฑุงุจุน.cc ู†ุญู† ู†ุฑู‰:

ุจุงุทู„
IntTrace (int32_t oldValueุŒ int32_t newValue)
{
std :: cout << "Traced" << oldValue << "ุฅู„ู‰" << newValue << std :: endlุ›
}

ู‡ุฐุง ู‡ูˆ ุชุนุฑูŠู ุญูˆุถ ุงู„ุชุชุจุน ุงู„ู…ุทุงุจู‚. ูˆู‡ูˆ ูŠุชูˆุงูู‚ ู…ุจุงุดุฑุฉ ู…ุน ุฑุฏ ุงู„ุงุชุตุงู„
ุชูˆู‚ูŠุน ุงู„ูˆุธูŠูุฉ. ุจู…ุฌุฑุฏ ุชูˆุตูŠู„ู‡ุงุŒ ุณูŠุชู… ุงุณุชุฏุนุงุก ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ ูƒู„ู…ุง
TracedValue ุงู„ุชุบูŠูŠุฑุงุช.

ู„ู‚ุฏ ุฑุฃูŠู†ุง ุงู„ุขู† ู…ุตุฏุฑ ุงู„ุชุชุจุน ูˆุญูˆุถ ุงู„ุชุชุจุน. ู…ุง ุชุจู‚ู‰ ู‡ูˆ ุฑู…ุฒ ู„ู„ุงุชุตุงู„
ุงู„ู…ุตุฏุฑ ุฅู„ู‰ ุงู„ุญูˆุถุŒ ูˆู‡ูˆ ู…ุง ูŠุญุฏุซ ููŠ ุฑุฆูŠุณูŠ:

ู…ุงุฏุจุง
main (int argcุŒ char * argv [])
{
Ptr myObject = CreateObject () ุ›
myObject-> TraceConnectWithoutContext ("MyInteger" ุŒ MakeCallback (& โ€‹โ€‹IntTrace)) ุ›

myObject-> m_myInt = 1234 ุ›
}

ู‡ู†ุง ู†ู‚ูˆู… ุฃูˆู„ุงู‹ ุจุฅู†ุดุงุก ู…ุซูŠู„ MyObject ุงู„ุฐูŠ ูŠูˆุฌุฏ ููŠู‡ ู…ุตุฏุฑ ุงู„ุชุชุจุน.

ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ ู‡ูŠ TraceConnectWithoutContextุŒ ูŠุดูƒู„ ุงู„ุงุชุตุงู„ ุจูŠู† ุงู„ุชุชุจุน
ุงู„ู…ุตุฏุฑ ูˆู…ุบุณู„ุฉ ุงู„ุชุชุจุน. ุงู„ูˆุณูŠุทุฉ ุงู„ุฃูˆู„ู‰ ู‡ูŠ ู…ุฌุฑุฏ ุงุณู… ู…ุตุฏุฑ ุงู„ุชุชุจุน "MyInteger"
ุฑุฃูŠู†ุง ุฃุนู„ุงู‡. ู„ุงุญุธ ุงู„ ุฅุฌุนู„ ุงู„ุฅุชุตุงู„ ูˆุธูŠูุฉ ุงู„ู‚ุงู„ุจ. ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ ุชูุนู„ ุงู„ุณุญุฑ
ุงู„ู…ุทู„ูˆุจุฉ ู„ุฅู†ุดุงุก ุงู„ุฃุณุงุณูŠุฉ NS-3 ูƒุงุฆู† ุฑุฏ ุงู„ุงุชุตุงู„ ูˆุฑุจุทู‡ ุจุงู„ูˆุธูŠูุฉ
ุงู†ุชุชุฑูŠุณ. ุชุชุจุน ุงู„ุงุชุตุงู„ ูŠุฌุนู„ ุงู„ุงุฑุชุจุงุท ุจูŠู† ูˆุธูŠูุชูƒ ุงู„ู…ู‚ุฏู…ุฉ ูˆ
ุฒุงุฆุฏ ุงู„ู…ุดุบู„ ุฃูˆ ุงู„ุนุงู…ู„() ููŠ ุงู„ู…ุชุบูŠุฑ ุงู„ู…ุชุชุจุน ุงู„ู…ุดุงุฑ ุฅู„ูŠู‡ ุจูˆุงุณุทุฉ ุงู„ุณู…ุฉ "MyInteger".
ุจุนุฏ ุฅุฌุฑุงุก ู‡ุฐุง ุงู„ุงู‚ุชุฑุงู†ุŒ ุณูŠู‚ูˆู… ู…ุตุฏุฑ ุงู„ุชุชุจุน "ุจุฅุทู„ุงู‚" ุฑุฏ ุงู„ุงุชุตุงู„ ุงู„ุฐูŠ ู‚ู…ุช ุจุชูˆููŠุฑู‡
ูˆุธูŠูุฉ.

ุฅู† ุงู„ูƒูˆุฏ ุงู„ุฐูŠ ูŠุฌุนู„ ูƒู„ ู‡ุฐุง ูŠุญุฏุซุŒ ุจุงู„ุทุจุนุŒ ู„ูŠุณ ุชุงูู‡ู‹ุงุŒ ู„ูƒู† ุงู„ุฌูˆู‡ุฑ ู‡ูˆ ุฐู„ูƒ
ุฃู†ุช ุชู‚ูˆู… ุจุงู„ุชุฑุชูŠุจ ู„ุดูŠุก ูŠุดุจู‡ ุชู…ุงู…ู‹ุง ูุงูŠ () ุงู„ู…ุซุงู„ ุฃุนู„ุงู‡ ู„ูŠุชู… ุงุณุชุฏุนุงุคู‡
ุจูˆุงุณุทุฉ ู…ุตุฏุฑ ุงู„ุชุชุจุน. ุฅุนู„ุงู† ุงู„ TracedValue m_myInt; ููŠ ุงู„ูƒุงุฆู†
ูŠุคุฏูŠ ููŠ ุญุฏ ุฐุงุชู‡ ุงู„ุณุญุฑ ุงู„ู…ุทู„ูˆุจ ู„ุชูˆููŠุฑ ุนูˆุงู…ู„ ุงู„ุชุนูŠูŠู† ุงู„ู…ุซู‚ู„ุฉ ุงู„ุชูŠ ุณุชูุนู„ ุฐู„ูƒ
ุงุณุชุฎุฏู… ุงู„ ุงู„ู…ุดุบู„ ุฃูˆ ุงู„ุนุงู…ู„() ู„ุงุณุชุฏุนุงุก ุฑุฏ ุงู„ุงุชุตุงู„ ูุนู„ูŠู‹ุง ุจุงุณุชุฎุฏุงู… ุงู„ู…ุนู„ู…ุงุช ุงู„ู…ุทู„ูˆุจุฉ. ุงู„
.AddTraceSource ูŠู†ูุฐ ุงู„ุณุญุฑ ู„ุชูˆุตูŠู„ ุฑุฏ ุงู„ุงุชุตุงู„ ุจู†ุธุงู… ุงู„ุชูƒูˆูŠู†ุŒ ูˆ
TraceConnectWithoutContext ูŠู†ูุฐ ุงู„ุณุญุฑ ู„ุชูˆุตูŠู„ ูˆุธูŠูุชูƒ ุจุงู„ุชุชุจุน
ุงู„ู…ุตุฏุฑุŒ ูˆุงู„ุฐูŠ ูŠุชู… ุชุญุฏูŠุฏู‡ ุจูˆุงุณุทุฉ ุงุณู… ุงู„ุณู…ุฉ.

ุฏุนูˆู†ุง ู†ุชุฌุงู‡ู„ ุงู„ุฌุฒุก ุงู„ู…ุชุนู„ู‚ ุจุงู„ุณูŠุงู‚ ููŠ ุงู„ูˆู‚ุช ุงู„ุญุงู„ูŠ.

ูˆุฃุฎูŠุฑุงุŒ ุงู„ุณุทุฑ ุงู„ุฐูŠ ูŠุนูŠู† ู‚ูŠู…ุฉ ู„ m_myInt:

myObject-> m_myInt = 1234 ุ›

ูŠุฌุจ ุชูุณูŠุฑู‡ ุนู„ู‰ ุฃู†ู‡ ุงุณุชุฏุนุงุก ู„ู€ ุนุงู…ู„ ุงู„ุชุดุบูŠู„ = ุนู„ู‰ ู…ุชุบูŠุฑ ุงู„ุนุถูˆ m_myInt ู…ุน
ุงู„ุนุฏุฏ ุงู„ุตุญูŠุญ 1234 ู…ุฑุช ูƒู…ุนู„ู…ุฉ.

ู…ู†ุฐ m_myInt ู‡ูˆ TracedValueุŒ ุชู… ุชุนุฑูŠู ู‡ุฐุง ุงู„ุนุงู…ู„ ู„ุชู†ููŠุฐ ุฑุฏ ุงุชุตุงู„
ุชูุฑุฌุน ูุงุฑุบุฉ ูˆุชุฃุฎุฐ ู‚ูŠู…ุชูŠู† ุตุญูŠุญุชูŠู† ูƒู…ุนู„ู…ุงุช --- ู‚ูŠู…ุฉ ู‚ุฏูŠู…ุฉ ูˆู‚ูŠู…ุฉ ุฌุฏูŠุฏุฉ
ู„ู„ุนุฏุฏ ุงู„ุตุญูŠุญ ููŠ ุงู„ุณุคุงู„. ู‡ุฐุง ู‡ูˆ ุจุงู„ุถุจุท ุงู„ุชูˆู‚ูŠุน ุงู„ูˆุธูŠููŠ ู„ุฑุฏ ุงู„ุงุชุตุงู„
ุงู„ูˆุธูŠูุฉ ุงู„ุชูŠ ู‚ุฏู…ู†ุงู‡ุง --- ุงู†ุชุชุฑูŠุณ.

ู„ู„ุชู„ุฎูŠุต ุŒ ู…ุตุฏุฑ ุงู„ุชุชุจุน ู‡ูˆ ุŒ ููŠ ุฌูˆู‡ุฑู‡ ุŒ ู…ุชุบูŠุฑ ูŠุญุชูˆูŠ ุนู„ู‰ ู‚ุงุฆู…ุฉ ู…ู† ุนู…ู„ูŠุงุช ุงู„ุงุณุชุฑุฌุงุนุงุช. ุฃ
ู…ุตุฏุฑ ุงู„ุชุชุจุน ู‡ูˆ ุฏุงู„ุฉ ุชุณุชุฎุฏู… ูƒู‡ุฏู ู„ุฑุฏ ุงู„ุงุชุตุงู„. ู†ูˆุน ุงู„ุณู…ุฉ ูˆุงู„ูƒุงุฆู†
ุชูุณุชุฎุฏู… ุฃู†ุธู…ุฉ ุงู„ู…ุนู„ูˆู…ุงุช ู„ุชูˆููŠุฑ ุทุฑูŠู‚ุฉ ู„ุฑุจุท ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ุจุฃุญูˆุงุถ ุงู„ุชุชุจุน.
ุฅู† ูุนู„ "ุงู„ุถุฑุจ" ุนู„ู‰ ู…ุตุฏุฑ ุงู„ุชุชุจุน ู‡ูˆ ุชู†ููŠุฐ ุนุงู…ู„ ุชุดุบูŠู„ ุนู„ู‰ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ุฐูŠ
ุญุฑุงุฆู‚ ุงู„ุงุณุชุฑุฌุงุนุงุช. ูŠู†ุชุฌ ุนู† ู‡ุฐุง ุนู…ู„ูŠุงุช ุงู„ุงุณุชุฑุฌุงุนุงุช ุงู„ุฎุงุตุฉ ุจู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ุฐูŠู† ูŠุณุฌู„ูˆู† ุงู„ุงู‡ุชู…ุงู… ุจู€
ูŠุชู… ุงุณุชุฏุนุงุก ุงู„ู…ุตุฏุฑ ุจุงุณุชุฎุฏุงู… ุงู„ู…ุนู„ู…ุงุช ุงู„ู…ู‚ุฏู…ุฉ ู…ู† ุงู„ู…ุตุฏุฑ.

ุฅุฐุง ู‚ู…ุช ุงู„ุขู† ุจุฅู†ุดุงุก ู‡ุฐุง ุงู„ู…ุซุงู„ ูˆุชุดุบูŠู„ู‡ุŒ

$ ./waf --ุงู„ุชุดุบูŠู„ ุงู„ุฑุงุจุน

ุณุชุฑู‰ ุงู„ุฅุฎุฑุงุฌ ู…ู† ุงู†ุชุชุฑูŠุณ ูŠุชู… ุชู†ููŠุฐ ุงู„ูˆุธูŠูุฉ ุจู…ุฌุฑุฏ ูˆุฌูˆุฏ ู…ุตุฏุฑ ุงู„ุชุชุจุน
ูŠุถุฑุจ:

ุชุชุจุน ู…ู† 0 ุฅู„ู‰ 1234

ุนู†ุฏู…ุง ู‚ู…ู†ุง ุจุชู†ููŠุฐ ุงู„ูƒูˆุฏ myObject->m_myInt = 1234.ุŒ ุฃุทู„ู‚ ู…ุตุฏุฑ ุงู„ุชุชุจุน ูˆ
ูŠุชู… ุชูˆููŠุฑ ุงู„ู‚ูŠู… ุงู„ุณุงุจู‚ุฉ ูˆุงู„ู„ุงุญู‚ุฉ ุชู„ู‚ุงุฆูŠู‹ุง ุฅู„ู‰ ุญูˆุถ ุงู„ุชุชุจุน. ุงู„ูˆุธูŠูุฉ
ุงู†ุชุชุฑูŠุณ ุซู… ุทุจุน ู‡ุฐุง ุนู„ู‰ ุงู„ุฅุฎุฑุงุฌ ุงู„ู‚ูŠุงุณูŠ.

ุงู„ุชูˆุงุตู„ ู…ุน ุงู„ุชูƒูˆูŠู†
ุฅู†ู‘ TraceConnectWithoutContext ุงู„ู…ูƒุงู„ู…ุฉ ุงู„ู…ูˆุถุญุฉ ุฃุนู„ุงู‡ ููŠ ุงู„ู…ุซุงู„ ุงู„ุจุณูŠุท ู‡ูŠ ููŠ ุงู„ูˆุงู‚ุน ุฌุฏู‹ุง
ู†ุงุฏุฑุง ู…ุง ุชุณุชุฎุฏู… ููŠ ุงู„ู†ุธุงู…. ุจุดูƒู„ ู†ู…ูˆุฐุฌูŠ ุŒ ูุฅู† ู…ู„ู ุงู„ุชูƒูˆูŠู† ูŠุชู… ุงุณุชุฎุฏุงู… ุงู„ู†ุธุงู… ุงู„ูุฑุนูŠ ู„ุชุญุฏูŠุฏ ุงู„ุชุชุจุน
ู…ุตุฏุฑ ููŠ ุงู„ู†ุธุงู… ุจุงุณุชุฎุฏุงู… ู…ุง ูŠุณู…ู‰ ุงู„ุชูƒูˆูŠู† ู…ุณุงุฑ. ูˆู‚ุฏ ุฑุฃูŠู†ุง ู…ุซุงู„ุงู‹ ุนู„ู‰ ุฐู„ูƒ ููŠ
ุงู„ู‚ุณู… ุงู„ุณุงุจู‚ ุญูŠุซ ู‚ู…ู†ุง ุจุฑุจุท ุญุฏุซ "CourseChange" ุนู†ุฏู…ุง ูƒู†ุง ู†ุฌุฑุจู‡
ุงู„ุซุงู„ุซ.cc.

ุชุฐูƒุฑ ุฃู†ู†ุง ู‚ู…ู†ุง ุจุชุญุฏูŠุฏ ู…ุตุฏุฑ ุชุชุจุน ู„ุทุจุงุนุฉ ู…ุนู„ูˆู…ุงุช ุชุบูŠูŠุฑ ุงู„ู…ุณุงุฑ ู…ู† ุงู„ุชู†ู‚ู„
ู†ู…ุงุฐุฌ ู…ู† ุงู„ู…ุญุงูƒุงุฉ ู„ุฏูŠู†ุง. ูŠุฌุจ ุฃู† ูŠูƒูˆู† ุงู„ุขู† ุฃูƒุซุฑ ูˆุถูˆุญู‹ุง ุจุงู„ู†ุณุจุฉ ู„ูƒ ู…ุง ู‡ูŠ ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ
ุนู…ู„:

ุจุงุทู„
CourseChange (std::string contextุŒ Ptr ู†ู…ูˆุฐุฌ)
{
ู…ูˆุถุน ุงู„ู…ุชุฌู‡ = model->GetPosition ();
NS_LOG_UNCOND (ุงู„ุณูŠุงู‚ <
" x = " << ุงู„ู…ูˆุถุน.x << ", y = " << ุงู„ู…ูˆุถุน.y);
}

ุนู†ุฏู…ุง ู‚ู…ู†ุง ุจุชูˆุตูŠู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน "CourseChange" ุจู…ุตุฑู ุงู„ุชุชุจุน ุฃุนู„ุงู‡ุŒ ุงุณุชุฎุฏู…ู†ุง ู…ู„ู
ู…ุณุงุฑ ุงู„ุชูƒูˆูŠู† ู„ุชุญุฏูŠุฏ ุงู„ู…ุตุฏุฑ ุนู†ุฏู…ุง ู‚ู…ู†ุง ุจุชุฑุชูŠุจ ุงุชุตุงู„ ุจูŠู† ุงู„ู…ุญุฏุฏ ู…ุณุจู‚ุง
ู…ุตุฏุฑ ุงู„ุชุชุจุน ูˆู…ุบุณู„ุฉ ุงู„ุชุชุจุน ุงู„ุฌุฏูŠุฏุฉ:

std::ostringstream oss;
ู†ุธุงู… ุงู„ุชุดุบูŠู„ << "/NodeList/"
<< wifiStaNodes.Get (nWifi - 1)->GetId ()
<< "/$ns3::MobilityModel/CourseChange";

ุงู„ุชูƒูˆูŠู†::Connect (oss.str ()ุŒ MakeCallback (&CourseChange));

ุฏุนูˆู†ุง ู†ุญุงูˆู„ ุฃู† ู†ูู‡ู… ุจุนุถ ุงู„ุดูŠุก ู…ุง ูŠุนุชุจุฑ ุฃุญูŠุงู†ู‹ุง ุฑู…ุฒู‹ุง ุบุงู…ุถู‹ุง ู†ุณุจูŠู‹ุง.
ูˆู„ุฃุบุฑุงุถ ุงู„ู…ู†ุงู‚ุดุฉุŒ ุงูุชุฑุถ ุฃู† ุฑู‚ู… ุงู„ุนู‚ุฏุฉ ุงู„ุฐูŠ ุชู… ุฅุฑุฌุงุนู‡ ุจูˆุงุณุทุฉ ู…ู„ู ู…ุนุฑู() is
"7". ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ุงู„ู…ุณุงุฑ ุฃุนู„ุงู‡ ู‡ูˆ

"/NodeList/7/$ns3::MobilityModel/CourseChange"

ูŠุฌุจ ุฃู† ูŠูƒูˆู† ุงู„ุฌุฒุก ุงู„ุฃุฎูŠุฑ ู…ู† ู…ุณุงุฑ ุงู„ุชูƒูˆูŠู† ุนุจุงุฑุฉ ุนู† ุงู„ุณู…ุฉ ู„ ู‡ุฏู. ููŠ ุงู„ูˆุงู‚ุนุŒ ุฅุฐุง ูƒุงู† ู„ุฏูŠูƒ
ู…ุคุดุฑ ุฅู„ู‰ ู‡ุฏู ุงู„ุฐูŠ ูŠุญุชูˆูŠ ุนู„ู‰ "CourseChange" ุงู„ุณู…ุฉ ู…ููŠุฏุŒ ูŠู…ูƒู†ูƒ ูƒุชุงุจุฉ ู‡ุฐุง
ุชู…ุงู…ุง ูƒู…ุง ูุนู„ู†ุง ููŠ ุงู„ู…ุซุงู„ ุงู„ุณุงุจู‚. ุฃู†ุช ุชุนู„ู… ุงู„ุขู† ุฃู†ู†ุง ู†ู‚ูˆู… ุนุงุฏุฉู‹ ุจุงู„ุชุฎุฒูŠู†
ู…ุคุดุฑุงุช ู„ุฏูŠู†ุง ุงู„ุนู‚ุฏ ููŠ NodeContainer. ููŠ ุงู„ ุงู„ุซุงู„ุซ.cc ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุงู„ุนู‚ุฏ ุฐุงุช ุงู„ุงู‡ุชู…ุงู…
ูŠุชู… ุชุฎุฒูŠู†ู‡ุง ููŠ wifiStaNodes NodeContainer. ููŠ ุงู„ูˆุงู‚ุนุŒ ุฃุซู†ุงุก ูˆุถุน ุงู„ู…ุณุงุฑ ู…ุนู‹ุงุŒ
ุงุณุชุฎุฏู…ู†ุง ู‡ุฐู‡ ุงู„ุญุงูˆูŠุฉ ู„ู„ุญุตูˆู„ ุนู„ู‰ Ptr ุงู„ุฐูŠ ูƒู†ุง ู†ุณู…ูŠู‡ ู…ุนุฑู(). ูƒุงู† ุจุงุณุชุทุงุนุชู†ุง ุงู†
ุงุณุชุฎุฏู… ู‡ุฐุง Ptr ู„ู„ุงุชุตุงู„ ุจุทุฑูŠู‚ุฉ ุงู„ุงุชุตุงู„ ู…ุจุงุดุฑุฉ:

ุจูŠ ุชูŠ ุขุฑ theObject = wifiStaNodes.Get (nWifi - 1);
theObject->TraceConnectWithoutContext ("CourseChange"ุŒ MakeCallback (&CourseChange));

ููŠ ู…ุฌู„ุฉ ุงู„ุซุงู„ุซ.cc ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุฃุฑุฏู†ุง ุจุงู„ูุนู„ ุชุณู„ูŠู… "ุณูŠุงู‚" ุฅุถุงููŠ
ุจุงุณุชุฎุฏุงู… ู…ุนู„ู…ุงุช ุฑุฏ ุงู„ุงุชุตุงู„ (ูˆุงู„ุชูŠ ุณูŠุชู… ุดุฑุญู‡ุง ุฃุฏู†ุงู‡) ุญุชู‰ ู†ุชู…ูƒู† ุจุงู„ูุนู„ ู…ู† ุงุณุชุฎุฏุงู…
ุงู„ูƒูˆุฏ ุงู„ู…ุนุงุฏู„ ุงู„ุชุงู„ูŠ:

ุจูŠ ุชูŠ ุขุฑ theObject = wifiStaNodes.Get (nWifi - 1);
theObject->TraceConnect ("CourseChange"ุŒ MakeCallback (&CourseChange));

ูˆุชุจูŠู† ุฃู† ุงู„ูƒูˆุฏ ุงู„ุฏุงุฎู„ูŠ ู„ ุงู„ุชูƒูˆูŠู† :: ConnectWithoutContext ุงู„ุชูƒูˆูŠู†::ุงุชุตุงู„
ููŠ ุงู„ูˆุงู‚ุน ุงู„ุนุซูˆุฑ ุนู„ู‰ ุจูŠ ุชูŠ ุขุฑ ูˆุงู„ุงุชุตุงู„ ุจุงู„ู…ู†ุงุณุจ ุชุชุจุน ุงู„ุงุชุตุงู„ ุงู„ุทุฑูŠู‚ุฉ ุนู„ู‰ ุงู„ุฃู‚ู„
.

ุฅู†ู‘ ุงู„ุชูƒูˆูŠู† ุชุฃุฎุฐ ุงู„ูˆุธุงุฆู ู…ุณุงุฑู‹ุง ูŠู…ุซู„ ุณู„ุณู„ุฉ ู…ู† ู‡ุฏู ู…ุคุดุฑุงุช. ูƒู„ ุดุฑูŠุญุฉ
ู…ู† ุงู„ู…ุณุงุฑ ูŠุชูˆุงูู‚ ู…ุน ุณู…ุฉ ุงู„ูƒุงุฆู†. ุงู„ุฌุฒุก ุงู„ุฃุฎูŠุฑ ู‡ูˆ ุณู…ุฉ
ุงู„ูุงุฆุฏุฉุŒ ูˆูŠุฌุจ ูƒุชุงุจุฉ ุงู„ู…ู‚ุงุทุน ุงู„ุณุงุจู‚ุฉ ู„ุงุญุชูˆุงุก ุงู„ูƒุงุฆู†ุงุช ุฃูˆ ุงู„ุนุซูˆุฑ ุนู„ูŠู‡ุง. ุงู„ ุงู„ุชูƒูˆูŠู† ุงู„ูƒูˆุฏ
ูŠูˆุฒุน ู‡ุฐุง ุงู„ู…ุณุงุฑ ูˆ"ูŠุณูŠุฑ ููŠู‡" ุญุชู‰ ูŠุตู„ ุฅู„ู‰ ุงู„ุฌุฒุก ุงู„ุฃุฎูŠุฑ ู…ู† ุงู„ู…ุณุงุฑ. ุจุนุฏ ุฐู„ูƒ
ูŠูุณุฑ ุงู„ุฌุฒุก ุงู„ุฃุฎูŠุฑ ุนู„ู‰ ุฃู†ู‡ ุงู„ุณู…ุฉ ุนู„ู‰ ุขุฎุฑ ูƒุงุฆู† ุชู… ุงู„ุนุซูˆุฑ ุนู„ูŠู‡ ุฃุซู†ุงุก ุงู„ู…ุดูŠ
ุทุฑูŠู‚. ุงู„ ุงู„ุชูƒูˆูŠู† ูˆุธุงุฆู ุซู… ุงุณุชุฏุนุงุก ุงู„ู…ู†ุงุณุจ ุชุชุจุน ุงู„ุงุชุตุงู„ or
TraceConnectWithoutContext ุงู„ุทุฑูŠู‚ุฉ ุนู„ู‰ ุงู„ูƒุงุฆู† ุงู„ู†ู‡ุงุฆูŠ. ุฏุนูˆู†ุง ู†ุฑู‰ ู…ุง ุณูŠุญุฏุซ ุจุนุฏ ู‚ู„ูŠู„
ู…ุฒูŠุฏ ู…ู† ุงู„ุชูุงุตูŠู„ ุนู†ุฏ ุงู„ุณูŠุฑ ุนู„ู‰ ุงู„ู…ุณุงุฑ ุฃุนู„ุงู‡.

ูŠุดูŠุฑ ุงู„ุญุฑู "/" ุงู„ุจุงุฏุฆุฉ ููŠ ุงู„ู…ุณุงุฑ ุฅู„ู‰ ู…ุง ูŠุณู…ู‰ ู…ุณุงุญุฉ ุงู„ุงุณู…. ูˆุงุญุฏ ู…ู†
ู…ุณุงุญุงุช ุงู„ุฃุณู…ุงุก ุงู„ู…ุญุฏุฏุฉ ู…ุณุจู‚ู‹ุง ููŠ ู†ุธุงู… ุงู„ุชูƒูˆูŠู† ู‡ูŠ "NodeList" ูˆู‡ูŠ ู‚ุงุฆู…ุฉ ุชุถู… ุฌู…ูŠุน ู…ู„ูุงุช
ุงู„ุนู‚ุฏ ููŠ ุงู„ู…ุญุงูƒุงุฉ. ุชุชู… ุงู„ุฅุดุงุฑุฉ ุฅู„ู‰ ุงู„ุนู†ุงุตุฑ ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ู‚ุงุฆู…ุฉ ุจูˆุงุณุทุฉ ู…ุคุดุฑุงุช ููŠ ุงู„ู‚ุงุฆู…ุฉ ุŒ ู„ุฐู„ูƒ
ูŠุดูŠุฑ "/NodeList/7" ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุซุงู…ู†ุฉ ููŠ ู‚ุงุฆู…ุฉ ุงู„ุนู‚ุฏ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุฃุซู†ุงุก ุงู„ู…ุญุงูƒุงุฉ
(ุชุจุฏุฃ ู…ุคุดุฑุงุช ุงู„ุงุณุชุฏุนุงุก ุนู†ุฏ 0 '). ู‡ุฐู‡ ู…ุฑุฌุน is ููŠ ุงู„ูˆุงู‚ุน a ``ุจุชุฑ ` ูˆู‡ูƒุฐุง ุฃ
ูุฆุฉ ูุฑุนูŠุฉ ู…ู† ns3 :: ุงู„ูƒุงุฆู†.

ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ููŠ ู‚ุณู… ู†ู…ูˆุฐุฌ ุงู„ูƒุงุฆู† ููŠ NS-3 ุฏู„ูŠู„ุŒ ูˆู†ุญู† ู†ุณุชููŠุฏ ู…ู†ู‡ุง ุนู„ู‰ ู†ุทุงู‚ ูˆุงุณุน
ุชุฌู…ูŠุน ุงู„ูƒุงุฆู†ุงุช. ู‡ุฐุง ูŠุณู…ุญ ู„ู†ุง ุจุชูƒูˆูŠู† ุงุฑุชุจุงุท ุจูŠู† ุงู„ูƒุงุฆู†ุงุช ุงู„ู…ุฎุชู„ูุฉ
ุฏูˆู† ุจู†ุงุก ุดุฌุฑุฉ ูˆุฑุงุซุฉ ู…ุนู‚ุฏุฉ ุฃูˆ ุชุญุฏูŠุฏ ุงู„ุฃุดูŠุงุก ุงู„ุชูŠ ุณุชูƒูˆู† ุฌุฒุกู‹ุง ู…ู†ู‡ุง ู…ุณุจู‚ู‹ุง
ู…ู† ุนู‚ุฏุฉ. ูŠู…ูƒู† ุงู„ูˆุตูˆู„ ุฅู„ู‰ ูƒู„ ูƒุงุฆู† ููŠ ุงู„ุชุฌู…ูŠุน ู…ู† ุงู„ูƒุงุฆู†ุงุช ุงู„ุฃุฎุฑู‰.

ููŠ ู…ุซุงู„ู†ุงุŒ ูŠุจุฏุฃ ู…ู‚ุทุน ุงู„ู…ุณุงุฑ ุงู„ุชุงู„ูŠ ุงู„ุฐูŠ ูŠุชู… ุงู„ุณูŠุฑ ููŠู‡ ุจุงู„ุญุฑู "$". ู‡ุฐุง
ูŠุดูŠุฑ ุฅู„ู‰ ู†ุธุงู… ุงู„ุชูƒูˆูŠู† ุฃู† ุงู„ู…ู‚ุทุน ู‡ูˆ ุงุณู… ู†ูˆุน ุงู„ูƒุงุฆู†ุŒ ู„ุฐู„ูƒ ุฃ
GETOBJECT ูŠุฌุจ ุฅุฌุฑุงุก ุงู„ู…ูƒุงู„ู…ุฉ ู„ู„ุจุญุซ ุนู† ู‡ุฐุง ุงู„ู†ูˆุน. ูˆุชุจูŠู† ุฃู† MobilityHelper
ุงู„ู…ุณุชุฎุฏู…ุฉ ููŠ ุงู„ุซุงู„ุซ.cc ูŠุฑุชุจ ู„ุชุฌู…ูŠุนุŒ ุฃูˆ ุฑุจุทุŒ ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„ ู„ูƒู„ ู…ู†
ู„ุงุณู„ูƒูŠ ุงู„ุนู‚ุฏ. ุนู†ุฏู…ุง ุชู‚ูˆู… ุจุฅุถุงูุฉ "$" ูุฅู†ูƒ ุชุทู„ุจ ูƒุงุฆู†ู‹ุง ุขุฎุฑ ูŠุญุชูˆูŠ ุนู„ู‰
ู…ู† ุงู„ู…ูุชุฑุถ ุฃู†ู‡ ุชู… ุชุฌู…ูŠุนู‡ุง ู…ุณุจู‚ู‹ุง. ูŠู…ูƒู†ูƒ ุงู„ุชููƒูŠุฑ ููŠ ู‡ุฐุง ุนู„ู‰ ุฃู†ู‡ ุชุจุฏูŠู„ ุงู„ู…ุคุดุฑุงุช ู…ู†
ุงู„ุฃุตู„ูŠ ุจูŠ ุชูŠ ุขุฑ ูƒู…ุง ู‡ูˆ ู…ุญุฏุฏ ุจูˆุงุณุทุฉ "/NodeList/7" ู„ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„ ุงู„ู…ุฑุชุจุท ุจู‡ ---
ูˆู‡ูˆ ู…ู† ุงู„ู†ูˆุน ns3 :: MobilityModel. ุฅุฐุง ูƒู†ุช ุนู„ู‰ ุฏุฑุงูŠุฉ GETOBJECTู„ู‚ุฏ ุณุฃู„ู†ุง
ุงู„ู†ุธุงู… ู„ู„ู‚ูŠุงู… ุจู…ุง ูŠู„ูŠ:

ุจูŠ ุชูŠ ุขุฑ MobilityModel = ุงู„ุนู‚ุฏุฉ->GetObject ()

ู†ุญู† ุงู„ุขู† ููŠ ุขุฎุฑ ูƒุงุฆู† ููŠ ุงู„ู…ุณุงุฑุŒ ู„ุฐู„ูƒ ู†ูˆุฌู‡ ุงู†ุชุจุงู‡ู†ุง ุฅู„ู‰ ุณู…ุงุช
ู‡ุฐุง ุงู„ูƒุงุฆู†. ุงู„ MobilityModel ุชุญุฏุฏ ุงู„ูุฆุฉ ุณู…ุฉ ุชุณู…ู‰ "CourseChange". ุฃู†ุช ุชุณุชุทูŠุน
ุงู†ุธุฑ ู‡ุฐุง ู…ู† ุฎู„ุงู„ ุงู„ู†ุธุฑ ููŠ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ู…ุตุฏุฑ ููŠ src/mobility/model/mobility-model.cc
ุงุจุญุซ ุนู† "CourseChange" ููŠ ู…ุญุฑุฑูƒ ุงู„ู…ูุถู„. ูŠุฌุจ ุฃู† ุชุฌุฏ

.AddTraceSource ("CourseChange"ุŒ
"ุชุบูŠุฑุช ู‚ูŠู…ุฉ ุงู„ู…ูˆุถุน ูˆ/ุฃูˆ ู…ุชุฌู‡ ุงู„ุณุฑุนุฉ"ุŒ
MakeTraceSourceAccessor (&MobilityModel::m_courseChangeTrace)ุŒ
"ns3::MobilityModel::CourseChangeCallback")

ูˆุงู„ุชูŠ ูŠุฌุจ ุฃู† ุชุจุฏูˆ ู…ุฃู„ูˆูุฉ ุฌุฏู‹ุง ููŠ ู‡ุฐู‡ ุงู„ู…ุฑุญู„ุฉ.

ุฅุฐุง ูƒู†ุช ุชุจุญุซ ุนู† ุงู„ุฅุนู„ุงู† ุงู„ู…ู‚ุงุจู„ ู„ู„ู…ุชุบูŠุฑ ุงู„ู…ุชุชุจุน ุงู„ุฃุณุงุณูŠ ููŠ
ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„.h ูˆุณูˆู ุชุฌุฏ

ุชุชุจุน ุงู„ุงุชุตุงู„ > m_courseChangeTrace;

ุฅุนู„ุงู† ุงู„ู†ูˆุน ุชุชุจุน ุงู„ุงุชุตุงู„ ูŠุญุฏุฏ m_courseChangeTrace ูƒู‚ุงุฆู…ุฉ ุฎุงุตุฉ
ุนู…ู„ูŠุงุช ุงู„ุงุณุชุฑุฌุงุนุงุช ุงู„ุชูŠ ูŠู…ูƒู† ุฑุจุทู‡ุง ุจุงุณุชุฎุฏุงู… ูˆุธุงุฆู ุงู„ุชูƒูˆูŠู† ุงู„ู…ูˆุถุญุฉ ุฃุนู„ุงู‡. ุงู„ typedef ูˆ ู„ู€
ูŠุชู… ุชุนุฑูŠู ุชูˆู‚ูŠุน ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„ ุฃูŠุถู‹ุง ููŠ ู…ู„ู ุงู„ุฑุฃุณ:

typedef void (* CourseChangeCallback)(Ptr * ู†ู…ูˆุฐุฌ)ุ›

ุฅู†ู‘ MobilityModel ุชู… ุชุตู…ูŠู… ุงู„ูุฆุฉ ู„ุชูƒูˆู† ูุฆุฉ ุฃุณุงุณูŠุฉ ุชูˆูุฑ ูˆุงุฌู‡ุฉ ู…ุดุชุฑูƒุฉ ู„ู€
ุฌู…ูŠุน ุงู„ูุฆุงุช ุงู„ูุฑุนูŠุฉ ุงู„ู…ุญุฏุฏุฉ. ุฅุฐุง ู‚ู…ุช ุจุงู„ุจุญุซ ุญุชู‰ ู†ู‡ุงูŠุฉ ุงู„ู…ู„ูุŒ ูุณูˆู ุชุฑู‰ ู…ู„ู
ุงู„ุทุฑูŠู‚ุฉ ุงู„ู…ุญุฏุฏุฉ ุชุณู…ู‰ NotifyCourseChange():

ุจุงุทู„
MobilityModel::NotifyCourseChange (ุจุงุทู„) ุซุงุจุช
{
m_courseChangeTrace(this);
}

ุณูˆู ุชุณุชุฏุนูŠ ุงู„ูุฆุงุช ุงู„ู…ุดุชู‚ุฉ ู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ ุนู†ุฏู…ุง ุชู‚ูˆู… ุจุชุบูŠูŠุฑ ุงู„ุฏูˆุฑุฉ ุงู„ุชุฏุฑูŠุจูŠุฉ ู„ุฏุนู…ู‡ุง
ุงู‚ุชูุงุก ุฃุซุฑ. ุชุณุชุฏุนูŠ ู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ ุงู„ู…ุดุบู„ ุฃูˆ ุงู„ุนุงู…ู„() ุนู„ู‰ ุงู„ูƒุงู…ู†ุฉ m_courseChangeTraceุŒ ุงู„ุชูŠ
ุณูŠู‚ูˆู… ุจุฏูˆุฑู‡ ุจุงุณุชุฏุนุงุก ุฌู…ูŠุน ุนู…ู„ูŠุงุช ุงู„ุงุณุชุฑุฌุงุนุงุช ุงู„ู…ุณุฌู„ุฉุŒ ูˆุงุณุชุฏุนุงุก ูƒุงูุฉ ุฃุญูˆุงุถ ุงู„ุชุชุจุน ุงู„ุชูŠ
ู„ุฏูŠูƒ ู…ุตู„ุญุฉ ู…ุณุฌู„ุฉ ููŠ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุนู† ุทุฑูŠู‚ ุงุณุชุฏุนุงุก ุฏุงู„ุฉ ุงู„ุชูƒูˆูŠู†.

ู„ุฐุง ุŒ ููŠ ุงู„ุซุงู„ุซ.cc ุงู„ู…ุซุงู„ ุงู„ุฐูŠ ู†ุธุฑู†ุง ุฅู„ูŠู‡ุŒ ูƒู„ู…ุง ุชู… ุฅุฌุฑุงุก ุชุบูŠูŠุฑ ููŠ ุงู„ุฏูˆุฑุฉ ุงู„ุชุฏุฑูŠุจูŠุฉ ููŠ ุฃุญุฏ
RandomWalk2dMobilityModel ุงู„ู…ุซูŠู„ุงุช ุงู„ู…ุซุจุชุฉุŒ ุณูŠูƒูˆู† ู‡ู†ุงูƒ NotifyCourseChange() ุฏุนูˆุฉ
ุงู„ุฐูŠ ูŠุฏุนูˆ ุฅู„ู‰ MobilityModel ุงู„ุทุจู‚ุฉ ุงู„ุฃุณุงุณูŠุฉ. ูƒู…ุง ุฑุฃูŠู†ุง ุฃุนู„ุงู‡ุŒ ูˆู‡ุฐุง ูŠุณุชุฏุนูŠ ุงู„ู…ุดุบู„ ุฃูˆ ุงู„ุนุงู…ู„()
on m_courseChangeTraceุŒ ูˆุงู„ุฐูŠ ุจุฏูˆุฑู‡ ูŠุณุชุฏุนูŠ ุฃูŠ ุฃุญูˆุงุถ ุชุชุจุน ู…ุณุฌู„ุฉ. ููŠ ุงู„ู…ุซุงู„ุŒ
ูƒุงู† ุงู„ุฑู…ุฒ ุงู„ูˆุญูŠุฏ ุงู„ุฐูŠ ูŠุณุฌู„ ุงู„ุงู‡ุชู…ุงู… ู‡ูˆ ุงู„ุฑู…ุฒ ุงู„ุฐูŠ ูŠูˆูุฑ ู…ุณุงุฑ ุงู„ุชูƒูˆูŠู†.
ูˆู„ุฐู„ูƒุŒ ูุฅู† ุชุบูŠูŠุฑ ุงู„ู…ุณุงุฑ ุงู„ูˆุธูŠูุฉ ุงู„ุชูŠ ุชู… ุฑุจุทู‡ุง ู…ู† ุงู„ุนู‚ุฏุฉ ุฑู‚ู… ุณุจุนุฉ ุณุชูƒูˆู†
ุชู… ุงุณุชุฏุนุงุก ุฑุฏ ุงู„ุงุชุตุงู„ ูู‚ุท.

ุงู„ู‚ุทุนุฉ ุงู„ุฃุฎูŠุฑุฉ ู…ู† ุงู„ู„ุบุฒ ู‡ูŠ "ุงู„ุณูŠุงู‚". ุชุฐูƒุฑ ุฃู†ู†ุง ุฑุฃูŠู†ุง ุงู„ู†ุงุชุฌ ูŠุจุญุซ
ุดูŠุก ู…ุซู„ ู…ุง ูŠู„ูŠ ู…ู† ุงู„ุซุงู„ุซ.cc:

/NodeList/7/$ns3::MobilityModel/CourseChange x = 7.27897, y =
2.22677

ุงู„ุฌุฒุก ุงู„ุฃูˆู„ ู…ู† ุงู„ุฅุฎุฑุงุฌ ู‡ูˆ ุงู„ุณูŠุงู‚. ุฅู†ู‡ ุจุจุณุงุทุฉ ุงู„ุทุฑูŠู‚ ุงู„ุฐูŠ ู…ู† ุฎู„ุงู„ู‡
ุญุฏุฏ ุฑู…ุฒ ุงู„ุชูƒูˆูŠู† ู…ุตุฏุฑ ุงู„ุชุชุจุน. ููŠ ุงู„ุญุงู„ุฉ ุงู„ุชูŠ ู†ุธุฑู†ุง ุฅู„ูŠู‡ุง ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ู‡ู†ุงูƒ
ุฃูŠ ุนุฏุฏ ู…ู† ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ููŠ ุงู„ู†ุธุงู… ูŠุชูˆุงูู‚ ู…ุน ุฃูŠ ุนุฏุฏ ู…ู† ุงู„ุนู‚ุฏ
ู†ู…ุงุฐุฌ ุงู„ุชู†ู‚ู„. ูŠุฌุจ ุฃู† ุชูƒูˆู† ู‡ู†ุงูƒ ุทุฑูŠู‚ุฉ ู…ุง ู„ุชุญุฏูŠุฏ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ู…ูˆุฌูˆุฏ ุจุงู„ูุนู„
ุงู„ุฐูŠ ุฃุทู„ู‚ ุฑุฏ ุงู„ุงุชุตุงู„. ุงู„ุทุฑูŠู‚ุฉ ุงู„ุณู‡ู„ุฉ ู‡ูŠ ุงู„ุชูˆุงุตู„ ู…ุน ุงู„ุชูƒูˆูŠู†::ุงุชุตุงู„ุŒ ููŠ ุญูŠู† ุฃู†
of ุงู„ุชูƒูˆูŠู† :: ConnectWithoutContext.

ุงู„ุนุซูˆุฑ ุนู„ู‰ ู…ุตุงุฏุฑ
ุงู„ุณุคุงู„ ุงู„ุฃูˆู„ ุงู„ุฐูŠ ูŠุทุฑุญ ุญุชู…ุงู‹ ุนู„ู‰ ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุฌุฏุฏ ู„ู†ุธุงู… ุงู„ุชุชุจุน ู‡ูˆุŒ "ุชู…ุงู…ุŒ
I ุนู„ู… ุฃู† ู‡ู†ุงูƒ ูŠุฌุจ be ุชุชุจุน ุชู‚ุงุฑูŠุฑ ุนู† ู…ุตุงุฏุฑ ุงู„ุนุทูˆุฑ ุจุฏูˆู† ุงู„ุนู„ุจุฉ in ู‡ูŠู‡ ู…ุญุงูƒุงุฉ ุงู„ุฃุณุงุณูŠุฉุŒ ู„ูƒู† ูƒูŠู do I ุฌุฏ ุฎุงุฑุฌ ู…ุงุฐุง
ุชุชุจุน ุชู‚ุงุฑูŠุฑ ุนู† ู…ุตุงุฏุฑ ุงู„ุนุทูˆุฑ ุจุฏูˆู† ุงู„ุนู„ุจุฉ . ู…ุชุงุญ ุฅู„ู‰ ุฃู†ุงุŸ"

ุงู„ุณุคุงู„ ุงู„ุซุงู†ูŠ ู‡ูˆ "ุชู…ุงู…ุŒ I ูˆุฌุฏุช a ุชุชุจุน ู…ุตุฏุฑุŒ ูƒูŠู do I ุงู„ุดูƒู„ ุฎุงุฑุฌ ู‡ูŠู‡ ุงู„ุชูƒูˆูŠู† ู…ุณุงุฑ
ุฅู„ู‰ ุชุณุชุฎุฏู… ู…ุชู‰ I ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ ุฅู„ู‰ ู‡ูˆ - ู‡ูŠุŸ"

ุงู„ุณุคุงู„ ุงู„ุซุงู„ุซ ู‡ูˆ "ุชู…ุงู…ุŒ I ูˆุฌุฏุช a ุชุชุจุน ู…ุตุฏุฑ ู‡ูŠู‡ ุงู„ุชูƒูˆูŠู† ู…ุณุงุฑุŒ ูƒูŠู do I ุงู„ุดูƒู„
ุฎุงุฑุฌ ู…ุงุฐุง ู‡ูŠู‡ ุนุงุฆุฏ ุฃุนู„ู‰ ู†ูˆุน ุฑุณู…ูŠ ุงู„ุญุฌุฌ of my ุฑุฏ ูˆุธูŠูุฉ ุญุงุฌุฉ ุฅู„ู‰ ูŠูƒูˆู†ุŸ"

ูˆุงู„ุณุคุงู„ ุงู„ุฑุงุจุน ู‡ูˆ "ุชู…ุงู…ุŒ I ูƒุชุจุชู‡ ุฃู† ุงู„ูƒู„ in ุญุตู„ุช ู„ุง ูŠุตุฏู‚ ุบุฑูŠุจ ุฎุทุฃ
ุฑุณุงู„ุฉุŒ ู…ุงุฐุง in ู‡ูŠู‡ ุงู„ุนุงู„ู… ู‡ู„ it ูŠู‚ุตุฏุŸ"

ูˆุณูˆู ู†ุชู†ุงูˆู„ ูƒู„ ูˆุงุญุฏ ู…ู† ู‡ุฐู‡ ุนู„ู‰ ุญุฏุฉ.

ู…ุชูˆูุฑุฉ ู…ุตุงุฏุฑ
ุญุณู†ุงุŒ I ุนู„ู… ุฃู† ู‡ู†ุงูƒ ูŠุฌุจ be ุชุชุจุน ุชู‚ุงุฑูŠุฑ ุนู† ู…ุตุงุฏุฑ ุงู„ุนุทูˆุฑ ุจุฏูˆู† ุงู„ุนู„ุจุฉ in ู‡ูŠู‡ ู…ุญุงูƒุงุฉ ุงู„ุฃุณุงุณูŠุฉุŒ ู„ูƒู† ูƒูŠู do I ุฌุฏ
ุฎุงุฑุฌ ู…ุงุฐุง ุชุชุจุน ุชู‚ุงุฑูŠุฑ ุนู† ู…ุตุงุฏุฑ ุงู„ุนุทูˆุฑ ุจุฏูˆู† ุงู„ุนู„ุจุฉ . ู…ุชุงุญ ุฅู„ู‰ ู„ูŠุŸ

ุฅุฌุงุจุฉ ุงู„ุณุคุงู„ ุงู„ุฃูˆู„ ุชุฌุฏู‡ุง ููŠ NS-3 ูˆุซุงุฆู‚ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช. ุฅุฐุง ุฐู‡ุจุช ุฅู„ู‰
ู…ูˆู‚ุน ุงู„ู…ุดุฑูˆุน ุนู„ู‰ ุดุจูƒุฉ ุงู„ุฅู†ุชุฑู†ุช, NS-3 ุชู†ููŠุฐ ุงู„ู…ุดุงุฑูŠุน ุŒ ุณุชุฌุฏ ุฑุงุจุทู‹ุง ุฅู„ู‰ "ุงู„ูˆุซุงุฆู‚" ููŠ ุดุฑูŠุท ุงู„ุชู†ู‚ู„
ุญุงุฌูุฒ. ุฅุฐุง ู‚ู…ุช ุจุชุญุฏูŠุฏ ู‡ุฐุง ุงู„ุฑุงุจุทุŒ ุณูŠุชู… ู†ู‚ู„ูƒ ุฅู„ู‰ ุตูุญุฉ ุงู„ูˆุซุงุฆู‚ ู„ุฏูŠู†ุง. ู‡ู†ุงูƒ
ุฑุงุจุท ุฅู„ู‰ "ุฃุญุฏุซ ุฅุตุฏุงุฑ" ูˆุงู„ุฐูŠ ุณูŠู†ู‚ู„ูƒ ุฅู„ู‰ ุงู„ูˆุซุงุฆู‚ ุงู„ุฎุงุตุฉ ุจุฃุญุฏุซ ุฅุตุฏุงุฑ ุซุงุจุช
ุงู„ุงูุฑุงุฌ ุนู† NS-3. ุฅุฐุง ู‚ู…ุช ุจุชุญุฏูŠุฏ ุงู„ุฑุงุจุท "ูˆุซุงุฆู‚ API"ุŒ ูุณูŠุชู… ู†ู‚ู„ูƒ ุฅู„ู‰
NS-3 ุตูุญุฉ ูˆุซุงุฆู‚ API.

ููŠ ุงู„ุดุฑูŠุท ุงู„ุฌุงู†ุจูŠุŒ ูŠุฌุจ ุฃู† ุชุดุงู‡ุฏ ุงู„ุชุณู„ุณู„ ุงู„ู‡ุฑู…ูŠ ุงู„ุฐูŠ ูŠุจุฏุฃ

ยท ู….ุณ-3

ยท ns-3 ุงู„ุชูˆุซูŠู‚

ยท ุฌู…ูŠุน ู…ุตุงุฏุฑ ุงู„ุชุชุจุน

ยท ุฌู…ูŠุน ุงู„ุตูุงุช

ยท ุฌู…ูŠุน ุงู„ู‚ูŠู… ุงู„ุนุงู„ู…ูŠุฉ

ุงู„ู‚ุงุฆู…ุฉ ุงู„ุชูŠ ุชู‡ู…ู†ุง ู‡ู†ุง ู‡ูŠ "All TraceSources". ุงู„ู…ุถูŠ ู‚ุฏู…ุง ูˆุงุฎุชูŠุงุฑ ู‡ุฐุง ุงู„ุฑุงุจุท.
ุณุชุฑู‰ุŒ ุฑุจู…ุง ู„ูŠุณ ู…ู† ุงู„ู…ุณุชุบุฑุจ ุฌุฏู‹ุงุŒ ู‚ุงุฆู…ุฉ ุจุฌู…ูŠุน ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ุงู„ู…ุชุงุญุฉ
in NS-3.

ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ู‚ู… ุจุงู„ุชู…ุฑูŠุฑ ู„ุฃุณูู„ ุฅู„ู‰ ns3 :: MobilityModel. ุณูˆู ุชุฌุฏ ุฅุฏุฎุงู„ ู„

CourseChange: ุชู… ุชุบูŠูŠุฑ ู‚ูŠู…ุฉ ุงู„ู…ูˆุถุน ูˆ/ุฃูˆ ู…ุชุฌู‡ ุงู„ุณุฑุนุฉ

ูŠุฌุจ ุฃู† ุชุชุนุฑู ุนู„ู‰ ู‡ุฐุง ุจุงุนุชุจุงุฑู‡ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ุฐูŠ ุงุณุชุฎุฏู…ู†ุงู‡ ููŠ ู…ู„ู ุงู„ุซุงู„ุซ.cc ู…ุซุงู„. ูŠุทู„ุน
ู‡ุฐู‡ ุงู„ู‚ุงุฆู…ุฉ ุณุชูƒูˆู† ู…ููŠุฏุฉ.

ุงู„ุชูƒูˆูŠู† ู…ุณุงุฑุงุช
ุญุณู†ุงุŒ I ูˆุฌุฏุช a ุชุชุจุน ู…ุตุฏุฑุŒ ูƒูŠู do I ุงู„ุดูƒู„ ุฎุงุฑุฌ ู‡ูŠู‡ ุงู„ุชูƒูˆูŠู† ู…ุณุงุฑ ุฅู„ู‰ ุชุณุชุฎุฏู… ู…ุชู‰ I ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ ุฅู„ู‰
ุฐู„ูƒุŸ

ุฅุฐุง ูƒู†ุช ุชุนุฑู ุงู„ูƒุงุฆู† ุงู„ุฐูŠ ุชู‡ุชู… ุจู‡ุŒ ูุงู†ุชู‚ู„ ุฅู„ู‰ ู‚ุณู… "ุงู„ูˆุตู ุงู„ุชูุตูŠู„ูŠ" ู„ู€
ุณูˆู ูŠุณุฑุฏ ุงู„ูุตู„ ุฌู…ูŠุน ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ุงู„ู…ุชุงุญุฉ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุจุฏุกู‹ุง ู…ู† ู‚ุงุฆู…ุฉ "ุงู„ูƒู„".
TraceSourcesุŒ" ุงู†ู‚ุฑ ููˆู‚ ns3 :: MobilityModel ุงู„ุฑุงุจุท ุงู„ุฐูŠ ุณูˆู ูŠุฃุฎุฐูƒ ุฅู„ู‰
ูˆุซุงุฆู‚ MobilityModel ูุตู„. ูŠูˆุฌุฏ ููŠ ุฃุนู„ู‰ ุงู„ุตูุญุฉ ุชู‚ุฑูŠุจู‹ุง ุณุทุฑ ูˆุงุญุฏ
ูˆุตู ู…ุฎุชุตุฑ ู„ู„ูุตู„ุŒ ูŠู†ุชู‡ูŠ ุจุงู„ุฑุงุจุท "ุงู„ู…ุฒูŠุฏ...". ุงู†ู‚ุฑ ุนู„ู‰ ู‡ุฐุง ุงู„ุฑุงุจุท ู„ู„ุชุฎุทูŠ
ู…ู„ุฎุต ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ูˆุงู†ุชู‚ู„ ุฅู„ู‰ "ุงู„ูˆุตู ุงู„ุชูุตูŠู„ูŠ" ู„ู„ูุฆุฉ. ุนู†ุฏ ู†ู‡ุงูŠุฉ ุงู„
ุณูŠูƒูˆู† ุงู„ูˆุตู (ุญุชู‰) ุซู„ุงุซ ู‚ูˆุงุฆู…:

ยท ุงู„ุชูƒูˆูŠู† ู…ุณุงุฑุงุช: ู‚ุงุฆู…ุฉ ู…ุณุงุฑุงุช ุงู„ุชูƒูˆูŠู† ุงู„ู†ู…ูˆุฐุฌูŠุฉ ู„ู‡ุฐู‡ ุงู„ูุฆุฉ.

ยท ุงู„ุณู…ุงุช: ู‚ุงุฆู…ุฉ ุจุฌู…ูŠุน ุงู„ุณู…ุงุช ุงู„ุชูŠ ุชูˆูุฑู‡ุง ู‡ุฐู‡ ุงู„ูุฆุฉ.

ยท ุชุชุจุน ุงู„ู…ุตุงุฏุฑ: ู‚ุงุฆู…ุฉ ุจุฌู…ูŠุน TraceSources ุงู„ู…ุชุงุญุฉ ู…ู† ู‡ุฐุง ุงู„ูุตู„.

ุฃูˆู„ุงู‹ ุณู†ู†ุงู‚ุด ู…ุณุงุฑุงุช ุงู„ุชูƒูˆูŠู†.

ู„ู†ูุชุฑุถ ุฃู†ูƒ ุนุซุฑุช ู„ู„ุชูˆ ุนู„ู‰ ู…ุตุฏุฑ ุงู„ุชุชุจุน "CourseChange" ููŠ ู…ู„ู "All
TraceSources" ูˆุชุฑูŠุฏ ู…ุนุฑูุฉ ูƒูŠููŠุฉ ุงู„ุงุชุตุงู„ ุจู‡ุง. ุฃู†ุช ุชุนู„ู… ุฃู†ูƒ ูƒุฐู„ูƒ
ุจุงุณุชุฎุฏุงู… (ู…ุฑุฉ ุฃุฎุฑู‰ุŒ ู…ู† ุงู„ุซุงู„ุซ.cc ู…ุซุงู„) ุฃ ns3::RandomWalk2dMobilityModel. ุฐู„ูƒ ุฅู…ุง
ุงู†ู‚ุฑ ููˆู‚ ุงุณู… ุงู„ูุฆุฉ ููŠ ู‚ุงุฆู…ุฉ "All TraceSources"ุŒ ุฃูˆ ุงุจุญุซ ุนู†
ns3::RandomWalk2dMobilityModel ููŠ "ู‚ุงุฆู…ุฉ ุงู„ูุฆุงุช". ูˆููŠ ูƒู„ุชุง ุงู„ุญุงู„ุชูŠู† ูŠุฌุจ ุฃู† ุชุจุญุซ ุงู„ุขู†
ููŠ ุตูุญุฉ "ns3::RandomWalk2dMobilityModel Class Reference".

ุฅุฐุง ู‚ู…ุช ุงู„ุขู† ุจุงู„ุชู…ุฑูŠุฑ ู„ุฃุณูู„ ุฅู„ู‰ ู‚ุณู… "ุงู„ูˆุตู ุงู„ุชูุตูŠู„ูŠ"ุŒ ุจุนุฏ ู‚ุงุฆู…ุฉ ุงู„ู…ู„ุฎุตุงุช
ุฃุณุงู„ูŠุจ ูˆุณู…ุงุช ุงู„ูุตู„ ุงู„ุฏุฑุงุณูŠ (ุฃูˆ ุงู†ู‚ุฑ ูู‚ุท ุนู„ู‰ ุงู„ุฑุงุจุท "ุงู„ู…ุฒูŠุฏ..." ููŠ ู†ู‡ุงูŠุฉ ุงู„ูุตู„ ุงู„ุฏุฑุงุณูŠ
ูˆุตู ู…ุฎุชุตุฑ ููŠ ุฃุนู„ู‰ ุงู„ุตูุญุฉ) ุณุชุดุงู‡ุฏ ุงู„ูˆุซุงุฆู‚ ุงู„ุดุงู…ู„ุฉ ู„ู„ู…ู„ู
ูุตู„. ู…ุน ุงู„ุงุณุชู…ุฑุงุฑ ููŠ ุงู„ุชู…ุฑูŠุฑ ู„ุฃุณูู„ุŒ ุงุจุญุซ ุนู† ู‚ุงุฆู…ุฉ "ู…ุณุงุฑุงุช ุงู„ุชูƒูˆูŠู†":
ุงู„ุชูƒูˆูŠู† ู…ุณุงุฑุงุช

ns3::RandomWalk2dMobilityModel ูŠู…ูƒู† ุงู„ูˆุตูˆู„ ุฅู„ูŠู‡ ู…ู† ุฎู„ุงู„ ุงู„ู…ุณุงุฑุงุช ุงู„ุชุงู„ูŠุฉ ู…ุน
ุงู„ุชูƒูˆูŠู† :: ู…ุฌู…ูˆุนุฉ ุงู„ุชูƒูˆูŠู†::ุงุชุตุงู„:

ยท "/NodeList/[i]/$ns3::MobilityModel/$ns3::RandomWalk2dMobilityModel"

ุชุฎุจุฑูƒ ุงู„ูˆุซุงุฆู‚ ุจูƒูŠููŠุฉ ุงู„ูˆุตูˆู„ ุฅู„ู‰ RandomWalk2dMobilityModel ู‡ุฏู. ูŠู‚ุงุฑู†
ุงู„ุณู„ุณู„ุฉ ุฃุนู„ุงู‡ ู…ุน ุงู„ุณู„ุณู„ุฉ ุงู„ุชูŠ ุงุณุชุฎุฏู…ู†ุงู‡ุง ุจุงู„ูุนู„ ููŠ ุฑู…ุฒ ุงู„ู…ุซุงู„:

"/NodeList/7/$ns3::MobilityModel"

ุงู„ูุฑู‚ ูŠุฑุฌุน ุฅู„ู‰ ุญู‚ูŠู‚ุฉ ุฃู† ุงุซู†ูŠู† GETOBJECT ูŠุชู… ุชุถู…ูŠู† ุงู„ู…ูƒุงู„ู…ุงุช ููŠ ุงู„ุณู„ุณู„ุฉ ุงู„ู…ูˆุฌูˆุฏุฉ
ููŠ ุงู„ูˆุซุงุฆู‚. ุงู„ุฃูˆู„ุŒ ู„ $ns3::MobilityModel ุณูˆู ุงู„ุงุณุชุนู„ุงู… ุนู† ุงู„ุชุฌู…ูŠุน ู„
ุงู„ุทุจู‚ุฉ ุงู„ุฃุณุงุณูŠุฉ. ูˆุงู„ุซุงู†ูŠ ุถู…ู†ุง GETOBJECT ูŠุฏุนูˆ ุฅู„ู‰ $ns3::RandomWalk2dMobilityModel,
ูŠุชู… ุงุณุชุฎุฏุงู…ู‡ ู„ุฅู„ู‚ุงุก ุงู„ูุฆุฉ ุงู„ุฃุณุงุณูŠุฉ ุนู„ู‰ ูุฆุฉ ุงู„ุชู†ููŠุฐ ุงู„ู…ู„ู…ูˆุณุฉ. ูˆุซุงุฆู‚
ูŠุธู‡ุฑ ู„ูƒ ูƒู„ุง ู…ู† ู‡ุฐู‡ ุงู„ุนู…ู„ูŠุงุช. ุงุชุถุญ ุฃู† ู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ูุนู„ูŠ ุฃู†ุช
ุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ุจุญุซ ุนู†ู‡ ููŠ ุงู„ูุฆุฉ ุงู„ุฃุณุงุณูŠุฉ.

ุงู†ุธุฑ ุฅู„ู‰ ุงู„ุฃุณูู„ ููŠ ู‚ุณู… "ุงู„ูˆุตู ุงู„ุชูุตูŠู„ูŠ" ู„ู„ุญุตูˆู„ ุนู„ู‰ ู‚ุงุฆู…ุฉ ู…ุตุงุฏุฑ ุงู„ุชุชุจุน.
ุณูˆู ุชุฌุฏ
ู„ู… ูŠุชู… ุชุนุฑูŠู TraceSources ู„ู‡ุฐุง ุงู„ู†ูˆุน.

ุชุชุจุน ุงู„ู…ุตุงุฏุฑ ุชุนุฑูŠู in ุฃุตู„ ูุฆุฉ ``ns3::MobilityModel``

ยท ุชุบูŠูŠุฑ ุงู„ู…ุณุงุฑ: ุชู… ุชุบูŠูŠุฑ ู‚ูŠู…ุฉ ุงู„ู…ูˆุถุน ูˆ/ุฃูˆ ู…ุชุฌู‡ ุงู„ุณุฑุนุฉ.

ุชูˆู‚ูŠุน ุฑุฏ ุงู„ุงุชุตุงู„: ns3::MobilityModel::CourseChangeCallback

ู‡ุฐุง ู‡ูˆ ุจุงู„ุถุจุท ู…ุง ุชุญุชุงุฌ ุฅู„ู‰ ู…ุนุฑูุชู‡. ุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ู…ุตุฏุฑ ุงู„ุชุชุจุน ู„ู„ุงู‡ุชู…ุงู… ููŠ
ns3 :: MobilityModel (ุงู„ุฐูŠ ูƒู†ุช ุชุนุฑูู‡ ุนู„ู‰ ุฃูŠ ุญุงู„). ุงู„ุดูŠุก ุงู„ู…ุซูŠุฑ ู„ู„ุงู‡ุชู…ุงู… ู‡ูˆ ู‡ุฐุง ุงู„ุฌุฒุก ู…ู† ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช
ุชุฎุจุฑูƒ ุงู„ูˆุซุงุฆู‚ ุฃู†ูƒ ู„ุณุช ุจุญุงุฌุฉ ุฅู„ู‰ ู‡ุฐุง ุงู„ุชู…ุซูŠู„ ุงู„ุฅุถุงููŠ ููŠ ู…ุณุงุฑ ุงู„ุชูƒูˆูŠู† ุฃุนู„ุงู‡
ุงู†ุชู‚ู„ ุฅู„ู‰ ุงู„ูุฆุฉ ุงู„ู…ุญุฏุฏุฉุŒ ู†ุธุฑู‹ุง ู„ุฃู† ู…ุตุฏุฑ ุงู„ุชุชุจุน ู…ูˆุฌูˆุฏ ุจุงู„ูุนู„ ููŠ ุงู„ูุฆุฉ ุงู„ุฃุณุงุณูŠุฉ.
ูˆู„ุฐู„ูƒ ุงู„ุฅุถุงููŠุฉ GETOBJECT ุบูŠุฑ ู…ุทู„ูˆุจ ูˆูŠู…ูƒู†ูƒ ุจุจุณุงุทุฉ ุงุณุชุฎุฏุงู… ุงู„ู…ุณุงุฑ:

"/NodeList/[i]/$ns3::MobilityModel"

ูˆุงู„ุฐูŠ ูŠุชุทุงุจู‚ ุชู…ุงู…ู‹ุง ู…ุน ู…ุณุงุฑ ุงู„ู…ุซุงู„:

"/NodeList/7/$ns3::MobilityModel"

ูˆูƒุฌุงู†ุจุŒ ู‡ู†ุงูƒ ุทุฑูŠู‚ุฉ ุฃุฎุฑู‰ ู„ู„ุนุซูˆุฑ ุนู„ู‰ ู…ุณุงุฑ ุงู„ุชูƒูˆูŠู† ูˆู‡ูŠ ุงู„ุจู‚ุฑู‰ ุญูˆู„ ููŠ NS-3 ู…ุตุฏุฑ ุจุฑู†ุงู…ุฌ
ู„ุดุฎุต ู‚ุฏ ุงูƒุชุดู ุฐู„ูƒ ุจุงู„ูุนู„. ูŠุฌุจ ุฃู† ุชุญุงูˆู„ ุฏุงุฆู…ู‹ุง ุชู‚ู„ูŠุฏ ุดุฎุต ุขุฎุฑ
ุฑู…ุฒ ุงู„ุนู…ู„ ู‚ุจู„ ุงู„ุจุฏุก ููŠ ูƒุชุงุจุฉ ุงู„ูƒูˆุฏ ุงู„ุฎุงุต ุจูƒ. ุฌุฑุจ ุดูŠุฆู‹ุง ู…ุซู„:

$ ุงู„ุนุซูˆุฑ ุนู„ู‰ . -ุงู„ุงุณู… '*.cc' | xargs grep CourseChange | ุงุชุตุงู„ ุฌุฑูŠุจ

ูˆู‚ุฏ ุชุฌุฏ ุฅุฌุงุจุชูƒ ู…ุน ุฑู…ุฒ ุงู„ุนู…ู„. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ
src/mobility/examples/main-random-topology.cc ู„ุฏูŠู‡ ุดูŠุก ููŠ ุงู†ุชุธุงุฑูƒ ู„ุงุณุชุฎุฏุงู…ู‡:

ุงู„ุชูƒูˆูŠู†::ุงู„ุงุชุตุงู„ ("/NodeList/*/$ns3::MobilityModel/CourseChange"ุŒ
MakeCallback (&CourseChange));

ุณู†ุนูˆุฏ ุฅู„ู‰ ู‡ุฐุง ุงู„ู…ุซุงู„ ุจุนุฏ ู‚ู„ูŠู„.

ุฃู† ู†ุชูˆุงุตู„ ู…ุนูƒ ุงู„ุชูˆู‚ูŠุนุงุช
ุญุณู†ุงุŒ I ูˆุฌุฏุช a ุชุชุจุน ู…ุตุฏุฑ ู‡ูŠู‡ ุงู„ุชูƒูˆูŠู† ู…ุณุงุฑุŒ ูƒูŠู do I ุงู„ุดูƒู„ ุฎุงุฑุฌ ู…ุงุฐุง ู‡ูŠู‡ ุนุงุฆุฏ ุฃุนู„ู‰ ู†ูˆุน
ุฑุณู…ูŠ ุงู„ุญุฌุฌ of my ุฑุฏ ูˆุธูŠูุฉ ุญุงุฌุฉ ุฅู„ู‰ ูŠูƒูˆู†ุŸ

ุฃุณู‡ู„ ุทุฑูŠู‚ุฉ ู‡ูŠ ูุญุต ุชูˆู‚ูŠุน ุฑุฏ ุงู„ุงุชุตุงู„ typedef ูˆุŒ ูˆุงู„ุฐูŠ ูˆุฑุฏ ููŠ
"ุชูˆู‚ูŠุน ุฑุฏ ุงู„ุงุชุตุงู„" ู„ู…ุตุฏุฑ ุงู„ุชุชุจุน ููŠ "ุงู„ูˆุตู ุงู„ุชูุตูŠู„ูŠ" ู„ู„ูุฆุฉุŒ ู…ุซู„
ู‡ูˆ ู…ุจูŠู† ุฃุนู„ุงู‡.

ุชูƒุฑุงุฑ ุฅุฏุฎุงู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน "CourseChange" ู…ู† ns3::RandomWalk2dMobilityModel we
ูŠู…ู„ูƒ:

ยท ุชุบูŠูŠุฑ ุงู„ู…ุณุงุฑ: ุชู… ุชุบูŠูŠุฑ ู‚ูŠู…ุฉ ุงู„ู…ูˆุถุน ูˆ/ุฃูˆ ู…ุชุฌู‡ ุงู„ุณุฑุนุฉ.

ุชูˆู‚ูŠุน ุฑุฏ ุงู„ุงุชุตุงู„: ns3::MobilityModel::CourseChangeCallback

ูŠุชู… ุฅุนุทุงุก ุชูˆู‚ูŠุน ุฑุฏ ุงู„ุงุชุตุงู„ ูƒุฑุงุจุท ุฅู„ู‰ ุงู„ุฌู‡ุฉ ุฐุงุช ุงู„ุตู„ุฉ typedef ูˆุญูŠุซ ู†ุฌุฏ
typedef ูˆ ุจุงุทู„ (* ุฏูˆุฑุฉ ุชุบูŠูŠุฑ ุฑุฏ ุงู„ุงุชุตุงู„)(const ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ุณู„ุณู„ุฉ ุณูŠุงู‚ ุงู„ูƒู„ุงู…ุŒ ุจูŠ ุชูŠ ุขุฑ
ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„> * ู†ู…ูˆุฐุฌ)ุ›

ุชุชุจุน ุงู„ุงุชุตุงู„ ุงู„ุชูˆู‚ูŠุน ุนู„ู‰ ุฅุดุนุงุฑุงุช ุชุบูŠูŠุฑ ุงู„ุฏูˆุฑุฉ ุงู„ุชุฏุฑูŠุจูŠุฉ.

ุฅุฐุง ูƒุงู† ุฑุฏ ุงู„ุงุชุตุงู„ ู…ุชุตู„ุงู‹ ุจุงุณุชุฎุฏุงู… ConnectWithoutContext ุญุฐู ุงู„ ุณูŠุงู‚ ุงู„ูƒู„ุงู… ุญุฌุฉ ู…ู†
ุงู„ุชูˆู‚ูŠุน.

ุงู„ู…ุนู„ู…ุงุช:
[ููŠ] ุงู„ุณูŠุงู‚ ุณู„ุณู„ุฉ ุงู„ุณูŠุงู‚ ุงู„ุชูŠ ูŠูˆูุฑู‡ุง ู…ุตุฏุฑ ุงู„ุชุชุจุน.
[ููŠ] ู†ู…ูˆุฐุฌ MobilityModel ุงู„ุฐูŠ ูŠุบูŠุฑ ุงู„ู…ุณุงุฑ.

ูƒู…ุง ู‡ูˆ ู…ุฐูƒูˆุฑ ุฃุนู„ุงู‡ุŒ ู„ุฑุคูŠุฉ ู‡ุฐุง ู‚ูŠุฏ ุงู„ุงุณุชุฎุฏุงู… ุงู„ุจู‚ุฑู‰ ุญูˆู„ ููŠ NS-3 ู‚ุงุนุฏุฉ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„. ุงู„ู…ุซุงู„
ุฃุนู„ุงู‡ุŒ ู…ู† src/mobility/examples/main-random-topology.ccุŒ ูŠุฑุจุท "CourseChange"
ู…ุตุฏุฑ ุงู„ุชุชุจุน ุฅู„ู‰ ุชุบูŠูŠุฑ ุงู„ู…ุณุงุฑ ุงู„ูˆุธูŠูุฉ ููŠ ู†ูุณ ุงู„ู…ู„ู:

ุงู„ูุฑุงุบ ุซุงุจุช
CourseChange (std::string contextุŒ Ptr ู†ู…ูˆุฐุฌ)
{

}

ู„ุงุญุธ ุฃู† ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ:

ยท ูŠุฃุฎุฐ ูˆุณูŠุทุฉ ุณู„ุณู„ุฉ "ุงู„ุณูŠุงู‚"ุŒ ูˆุงู„ุชูŠ ุณู†ุตูู‡ุง ููŠ ุฏู‚ูŠู‚ุฉ ูˆุงุญุฏุฉ. (ุฅุฐุง ูƒุงู† ุฑุฏ ุงู„ุงุชุตุงู„
ูŠุชู… ุชูˆุตูŠู„ู‡ ุจุงุณุชุฎุฏุงู… ConnectWithoutContext ูˆุธูŠูุฉ ุณูŠุงู‚ ุงู„ูƒู„ุงู… ุณุชูƒูˆู† ุงู„ุญุฌุฉ
ุชู… ุญุฐูู‡.)

ยท ู„ุฏูŠู‡ MobilityModel ูŠุชู… ุชูˆููŠุฑู‡ุง ูƒูˆุณูŠุทุฉ ุฃุฎูŠุฑุฉ (ุฃูˆ ุงู„ูˆุณูŠุทุฉ ุงู„ูˆุญูŠุฏุฉ if
ConnectWithoutContext ูŠุณุชุฎุฏู…).

ยท ุนุงุฆุฏุงุช ุจุงุทู„.

ุฅุฐุงุŒ ุจุงู„ุตุฏูุฉุŒ ู„ู… ูŠุชู… ุชูˆุซูŠู‚ ุชูˆู‚ูŠุน ุฑุฏ ุงู„ุงุชุตุงู„ุŒ ูˆู„ุง ุชูˆุฌุฏ ุฃู…ุซู„ุฉ ู„ุฐู„ูƒ
ุงู„ุนู…ู„ ู…ู† ุฎู„ุงู„ ุชุญุฏูŠุฏ ุชูˆู‚ูŠุน ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„ ุงู„ุตุญูŠุญ ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ุฃู…ุฑู‹ุง ุตุนุจู‹ุง
ู…ุนุฑูุฉ ููŠ ุงู„ูˆุงู‚ุน ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ู…ุตุฏุฑ.

ู‚ุจู„ ุงู„ุดุฑูˆุน ููŠ ุดุฑุญ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉุŒ ุณุฃูƒูˆู† ู„ุทูŠูู‹ุง ูˆุฃุฎุจุฑูƒ ุจุทุฑูŠู‚ุฉ ุจุณูŠุทุฉ
ู„ู…ุนุฑูุฉ ุฐู„ูƒ: ุณุชูƒูˆู† ู‚ูŠู…ุฉ ุงู„ุฅุฑุฌุงุน ู„ุฑุฏ ุงู„ุงุชุตุงู„ ุงู„ุฎุงุต ุจูƒ ุฏุงุฆู…ู‹ุง ุจุงุทู„. ุงู„ุฑุณู…ูŠุฉ
ู‚ุงุฆู…ุฉ ุงู„ู…ุนู„ู…ุงุช ู„ ุชุชุจุน ุงู„ุงุชุตุงู„ ูŠู…ูƒู† ุงู„ุนุซูˆุฑ ุนู„ูŠู‡ุง ู…ู† ู‚ุงุฆู…ุฉ ู…ุนู„ู…ุงุช ุงู„ู‚ุงู„ุจ ููŠ ู…ู„ู
ุชุตุฑูŠุญ. ุชุฐูƒุฑ ุฃู†ู‡ ููŠ ู…ุซุงู„ู†ุง ุงู„ุญุงู„ูŠุŒ ู‡ุฐุง ู…ูˆุฌูˆุฏ ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„.hุญูŠุซ ู†ุญู†
ู„ู‚ุฏ ูˆุฌุฏุช ุณุงุจู‚ุง:

ุชุชุจุน ุงู„ุงุชุตุงู„ > m_courseChangeTrace;

ุชูˆุฌุฏ ู…ุฑุงุณู„ุงุช ูุฑุฏูŠุฉ ุจูŠู† ู‚ุงุฆู…ุฉ ู…ุนู„ู…ุงุช ุงู„ู‚ุงู„ุจ ููŠ ู…ู„ู
ุงู„ุฅุนู„ุงู† ูˆุงู„ูˆุณุงุฆุท ุงู„ุฑุณู…ูŠุฉ ู„ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„. ู‡ู†ุงุŒ ู‡ู†ุงูƒ ูˆุงุญุฏ
ู…ุนู„ู…ุฉ ุงู„ู‚ุงู„ุจุŒ ูˆู‡ูŠ ุจูŠ ุชูŠ ุขุฑ ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„>. ู‡ุฐุง ูŠุฎุจุฑูƒ ุฃู†ูƒ ุจุญุงุฌุฉ ุฅู„ู‰
ุงู„ุฏุงู„ุฉ ุงู„ุชูŠ ุชุฑุฌุน ุงู„ูุฑุงุบ ูˆุชุฃุฎุฐ ุจูŠ ุชูŠ ุขุฑ ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„>. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„:

ุจุงุทู„
ุชุบูŠูŠุฑ ุงู„ุฏูˆุฑุฉ (Ptr ู†ู…ูˆุฐุฌ)
{

}

ู‡ุฐุง ูƒู„ ู…ุง ุชุญุชุงุฌู‡ ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุฐู„ูƒ ุงู„ุชูƒูˆูŠู† :: ConnectWithoutContext. ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุงู„ุณูŠุงู‚ุŒ
ุชุญุชุงุฌ ุฅู„ู‰ ุงู„ุชูƒูˆูŠู†::ุงุชุตุงู„ ุซู… ุงุณุชุฎุฏู… ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„ ุงู„ุชูŠ ุชุฃุฎุฐ ุณูŠุงู‚ ุณู„ุณู„ุฉ
ูˆุณูŠุทุงุช ุงู„ู‚ุงู„ุจ:

ุจุงุทู„
CourseChange (const std::string contextุŒ Ptr ู†ู…ูˆุฐุฌ)
{

}

ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุงู„ุชุฃูƒุฏ ู…ู† ุฃู† ุงู„ุฎุงุต ุจูƒ ุฏูˆุฑุฉ ุชุบูŠูŠุฑ ุฑุฏ ุงู„ุงุชุตุงู„ ุงู„ูˆุธูŠูุฉ ู…ุฑุฆูŠุฉ ูู‚ุท ููŠ ุฌู‡ุงุฒูƒ
ุงู„ู…ู„ู ุงู„ู…ุญู„ูŠุŒ ูŠู…ูƒู†ูƒ ุฅุถุงูุฉ ุงู„ูƒู„ู…ุฉ ุงู„ุฃุณุงุณูŠุฉ ุณุงูƒู† ูˆุชูˆุตู„ ุฅู„ู‰:

ุงู„ูุฑุงุบ ุซุงุจุช
CourseChange (const std::string path, Ptr ู†ู…ูˆุฐุฌ)
{

}

ูˆู‡ูˆ ุจุงู„ุถุจุท ู…ุง ุงุณุชุฎุฏู…ู†ุงู‡ ููŠ ุงู„ุซุงู„ุซ.cc ู…ุซุงู„.

ุชุทุจูŠู‚
ู‡ุฐุง ุงู„ู‚ุณู… ุงุฎุชูŠุงุฑูŠ ุชู…ุงู…ู‹ุง. ุณุชูƒูˆู† ุงู„ุฑุญู„ุฉ ูˆุนุฑุฉู‹ุŒ ุฎุงุตุฉ ุจุงู„ู†ุณุจุฉ ู„ู‡ุคู„ุงุก
ุบูŠุฑ ู…ุทู„ุน ุนู„ู‰ ุชูุงุตูŠู„ ุงู„ู‚ูˆุงู„ุจ. ูˆู…ุน ุฐู„ูƒุŒ ุฅุฐุง ุชุฌุงูˆุฒุช ู‡ุฐุงุŒ ุณูŠูƒูˆู† ู„ุฏูŠูƒ
ู…ู‚ุจุถ ุฌูŠุฏ ุฌุฏู‹ุง ุนู„ู‰ ุงู„ูƒุซูŠุฑ ู…ู† NS-3 ุงู„ุชุนุงุจูŠุฑ ู…ู†ุฎูุถุฉ ุงู„ู…ุณุชูˆู‰.

ู„ุฐุงุŒ ู…ุฑุฉ ุฃุฎุฑู‰ุŒ ุฏุนูˆู†ุง ู†ุชุนุฑู ุนู„ู‰ ุชูˆู‚ูŠุน ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„ ุงู„ู…ุทู„ูˆุจ ู„ู€
ู…ุตุฏุฑ ุงู„ุชุชุจุน "CourseChange". ุณูŠูƒูˆู† ู‡ุฐุง ู…ุคู„ู…ู‹ุงุŒ ู„ูƒู† ู…ุง ุนู„ูŠูƒ ุณูˆู‰ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ
ู…ุฑุฉ ูˆุงุญุฏุฉ. ุจุนุฏ ุงู„ุงู†ุชู‡ุงุก ู…ู† ู‡ุฐุงุŒ ุณูˆู ุชูƒูˆู† ู‚ุงุฏุฑู‹ุง ุนู„ู‰ ู…ุฌุฑุฏ ุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ ุชุชุจุน ุงู„ุงุชุตุงู„
ูู‡ู…ุชู‡.

ุฃูˆู„ ุดูŠุก ู†ุญุชุงุฌ ุฅู„ู‰ ุงู„ู†ุธุฑ ุฅู„ูŠู‡ ู‡ูˆ ุงู„ุฅุนู„ุงู† ุนู† ู…ุตุฏุฑ ุงู„ุชุชุจุน. ุฃุฐูƒุฑ ุฐู„ูƒ
ููŠ ู‡ุฐุง ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„.hุญูŠุซ ูˆุฌุฏู†ุง ุณุงุจู‚ุงู‹:

ุชุชุจุน ุงู„ุงุชุตุงู„ > m_courseChangeTrace;

ู‡ุฐุง ุงู„ุฅุนู„ุงู† ู‡ูˆ ู„ู‚ุงู„ุจ. ู…ุนู„ู…ุฉ ุงู„ู‚ุงู„ุจ ู…ูˆุฌูˆุฏุฉ ุฏุงุฎู„ ุงู„ุฃู‚ูˆุงุณ ุงู„ุฒุงูˆูŠุฉุŒ
ู„ุฐู„ูƒ ู†ุญู† ู…ู‡ุชู…ูˆู† ุญู‚ุง ุจู…ุนุฑูุฉ ู…ุง ู‡ูˆ ุฐู„ูƒ ุชุชุจุน ุงู„ุงุชุตุงู„<> ูŠูƒูˆู†. ุงุฐุง ูƒู†ุช ุชู…ุชู„ูƒ
ู„ูŠุณ ู„ุฏูŠ ุฃุฏู†ู‰ ููƒุฑุฉ ุนู† ู…ูƒุงู† ุงู„ุนุซูˆุฑ ุนู„ู‰ ู‡ุฐุงุŒ ุงู„ุจู‚ุฑู‰ ู‡ูˆ ุตุฏูŠู‚ูƒ

ู…ู† ุงู„ู…ุญุชู…ู„ ุฃู† ู†ูƒูˆู† ู…ู‡ุชู…ูŠู† ุจู†ูˆุน ู…ู† ุงู„ุฅุนู„ุงู† ููŠ NS-3 ุงู„ู…ุตุฏุฑุŒ ุฅุฐู†
ุฃูˆู„ ุชุบูŠูŠุฑ ููŠ SRC ุงู„ุฏู„ูŠู„. ุฅุฐู†ุŒ ู†ุญู† ู†ุนู„ู… ุฃู† ู‡ุฐุง ุงู„ุฅุนู„ุงู† ุณูŠุชุนูŠู† ุนู„ูŠู‡ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ
ูŠูƒูˆู† ููŠ ู†ูˆุน ู…ู† ู…ู„ู ุงู„ุฑุฃุณุŒ ู„ุฐู„ูƒ ูู‚ุท ุงู„ุจู‚ุฑู‰ ู„ุฐู„ูƒ ุจุงุณุชุฎุฏุงู…:

$ ุงู„ุนุซูˆุฑ ุนู„ู‰ . -ุงู„ุงุณู… '*.h' | xargs grep TracedCallback

ุณุชุฑู‰ 303 ุฎุทูˆุทู‹ุง ุชุทูŠุฑ (ู„ู‚ุฏ ู‚ู…ุช ุจุชูˆุตูŠู„ ู‡ุฐุง ุนุจุฑ ุงู„ุฃู†ุงุจูŠุจ wc ู„ู†ุฑู‰ ู…ุฏู‰ ุณูˆุก ุงู„ุฃู…ุฑ). ุจุงู„ุฑุบู… ู…ู†
ู‚ุฏ ูŠุจุฏูˆ ู‡ุฐุง ูƒุซูŠุฑู‹ุงุŒ ู„ูƒู†ู‡ ู„ูŠุณ ูƒุซูŠุฑู‹ุง ุญู‚ู‹ุง. ูู‚ุท ู‚ู… ุจุชูˆุตูŠู„ ุงู„ุฅุฎุฑุงุฌ ู…ู† ุฎู„ุงู„ ุงู„ุฃูƒุซุฑ ู…ู† ุฐู„ูƒ
ุงุจุฏุฃ ุงู„ู…ุณุญ ู…ู† ุฎู„ุงู„ู‡. ููŠ ุงู„ุตูุญุฉ ุงู„ุฃูˆู„ู‰ุŒ ุณุชุฑู‰ ุจุนุถู‹ุง ู…ุฑูŠุจู‹ุง ู„ู„ุบุงูŠุฉ
ุฃุดูŠุงุก ุชุดุจู‡ ุงู„ู‚ุงู„ุจ.

TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::TracedCallback ()
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::ConnectWithoutContext (c ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::Connect (const CallbackB ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::DisconnectWithoutContext ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::Disconnect (const Callba ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (void) const ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1) const ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2 ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2 ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2 ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2 ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2 ...
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::operator() (T1 a1, T2 a2 ...

ูˆุชุจูŠู† ุฃู† ูƒู„ ู‡ุฐุง ูŠุฃุชูŠ ู…ู† ู…ู„ู ุงู„ุฑุฃุณ ุชุชุจุน ุฑุฏ ุงู„ุงุชุตุงู„. h ุงู„ุฐูŠ ูŠุจุฏูˆ
ูˆุงุนุฏุฉ ุฌุฏุง. ูŠู…ูƒู†ูƒ ุจุนุฏ ุฐู„ูƒ ุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„.h ูˆู†ุฑู‰ ุฃู† ู‡ู†ุงูƒ ุฎุท
ู…ู…ุง ูŠุคูƒุฏ ู‡ุฐุง ุงู„ุญุฏุณ:

#ุชุชุถู…ู† "ns3/traced-callback.h"

ุจุงู„ุทุจุนุŒ ูƒุงู† ุจุฅู…ูƒุงู†ูƒ ุฃู† ุชู†ุธุฑ ุฅู„ู‰ ู‡ุฐุง ู…ู† ุงู„ุงุชุฌุงู‡ ุงู„ุขุฎุฑ ูˆุชุจุฏุฃ ุจุงู„ู†ุธุฑ ุฅู„ูŠู‡
ูŠุชุถู…ู† ููŠ ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„.h ูˆู…ู„ุงุญุธุฉ ุชุถู…ูŠู† ุชุชุจุน ุฑุฏ ุงู„ุงุชุตุงู„. h
ุงุณุชู†ุชุงุฌ ุฃู† ู‡ุฐุง ูŠุฌุจ ุฃู† ูŠูƒูˆู† ุงู„ู…ู„ู ุงู„ุฐูŠ ุชุฑูŠุฏู‡.

ูˆููŠ ูƒู„ุชุง ุงู„ุญุงู„ุชูŠู†ุŒ ูุฅู† ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ ู‡ูŠ ุฅู„ู‚ุงุก ู†ุธุฑุฉ src/core/model/traced-callback.h in
ุงู„ู…ุญุฑุฑ ุงู„ู…ูุถู„ ู„ุฏูŠูƒ ู„ู…ุนุฑูุฉ ู…ุง ูŠุญุฏุซ.

ุณุชุฑู‰ ุชุนู„ูŠู‚ู‹ุง ููŠ ุฃุนู„ู‰ ุงู„ู…ู„ู ูˆุงู„ุฐูŠ ู…ู† ุงู„ู…ูุชุฑุถ ุฃู† ูŠูƒูˆู† ู…ุฑูŠุญู‹ุง:
ูŠุญุชูˆูŠ ns3::TracedCallback ุนู„ู‰ ู†ูุณ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช ุชู‚ุฑูŠุจู‹ุง ู…ุซู„ ns3::Callback ุงู„ุนุงุฏูŠ ูˆู„ูƒู†
ุจุฏู„ุงู‹ ู…ู† ุฅุนุงุฏุฉ ุชูˆุฌูŠู‡ ุงู„ู…ูƒุงู„ู…ุงุช ุฅู„ู‰ ูˆุธูŠูุฉ ูˆุงุญุฏุฉ (ูƒู…ุง ูŠูุนู„ ุนุงุฏุฉู‹ ns3::Callback)ุŒ
ูŠู‚ูˆู… ุจุฅุนุงุฏุฉ ุชูˆุฌูŠู‡ ุงู„ู…ูƒุงู„ู…ุงุช ุฅู„ู‰ ุณู„ุณู„ุฉ ู…ู† ns3::Callback.

ูŠุฌุจ ุฃู† ูŠุจุฏูˆ ู‡ุฐุง ู…ุฃู„ูˆูู‹ุง ุฌุฏู‹ุง ูˆูŠุชูŠุญ ู„ูƒ ู…ุนุฑูุฉ ุฃู†ูƒ ุนู„ู‰ ุงู„ุทุฑูŠู‚ ุงู„ุตุญูŠุญ.

ุณุชุฌุฏู‡ ุจุนุฏ ู‡ุฐุง ุงู„ุชุนู„ูŠู‚

ู†ู…ูˆุฐุฌ
ุงุณู… ุงู„ูƒุชุงุจุฉ T3 = ูุงุฑุบุŒ ุงุณู… ุงู„ูƒุชุงุจุฉ T4 = ูุงุฑุบุŒ
ุงุณู… ุงู„ูƒุชุงุจุฉ T5 = ูุงุฑุบุŒ ุงุณู… ุงู„ูƒุชุงุจุฉ T6 = ูุงุฑุบุŒ
ุงุณู… ุงู„ูƒุชุงุจุฉ T7 = ูุงุฑุบุŒ ุงุณู… ุงู„ูƒุชุงุจุฉ T8 = ูุงุฑุบ>
ูุฆุฉ TracedCallback
{


ูŠุฎุจุฑูƒ ู‡ุฐุง ุฃู† TracedCallback ุนุจุงุฑุฉ ุนู† ูุฆุฉ ู†ู…ูˆุฐุฌูŠุฉ. ู„ุฏูŠู‡ุง ุซู…ุงู†ูŠุฉ ู†ูˆุน ู…ู…ูƒู†
ุงู„ู…ุนู„ู…ุงุช ู…ุน ุงู„ู‚ูŠู… ุงู„ุงูุชุฑุงุถูŠุฉ. ุงุฑุฌุน ูˆู‚ุงุฑู† ู‡ุฐุง ู…ุน ุงู„ุชุตุฑูŠุญ ุงู„ุฐูŠ ุฃู†ุช ุนู„ูŠู‡
ู…ุญุงูˆู„ุง ุฃู† ุฃูู‡ู…:

ุชุชุจุน ุงู„ุงุชุตุงู„ > m_courseChangeTrace;

ุฅู†ู‘ ุฃูƒุชุจ ุงุณู… T1 ููŠ ุฅุนู„ุงู† ุงู„ูุฆุฉ ุงู„ู†ู…ูˆุฐุฌูŠุฉ ูŠุชูˆุงูู‚ ู…ุน ุจูŠ ุชูŠ ุขุฑ
ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„> ููŠ ุงู„ุฅุนู„ุงู† ุฃุนู„ุงู‡. ูŠุชู… ุชุฑูƒ ุฌู…ูŠุน ู…ุนู„ู…ุงุช ุงู„ู†ูˆุน ุงู„ุฃุฎุฑู‰ ูƒู…ุง ู‡ูŠ
ุงู„ุฅุนุฏุงุฏุงุช ุงู„ุงูุชุฑุงุถูŠุฉ. ุฅู† ุงู„ู†ุธุฑ ุฅู„ู‰ ุงู„ู…ูู†ุดุฆ ู„ุง ูŠุฎุจุฑูƒ ูƒุซูŠุฑู‹ุง ุญู‚ู‹ุง. ุงู„ู…ูƒุงู† ุงู„ูˆุญูŠุฏ ุงู„ุฐูŠ
ู„ู‚ุฏ ุฑุฃูŠุช ุงุชุตุงู„ุงู‹ ุชู… ุฅุฌุฑุงุคู‡ ุจูŠู† ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„ ุงู„ุฎุงุตุฉ ุจูƒ ูˆู†ุธุงู… ุงู„ุชุชุจุน
ููŠ ุงู„ ุงู„ุชูˆุงุตู„ ConnectWithoutContext ุงู„ู…ู‡ุงู…. ุฅุฐุง ู‚ู…ุช ุจุงู„ุชู…ุฑูŠุฑ ู„ุฃุณูู„ุŒ ูุณุชุฑู‰ ุฃ
ConnectWithoutContext ุงู„ุทุฑูŠู‚ุฉ ู‡ู†ุง :

ู†ู…ูˆุฐุฌ
ุงุณู… ุงู„ูƒุชุงุจุฉ T3ุŒ ุงุณู… ุงู„ูƒุชุงุจุฉ T4ุŒ
ุงุณู… ุงู„ูƒุชุงุจุฉ T5ุŒ ุงุณู… ุงู„ูƒุชุงุจุฉ T6ุŒ
ุงุณู… ุงู„ูƒุชุงุจุฉ T7ุŒ ุงุณู… ุงู„ูƒุชุงุจุฉ T8>
ุจุงุทู„
TracedCallback<T1,T2,T3,T4,T5,T6,T7,T8>::ConnectWithoutContext ...
{
Callback<void,T1,T2,T3,T4,T5,T6,T7,T8> cb;
cb.Assign (ุฑุฏ ุงู„ุงุชุตุงู„);
m_callbackList.push_back (cb);
}

ุฃู†ุช ุงู„ุขู† ููŠ ุจุทู† ุงู„ูˆุญุด. ุนู†ุฏู…ุง ูŠุชู… ุฅู†ุดุงุก ู…ุซูŠู„ ุงู„ู‚ุงู„ุจ ู„ู€
ุงู„ุฅุนู„ุงู† ุฃุนู„ุงู‡ุŒ ุณูˆู ูŠุญู„ ุงู„ู…ุชุฑุฌู… ู…ุญู„ T1 ู…ุน ุจูŠ ุชูŠ ุขุฑ ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„>.

ุจุงุทู„
ุชุชุจุน ุงู„ุงุชุตุงู„ ::ConnectWithoutContext ... cb
{
ุฃุชุตู„ ู…ุฑุฉ ุฃุฎุฑู‰ > ุณูŠ ุจูŠุ›
cb.Assign (ุฑุฏ ุงู„ุงุชุตุงู„);
m_callbackList.push_back (cb);
}

ูŠู…ูƒู†ูƒ ุงู„ุขู† ุฑุคูŠุฉ ุชู†ููŠุฐ ูƒู„ ู…ุง ุชุญุฏุซู†ุง ุนู†ู‡. ุงู„ุฑู…ุฒ
ูŠู†ุดุฆ ุฑุฏ ุงุชุตุงู„ ู…ู† ุงู„ู†ูˆุน ุงู„ุตุญูŠุญ ูˆูŠุนูŠู† ูˆุธูŠูุชูƒ ู„ู‡. ู‡ุฐุง ุงู„
ู…ุง ูŠุนุงุฏู„ ุงู„ุฑุงุจุทุฉ = MyFunction ู†ุงู‚ุดู†ุง ููŠ ุจุฏุงูŠุฉ ู‡ุฐุง ุงู„ู‚ุณู…. ุงู„ุฑู…ุฒ
ุซู… ูŠุถูŠู ุฑุฏ ุงู„ุงุชุตุงู„ ุฅู„ู‰ ู‚ุงุฆู…ุฉ ุฑุฏูˆุฏ ุงู„ุงุชุตุงู„ ู„ู‡ุฐุง ุงู„ู…ุตุฏุฑ. ุงู„ุดูŠุก ุงู„ูˆุญูŠุฏ ุงู„ู…ุชุจู‚ูŠ ู‡ูˆ
ู„ู†ู†ุธุฑ ุฅู„ู‰ ุชุนุฑูŠู ุฑุฏ ุงู„ุงุชุตุงู„. ุจุงุณุชุฎุฏุงู… ู†ูุณ ุงู„ุจู‚ุฑู‰ ุฎุฏุนุฉ ูƒู…ุง ุงุนุชุฏู†ุง ุฃู† ู†ุฌุฏ
ุชุชุจุน ุงู„ุงุชุตุงู„ุŒ ุณุชุชู…ูƒู† ู…ู† ุงู„ุนุซูˆุฑ ุนู„ู‰ ู‡ุฐุง ุงู„ู…ู„ู ./core/callback.h ู‡ูˆ ุงู„ุฐูŠ ู†ุญู†
ุจุญุงุฌุฉ ู„ู„ู†ุธุฑ ููŠ.

ุฅุฐุง ู†ุธุฑุช ุฅู„ู‰ ุฃุณูู„ ุงู„ู…ู„ูุŒ ุณุชุฑู‰ ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ุฃุดูŠุงุก ุงู„ุชูŠ ุฑุจู…ุง ุชูƒูˆู† ุบูŠุฑ ู…ูู‡ูˆู…ุฉ ุชู‚ุฑูŠุจู‹ุง
ุฑู…ุฒ ุงู„ู‚ุงู„ุจ. ุณุชุตู„ ููŠ ุงู„ู†ู‡ุงูŠุฉ ุฅู„ู‰ ุจุนุถ ูˆุซุงุฆู‚ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ุงู„ุฎุงุตุฉ ุจุฑุฏ ุงู„ุงุชุตุงู„
ูุฆุฉ ุงู„ู‚ุงู„ุจุŒ ุจุงู„ุฑุบู… ู…ู† ุฐู„ูƒ. ู„ุญุณู† ุงู„ุญุธุŒ ู‡ู†ุงูƒ ุจุนุถ ุงู„ู„ุบุฉ ุงู„ุฅู†ุฌู„ูŠุฒูŠุฉ:
ุฃู† ู†ุชูˆุงุตู„ ู…ุนูƒ ูุฆุฉ ุงู„ู‚ุงู„ุจ.

ูŠุทุจู‚ ู‚ุงู„ุจ ุงู„ูุตู„ ู‡ุฐุง ู†ู…ุท ุชุตู…ูŠู… Functor. ูŠุชู… ุงุณุชุฎุฏุงู…ู‡ ู„ู„ุฅุนู„ุงู† ุนู†
ู†ูˆุน ุฃ ุฃู† ู†ุชูˆุงุตู„ ู…ุนูƒ :

ยท ุชู…ุซู„ ูˆุณูŠุทุฉ ุงู„ู‚ุงู„ุจ ุบูŠุฑ ุงู„ุงุฎุชูŠุงุฑูŠุฉ ุงู„ุฃูˆู„ู‰ ู†ูˆุน ุงู„ุฅุฑุฌุงุน ุงู„ุฎุงุต ุจุงู„ุฑุฏ.

ยท ุชู…ุซู„ ูˆุณุงุฆุท ุงู„ู‚ุงู„ุจ ุงู„ู…ุชุจู‚ูŠุฉ (ุงุฎุชูŠุงุฑูŠุฉ) ู†ูˆุน ุงู„ู‚ุงู„ุจ ุงู„ู„ุงุญู‚
ุงู„ุญุฌุฌ ุฅู„ู‰ ุฑุฏ ุงู„ุงุชุตุงู„.

ยท ูŠุชู… ุฏุนู… ู…ุง ูŠุตู„ ุฅู„ู‰ ุชุณุน ูˆุณุงุฆุท.

ู†ุญู† ู†ุญุงูˆู„ ู…ุนุฑูุฉ ู…ุง

ุฃุชุตู„ ู…ุฑุฉ ุฃุฎุฑู‰ > ุณูŠ ุจูŠุ›

ูŠุนู†ูŠ ุงู„ุชุตุฑูŠุญ. ุงู„ุขู† ู†ุญู† ููŠ ูˆุถุน ูŠุณู…ุญ ู„ู†ุง ุฃู† ู†ูู‡ู… ุฃู† ุงู„ุฃูˆู„ (ุบูŠุฑ ุงุฎุชูŠุงุฑูŠ)
ุญุฌุฉ ุงู„ู‚ุงู„ุจ, ุจุงุทู„ูŠู…ุซู„ ู†ูˆุน ุงู„ุฅุฑุฌุงุน ู„ุฑุฏ ุงู„ุงุชุตุงู„. ุงู„ุซุงู†ูŠ
(ุงุฎุชูŠุงุฑูŠ) ูˆุณูŠุทุฉ ุงู„ู‚ุงู„ุจุŒ ุจูŠ ุชูŠ ุขุฑ ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„> ูŠู…ุซู„ ุงู„ู†ูˆุน ุงู„ุฃูˆู„
ุญุฌุฉ ู„ุฑุฏ ุงู„ุงุชุตุงู„.

ุฑุฏ ุงู„ุงุชุตุงู„ ุงู„ู…ุนู†ูŠ ู‡ูˆ ูˆุธูŠูุชูƒ ู„ุชู„ู‚ูŠ ุฃุญุฏุงุซ ุงู„ุชุชุจุน. ู…ู† ู‡ุฐุง ูŠู…ูƒู†ูƒ
ุงุณุชู†ุชุฌ ุฃู†ูƒ ุจุญุงุฌุฉ ุฅู„ู‰ ุฏุงู„ุฉ ุชุฑุฌุน ุจุงุทู„ ูˆูŠุฃุฎุฐ ุจูŠ ุชูŠ ุขุฑ ู†ู…ูˆุฐุฌ ุงู„ุชู†ู‚ู„>.
ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

ุจุงุทู„
ุฏูˆุฑุฉ ุชุบูŠูŠุฑ ุงู„ุงุชุตุงู„ (Ptr ู†ู…ูˆุฐุฌ)
{

}

ู‡ุฐุง ูƒู„ ู…ุง ุชุญุชุงุฌู‡ ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุฐู„ูƒ ุงู„ุชูƒูˆูŠู† :: ConnectWithoutContext. ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุงู„ุณูŠุงู‚ุŒ
ุชุญุชุงุฌ ุฅู„ู‰ ุงู„ุชูƒูˆูŠู†::ุงุชุตุงู„ ูˆุงุณุชุฎุฏู… ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„ ุงู„ุชูŠ ุชุฃุฎุฐ ุณูŠุงู‚ ุณู„ุณู„ุฉ. ู‡ุฐุง
ู‡ูˆ ู„ุฃู† ุงู„ุชูˆุงุตู„ ุณุชูˆูุฑ ู„ูƒ ุงู„ูˆุธูŠูุฉ ุงู„ุณูŠุงู‚. ุงู†ูƒ ุณูˆู ุชุญุชุงุฌ:

ุจุงุทู„
CourseChangeCallback (std::string context, Ptr ู†ู…ูˆุฐุฌ)
{

}

ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุงู„ุชุฃูƒุฏ ู…ู† ุฃู† ุงู„ุฎุงุต ุจูƒ ุฏูˆุฑุฉ ุชุบูŠูŠุฑ ุฑุฏ ุงู„ุงุชุตุงู„ ู…ุฑุฆูŠ ูู‚ุท ููŠ ู…ู„ููƒ ุงู„ู…ุญู„ูŠุŒ
ูŠู…ูƒู†ูƒ ุฅุถุงูุฉ ุงู„ูƒู„ู…ุฉ ุงู„ุฑุฆูŠุณูŠุฉ ุณุงูƒู† ูˆุชูˆุตู„ ุฅู„ู‰:

ุงู„ูุฑุงุบ ุซุงุจุช
CourseChangeCallback (std::string path, Ptr ู†ู…ูˆุฐุฌ)
{

}

ูˆู‡ูˆ ุจุงู„ุถุจุท ู…ุง ุงุณุชุฎุฏู…ู†ุงู‡ ููŠ ุงู„ุซุงู„ุซ.cc ู…ุซุงู„. ุฑุจู…ุง ูŠุฌุจ ุนู„ูŠูƒ ุงู„ุขู† ุงู„ุนูˆุฏุฉ ูˆ
ุฃุนุฏ ู‚ุฑุงุกุฉ ุงู„ู‚ุณู… ุงู„ุณุงุจู‚ (ุฎุฐ ูƒู„ู…ุชูŠ ู…ู† ุฃุฌู„ู‡ุง).

ุฅุฐุง ูƒู†ุช ู…ู‡ุชู…ู‹ุง ุจู…ุนุฑูุฉ ู…ุฒูŠุฏ ู…ู† ุงู„ุชูุงุตูŠู„ ููŠู…ุง ูŠุชุนู„ู‚ ุจุชู†ููŠุฐ ุนู…ู„ูŠุงุช ุงู„ุงุณุชุฑุฌุงุนุงุชุŒ ูู„ุง ุชุชุฑุฏุฏ
ู„ุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ NS-3 ูŠุฏูˆูŠ. ูˆู‡ูŠ ูˆุงุญุฏุฉ ู…ู† ุงู„ุชุฑูƒูŠุจุงุช ุงู„ุฃูƒุซุฑ ุงุณุชุฎุฏุงู…ู‹ุง ููŠ
ุงู„ุฃุฌุฒุงุก ุฐุงุช ุงู„ู…ุณุชูˆู‰ ุงู„ู…ู†ุฎูุถ ู…ู† NS-3. ูˆู‡ูˆุŒ ููŠ ุฑุฃูŠูŠุŒ ุดูŠุก ุฃู†ูŠู‚ ู„ู„ุบุงูŠุฉ.

TracedValues
ููŠ ูˆู‚ุช ุณุงุจู‚ ู…ู† ู‡ุฐุง ุงู„ู‚ุณู…ุŒ ู‚ุฏู…ู†ุง โ€‹โ€‹โ€‹โ€‹ุฌุฒุกู‹ุง ุจุณูŠุทู‹ุง ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุชูŠ ุชุณุชุฎุฏู… ู…ู„ู
TracedValue ู„ุชูˆุถูŠุญ ุฃุณุงุณูŠุงุช ูƒูˆุฏ ุงู„ุชุชุจุน. ู„ู‚ุฏ ุชุฌุงู‡ู„ู†ุง ู„ู„ุชูˆ
ู…ุง ู‡ูŠ ู‚ูŠู…ุฉ TracedValue ูˆูƒูŠููŠุฉ ุงู„ุนุซูˆุฑ ุนู„ู‰ ู†ูˆุน ุงู„ุฅุฑุฌุงุน ูˆุงู„ูˆุณุงุฆุท ุงู„ุฑุณู…ูŠุฉ ู„ู‡
ุฑุฏ ุงู„ุงุชุตุงู„.

ูƒู…ุง ุฐูƒุฑู†ุง ุงู„ู…ู„ู ุชุชุจุน ุงู„ู‚ูŠู…ุฉ ูŠุฌู„ุจ ุงู„ุฅู‚ุฑุงุฑุงุช ุงู„ู…ุทู„ูˆุจุฉ ู„ู„ุชุชุจุน
ู…ู† ุงู„ุจูŠุงู†ุงุช ุงู„ุชูŠ ุชุฎุถุน ู„ุฏู„ุงู„ุงุช ุงู„ู‚ูŠู…ุฉ. ุจุดูƒู„ ุนุงู…ุŒ ุฏู„ุงู„ุงุช ุงู„ู‚ูŠู…ุฉ ุชุนู†ูŠ ูู‚ุท ุฃู†ูƒ ุชุณุชุทูŠุน ุฐู„ูƒ
ุชู…ุฑูŠุฑ ุงู„ูƒุงุฆู† ู†ูุณู‡ุŒ ุจุฏู„ุงู‹ ู…ู† ุชู…ุฑูŠุฑ ุนู†ูˆุงู† ุงู„ูƒุงุฆู†. ู†ุญู† ู†ู…ุชุฏ
ูŠุชุถู…ู† ู‡ุฐุง ุงู„ู…ุชุทู„ุจ ุงู„ู…ุฌู…ูˆุนุฉ ุงู„ูƒุงู…ู„ุฉ ู…ู† ุนูˆุงู…ู„ ุชุดุบูŠู„ ู†ู…ุท ุงู„ู…ู‡ู…ุฉ ุงู„ู…ูˆุฌูˆุฏุฉ
ู…ุญุฏุฏุฉ ู…ุณุจู‚ู‹ุง ู„ุฃู†ูˆุงุน ุงู„ุจูŠุงู†ุงุช ุงู„ู‚ุฏูŠู…ุฉ (POD):

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ุนุงู…ู„ ุงู„ุชุดุบูŠู„ = (ุงู„ู…ู‡ู…ุฉ) โ”‚ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ุงู„ู…ุดุบู„*= โ”‚ ุงู„ู…ุดุบู„/= โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ุนุงู…ู„ ุงู„ุชุดุบูŠู„+= โ”‚ ุงู„ู…ุดุบู„-= โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ุงู„ู…ุดุบู„++ (ูƒู„ุง ุงู„ุจุงุฏุฆุฉ ูˆ โ”‚ โ”‚
โ”‚postfix) โ”‚ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ุงู„ู…ุดุบู„ ุฃูˆ ุงู„ุนุงู…ู„-- (ูƒู„ุง ุงู„ุจุงุฏุฆุฉ ูˆ โ”‚ โ”‚
โ”‚postfix) โ”‚ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ุนุงู…ู„ <<= โ”‚ ุนุงู…ู„>>= โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ุงู„ู…ุดุบู„&= โ”‚ ุงู„ู…ุดุบู„|= โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ุนุงู…ู„ ุงู„ุชุดุบูŠู„%= โ”‚ ุงู„ู…ุดุบู„ ^= โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ู…ุง ูŠุนู†ูŠู‡ ูƒู„ ู‡ุฐุง ุญู‚ู‹ุง ู‡ูˆ ุฃู†ูƒ ุณุชุชู…ูƒู† ู…ู† ุชุชุจุน ุฌู…ูŠุน ุงู„ุชุบูŠูŠุฑุงุช ุงู„ุชูŠ ุชู… ุฅุฌุฑุงุคู‡ุง ุจุงุณุชุฎุฏุงู… ุชู„ูƒ ุงู„ุชุบูŠูŠุฑุงุช
ุนูˆุงู…ู„ ุงู„ุชุดุบูŠู„ ุฅู„ู‰ ูƒุงุฆู† C++ ุงู„ุฐูŠ ู„ู‡ ุฏู„ุงู„ุงุช ู‚ูŠู…ุฉ.

ุฅู†ู‘ ู‚ูŠู…ุฉ ุงู„ุชุชุจุน<> ูŠูˆูุฑ ุงู„ุฅุนู„ุงู† ุงู„ุฐูŠ ุฑุฃูŠู†ุงู‡ ุฃุนู„ุงู‡ ุงู„ุจู†ูŠุฉ ุงู„ุชุญุชูŠุฉ ุงู„ุชูŠ ุชุฒูŠุฏ ู…ู† ุชุญู…ูŠู„
ุงู„ู…ุดุบู„ูŠู† ุงู„ู…ุฐูƒูˆุฑูŠู† ุฃุนู„ุงู‡ ูˆูŠุญุฑูƒูˆู† ุนู…ู„ูŠุฉ ุฑุฏ ุงู„ุงุชุตุงู„. ุนู†ุฏ ุงุณุชุฎุฏุงู… ุฃูŠ ู…ู† ุงู„ู…ุดุบู„ูŠู†
ุฃุนู„ุงู‡ ู…ุน ุฃ TracedValue ูˆุณูˆู ุชูˆูุฑ ูƒู„ ู…ู† ุงู„ู‚ูŠู…ุฉ ุงู„ู‚ุฏูŠู…ุฉ ูˆุงู„ุฌุฏูŠุฏุฉ ู„ู‡ุฐุง ุงู„ู…ุชุบูŠุฑุŒ
ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉ int32_t ู‚ูŠู…ุฉ. ุจุงู„ุชูุชูŠุด ุนู„ู‰ TracedValue ุฅุนู„ุงู†ุŒ ูˆู†ุญู† ู†ุนุฑู
ุณูˆู ุชุญุชูˆูŠ ูˆุธูŠูุฉ ุจุงู„ูˆุนุฉ ุงู„ุชุชุจุน ุนู„ู‰ ูˆุณูŠุทุงุช (ู…ู‚ุฏุงุฑ ุซุงุจุช int32_t ุงู„ู‚ูŠู…ุฉ ุงู„ู‚ุฏูŠู…ุฉ, CONST int32_t ู‚ูŠู…ุฉ ุฌุฏูŠุฏุฉ).
ู†ูˆุน ุงู„ุฅุฑุฌุงุน ู„ู€ ุฃ TracedValue ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„ ู‡ูŠ ุฏุงุฆู…ุง ุจุงุทู„ุŒ ู„ุฐู„ูƒ ุงู„ู…ุชูˆู‚ุน
ุณูŠูƒูˆู† ุชูˆู‚ูŠุน ุฑุฏ ุงู„ุงุชุตุงู„:

void (* TracedValueCallback)(const int32_t oldValue, const int32_t newValue);

ุฅู†ู‘ .AddTraceSource ููŠ ุงู„ GetTypeId ุชูˆูุฑ ุงู„ุทุฑูŠู‚ุฉ "ุงู„ุฎุทุงูุงุช" ุงู„ู…ุณุชุฎุฏู…ุฉ ู„ุชูˆุตูŠู„
ุชุชุจุน ุงู„ู…ุตุฏุฑ ุฅู„ู‰ ุงู„ุนุงู„ู… ุงู„ุฎุงุฑุฌูŠ ู…ู† ุฎู„ุงู„ ู†ุธุงู… ุงู„ุชูƒูˆูŠู†. ู„ู‚ุฏ ู†ุงู‚ุดู†ุง ุจุงู„ูุนู„
agruments ุงู„ุซู„ุงุซุฉ ุงู„ุฃูˆู„ู‰ ู„ AddTraceSource: ุงุณู… ุงู„ุณู…ุฉ ู„ู†ุธุงู… ุงู„ุชูƒูˆูŠู†ุŒ ู…ุณุงุนุฏุฉ
ุงู„ุณู„ุณู„ุฉ ูˆุนู†ูˆุงู† ุนุถูˆ ุจูŠุงู†ุงุช ูุฆุฉ TracedValue.

ูˆุณูŠุทุฉ ุงู„ุณู„ุณู„ุฉ ุงู„ู†ู‡ุงุฆูŠุฉุŒ "ns3::Traced::Value::Int32" ููŠ ุงู„ู…ุซุงู„ุŒ ู‡ูŠ ุงุณู…
typedef ูˆ ู„ุชูˆู‚ูŠุน ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„. ู†ุญู† ุจุญุงุฌุฉ ุฅู„ู‰ ุชุญุฏูŠุฏ ู‡ุฐู‡ ุงู„ุชูˆู‚ูŠุนุงุชุŒ
ูˆุฅุนุทุงุก ุงุณู… ุงู„ู†ูˆุน ุงู„ู…ุคู‡ู„ ุจุงู„ูƒุงู…ู„ ู„ AddTraceSourceุŒ ู„ุฐุง ูุฅู† ูˆุซุงุฆู‚ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ูŠู…ูƒู†ู‡ุง ุฐู„ูƒ
ุฑุจุท ู…ุตุฏุฑ ุงู„ุชุชุจุน ุจุชูˆู‚ูŠุน ุงู„ูˆุธูŠูุฉ. ุจุงู„ู†ุณุจุฉ ู„ู€ TracedValueุŒ ุงู„ุชูˆู‚ูŠุน ู‡ูˆ
ูˆุงุถุญุ› ุจุงู„ู†ุณุจุฉ ุฅู„ู‰ TracedCallbacksุŒ ุฑุฃูŠู†ุง ุจุงู„ูุนู„ ุฃู† ู…ุณุชู†ุฏุงุช ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ุชุณุงุนุฏ ุญู‚ู‹ุง.

ู„ุงุจูŠู„ุง ุฑูŠุงู„ ู…ุซุงู„
ู„ู†ู‚ู… ุจู…ุซุงู„ ู…ุฃุฎูˆุฐ ู…ู† ุฃุญุฏ ุฃุดู‡ุฑ ุงู„ูƒุชุจ ุญูˆู„ TCP. "" ุชูŠ ุณูŠ ุจูŠ / ุขูŠ ุจูŠ
ุงู„ู…ุตูˆุฑุŒ ุงู„ู…ุฌู„ุฏ ุงู„ุฃูˆู„: ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุชุŒ" ุจู‚ู„ู… ุฏุจู„ูŠูˆ ุฑูŠุชุดุงุฑุฏ ุณุชูŠูู†ุฒ ู‡ูˆ ูƒุชุงุจ ูƒู„ุงุณูŠูƒูŠ. ู„ู‚ุฏ ุงู†ู‚ู„ุจุช ู„ู„ุชูˆ
ูุชุญ ุงู„ูƒุชุงุจ ูˆุฑูƒุถ ุนุจุฑ ู‚ุทุนุฉ ุฃุฑุถ ุฌู…ูŠู„ุฉ ู„ูƒู„ ู…ู† ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู… ูˆุงู„ุชุณู„ุณู„
ุงู„ุฃุฑู‚ุงู… ู…ู‚ุงุจู„ ุงู„ูˆู‚ุช ููŠ ุงู„ุตูุญุฉ 366. ูŠุณู…ูŠ ุณุชูŠูู†ุฒ ู‡ุฐุงุŒ "ุงู„ุดูƒู„ 21.10. ู‚ูŠู…ุฉ cwnd ูˆ
ุฃุฑุณู„ ุงู„ุฑู‚ู… ุงู„ุชุณู„ุณู„ูŠ ุฃุซู†ุงุก ุฅุฑุณุงู„ ุงู„ุจูŠุงู†ุงุช." ุฏุนู†ุง ู†ุนูŠุฏ ุฅู†ุดุงุก ุงู„ุฌุฒุก cwnd
ู…ู† ุชู„ูƒ ุงู„ู…ุคุงู…ุฑุฉ ููŠ NS-3 ุจุงุณุชุฎุฏุงู… ู†ุธุงู… ุงู„ุชุชุจุน ูˆ ุบู†ูˆุจู„ูˆุช.

ู…ุชูˆูุฑุฉ ู…ุตุงุฏุฑ
ุฃูˆู„ ุดูŠุก ูŠุฌุจ ุงู„ุชููƒูŠุฑ ููŠู‡ ู‡ูˆ ูƒูŠู ู†ุฑูŠุฏ ุงู„ุญุตูˆู„ ุนู„ู‰ ุงู„ุจูŠุงู†ุงุช. ู…ุง ู‡ูˆ ุฃู†ู†ุง
ุจุญุงุฌุฉ ู„ุชุชุจุนุŸ ู„ุฐู„ูƒ ุฏุนูˆู†ุง ู†ุฑุงุฌุน ู‚ุงุฆู…ุฉ "ุฌู…ูŠุน ู…ุตุงุฏุฑ ุงู„ุชุชุจุน" ู„ู…ุนุฑูุฉ ู…ุง ูŠุชุนูŠู† ุนู„ูŠู†ุง ุงู„ุนู…ู„ ุนู„ูŠู‡
ู…ุน. ุฃุฐูƒุฑ ุฃู† ู‡ุฐุง ู…ูˆุฌูˆุฏ ููŠ NS-3 ูˆุซุงุฆู‚ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช. ุฅุฐุง ู‚ู…ุช ุจุงู„ุชู…ุฑูŠุฑ ุฎู„ุงู„
ุงู„ู‚ุงุฆู…ุฉุŒ ุณุชุฌุฏ ููŠ ุงู„ู†ู‡ุงูŠุฉ:
ns3::TcpNewReno

ยท CongestionWindow: ู†ุงูุฐุฉ ุงุฒุฏุญุงู… ุงุชุตุงู„ TCP

ยท SlowStartThreshold: ุนุชุจุฉ ุงู„ุจุฏุก ุงู„ุจุทูŠุก ู„ู€ TCP (ุจุงูŠุช)

ุงุชุถุญ ุฃู† NS-3 ูŠุนูŠุด ุชู†ููŠุฐ TCP (ููŠ ุงู„ุบุงู„ุจ) ููŠ ุงู„ู…ู„ู
src/internet/model/tcp-socket-base.cc ุฃุซู†ุงุก ูˆุฌูˆุฏ ู…ุชุบูŠุฑุงุช ุงู„ุชุญูƒู… ููŠ ุงู„ุงุฒุฏุญุงู… ููŠ ู…ู„ูุงุช ู…ุซู„
as src/internet/model/tcp-newreno.cc. ุฅุฐุง ูƒู†ุช ู„ุง ุชุนุฑู ู‡ุฐุง a ุจุฏุงู‡ุฉุŒ ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ุงู„
ุงู„ุนูˆุฏูŠุฉ ุงู„ุจู‚ุฑู‰ ุงู„ุฎุฏุนุฉ:

$ ุงู„ุนุซูˆุฑ ุนู„ู‰ . -ุงู„ุงุณู… '*.cc' | xargs grep -i tcp

ุณุชุฌุฏ ุตูุญุฉ ุชู„ูˆ ุงู„ุฃุฎุฑู‰ ู„ู…ุซูŠู„ุงุช ุจุฑู†ุงู…ุฌ ุงู„ุชุนุงูˆู† ุงู„ูู†ูŠ ุงู„ุชูŠ ุชูˆุฌู‡ูƒ ุฅู„ู‰ ู‡ุฐุง ุงู„ู…ู„ู.

ุฅุญุถุงุฑ ูˆุซุงุฆู‚ ุงู„ูุตู„ ู„ู€ TcpNewReno ูˆุงู„ุงู†ุชู‚ุงู„ ุฅู„ู‰ ู‚ุงุฆู…ุฉ
ุณูˆู ุชุฌุฏ TraceSources
ุชุชุจุน ุงู„ู…ุตุงุฏุฑ

ยท CongestionWindow: ู†ุงูุฐุฉ ุงุฒุฏุญุงู… ุงุชุตุงู„ TCP

ุชูˆู‚ูŠุน ุฑุฏ ุงู„ุงุชุตุงู„: ns3::Traced::Value::Uint322Callback

ุงู„ู†ู‚ุฑ ุนู„ู‰ ุฑุฏ ุงู„ุงุชุตุงู„ typedef ูˆ ุงู„ุฑุงุจุท ุงู„ุฐูŠ ู†ุฑู‰ ููŠู‡ ุงู„ุชูˆู‚ูŠุน ุงู„ุฐูŠ ุชุนุฑูู‡ ุงู„ุขู†:

typedef void(* ns3::Traced::Value::Int32Callback)(const int32_t oldValueุŒ const int32_t newValue)

ูŠุฌุจ ุฃู† ุชูู‡ู… ุงู„ุขู† ู‡ุฐุง ุงู„ุฑู…ุฒ ุจุงู„ูƒุงู…ู„. ุฅุฐุง ูƒุงู† ู„ุฏูŠู†ุง ู…ุคุดุฑ ุฅู„ู‰ TcpNewReno,
ู†ุณุชุทูŠุน ุชุชุจุน ุงู„ุงุชุตุงู„ ุฅู„ู‰ ู…ุตุฏุฑ ุงู„ุชุชุจุน "CongestionWindow" ุฅุฐุง ู‚ุฏู…ู†ุง โ€‹โ€‹ู…ู„ูู‹ุง ู…ู†ุงุณุจู‹ุง
ู‡ุฏู ุฑุฏ ุงู„ุงุชุตุงู„. ู‡ุฐุง ู‡ูˆ ู†ูุณ ู†ูˆุน ู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ุฐูŠ ุฑุฃูŠู†ุงู‡ ููŠ ุงู„ู…ุซุงู„ ุงู„ุจุณูŠุท
ููŠ ุจุฏุงูŠุฉ ู‡ุฐุง ุงู„ู‚ุณู…ุŒ ุฅู„ุง ุฃู†ู†ุง ู†ุชุญุฏุซ ุนู†ู‡ uint32_t ุจุฏู„ุง ู…ู†
int32_t. ูˆู†ุญู† ู†ุนู„ู… ุฃู†ู‡ ูŠุชุนูŠู† ุนู„ูŠู†ุง ุชูˆููŠุฑ ูˆุธูŠูุฉ ุฑุฏ ุงู„ุงุชุตุงู„ ุจู‡ุฐุง ุงู„ุชูˆู‚ูŠุน.

ุงู„ุนุซูˆุฑ ุนู„ู‰ ุฃู…ุซู„ุฉ
ู…ู† ุงู„ุฃูุถู„ ุฏุงุฆู…ู‹ุง ู…ุญุงูˆู„ุฉ ุงู„ุนุซูˆุฑ ุนู„ู‰ ูƒูˆุฏ ุนู…ู„ ูŠู…ูƒู†ูƒ ุชุนุฏูŠู„ู‡ ุจุฏู„ุงู‹ ู…ู† ุฐู„ูƒ
ู…ู† ุงู„ุจุฏุก ู…ู† ุงู„ุตูุฑ. ู„ุฐุง ูุฅู† ุฃูˆู„ ุฃู…ุฑ ููŠ ุงู„ุนู…ู„ ุงู„ุขู† ู‡ูˆ ุงู„ุนุซูˆุฑ ุนู„ู‰ ุจุนุถ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุชูŠ
ูŠุฑุจุท ุจุงู„ูุนู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน "CongestionWindow" ูˆูŠุฑู‰ ู…ุง ุฅุฐุง ูƒุงู† ุจุฅู…ูƒุงู†ู†ุง ุชุนุฏูŠู„ู‡. ูƒู„ ุนุงุฏุฉุŒ
ุงู„ุจู‚ุฑู‰ ุตุฏูŠู‚ูƒ:

$ ุงู„ุนุซูˆุฑ ุนู„ู‰ . -ุงู„ุงุณู… '*.cc' | xargs grep CongestionWindow

ุณูŠุดูŠุฑ ู‡ุฐุง ุฅู„ู‰ ุงุซู†ูŠู† ู…ู† ุงู„ู…ุฑุดุญูŠู† ุงู„ูˆุงุนุฏูŠู†: ุฃู…ุซู„ุฉ/tcp/tcp-large-transfer.cc
src/test/ns3tcp/ns3tcp-cwnd-test-suite.cc.

ู„ู… ู†ู‚ู… ุจุฒูŠุงุฑุฉ ุฃูŠ ู…ู† ุฃูƒูˆุงุฏ ุงู„ุงุฎุชุจุงุฑ ุจุนุฏุŒ ู„ุฐู„ูƒ ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ู‡ู†ุงูƒ. ุณูˆู ุชูุนู„ู‡ุง
ุนุงุฏุฉู‹ ู…ุง ุชุฌุฏ ุฃู† ูƒูˆุฏ ุงู„ุงุฎุชุจุงุฑ ุถุฆูŠู„ ุฅู„ู‰ ุญุฏ ู…ุงุŒ ู„ุฐู„ูƒ ุฑุจู…ุง ูŠูƒูˆู† ู‡ุฐุง ุฑู‡ุงู†ู‹ุง ุฌูŠุฏู‹ุง ุฌุฏู‹ุง.
ุณุงุนุงุช ุงู„ุนู…ู„ src/test/ns3tcp/ns3tcp-cwnd-test-suite.cc ููŠ ู…ุญุฑุฑูƒ ุงู„ู…ูุถู„ ูˆุงุจุญุซ ุนู†ู‡
"ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู…". ุณูˆู ุชุฌุฏุŒ

ns3TcpSocket->TraceConnectWithoutContext ("CongestionWindow"ุŒ
MakeCallback (&Ns3TcpCwndTestCase1::CwndChange, this));

ูŠุฌุจ ุฃู† ูŠุจุฏูˆ ู‡ุฐุง ู…ุฃู„ูˆูู‹ุง ุฌุฏู‹ุง ุจุงู„ู†ุณุจุฉ ู„ูƒ. ู„ู‚ุฏ ุฐูƒุฑู†ุง ุฃุนู„ุงู‡ ุฃู†ู‡ ุฅุฐุง ูƒุงู† ู„ุฏูŠู†ุง ู…ุคุดุฑ ุฅู„ู‰
TcpNewRenoุŒ ู†ุณุชุทูŠุน ุชุชุจุน ุงู„ุงุชุตุงู„ ุฅู„ู‰ ู…ุตุฏุฑ ุงู„ุชุชุจุน "CongestionWindow". ู‡ุฐุง ู‡ูˆ ุจุงู„ุถุจุท
ู…ุง ู„ุฏูŠู†ุง ู‡ู†ุงุ› ู„ุฐู„ูƒ ุงุชุถุญ ุฃู† ู‡ุฐุง ุงู„ุณุทุฑ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ูŠูุนู„ ุจุงู„ุถุจุท ู…ุง ู†ุฑูŠุฏู‡.
ุฏุนู†ุง ู†ู…ุถูŠ ู‚ุฏู…ู‹ุง ูˆู†ุณุชุฎุฑุฌ ุงู„ูƒูˆุฏ ุงู„ุฐูŠ ู†ุญุชุงุฌู‡ ู…ู† ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ (Ns3TcpCwndTestCase1::DoRun
(ูุงุฑุบ)). ุฅุฐุง ู†ุธุฑุช ุฅู„ู‰ ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉุŒ ุณุชุฌุฏ ุฃู†ู‡ุง ุชุจุฏูˆ ูˆูƒุฃู†ู‡ุง NS-3
ุงู„ู†ุตูŠ. ุงุชุถุญ ุฃู† ู‡ุฐุง ู‡ูˆ ุจุงู„ุถุจุท ู…ุง ู‡ูˆ ุนู„ูŠู‡. ูˆู‡ูˆ ุจุฑู†ุงู…ุฌ ู†ุตูŠ ูŠุชู… ุชุดุบูŠู„ู‡ ุจูˆุงุณุทุฉ ุงู„ุงุฎุชุจุงุฑ
ุงู„ุฅุทุงุฑุŒ ุญุชู‰ ู†ุชู…ูƒู† ูู‚ุท ู…ู† ุณุญุจู‡ ูˆู„ูู‡ ููŠู‡ ุฑุฆูŠุณูŠ ุจุฏู„ุง ู…ู† ููŠ ุฏูˆุฑ. ุจุฏู„ุงู‹
ุจุฏู„ุงู‹ ู…ู† ุงู„ุณูŠุฑ ุฎู„ุงู„ ู‡ุฐุงุŒ ุฎุทูˆุฉ ุจุฎุทูˆุฉุŒ ู‚ุฏู…ู†ุง โ€‹โ€‹ุงู„ู…ู„ู ุงู„ู†ุงุชุฌ ุนู† ุงู„ู†ู‚ู„
ู‡ุฐุง ุงู„ุงุฎุชุจุงุฑ ูŠุนูˆุฏ ุฅู„ู‰ ู…ูˆุงุทู† NS-3 ุงู„ู†ุตูŠ -- ุฃู…ุซู„ุฉ/ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ/fifth.cc.

ุงู„ุชูุงุนู„ ุฃุซุฑ ู…ุตุงุฏุฑ
ุฅู†ู‘ Fifth.cc ูŠูˆุถุญ ุงู„ู…ุซุงู„ ู‚ุงุนุฏุฉ ู…ู‡ู…ุฉ ู„ู„ุบุงูŠุฉ ูŠุฌุจ ุฃู† ุชูู‡ู…ู‡ุง
ู‚ุจู„ ุงุณุชุฎุฏุงู… ุฃูŠ ู†ูˆุน ู…ู† ู…ุตุงุฏุฑ ุงู„ุชุชุจุน: ูŠุฌุจ ุนู„ูŠูƒ ุงู„ุชุฃูƒุฏ ู…ู† ุฃู† ู‡ุฏู ุฃ
ุงู„ุชูƒูˆูŠู†::ุงุชุตุงู„ ุงู„ุฃู…ุฑ ู…ูˆุฌูˆุฏ ู‚ุจู„ ู…ุญุงูˆู„ุฉ ุงุณุชุฎุฏุงู…ู‡. ูˆู‡ุฐุง ู„ุง ูŠุฎุชู„ู ุนู† ุงู„ู‚ูˆู„
ูŠุฌุจ ุฅู†ุดุงุก ู…ุซูŠู„ ู„ู„ูƒุงุฆู† ู‚ุจู„ ู…ุญุงูˆู„ุฉ ุงู„ุงุชุตุงู„ ุจู‡. ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู† ู‡ุฐุง ู‚ุฏ ูŠุจุฏูˆ ูˆุงุถุญุง
ุนู†ุฏู…ุง ูŠุชู… ุฐูƒุฑู‡ ุจู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉุŒ ูุฅู†ู‡ ูŠุนุฑู‚ู„ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฃุดุฎุงุต ุงู„ุฐูŠู† ูŠุญุงูˆู„ูˆู† ุงุณุชุฎุฏุงู… ุงู„ู†ุธุงู… ู„ู„ู…ุฑุฉ ุงู„ุฃูˆู„ู‰
ู…ุฑุฉ.

ุฏุนูˆู†ุง ู†ุนูˆุฏ ุฅู„ู‰ ุงู„ุฃุณุงุณูŠุงุช ู„ู„ุญุธุฉ. ู‡ู†ุงูƒ ุซู„ุงุซ ู…ุฑุงุญู„ ุชู†ููŠุฐ ุฃุณุงุณูŠุฉ ู…ูˆุฌูˆุฏุฉ
ุฃูŠ ูˆู‚ุช NS-3 ุงู„ู†ุตูŠ. ุชุณู…ู‰ ุงู„ู…ุฑุญู„ุฉ ุงู„ุฃูˆู„ู‰ ุฃุญูŠุงู†ู‹ุง "ูˆู‚ุช ุงู„ุชูƒูˆูŠู†" ุฃูˆ "ุงู„ุฅุนุฏุงุฏ".
ุงู„ูˆู‚ุช "ุŒ ูˆูŠูˆุฌุฏ ุฎู„ุงู„ ุงู„ูุชุฑุฉ ุงู„ุชูŠ ุฑุฆูŠุณูŠ ูˆุธูŠูุฉ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ุงู„ุฎุงุต ุจูƒ ู‚ูŠุฏ ุงู„ุชุดุบูŠู„ุŒ ูˆู„ูƒู†
ู‚ุจู„ ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ ูŠุณู…ู‰. ุชุณู…ู‰ ุงู„ู…ุฑุญู„ุฉ ุงู„ุซุงู†ูŠุฉ ุฃุญูŠุงู†ู‹ุง "ูˆู‚ุช ุงู„ู…ุญุงูƒุงุฉ"
ูˆู…ูˆุฌูˆุฏ ุฎู„ุงู„ ุงู„ูุชุฑุฉ ุงู„ุฒู…ู†ูŠุฉ ุนู†ุฏู…ุง ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ ุชู†ูุฐ ุฃุญุฏุงุซู‡ุง ุจู†ุดุงุท.
ูˆุจุนุฏ ุงู„ุงู†ุชู‡ุงุก ู…ู† ุชู†ููŠุฐ ุงู„ู…ุญุงูƒุงุฉุŒ ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ ุณูˆู ุชุนูˆุฏ ุงู„ุณูŠุทุฑุฉ ู…ุฑุฉ ุฃุฎุฑู‰ ุฅู„ู‰
ู‡ูŠู‡ ุฑุฆูŠุณูŠ ูˆุธูŠูุฉ. ุนู†ุฏู…ุง ูŠุญุฏุซ ู‡ุฐุงุŒ ูŠุฏุฎู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู…ุง ูŠู…ูƒู† ุฃู† ูŠุณู…ู‰ "Teardown
ุงู„ู…ุฑุญู„ุฉุŒ" ูˆู‡ูŠ ุนู†ุฏู…ุง ูŠุชู… ุชููƒูŠูƒ ุงู„ู‡ูŠุงูƒู„ ูˆุงู„ูƒุงุฆู†ุงุช ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุฃุซู†ุงุก ุงู„ุฅุนุฏุงุฏ ูˆ
ุตุฏุฑ.

ูˆู„ุนู„ ุงู„ุฎุทุฃ ุงู„ุฃูƒุซุฑ ุดูŠูˆุนู‹ุง ุนู†ุฏ ู…ุญุงูˆู„ุฉ ุงุณุชุฎุฏุงู… ู†ุธุงู… ุงู„ุชุชุจุน ู‡ูˆ ุงูุชุฑุงุถ ุฐู„ูƒ
ุงู„ูƒูŠุงู†ุงุช ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ุจุดูƒู„ ุฏูŠู†ุงู…ูŠูƒูŠ ุฃุซู†ุงุก ู…ุญุงูƒุงุฉ ุงู„ูˆู‚ุช ู…ุชูˆูุฑุฉ ุฃุซู†ุงุก ุงู„ุชูƒูˆูŠู†
ูˆู‚ุช. ุนู„ู‰ ูˆุฌู‡ ุงู„ุฎุตูˆุตุŒ ุฃ NS-3 ุงู„ุจุฑูŠุฒุฉ ู‡ูˆ ูƒุงุฆู† ุฏูŠู†ุงู…ูŠูƒูŠ ุบุงู„ุจู‹ุง ู…ุง ูŠุชู… ุฅู†ุดุงุคู‡ ุจูˆุงุณุทุฉ ุงู„ุชุทุจูŠู‚ุงุช ุฅู„ู‰
ุงู„ุชูˆุงุตู„ ุจูŠู† ุงู„ุนู‚ุฏ. ูˆ NS-3 ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูŠุญุชูˆูŠ ุฏุงุฆู…ู‹ุง ุนู„ู‰ "ูˆู‚ุช ุงู„ุจุฏุก" ูˆ"ุงู„ุชูˆู‚ู".
"ุงู„ูˆู‚ุช" ุงู„ู…ุฑุชุจุท ุจู‡. ููŠ ุงู„ุบุงู„ุจูŠุฉ ุงู„ุนุธู…ู‰ ู…ู† ุงู„ุญุงู„ุงุชุŒ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ู„ู† ุชุญุงูˆู„
ู„ุฅู†ุดุงุก ูƒุงุฆู† ุฏูŠู†ุงู…ูŠูƒูŠ ุญุชู‰ StartApplication ูŠุชู… ุงุณุชุฏุนุงุก ุงู„ุทุฑูŠู‚ุฉ ููŠ ุจุนุถ "Start
ุงู„ูˆู‚ุช". ูˆุฐู„ูƒ ู„ู„ุชุฃูƒุฏ ู…ู† ุชูƒูˆูŠู† ุงู„ู…ุญุงูƒุงุฉ ุจุงู„ูƒุงู…ู„ ู‚ุจู„ ุงู„ุชุทุจูŠู‚
ูŠุญุงูˆู„ ุงู„ู‚ูŠุงู… ุจุฃูŠ ุดูŠุก (ู…ุงุฐุง ุณูŠุญุฏุซ ุฅุฐุง ุญุงูˆู„ ุงู„ุงุชุตุงู„ ุจุนู‚ุฏุฉ ุบูŠุฑ ู…ูˆุฌูˆุฏุฉ
ุญุชู‰ ุงู„ุขู† ุฎู„ุงู„ ูˆู‚ุช ุงู„ุชูƒูˆูŠู†ุŸ). ูˆู†ุชูŠุฌุฉ ู„ุฐู„ูƒุŒ ุฎู„ุงู„ ู…ุฑุญู„ุฉ ุงู„ุชูƒูˆูŠู† ู„ุง ูŠู…ูƒู†ูƒ ุฐู„ูƒ
ู‚ู… ุจุชูˆุตูŠู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุจู…ุตุฑู ุงู„ุชุชุจุน ุฅุฐุง ุชู… ุฅู†ุดุงุก ุฃุญุฏู‡ู…ุง ุฏูŠู†ุงู…ูŠูƒูŠู‹ุง ุฃุซู†ุงุก
ู…ุญุงูƒุงุฉ.

ุงู„ุญู„ุงู† ู„ู‡ุฐุง ุงู„ู„ุบุฒ ู‡ู…ุง

1. ู‚ู… ุจุฅู†ุดุงุก ุญุฏุซ ู…ุญุงูƒุงุฉ ูŠุชู… ุชุดุบูŠู„ู‡ ุจุนุฏ ุฅู†ุดุงุก ุงู„ูƒุงุฆู† ุงู„ุฏูŠู†ุงู…ูŠูƒูŠ ูˆุฑุจุทู‡
ุชุชุจุน ุนู†ุฏ ุชู†ููŠุฐ ู‡ุฐุง ุงู„ุญุฏุซุ› ุฃูˆ

2. ู‚ู… ุจุฅู†ุดุงุก ุงู„ูƒุงุฆู† ุงู„ุฏูŠู†ุงู…ูŠูƒูŠ ููŠ ูˆู‚ุช ุงู„ุชูƒูˆูŠู†ุŒ ุซู… ู‚ู… ุจุฑุจุทู‡ ุซู… ุชุณู„ูŠู… ุงู„ูƒุงุฆู† ุฅู„ูŠู‡
ุงู„ู†ุธุงู… ุงู„ุฐูŠ ุณูŠุชู… ุงุณุชุฎุฏุงู…ู‡ ุฃุซู†ุงุก ูˆู‚ุช ุงู„ู…ุญุงูƒุงุฉ.

ู„ู‚ุฏ ุงุชุฎุฐู†ุง ุงู„ู†ู‡ุฌ ุงู„ุซุงู†ูŠ ููŠ Fifth.cc ู…ุซุงู„. ู‡ุฐุง ุงู„ู‚ุฑุงุฑ ูŠุชุทู„ุจ ู…ู†ุง ุฃู† ู†ุฎู„ู‚
ู‡ูŠู‡ ุงุณู… ุงู„ุชุทุจูŠู‚ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏุŒ ูˆุงู„ุบุฑุถ ูƒู„ู‡ ู‡ูˆ ุงุชุฎุงุฐ ุงู„ุจุฑูŠุฒุฉ ูƒู…ุนุงู…ู„.

ุชุฌูˆู„: Fifth.cc
ุงู„ุขู†ุŒ ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ ู…ุซุงู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุฐูŠ ุฃู†ุดุฃู†ุงู‡ ู…ู† ุฎู„ุงู„ ุชุดุฑูŠุญ ุงู„ุงุฒุฏุญุงู…
ุงุฎุชุจุงุฑ ุงู„ู†ุงูุฐุฉ. ูŠูุชุญ ุฃู…ุซู„ุฉ/ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ/fifth.cc ููŠ ู…ุญุฑุฑูƒ ุงู„ู…ูุถู„ ูŠุฌุจ ุฃู† ุชุฑู‰
ุจุนุถ ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ู…ุฃู„ูˆูุฉ ุงู„ู…ุธู‡ุฑ:

/ * - * - ุงู„ูˆุถุน: C ++ ุ› ู†ู…ุท ู…ู„ู c: "gnu" ุ› ูˆุถุน ุนู„ุงู…ุงุช ุงู„ุฌุฏูˆู„ุฉ ุงู„ุจุงุฏุฆุฉ: ู„ุง ุดูŠุก ุ› - * - * /
/*
* ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ู…ุฌุงู†ูŠ ุ› ูŠู…ูƒู†ูƒ ุฅุนุงุฏุฉ ุชูˆุฒูŠุนู‡ ูˆ / ุฃูˆ ุชุนุฏูŠู„ู‡
* ุจู…ูˆุฌุจ ุดุฑูˆุท ุฑุฎุตุฉ ุฌู†ูˆ ุงู„ุนู…ูˆู…ูŠุฉ ุงู„ุฅุตุฏุงุฑ 2 ูƒู€
* ู†ุดุฑุชู‡ ู…ุคุณุณุฉ ุงู„ุจุฑู…ุฌูŠุงุช ุงู„ุญุฑุฉ ุ›
*
* ูŠุชู… ุชูˆุฒูŠุน ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุนู„ู‰ ุฃู…ู„ ุฃู† ูŠูƒูˆู† ู…ููŠุฏุง ุŒ
* ูˆู„ูƒู† ุจุฏูˆู† ุฃูŠ ุถู…ุงู† ุ› ุญุชู‰ ุจุฏูˆู† ุงู„ุถู…ุงู† ุงู„ุถู…ู†ูŠ ู„ู€
* ุงู„ู‚ุงุจู„ูŠุฉ ู„ู„ุชุณูˆูŠู‚ ุฃูˆ ุงู„ู…ู„ุงุกู…ุฉ ู„ุบุฑุถ ู…ุนูŠู†. ุงู†ุธุฑ
* ุฑุฎุตุฉ ุฌู†ูˆ ุงู„ุนู…ูˆู…ูŠุฉ ู„ู…ุฒูŠุฏ ู…ู† ุงู„ุชูุงุตูŠู„.
*
* ูŠุฌุจ ุฃู† ุชูƒูˆู† ู‚ุฏ ุชู„ู‚ูŠุช ู†ุณุฎุฉ ู…ู† ุฑุฎุตุฉ ุฌู†ูˆ ุงู„ุนู…ูˆู…ูŠุฉ ุงู„ุนุงู…ุฉ
* ู…ุน ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุ› ุฅุฐุง ู„ู… ูŠูƒู† ูƒุฐู„ูƒ ุŒ ูุงูƒุชุจ ุฅู„ู‰ ุงู„ุจุฑู…ุฌูŠุงุช ุงู„ุญุฑุฉ
* ุงู„ู…ุคุณุณุฉุŒ ุฅู†ูƒู„ูˆุฏ.ุŒ 59 ุชูŠู…ุจู„ ุจู„ูŠุณุŒ ุฌู†ุงุญ 330ุŒ ุจูˆุณุทู†ุŒ MA 02111-1307 ุงู„ูˆู„ุงูŠุงุช ุงู„ู…ุชุญุฏุฉ ุงู„ุฃู…ุฑูŠูƒูŠุฉ
*/

#ูŠุดู…ู„
# ุชุถู…ูŠู† "ns3 / core-module.h"
# ุชุถู…ูŠู† "ns3 / network-module.h"
# ุชุถู…ูŠู† "ns3 / internet-module.h"
# ุชุถู…ูŠู† "ns3 / point-to-point-module.h"
#include "ns3 / applications-module.h"

ุจุงุณุชุฎุฏุงู… ู…ุณุงุญุฉ ุงู„ุงุณู… ns3 ุ›

NS_LOG_COMPONENT_DEFINE ("ู…ุซุงู„ ุงู„ู†ุต ุงู„ุฎุงู…ุณ")ุ›

ู„ู‚ุฏ ุชู… ุชุบุทูŠุฉ ูƒู„ ู‡ุฐุงุŒ ู„ุฐู„ูƒ ู„ู† ู†ุนูŠุฏ ุตูŠุงุบุชู‡. ุงู„ุฃุณุทุฑ ุงู„ุชุงู„ูŠุฉ ู…ู† ุงู„ู…ุตุฏุฑ ู‡ูŠ
ุฑุณู… ุชูˆุถูŠุญูŠ ู„ู„ุดุจูƒุฉ ูˆุชุนู„ูŠู‚ ูŠุชู†ุงูˆู„ ุงู„ู…ุดูƒู„ุฉ ุงู„ู…ูˆุถุญุฉ ุฃุนู„ุงู‡ ุงู„ุจุฑูŠุฒุฉ.

// ========================================================================================= ========================================
//
// ุงู„ุนู‚ุฏุฉ 0 ุงู„ุนู‚ุฏุฉ 1
// ++----------------++++----------------
// | ns-3 TCP | | ns-3 TCP |
// ++----------------++++----------------
// | 10.1.1.1 | | 10.1.1.2 |
// ++----------------++++----------------
// | ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ | | ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ |
// ++----------------++++----------------
// | |
// +---------------------+
// 5 ู…ูŠุฌุงุจุช ููŠ ุงู„ุซุงู†ูŠุฉุŒ 2 ู…ู„ู„ูŠ ุซุงู†ูŠุฉ
//
//
// ู†ุฑูŠุฏ ุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ ุงู„ุชุบูŠูŠุฑุงุช ููŠ ู†ุงูุฐุฉ ุงุฒุฏุญุงู… ns-3 TCP. ู†ุญู† ู†ุญุชุงุฌ
// ู„ุฒูŠุงุฏุฉ ุงู„ุชุฏูู‚ ูˆุฑุจุท ุณู…ุฉ CongestionWindow ุจุงู„ู…ู‚ุจุณ
// ุงู„ู…ุฑุณู„. ุนุงุฏุฉู‹ ู…ุง ูŠุณุชุฎุฏู… ุงู„ู…ุฑุก ุชุทุจูŠู‚ ุงู„ุชุดุบูŠู„ ูˆุงู„ุฅูŠู‚ุงู ู„ุฅู†ุดุงุก ู…ู„ู
// ุงู„ุชุฏูู‚ุŒ ูˆู„ูƒู† ู‡ุฐุง ุจู‡ ุจุนุถ ุงู„ู…ุดุงูƒู„. ุฃูˆู„ุงู‹ุŒ ู…ู‚ุจุณ ุงู„ุชุดุบูŠู„ ูˆุงู„ุฅูŠู‚ุงู
// ู„ู… ูŠุชู… ุฅู†ุดุงุก ุงู„ุชุทุจูŠู‚ ุญุชู‰ ูˆู‚ุช ุจุฏุก ุงู„ุชุทุจูŠู‚ุŒ ู„ุฐู„ูƒ ู„ู† ู†ู‚ูˆู… ุจุฐู„ูƒ
// ู‚ุงุฏุฑ ุนู„ู‰ ุฑุจุท ุงู„ู…ู‚ุจุณ (ุงู„ุขู†) ููŠ ูˆู‚ุช ุงู„ุชูƒูˆูŠู†. ุซุงู†ูŠุงุŒ ุญุชู‰ ู„ูˆ ูƒู†ุง
// ูŠู…ูƒู† ุชุฑุชูŠุจ ู…ูƒุงู„ู…ุฉ ุจุนุฏ ูˆู‚ุช ุงู„ุจุฏุกุŒ ูˆุงู„ู…ุฃุฎุฐ ู„ูŠุณ ุนุงู…ู‹ุงุŒ ู„ุฐู„ูƒ ู†ุญู†
// ู„ู… ุฃุณุชุทุน ุงู„ูˆุตูˆู„ ุฅู„ูŠู‡.
//
// ู„ุฐุงุŒ ูŠู…ูƒู†ู†ุง ุฅุนุฏุงุฏ ู†ุณุฎุฉ ุจุณูŠุทุฉ ู…ู† ุชุทุจูŠู‚ ุงู„ุชุดุบูŠู„ ูˆุงู„ุฅูŠู‚ุงู ุงู„ุฐูŠ ูŠูุนู„ ู…ุง
// ู†ุญู† ู†ุฑูŠุฏ. ุนู„ู‰ ุงู„ุฌุงู†ุจ ุงู„ุฅูŠุฌุงุจูŠุŒ ู„ุง ู†ุญุชุงุฌ ุฅู„ู‰ ูƒู„ ุงู„ุชุนู‚ูŠุฏ ุงู„ุฐูŠ ุชุชุณู… ุจู‡ ุนู…ู„ูŠุฉ ุงู„ุชุดุบูŠู„ ูˆุงู„ุฅูŠู‚ุงู
// ุทู„ุจ. ุนู„ู‰ ุงู„ุฌุงู†ุจ ุงู„ุณู„ุจูŠุŒ ู„ูŠุณ ู„ุฏูŠู†ุง ู…ุณุงุนุฏุŒ ู„ุฐุง ุนู„ูŠู†ุง ุงู„ุญุตูˆู„ ุนู„ูŠู‡
// ุฃูƒุซุฑ ู‚ู„ูŠู„ุงู‹ ู…ู†ุฎุฑุทู‹ุง ููŠ ุงู„ุชูุงุตูŠู„ุŒ ู„ูƒู† ู‡ุฐุง ุชุงูู‡.
//
// ู„ุฐุง ุฃูˆู„ุงู‹ุŒ ู†ู‚ูˆู… ุจุฅู†ุดุงุก ู…ุฃุฎุฐ ุชูˆุตูŠู„ ูˆู†ุฌุฑูŠ ุงุชุตุงู„ ุงู„ุชุชุจุน ุนู„ูŠู‡ุ› ุซู… ู†ู…ุฑ
// ู‡ุฐุง ุงู„ู…ู‚ุจุณ ููŠ ู…ูู†ุดุฆ ุชุทุจูŠู‚ู†ุง ุงู„ุจุณูŠุท ุงู„ุฐูŠ ู‚ู…ู†ุง ุจู‡ ุจุนุฏ ุฐู„ูƒ
// ุงู„ุชุซุจูŠุช ููŠ ุงู„ุนู‚ุฏุฉ ุงู„ู…ุตุฏุฑ.
// ========================================================================================= ========================================
//

ูˆูŠู†ุจุบูŠ ุฃู† ูŠูƒูˆู† ู‡ุฐุง ุฃูŠุถู‹ุง ูˆุงุถุญู‹ุง ุจุฐุงุชู‡.

ุงู„ุฌุฒุก ุงู„ุชุงู„ูŠ ู‡ูˆ ุฅุนู„ุงู† ุงุณู… ุงู„ุชุทุจูŠู‚ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุงู„ุชูŠ ูˆุถุนู†ุงู‡ุง ู…ุนู‹ุง ู„ู„ุณู…ุงุญ
ู‡ูŠู‡ ุงู„ุจุฑูŠุฒุฉ ู„ูŠุชู… ุฅู†ุดุงุคู‡ุง ููŠ ูˆู‚ุช ุงู„ุชูƒูˆูŠู†.

ูุฆุฉ MyApp: ุงู„ุชุทุจูŠู‚ ุงู„ุนุงู…
{
ุงู„ุฌู…ู‡ูˆุฑ:

ุชุทุจูŠู‚ูŠ ()ุ›
ุงู„ุธุงู‡ุฑูŠ ~MyApp();

ุฅุนุฏุงุฏ ุจุงุทู„ (Ptr ุงู„ู…ู‚ุจุณุŒ ุนู†ูˆุงู† ุงู„ุนู†ูˆุงู†ุŒ uint32_t ุญุฌู… ุงู„ุญุฒู…ุฉุŒ
uint32_t nPacketsุŒ DataRate dataRate)ุ›

ุฎุงุต:
StartApplication ุจุงุทู„ุฉ ุงูุชุฑุงุถูŠุฉ (ุจุงุทู„ุฉ)ุ›
StopApplication ุจุงุทู„ ุงูุชุฑุงุถูŠ (ุจุงุทู„)ุ›

ุจุงุทู„ุฉ ุฌุฏูˆู„ุฉ (ุจุงุทู„ุฉ)ุ›
ุจุงุทู„ุฉ SendPacket (ุจุงุทู„ุฉ)ุ›

ุจูŠ ุชูŠ ุขุฑ m_socket;
ุงู„ุนู†ูˆุงู† ู…_ุจูŠุฑุ›
uint32_t m_packetSize;
uint32_t m_nPackets;
DataRate m_dataRate;
ู…ุนุฑู ุงู„ุญุฏุซ m_sendEvent;
ู…ู†ุทู‚ูŠ m_runningุ›
uint32_t m_packetsSent;
};

ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุฃู† ู‡ุฐู‡ ุงู„ูุฆุฉ ุชุฑุซ ู…ู† NS-3 ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูุตู„. ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰
src/network/model/application.h ุฅุฐุง ูƒู†ุช ู…ู‡ุชู…ู‹ุง ุจู…ุง ู‡ูˆ ู…ูˆุฑูˆุซ. ุงู„ ุงุณู… ุงู„ุชุทุจูŠู‚
ุงู„ุทุจู‚ุฉ ู…ู„ุฒู…ุฉ ุจุชุฌุงูˆุฒ StartApplication StopApplication ุทูุฑู‚. ู‡ุคู„ุงุก
ูŠุชู… ุงุณุชุฏุนุงุก ุงู„ุฃุณุงู„ูŠุจ ุชู„ู‚ุงุฆูŠู‹ุง ุนู†ุฏู…ุง ุงุณู… ุงู„ุชุทุจูŠู‚ ู…ุทู„ูˆุจ ู„ุจุฏุก ูˆุฅูŠู‚ุงู ุฅุฑุณุงู„ ุงู„ุจูŠุงู†ุงุช
ุฃุซู†ุงุก ุงู„ู…ุญุงูƒุงุฉ.

ุงู„ุจุฏุก / ุงู„ุชูˆู‚ู ุงู„ุชุทุจูŠู‚ุงุช
ู…ู† ุงู„ู…ููŠุฏ ู‚ุถุงุก ุจุนุถ ุงู„ูˆู‚ุช ููŠ ุดุฑุญ ูƒูŠููŠุฉ ุจุฏุก ุงู„ุฃุญุฏุงุซ ูุนู„ูŠู‹ุง ููŠ
ู†ุธุงู…. ู‡ุฐุง ุชูุณูŠุฑ ุขุฎุฑ ุนู…ูŠู‚ ุฅู„ู‰ ุญุฏ ู…ุงุŒ ูˆูŠู…ูƒู† ุชุฌุงู‡ู„ู‡ ุฅุฐุง ู„ู… ุชูƒู† ูƒุฐู„ูƒ
ุงู„ุชุฎุทูŠุท ู„ู„ู…ุบุงู…ุฑุฉ ููŠ ุฃุนู…ุงู‚ ุงู„ู†ุธุงู…. ูˆู…ุน ุฐู„ูƒ ูู‡ูˆ ู…ููŠุฏ ููŠ ุฐู„ูƒ
ุชุชู†ุงูˆู„ ุงู„ู…ู†ุงู‚ุดุฉ ูƒูŠููŠุฉ ุนู…ู„ ุจุนุถ ุงู„ุฃุฌุฒุงุก ุงู„ู…ู‡ู…ุฉ ุฌุฏู‹ุง NS-3 ุงู„ุนู…ู„ ูˆูŠูƒุดู ุจุนุถ
ุงู„ุชุนุงุจูŠุฑ ุงู„ู‡ุงู…ุฉ. ุฅุฐุง ูƒู†ุช ุชุฎุทุท ู„ุชู†ููŠุฐ ู†ู…ุงุฐุฌ ุฌุฏูŠุฏุฉุŒ ูู…ู† ุงู„ู…ุญุชู…ู„ ุฃู†ูƒ ุชุฑูŠุฏ ุฐู„ูƒ
ูู‡ู… ู‡ุฐุง ุงู„ู‚ุณู….

ุงู„ุทุฑูŠู‚ุฉ ุงู„ุฃูƒุซุฑ ุดูŠูˆุนู‹ุง ู„ุจุฏุก ุถุฎ ุงู„ุฃุญุฏุงุซ ู‡ูŠ ุงู„ุจุฏุก ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ. ูˆูŠุชู… ุฐู„ูƒ ูƒู…ุง
ู†ุชูŠุฌุฉ ู„ู„ุฎุทูˆุท ุงู„ู…ุฃู„ูˆูุฉ ุงู„ุชุงู„ูŠุฉ (ู†ุฃู…ู„) ู„ู€ NS-3 ุงู„ู†ุตูŠ:

ุชุทุจูŠู‚ุงุช ุญุงูˆูŠุฉ ุงู„ุชุทุจูŠู‚ุงุช = ...
apps.Start (ุซูˆุงู†ูŠ (1.0))ุ›
apps.Stop (ุซูˆุงู†ูŠ (10.0))ุ›

ุฑู…ุฒ ุญุงูˆูŠุฉ ุงู„ุชุทุจูŠู‚ (ุงู†ุธุฑ src/network/helper/application-container.h ุฅุฐุง ูƒู†ุช ูƒุฐู„ูƒ
ู…ู‡ุชู…) ุญู„ู‚ุงุช ู…ู† ุฎู„ุงู„ ุงู„ุชุทุจูŠู‚ุงุช ูˆุงู„ู…ูƒุงู„ู…ุงุช ุงู„ูˆุงุฑุฏุฉุŒ

ุงู„ุชุทุจูŠู‚->SetStartTime (startTime)ุ›

ู†ุชูŠุฌุฉ ู„ู„ ุงู„ุชุทุจูŠู‚ุงุช.ุงุจุฏุฃ ุฏุนูˆุฉ ูˆ

ุงู„ุชุทุจูŠู‚->SetStopTime (stopTime)ุ›

ู†ุชูŠุฌุฉ ู„ู„ apps.Stop ู…ูƒุงู„ู…ุฉ.

ุงู„ู†ุชูŠุฌุฉ ุงู„ู†ู‡ุงุฆูŠุฉ ู„ู‡ุฐู‡ ุงู„ู…ูƒุงู„ู…ุงุช ู‡ูŠ ุฃู†ู†ุง ู†ุฑูŠุฏ ุงู„ุญุตูˆู„ ุนู„ู‰ ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ ุชู„ู‚ุงุฆูŠู‹ุง
ุฅุฌุฑุงุก ู…ูƒุงู„ู…ุงุช ุฅู„ู‰ ู…ูˆู‚ุนู†ุง ุงู„ุชุทุจูŠู‚ุงุช ู„ุฅุฎุจุงุฑู‡ู… ู…ุชู‰ ูŠุจุฏุฃูˆู† ูˆูŠุชูˆู‚ููˆู†. ููŠ ุญุงู„ุฉ
ุงุณู… ุงู„ุชุทุจูŠู‚ุŒ ูŠุฑุซ ู…ู† ุงู„ุทุจู‚ุฉ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูˆูŠุชุฌุงูˆุฒ StartApplicationูˆ
StopApplication. ู‡ุฐู‡ ู‡ูŠ ุงู„ูˆุธุงุฆู ุงู„ุชูŠ ุณูŠุชู… ุงุณุชุฏุนุงุคู‡ุง ุจูˆุงุณุทุฉ ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ ููŠ
ูˆู‚ุช ู…ู†ุงุณุจ. ููŠ ุญุงู„ุฉ ุงุณู… ุงู„ุชุทุจูŠู‚ ุณูˆู ุชุฌุฏ ุฐู„ูƒ MyApp::StartApplication ู‡ู„
ุงู„ุฃูˆู„ูŠ ู…ุฃุฒู‚ูˆ ุงู„ุชูˆุงุตู„ ุนู„ู‰ ุงู„ู…ู‚ุจุณุŒ ุซู… ูŠุจุฏุฃ ุชุฏูู‚ ุงู„ุจูŠุงู†ุงุช ุนู† ุทุฑูŠู‚ ุงู„ุงุชุตุงู„
MyApp::SendPacket. MyApp::StopApplication ูŠุชูˆู‚ู ุนู† ุชูˆู„ูŠุฏ ุงู„ุญุฒู… ุนู† ุทุฑูŠู‚ ุฅู„ุบุงุก ุฃูŠ ู…ู†ู‡ุง
ุฃุญุฏุงุซ ุงู„ุฅุฑุณุงู„ ุงู„ู…ุนู„ู‚ุฉ ุซู… ุชู‚ูˆู… ุจุฅุบู„ุงู‚ ุงู„ู…ู‚ุจุณ.

ูˆุงุญุฏุฉ ู…ู† ุงู„ุฃุดูŠุงุก ุงู„ุฌู…ูŠู„ุฉ ุญูˆู„ NS-3 ู‡ูˆ ุฃู†ู‡ ูŠู…ูƒู†ูƒ ุชุฌุงู‡ู„ ุงู„ุชู†ููŠุฐ ุชู…ุงู…ู‹ุง
ุชูุงุตูŠู„ ุนู† ูƒูŠููŠุฉ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูŠุชู… ุงุณุชุฏุนุงุคู‡ "ุชู„ู‚ุงุฆูŠู‹ุง" ุจูˆุงุณุทุฉ ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ ุนู„ู‰ ุงู„ูŠู…ูŠู†
ูˆู‚ุช. ูˆู„ูƒู† ู…ู†ุฐ ุฃู† ุบุงู…ุฑู†ุง ุจุงู„ูุนู„ ุจุงู„ุนู…ู‚ NS-3 ุจุงู„ูุนู„ุŒ ุฏุนูˆู†ุง ู†ุฐู‡ุจ ู„ุฐู„ูƒ.

ุฅุฐุง ู†ุธุฑุชู… src/network/model/application.cc ุณุชุฌุฏ ุฃู† SetStartTime ุทุฑูŠู‚ุฉ
ู„ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูู‚ุท ูŠู‚ูˆู… ุจุชุนูŠูŠู† ู…ุชุบูŠุฑ ุงู„ุนุถูˆ m_startTime ูˆ SetStopTime ุทุฑูŠู‚ุฉ
ู…ุฌู…ูˆุนุงุช ูู‚ุท m_stopTime. ูˆู…ู† ู‡ู†ุงูƒุŒ ูˆู…ู† ุฏูˆู† ุจุนุถ ุงู„ุชู„ู…ูŠุญุงุชุŒ ู…ู† ุงู„ู…ุญุชู…ู„ ุฃู† ูŠู†ุชู‡ูŠ ุงู„ู…ุณุงุฑ.

ุฅู† ุงู„ู…ูุชุงุญ ู„ุงุณุชุนุงุฏุฉ ุงู„ู…ุณุงุฑ ู…ุฑุฉ ุฃุฎุฑู‰ ู‡ูˆ ู…ุนุฑูุฉ ุฃู† ู‡ู†ุงูƒ ู‚ุงุฆู…ุฉ ุนุงู„ู…ูŠุฉ ุจุฌู…ูŠุน ุงู„ุนู†ุงุตุฑ
ุงู„ุนู‚ุฏ ููŠ ุงู„ู†ุธุงู…. ูƒู„ู…ุง ู‚ู…ุช ุจุฅู†ุดุงุก ุนู‚ุฏุฉ ููŠ ุงู„ู…ุญุงูƒุงุฉุŒ ุณูŠุธู‡ุฑ ู…ุคุดุฑ ู„ุชู„ูƒ ุงู„ุนู‚ุฏุฉ
ูŠุถุงู ุฅู„ู‰ ุงู„ุนุงู„ู…ูŠุฉ NodeList.

ุงู„ู‚ ู†ุธุฑุฉ ุนู„ู‰ src/network/model/node-list.cc ูˆุงู„ุจุญุซ ุนู† ู‚ุงุฆู…ุฉ ุงู„ุนู‚ุฏ::ุฅุถุงูุฉ. ุงู„ุฌู…ู‡ูˆุฑ
ูŠุณุชุฏุนูŠ ุงู„ุชู†ููŠุฐ ุงู„ุซุงุจุช ุชุทุจูŠู‚ู‹ุง ุฎุงุตู‹ุง ูŠุณู…ู‰ NodeListPriv::ุฅุถุงูุฉ. ู‡ุฐุง
ู‡ูˆ ุฑู…ุฒ ุดุงุฆุน ู†ุณุจูŠู‹ุง ููŠ NS-3. ู„ุฐู„ูƒุŒ ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ NodeListPriv::ุฅุถุงูุฉ. ู‡ุง ุฃู†ุช
ุณูˆู ู†ุฌุฏุŒ

Simulator::ScheduleWithContext (index, TimeStep (0), &Node::Initialize,node);

ูŠุฎุจุฑูƒ ู‡ุฐุง ุฃู†ู‡ ูƒู„ู…ุง ุชู… ุฅู†ุดุงุก ุนู‚ุฏุฉ ููŠ ุงู„ู…ุญุงูƒุงุฉุŒ ูŠุชู… ุฅุฌุฑุงุก ู…ูƒุงู„ู…ุฉ ูƒุฃุซุฑ ุฌุงู†ุจูŠ
ุฅู„ู‰ ุชู„ูƒ ุงู„ุนู‚ุฏุฉ ุชู‡ูŠุฆุฉ ุชู…ุช ุฌุฏูˆู„ุฉ ุงู„ุทุฑูŠู‚ุฉ ู„ูƒ ูˆุงู„ุชูŠ ุชุญุฏุซ ููŠ ุงู„ูˆู‚ุช ุตูุฑ. ู„ุง
ู‚ุฑุฃุช ุงู„ูƒุซูŠุฑ ููŠ ู‡ุฐุง ุงู„ุงุณู…ุŒ ุญุชู‰ ุงู„ุขู†. ู‡ุฐุง ู„ุง ูŠุนู†ูŠ ุฃู† ุงู„ุนู‚ุฏุฉ ุณุชุจุฏุฃ ููŠ ุงู„ุนู…ู„
ุฃูŠ ุดูŠุกุŒ ูŠู…ูƒู† ุชูุณูŠุฑู‡ ุนู„ู‰ ุฃู†ู‡ ู…ูƒุงู„ู…ุฉ ุฅุนู„ุงู…ูŠุฉ ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ู„ุฅุฎุจุงุฑู‡ุง ุจุฃู†
ู„ู‚ุฏ ุจุฏุฃุช ุงู„ู…ุญุงูƒุงุฉุŒ ูˆู„ูŠุณุช ุฏุนูˆุฉ ู„ู„ุนู…ู„ ู„ุฅุฎุจุงุฑ ุงู„ุนู‚ุฏุฉ ุจุงู„ุจุฏุก ููŠ ุงู„ู‚ูŠุงู… ุจุดูŠุก ู…ุง.

ูˆุจุงู„ุชุงู„ูŠุŒ ู‚ุงุฆู…ุฉ ุงู„ุนู‚ุฏ::ุฅุถุงูุฉ ูŠู‚ูˆู… ุจุฌุฏูˆู„ุฉ ู…ูƒุงู„ู…ุฉ ุจุดูƒู„ ุบูŠุฑ ู…ุจุงุดุฑ ุฅู„ู‰ ุนู‚ุฏุฉ :: ุชู‡ูŠุฆุฉ ููŠ ุงู„ูˆู‚ุช ุตูุฑ ู„ุชู‚ุฏูŠู… ุงู„ู…ุดูˆุฑุฉ ุฃ
ุงู„ุนู‚ุฏุฉ ุงู„ุฌุฏูŠุฏุฉ ุงู„ุชูŠ ุจุฏุฃุช ููŠู‡ุง ุงู„ู…ุญุงูƒุงุฉ. ุฅุฐุง ู†ุธุฑุช ููŠ src/network/model/node.h ู„ุตุญุชูƒ!
ูˆู…ุน ุฐู„ูƒุŒ ู„ู† ุชุฌุฏ ุทุฑูŠู‚ุฉ ุชุณู…ู‰ ุนู‚ุฏุฉ :: ุชู‡ูŠุฆุฉ. ูˆุชุจูŠู† ุฃู†
ุชู‡ูŠุฆุฉ ุงู„ุทุฑูŠู‚ุฉ ู…ูˆุฑูˆุซุฉ ู…ู† ุงู„ูุตู„ ู‡ุฏู. ูƒุงูุฉ ุงู„ูƒุงุฆู†ุงุช ููŠ ุงู„ู†ุธุงู… ูŠู…ูƒู† ุฃู† ุชูƒูˆู†
ูŠุชู… ุฅุนู„ุงู…ูƒ ุนู†ุฏ ุจุฏุก ุงู„ู…ุญุงูƒุงุฉุŒ ูˆุงู„ูƒุงุฆู†ุงุช ู…ู† ุงู„ูุฆุฉ Node ู‡ูŠ ู…ุฌุฑุฏ ู†ูˆุน ูˆุงุญุฏ ู…ู†ู‡ุง
ุดุงุก.

ุงู„ู‚ ู†ุธุฑุฉ ุนู„ู‰ src/core/model/object.cc ุงู„ุชุงู„ูŠ ูˆุงุจุญุซ ุนู†ู‡ ุงู„ูƒุงุฆู†::ุชู‡ูŠุฆุฉ. ู‡ุฐุง ุงู„ุฑู…ุฒ
ู„ูŠุณุช ูˆุงุถุญุฉ ูƒู…ุง ูƒู†ุช ู‚ุฏ ุชูˆู‚ุนุช ู…ู†ุฐ ุฐู„ูƒ ุงู„ุญูŠู† NS-3 ุงู„ุฃุฌุณุงู… ุชู‚ู†ูŠุฉ
ุชุฌู…ูŠุน. ุงู„ูƒูˆุฏ ููŠ ุงู„ูƒุงุฆู†::ุชู‡ูŠุฆุฉ ุซู… ุญู„ู‚ุงุช ู…ู† ุฎู„ุงู„ ูƒุงูุฉ ุงู„ูƒุงุฆู†ุงุช ุงู„ุชูŠ
ุชู… ุชุฌู…ูŠุนู‡ุง ู…ุนู‹ุง ูˆุชุณุชุฏุนูŠู‡ุง ู‚ู… ุจุงู„ุชู‡ูŠุฆุฉ ุทุฑูŠู‚ุฉ. ู‡ุฐู‡ ู„ุบุฉ ุฃุฎุฑู‰
ูˆู‡ุฐุง ุฃู…ุฑ ุดุงุฆุน ุฌุฏู‹ุง ููŠ NS-3ุŒ ูŠูุทู„ู‚ ุนู„ูŠู‡ ุฃุญูŠุงู†ู‹ุง "ู†ู…ุท ุชุตู…ูŠู… ุงู„ู‚ุงู„ุจ".: ุนุงู…
ุทุฑูŠู‚ุฉ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ุบูŠุฑ ุงู„ุงูุชุฑุงุถูŠุฉุŒ ูˆุงู„ุชูŠ ุชุธู„ ุซุงุจุชุฉ ุนุจุฑ ุนู…ู„ูŠุงุช ุงู„ุชู†ููŠุฐุŒ ูˆุงู„ุชูŠ ุชุณุชุฏุนูŠ
ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ ุงู„ุงูุชุฑุงุถูŠุฉ ุงู„ุฎุงุตุฉ ุงู„ู…ูˆุฑูˆุซุฉ ูˆุงู„ู…ู†ูุฐุฉ ุจูˆุงุณุทุฉ ุงู„ูุฆุงุช ุงู„ูุฑุนูŠุฉ.
ุงู„ุฃุณู…ุงุก ุนุงุฏุฉ ู…ุง ุชูƒูˆู† ู…ุซู„ ุงุณู… ุงู„ุฃุณู„ูˆุจ ู„ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช ุงู„ุนุงู…ุฉ ูˆ DoMethodName ู„ู€
ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช ุงู„ุฎุงุตุฉ.

ู‡ุฐุง ูŠุฎุจุฑู†ุง ุฃู†ู‡ ูŠุฌุจ ุนู„ูŠู†ุง ุงู„ุจุญุซ ุนู† ุงู„ุนู‚ุฏุฉ::DoInitialize ุงู„ุทุฑูŠู‚ุฉ ููŠ
src/network/model/node.cc ู„ู„ุทุฑูŠู‚ุฉ ุงู„ุชูŠ ุณูˆู ู†ูˆุงุตู„ ุทุฑูŠู‚ู†ุง. ุฅุฐุง ู‚ู…ุช ุจุชุญุฏูŠุฏ ู…ูˆู‚ุน
ุงู„ูƒูˆุฏุŒ ุณุชุฌุฏ ุทุฑูŠู‚ุฉ ู„ู„ุชูƒุฑุงุฑ ุนุจุฑ ุฌู…ูŠุน ุงู„ุฃุฌู‡ุฒุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ุนู‚ุฏุฉ ุซู…
ุฌู…ูŠุน ุงู„ุชุทุจูŠู‚ุงุช ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ Node Calling ุงู„ุฌู‡ุงุฒ-> ุชู‡ูŠุฆุฉ ุงู„ุชุทุจูŠู‚->ุงู„ุชู‡ูŠุฆุฉ
ุนู„ู‰ ุงู„ุชูˆุงู„ูŠ.

ุฑุจู…ุง ุชุนุฑู ุจุงู„ูุนู„ ุชู„ูƒ ุงู„ูุตูˆู„ ุงู„ุฌู‡ุงุฒ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูƒู„ุงู‡ู…ุง ูŠุฑุซ ู…ู† ุงู„ูุตู„ ู‡ุฏู
ูˆุจุงู„ุชุงู„ูŠ ูุฅู† ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ ุณุชูƒูˆู† ุงู„ู†ุธุฑ ุฅู„ู‰ ู…ุง ุณูŠุญุฏุซ ูˆู…ุชู‰ ุงู„ุชุทุจูŠู‚::ู‚ู… ุจุงู„ุชู‡ูŠุฆุฉ is
ู…ูุณูŽู…ู‘ู‹ู‰. ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ src/network/model/application.cc ูˆุณูˆู ุชุฌุฏ:

ุจุงุทู„
ุงู„ุชุทุจูŠู‚::DoInitialize (ุจุงุทู„)
{
m_startEvent = Simulator::Schedule (m_startTime, &Application::StartApplication, this);
ุฅุฐุง (m_stopTime!= TimeStep (0))
{
m_stopEvent = Simulator::Schedule (m_stopTime, &Application::StopApplication, this);
}
ุงู„ูƒุงุฆู†::DoInitialize ();
}

ูˆู‡ู†ุง ูˆุตู„ู†ุง ุฃุฎูŠุฑู‹ุง ุฅู„ู‰ ู†ู‡ุงูŠุฉ ุงู„ู…ุณุงุฑ. ุฅุฐุง ูƒู†ุช ู‚ุฏ ุฃุจู‚ูŠุช ูƒู„ ุดูŠุก ููŠ ู†ุตุงุจู‡ ุงู„ุตุญูŠุญุŒ ุนู†ุฏู…ุง
ุชู†ููŠุฐ NS-3 ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏุŒ ูŠุฑุซ ุชุทุจูŠู‚ูƒ ุงู„ุฌุฏูŠุฏ ู…ู† ุงู„ูุตู„ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ. ุฃู†ุช
ุชุฌุงูˆุฒ ุงู„ StartApplication StopApplication ุงู„ุฃุณุงู„ูŠุจ ูˆุชูˆููŠุฑ ุงู„ุขู„ูŠุงุช ุงู„ู„ุงุฒู…ุฉ ู„ุฐู„ูƒ
ุจุฏุก ูˆุฅูŠู‚ุงู ุชุฏูู‚ ุงู„ุจูŠุงู†ุงุช ู…ู† ุฌู‡ุงุฒูƒ ุงู„ุฌุฏูŠุฏ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ. ุนู†ุฏู…ุง ุชูƒูˆู† ุงู„ุนู‚ุฏุฉ
ุชู… ุฅู†ุดุงุคู‡ุง ููŠ ุงู„ู…ุญุงูƒุงุฉุŒ ูŠุชู… ุฅุถุงูุชู‡ุง ุฅู„ู‰ ุงู„ุนุงู„ู…ูŠุฉ NodeList. ุนู…ู„ูŠุฉ ุฅุถุงูุฉ ุนู‚ุฏุฉ ุฅู„ู‰
NodeList ูŠุคุฏูŠ ุฅู„ู‰ ุฌุฏูˆู„ุฉ ุญุฏุซ ู…ุญุงูƒุงุฉ ู„ู„ูˆู‚ุช ุตูุฑ ุงู„ุฐูŠ ูŠุณุชุฏุนูŠ
ุนู‚ุฏุฉ :: ุชู‡ูŠุฆุฉ ุทุฑูŠู‚ุฉ ุงู„ุนู‚ุฏุฉ ุงู„ู…ุถุงูุฉ ุญุฏูŠุซู‹ุง ุงู„ุชูŠ ุณูŠุชู… ุงุณุชุฏุนุงุคู‡ุง ุนู†ุฏ ุจุฏุก ุงู„ู…ุญุงูƒุงุฉ.
ู†ุธุฑู‹ุง ู„ุฃู† ุงู„ุนู‚ุฏุฉ ุชุฑุซ ู…ู† ู‡ุฏูุŒ ูˆู‡ุฐุง ูŠุฏุนูˆ ุงู„ูƒุงุฆู†::ุชู‡ูŠุฆุฉ ุงู„ุทุฑูŠู‚ุฉ ุนู„ู‰ ุงู„ุนู‚ุฏุฉ
ูˆุงู„ุฐูŠ ุจุฏูˆุฑู‡ ูŠุฏุนูˆ ู‚ู… ุจุงู„ุชู‡ูŠุฆุฉ ุงู„ุฃุณุงู„ูŠุจ ุนู„ู‰ ูƒุงูุฉ ุงู„ุฃุฌุณุงู… ุงู„ู…ุฌู…ุนุฉ ุฅู„ู‰
ุงู„ุนู‚ุฏุฉ (ููƒุฑ ููŠ ู†ู…ุงุฐุฌ ุงู„ุชู†ู‚ู„). ู…ู†ุฐ ุงู„ุนู‚ุฏุฉ ู‡ุฏู ุชู… ุชุฌุงูˆุฒู‡ ู‚ู… ุจุงู„ุชู‡ูŠุฆุฉุŒ ุฃู†
ูŠุชู… ุงุณุชุฏุนุงุก ุงู„ุทุฑูŠู‚ุฉ ุนู†ุฏ ุจุฏุก ุงู„ู…ุญุงูƒุงุฉ. ุงู„ ุงู„ุนู‚ุฏุฉ::DoInitialize ุชุณุชุฏุนูŠ ุงู„ุทุฑูŠู‚ุฉ
ุชู‡ูŠุฆุฉ ุฃุณุงู„ูŠุจ ุฌู…ูŠุน ุงู„ุชุทุจูŠู‚ุงุช ุนู„ู‰ ุงู„ุนู‚ุฏุฉ. ู…ู†ุฐ ุงู„ุชุทุจูŠู‚ุงุช ู‡ู… ุฃูŠุถุง
ุงู„ุฃุฌุณุงู…ุŒ ู‡ุฐู‡ ุชุณุจุจ ุงู„ุชุทุจูŠู‚::ู‚ู… ุจุงู„ุชู‡ูŠุฆุฉ ู„ูŠุชู… ุงุณุชุฏุนุงุคู‡ุง. ู…ุชู‰
ุงู„ุชุทุจูŠู‚::ู‚ู… ุจุงู„ุชู‡ูŠุฆุฉ ูŠูุทู„ู‚ ุนู„ูŠู‡ ุฃู†ู‡ ูŠู‚ูˆู… ุจุฌุฏูˆู„ุฉ ุงู„ุฃุญุฏุงุซ ู„ู€ StartApplication
StopApplication ูŠุฏุนูˆ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ. ุชู… ุชุตู…ูŠู… ู‡ุฐู‡ ุงู„ู…ูƒุงู„ู…ุงุช ู„ุจุฏุก ูˆุฅูŠู‚ุงู
ุชุฏูู‚ ุงู„ุจูŠุงู†ุงุช ู…ู† ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ

ู„ู‚ุฏ ูƒุงู†ุช ู‡ุฐู‡ ุฑุญู„ุฉ ุฃุฎุฑู‰ ุทูˆูŠู„ุฉ ุฅู„ู‰ ุญุฏ ู…ุงุŒ ูˆู„ูƒู† ูŠุฌุจ ุงู„ู‚ูŠุงู… ุจู‡ุง ู…ุฑุฉ ูˆุงุญุฏุฉ ูู‚ุทุŒ ูˆุฃู†ุช ุงู„ุขู†
ูู‡ู… ู‚ุทุนุฉ ุฃุฎุฑู‰ ุนู…ูŠู‚ุฉ ุฌุฏู‹ุง NS-3.

ุฅู†ู‘ ุงุณู… ุงู„ุชุทุจูŠู‚ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ
ุฅู†ู‘ ุงุณู… ุงู„ุชุทุจูŠู‚ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูŠุญุชุงุฌ ุฅู„ู‰ ู…ู†ุดุฆ ูˆู…ุฏู…ุฑ ุจุงู„ุทุจุน:

MyApp::MyApp ()
: m_socket (0)ุŒ
ู…_ุงู„ู†ุธูŠุฑ ()ุŒ
m_packetSize (0)ุŒ
m_nุงู„ุญุฒู… (0)ุŒ
m_dataRate (0)ุŒ
m_sendEvent ()ุŒ
m_running (ุฎุทุฃ)ุŒ
m_packetsSent (0)
{
}

MyApp::~MyApp()
{
m_socket = 0;
}

ุฅู† ูˆุฌูˆุฏ ุงู„ุฌุฒุก ุงู„ุชุงู„ูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ู‡ูˆ ุงู„ุณุจุจ ุงู„ุฑุฆูŠุณูŠ ูˆุฑุงุก ูƒุชุงุจุชู†ุง ู„ู‡ุฐุง ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ in
ุงู„ู…ูƒุงู† ุงู„ุฃูˆู„.

ุจุงุทู„
MyApp::ุงู„ุฅุนุฏุงุฏ (Ptr ุงู„ู…ู‚ุจุณุŒ ุนู†ูˆุงู† ุงู„ุนู†ูˆุงู†ุŒ uint32_t ุญุฌู… ุงู„ุญุฒู…ุฉุŒ
uint32_t nPacketsุŒ DataRate dataRate)
{
m_socket = ุงู„ู…ู‚ุจุณ;
m_peer = ุนู†ูˆุงู†ุ›
m_packetSize = packetSize;
m_nPackets = nPackets;
m_dataRate = dataRate;
}

ูŠุฌุจ ุฃู† ูŠูƒูˆู† ู‡ุฐุง ุงู„ุฑู…ุฒ ูˆุงุถุญู‹ุง ุจุฐุงุชู‡. ู†ุญู† ู†ู‚ูˆู… ูู‚ุท ุจุชู‡ูŠุฆุฉ ู…ุชุบูŠุฑุงุช ุงู„ุฃุนุถุงุก.
ุงู„ุดูŠุก ุงู„ู…ู‡ู… ู…ู† ู…ู†ุธูˆุฑ ุงู„ุชุชุจุน ู‡ูˆ ุจูŠ ุชูŠ ุขุฑ ู…ู‚ุจุณ ุงู„ุฐูŠ ู†ุญู†
ุงู„ู„ุงุฒู…ุฉ ู„ุชูˆููŠุฑ ู„ู„ุชุทุจูŠู‚ ุฃุซู†ุงุก ูˆู‚ุช ุงู„ุชูƒูˆูŠู†. ุฃุฐูƒุฑ ุฃู†ู†ุง ุฐุงู‡ุจูˆู†
ู„ุฅู†ุดุงุก ุงู„ุจุฑูŠุฒุฉ ูƒ TcpSocket (ุงู„ุฐูŠ ูŠุชู… ุชู†ููŠุฐู‡ ุจูˆุงุณุทุฉ TcpNewReno) ูˆุฑุจุทู‡ุง
ู…ุตุฏุฑ ุงู„ุชุชุจุน "CongestionWindow" ู‚ุจู„ ุชู…ุฑูŠุฑู‡ ุฅู„ู‰ ู…ู„ู ุงู‚ุงู…ุฉ ุงู„ุฃุณู„ูˆุจ.

ุจุงุทู„
MyApp::StartApplication (ุจุงุทู„)
{
m_running = true;
m_packetsSent = 0;
m_socket->ุฑุจุท ()ุ›
m_socket->ุงู„ุงุชุตุงู„ (m_peer);
ุฅุฑุณุงู„ ุงู„ุญุฒู…ุฉ ()ุ›
}

ุงู„ูƒูˆุฏ ุฃุนู„ุงู‡ ู‡ูˆ ุงู„ุชู†ููŠุฐ ุงู„ู…ูุชุฌุงูˆุฒ ุงู„ุชุทุจูŠู‚::ุจุฏุก ุงู„ุชุทุจูŠู‚ ู‡ุฐุง ุณูŠูƒูˆู†
ูŠุชู… ุงุณุชุฏุนุงุคู‡ุง ุชู„ู‚ุงุฆูŠู‹ุง ุจูˆุงุณุทุฉ ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ ู„ุจุฏุก ุชุดุบูŠู„ู†ุง ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุชุดุบูŠู„ ููŠ ุงู„ู…ูƒุงู† ุงู„ู…ู†ุงุณุจ
ูˆู‚ุช. ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุฃู†ู‡ ูŠูุนู„ ุงู„ุจุฑูŠุฒุฉ ู…ุฃุฒู‚ ุนู…ู„ูŠุฉ. ุฅุฐุง ูƒู†ุช ุนู„ู‰ ุฏุฑุงูŠุฉ
ู„ุง ูŠู†ุจุบูŠ ุฃู† ูŠูƒูˆู† ู‡ุฐุง ู…ูุงุฌุฆู‹ุง. ูŠู‚ูˆู… ุจุงู„ุฃุนู…ุงู„ ุงู„ู…ุทู„ูˆุจุฉ ุนู„ู‰ ุงู„ู…ุณุชูˆู‰ ุงู„ู…ุญู„ูŠ
ุฌุงู†ุจ ุงู„ุงุชุตุงู„ ุชู…ุงู…ู‹ุง ูƒู…ุง ู‚ุฏ ุชุชูˆู‚ุน. ุงู„ุฃุชู‰ ุงู„ุชูˆุงุตู„ ุณูˆู ุชูุนู„ ู…ุง ู‡ูˆ
ุงู„ู…ุทู„ูˆุจุฉ ู„ุชุฃุณูŠุณ ุงุชุตุงู„ ู…ุน TCP ููŠ ุงู„ุนู†ูˆุงู† m_peer. ูŠู†ุจุบูŠ ุฃู† ูŠูƒูˆู† ูˆุงุถุญุง ุงู„ุขู†
ู„ู…ุงุฐุง ู†ุญุชุงุฌ ุฅู„ู‰ ุชุฃุฌูŠู„ ุงู„ูƒุซูŠุฑ ู…ู† ู‡ุฐุง ุฅู„ู‰ ูˆู‚ุช ุงู„ู…ุญุงูƒุงุฉุŒ ู…ู†ุฐ ุงู„ุชูˆุงุตู„ ุณูˆู ุชุญุชุงุฌ
ุดุจูƒุฉ ุชุนู…ู„ ุจูƒุงู…ู„ ุทุงู‚ุชู‡ุง ู„ุฅูƒู…ุงู„. ุจุนุฏ ุงู„ุชูˆุงุตู„ุฃุทู„ู‚ุช ุญู…ู„ุฉ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุซู… ูŠุจุฏุฃ
ุฅู†ุดุงุก ุฃุญุฏุงุซ ู…ุญุงูƒุงุฉ ุนู† ุทุฑูŠู‚ ุงู„ุงุชุตุงู„ SendPacket.

ูŠุดุฑุญ ุงู„ุฌุฒุก ุงู„ุชุงู„ูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ู„ู€ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูƒูŠููŠุฉ ุงู„ุชูˆู‚ู ุนู† ุฅู†ุดุงุก ุฃุญุฏุงุซ ุงู„ู…ุญุงูƒุงุฉ.

ุจุงุทู„
MyApp::StopApplication (ุจุงุทู„)
{
m_running = false;

ุฅุฐุง (m_sendEvent.IsRunning ())
{
ู…ุญุงูƒูŠ::ุฅู„ุบุงุก (m_sendEvent);
}

ุฅุฐุง (m_socket)
{
m_socket->Close ();
}
}

ููŠ ูƒู„ ู…ุฑุฉ ูŠุชู… ุฌุฏูˆู„ุฉ ุญุฏุซ ู…ุญุงูƒุงุฉุŒ ูŠุชู… ุงู„ุญุฏุซ/ุงู„ูุนุงู„ูŠุฉ ุฃู†ุดุฆ. ุฅุฐุง ูƒุงู† ุงู„ุญุฏุซ/ุงู„ูุนุงู„ูŠุฉ ู…ุนู„ู‚
ุงู„ุชู†ููŠุฐ ุฃูˆ ุงู„ุชู†ููŠุฐ ูˆุทุฑูŠู‚ุชู‡ ูŠุฌุฑูŠ ุณูŠุนูˆุฏ ุตุญูŠุญ. ููŠ ู‡ุฐุง ุงู„ูƒูˆุฏ ุฅุฐุง
ูŠุฌุฑูŠ() ูŠุนูˆุฏ ุตุญูŠุญุงุŒ ูˆู†ุญู† ุฅู„ุบุงุก ุงู„ุญุฏุซ ุงู„ุฐูŠ ูŠุฒูŠู„ู‡ ู…ู† ุญุฏุซ ุงู„ู…ุญุงูƒุงุฉ
ุทุงุจูˆุฑ. ูˆู…ู† ุฎู„ุงู„ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒุŒ ูุฅู†ู†ุง ู†ูƒุณุฑ ุณู„ุณู„ุฉ ุงู„ุฃุญุฏุงุซ ุงู„ุชูŠ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูŠุณุชุฎุฏู… ู„ู„ุญูุงุธ ุนู„ู‰
ุงุฑุณุงู„ ู„ู‡ุง ุงู„ุญุฒู… ูˆ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูŠุฐู‡ุจ ู‡ุงุฏุฆุง. ุจุนุฏ ุฃู† ู‡ุฏุฃู†ุง ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ we
ุงุบู„ุงู‚ ุงู„ู…ู‚ุจุณ ุงู„ุฐูŠ ูŠู…ุฒู‚ ุงุชุตุงู„ TCP.

ูŠุชู… ุญุฐู ุงู„ู…ู‚ุจุณ ุจุงู„ูุนู„ ููŠ ุฃุฏุงุฉ ุงู„ุชุฏู…ูŠุฑ ุนู†ุฏู…ุง ูŠุชู… ุญุฐู m_socket = 0 ูŠุชู… ุชู†ููŠุฐ. ู‡ุฐุง
ูŠุฒูŠู„ ุงู„ู…ุฑุฌุน ุงู„ุฃุฎูŠุฑ ุฅู„ู‰ Ptr ุงู„ุฃุณุงุณูŠ ุงู„ุฐูŠ ูŠุณุจุจ ุชุฏู…ูŠุฑ
ู‡ุฐุง ุงู„ูƒุงุฆู† ุงู„ุฐูŠ ุณูŠุชู… ุงุณุชุฏุนุงุคู‡.

ุฃุฐูƒุฑ ุฐู„ูƒ StartApplication ุชุณู…ู‰ SendPacket ู„ุจุฏุก ุณู„ุณู„ุฉ ุงู„ุฃุญุฏุงุซ ุงู„ุชูŠ ุชุตู
ู‡ูŠู‡ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุงู„ุณู„ูˆูƒ.

ุจุงุทู„
MyApp::SendPacket (ุจุงุทู„)
{
ุจูŠ ุชูŠ ุขุฑ ุงู„ุญุฒู…ุฉ = ุฅู†ุดุงุก (m_packetSize);
m_socket->ุฅุฑุณุงู„ (ุญุฒู…ุฉ)ุ›

ุฅุฐุง (++m_packetsSent <m_nPackets)
{
ุฌุฏูˆู„ุฉ ุชูƒุณุงุณ ()ุ›
}
}

ู‡ู†ุง ุชุฑู‰ ุฐู„ูƒ SendPacket ูŠูุนู„ ุฐู„ูƒ ุชู…ุงู…ุง. ูŠุฎู„ู‚ ุฃ ุฑุฒู…ุฉ ูˆู…ู† ุซู… ูŠูุนู„ ุฅุฑุณุงู„
ูˆุงู„ุฐูŠุŒ ุฅุฐุง ูƒู†ุช ุชุนุฑู ุจูŠุฑูƒู„ูŠ ุณูˆูƒูŠุชุณุŒ ูู…ู† ุงู„ู…ุญุชู…ู„ ุฃู† ูŠูƒูˆู† ู‡ุฐุง ู‡ูˆ ู…ุง ูƒู†ุช ุชุชูˆู‚ุน ุฑุคูŠุชู‡.

ุฅู†ู‡ุง ู…ุณุคูˆู„ูŠุฉ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ู„ู„ุญูุงุธ ุนู„ู‰ ุฌุฏูˆู„ุฉ ุณู„ุณู„ุฉ ุงู„ุฃุญุฏุงุซุŒ ูˆุจุงู„ุชุงู„ูŠ ูุฅู†
ู†ุฏุงุก ุงู„ุณุทูˆุฑ ุงู„ุชุงู„ูŠุฉ ุฌุฏูˆู„Tx ู„ุฌุฏูˆู„ุฉ ุญุฏุซ ุฅุฑุณุงู„ ุขุฎุฑ (ุฃ SendPacket) ุญุชู‰ ุงู„
ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุชู‚ุฑุฑ ุฃู†ู‡ุง ุฃุฑุณู„ุช ู…ุง ูŠูƒููŠ.

ุจุงุทู„
MyApp::ScheduleTx (ุจุงุทู„)
{
ุฅุฐุง (ู…_ุชุดุบูŠู„)
{
ุงู„ูˆู‚ุช ุงู„ุชุงู„ูŠ (ุจุงู„ุซูˆุงู†ูŠ (m_packetSize * 8 / static_cast (m_dataRate.GetBitRate ()))));
m_sendEvent = Simulator::Schedule (tNext, &MyApp::SendPacket, this);
}
}

ู‡ู†ุง ุชุฑู‰ ุฐู„ูƒ ุฌุฏูˆู„Tx ูŠูุนู„ ุฐู„ูƒ ุจุงู„ุถุจุท. ุฅุฐุง ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ู‚ูŠุฏ ุงู„ุชุดุบูŠู„ (ุฅุฐุง
StopApplication ู„ู… ูŠุชู… ุงุณุชุฏุนุงุคู‡) ูุฅู†ู‡ ุณูŠุชู… ุฌุฏูˆู„ุฉ ุญุฏุซ ุฌุฏูŠุฏุŒ ูˆุงู„ุฐูŠ ูŠุฏุนูˆ SendPacket
ู…ุฑุฉ ุฃุฎุฑู‰. ุณูˆู ูŠูƒุชุดู ู‚ุงุฑุฆ ุงู„ุชู†ุจูŠู‡ ุดูŠุฆู‹ุง ูŠุคุฏูŠ ุฃูŠุถู‹ุง ุฅู„ู‰ ูˆุตูˆู„ ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุฌุฏุฏ. ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช
ู„ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ู‡ุฐุง ูู‚ุท. ู„ุง ุนู„ุงู‚ุฉ ู„ู‡ ุจู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ุงู„ุฃุณุงุณูŠ
ู‚ู†ุงุฉ. ูˆู‡ุฐุง ู‡ูˆ ุงู„ู…ุนุฏู„ ุงู„ุฐูŠ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุชู†ุชุฌ ุจุช. ู„ุง ูŠุฃุฎุฐ ููŠ ุงู„ุงุนุชุจุงุฑ
ู‚ู… ุจุญุณุงุจ ุฃูŠ ุญู…ู„ ุฅุถุงููŠ ู„ู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ุฃูˆ ุงู„ู‚ู†ูˆุงุช ุงู„ู…ุฎุชู„ูุฉ ุงู„ุชูŠ ูŠุณุชุฎุฏู…ู‡ุง ู„ู†ู‚ู„ ุงู„ุจูŠุงู†ุงุช
ุจูŠุงู†ุงุช. ุฅุฐุง ู‚ู…ุช ุจุชุนูŠูŠู† ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ู„ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุฅู„ู‰ ู†ูุณ ู…ุนุฏู„ ุงู„ุจูŠุงู†ุงุช ุงู„ุฃุณุงุณูŠุฉ ุงู„ุฎุงุตุฉ ุจูƒ
ู‚ู†ุงุฉ ุณูˆู ุชุญุตู„ ููŠ ู†ู‡ุงูŠุฉ ุงู„ู…ุทุงู ุนู„ู‰ ุชุฌุงูˆุฒ ุณุนุฉ ุงู„ู…ุฎุฒู† ุงู„ู…ุคู‚ุช.

ุฃุซุฑ ุงู„ู…ุตุงุฑู
ุงู„ู‡ุฏู ุงู„ุฃุณุงุณูŠ ู…ู† ู‡ุฐุง ุงู„ุชู…ุฑูŠู† ู‡ูˆ ุงู„ุญุตูˆู„ ุนู„ู‰ ุนู…ู„ูŠุงุช ุฑุฏ ุงุชุตุงู„ ู…ู† TCP ุชุดูŠุฑ ุฅู„ู‰
ุชู… ุชุญุฏูŠุซ ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู…. ุงู„ุฌุฒุก ุงู„ุชุงู„ูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ูŠู†ูุฐ ู…ุง ูŠู‚ุงุจู„ู‡
ุจุงู„ูˆุนุฉ ุงู„ุชุชุจุน:

ุงู„ูุฑุงุบ ุซุงุจุช
CwndChange (uint32_t oldCwndุŒ uint32_t newCwnd)
{
NS_LOG_UNCOND (Simulator::Now ().GetSeconds () << "\t" << newCwnd);
}

ูŠุฌุจ ุฃู† ูŠูƒูˆู† ู‡ุฐุง ู…ุฃู„ูˆูู‹ุง ู„ูƒ ุงู„ุขู†ุŒ ู„ุฐู„ูƒ ู„ู† ู†ุชู†ุงูˆู„ ุงู„ุชูุงุตูŠู„. ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ
ู…ุง ุนู„ูŠูƒ ุณูˆู‰ ุชุณุฌูŠู„ ูˆู‚ุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ุญุงู„ูŠ ูˆุงู„ู‚ูŠู…ุฉ ุงู„ุฌุฏูŠุฏุฉ ู„ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู… ูƒู„ ู…ุฑุฉ
ุงู„ูˆู‚ุช ูŠุชู… ุชุบูŠูŠุฑู‡. ุฑุจู…ุง ูŠู…ูƒู†ูƒ ุฃู† ุชุชุฎูŠู„ ุฃู†ู‡ ูŠู…ูƒู†ูƒ ุชุญู…ูŠู„ ุงู„ุฅุฎุฑุงุฌ ุงู„ู†ุงุชุฌ
ููŠ ุจุฑู†ุงู…ุฌ ุฑุณูˆู…ุงุช (gnuplot ุฃูˆ Excel) ูˆุดุงู‡ุฏ ุนู„ู‰ ุงู„ููˆุฑ ุฑุณู…ู‹ุง ุจูŠุงู†ูŠู‹ุง ุฌู…ูŠู„ุงู‹ ู„ู€
ุณู„ูˆูƒ ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู… ู…ุน ู…ุฑูˆุฑ ุงู„ูˆู‚ุช.

ุฃุถูู†ุง ู…ุฎุฒู† ุชุชุจุน ุฌุฏูŠุฏู‹ุง ู„ุฅุธู‡ุงุฑ ู…ูƒุงู† ุฅุณู‚ุงุท ุงู„ุญุฒู…. ุณู†ู‚ูˆู… ุจุฅุถุงูุฉ ุฎุทุฃ
ู†ู…ูˆุฐุฌู‹ุง ู„ู‡ุฐุง ุงู„ูƒูˆุฏ ุฃูŠุถู‹ุงุŒ ู„ุฐู„ูƒ ุฃุฑุฏู†ุง ุฃู† ู†ูˆุถุญ ู‡ุฐุง ุงู„ุนู…ู„.

ุงู„ูุฑุงุบ ุซุงุจุช
ุขุฑ ุฅูƒุณ ุฏุฑูˆุจ (ุจูŠ ุชูŠ ุขุฑ ุน)
{
NS_LOG_UNCOND ("RxDrop at " << Simulator::Now ().GetSeconds ());
}

ุณูŠุชู… ุชูˆุตูŠู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน ู‡ุฐุง ุจู…ุตุฏุฑ ุงู„ุชุชุจุน "PhyRxDrop" ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ
NetDevice. ูŠุชู… ุชุดุบูŠู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน ู‡ุฐุง ุนู†ุฏ ุฅุณู‚ุงุท ุงู„ุญุฒู…ุฉ ุจูˆุงุณุทุฉ ุงู„ุทุจู‚ุฉ ุงู„ู…ุงุฏูŠุฉ ู„ู…ู„ู
NetDevice. ุฅุฐุง ุฃุฎุฐุช ู…ู†ุนุทูู‹ุง ุตุบูŠุฑู‹ุง ุฅู„ู‰ ุงู„ู…ุตุฏุฑ
(src/point-to-point/model/point-to-point-net-device.cc) ุณุชุฑู‰ ุฃู† ู‡ุฐุง ุงู„ุชุชุจุน
ูŠุดูŠุฑ ุงู„ู…ุตุฏุฑ ุฅู„ู‰ PointToPointNetDevice::m_phyRxDropTrace. ุฅุฐุง ู†ุธุฑุช ุจุนุฏ ุฐู„ูƒ
src/point-to-point/model/point-to-point-net-device.h ู„ู‡ุฐุง ุงู„ู…ุชุบูŠุฑ ุงู„ุนุถูˆุŒ ุณูˆู ุชูุนู„ ุฐู„ูƒ
ุชุฌุฏ ุฃู†ู‡ ุชู… ุงู„ุฅุนู„ุงู† ุนู†ู‡ ูƒู€ ุชุชุจุน ุงู„ุงุชุตุงู„ ุงู„ุญุฒู…ุฉ> >. ู‡ุฐุง ูŠุฌุจ ุฃู† ูŠุฎุจุฑูƒ
ุฃู† ู‡ุฏู ุฑุฏ ุงู„ุงุชุตุงู„ ูŠุฌุจ ุฃู† ูŠูƒูˆู† ุฏุงู„ุฉ ุชูุฑุฌุน ุจุงุทู„ุฉ ูˆุชุฃุฎุฐ ุฏุงู„ุฉ ูˆุงุญุฏุฉ
ุงู„ู…ุนู„ู…ุฉ ูˆู‡ูŠ ุฃ ุจูŠ ุชูŠ ุขุฑ ุงู„ุญุฒู…ุฉ> (ุนู„ู‰ ุงูุชุฑุงุถ ุฃู†ู†ุง ู†ุณุชุฎุฏู… ConnectWithoutContext) -- ูู‚ุท
ู…ุง ู„ุฏูŠู†ุง ุฃุนู„ุงู‡.

ุงู„ุฑุฆูŠุณูŠุฉ ุงู„ุจุฑู†ุงู…ุฌ
ูŠุฌุจ ุฃู† ูŠูƒูˆู† ุงู„ูƒูˆุฏ ุงู„ุชุงู„ูŠ ู…ุฃู„ูˆูู‹ุง ู„ูƒ ุงู„ุขู†:

ู…ุงุฏุจุง
main (int argcุŒ char * argv [])
{
ุนู‚ุฏ NodeContainer
ุงู„ุนู‚ุฏ.ุฅู†ุดุงุก (2);

PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate"ุŒ StringValue ("5 ู…ูŠุฌุง ุจุช ููŠ ุงู„ุซุงู†ูŠุฉ"))ุ›
pointToPoint.SetChannelAttribute ("Delay"ุŒ StringValue ("2ms"))ุ›

ุฃุฌู‡ุฒุฉ NetDeviceContainerุ›
ุงู„ุฃุฌู‡ุฒุฉ = pointToPoint.Install (ุงู„ุนู‚ุฏ)ุ›

ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุฅู†ุดุงุก ุนู‚ุฏุชูŠู† ุจู‚ู†ุงุฉ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุจูŠู†ู‡ู…ุงุŒ ุชู…ุงู…ู‹ุง ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ููŠ ุงู„ุตูˆุฑุฉ
ุงู„ุฑุณู… ุงู„ุชูˆุถูŠุญูŠ ููŠ ุจุฏุงูŠุฉ ุงู„ู…ู„ู.

ุชูุธู‡ุฑ ุงู„ุฃุณุทุฑ ุงู„ู‚ู„ูŠู„ุฉ ุงู„ุชุงู„ูŠุฉ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุดูŠุฆู‹ุง ุฌุฏูŠุฏู‹ุง. ุฅุฐุง ู‚ู…ู†ุง ุจุชุชุจุน ุงู„ุงุชุตุงู„ ุงู„ุฐูŠ ูŠุชุตุฑู
ุชู…ุงู…ู‹ุงุŒ ุณู†ู†ุชู‡ูŠ ุจู†ุงูุฐุฉ ุงุฒุฏุญุงู… ู…ุชุฒุงูŠุฏุฉ ุจุดูƒู„ ุฑุชูŠุจ. ู„ุฑุคูŠุฉ ุฃูŠ
ุณู„ูˆูƒ ู…ุซูŠุฑ ู„ู„ุงู‡ุชู…ุงู…ุŒ ู†ุฑูŠุฏ ุญู‚ู‹ุง ุชู‚ุฏูŠู… ุฃุฎุทุงุก ุงู„ุงุฑุชุจุงุท ุงู„ุชูŠ ุณุชุคุฏูŠ ุฅู„ู‰ ุฅุณู‚ุงุท ุงู„ุญุฒู…ุŒ
ุชุณุจุจ ACKs ู…ูƒุฑุฑุฉ ูˆุชุคุฏูŠ ุฅู„ู‰ ุณู„ูˆูƒูŠุงุช ุฃูƒุซุฑ ุฅุซุงุฑุฉ ู„ู„ุงู‡ุชู…ุงู… ู„ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู….

NS-3 ูˆูŠูˆูุฑ ErrorModel ุงู„ุฃุดูŠุงุก ุงู„ุชูŠ ูŠู…ูƒู† ุฃู† ุชุนู„ู‚ ุนู„ูŠู‡ุง ุงู„ู‚ู†ูˆุงุช. ู†ุญู† ู†ุณุชุฎุฏู…
RateErrorModel ู…ู…ุง ูŠุณู…ุญ ู„ู†ุง ุจุฅุฏุฎุงู„ ุงู„ุฃุฎุทุงุก ููŠ ู…ู„ู ู‚ู†ุงุฉ ููŠ ูˆู‚ุช ู…ุนูŠู† ู…ุนุฏู„.

ุจูŠ ุชูŠ ุขุฑ em = CreateObject ()ุ›
em->SetAttribute ("ErrorRate"ุŒ DoubleValue (0.00001))ุ›
devices.Get (1)->SetAttribute ("ReceiveErrorModel"ุŒ PointerValue (em))ุ›

ุงู„ูƒูˆุฏ ุฃุนู„ุงู‡ ูŠู†ุดุฆ ู…ุซูŠู„ู‹ุง ู„ู€ a RateErrorModel ุงู„ูƒุงุฆู†ุŒ ูˆู‚ู…ู†ุง ุจุชุนูŠูŠู† "ErrorRate" ุงู„ุณู…ุฉ
ุฅู„ู‰ ุงู„ู‚ูŠู…ุฉ ุงู„ู…ุทู„ูˆุจุฉ. ุซู… ู†ู‚ูˆู… ุจุชุนูŠูŠู† ู…ุซูŠู„ ุงู„ู†ุงุชุฌุฉ RateErrorModel ูƒู…ุง ุงู„ุฎุทุฃ
ุงู„ู†ู…ูˆุฐุฌ ุงู„ู…ุณุชุฎุฏู… ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ NetDevice. ูˆู‡ุฐุง ุณูŠุนุทูŠู†ุง ุจุนุถ ุนู…ู„ูŠุงุช ุฅุนุงุฏุฉ ุงู„ุฅุฑุณุงู„ ูˆ
ุฌุนู„ ู…ุคุงู…ุฑุฉ ู„ุฏูŠู†ุง ุฃูƒุซุฑ ุฅุซุงุฑุฉ ู„ู„ุงู‡ุชู…ุงู… ู‚ู„ูŠู„ุง.

ู…ูƒุฏุณ InternetStackHelperุ›
ู…ูƒุฏุณ ุงู„ุชุซุจูŠุช (ุงู„ุนู‚ุฏ) ุ›

ุนู†ูˆุงู† Ipv4AddressHelperุ›
ุนู†ูˆุงู†.SetBase ("10.1.1.0"ุŒ "255.255.255.252")ุ›
Ipv4InterfaceContainer ูˆุงุฌู‡ุงุช = ุนู†ูˆุงู†.ุชุนูŠูŠู† (ุงู„ุฃุฌู‡ุฒุฉ)ุ›

ูŠุฌุจ ุฃู† ูŠูƒูˆู† ุงู„ุฑู…ุฒ ุฃุนู„ุงู‡ ู…ุฃู„ูˆูู‹ุง. ูŠู‚ูˆู… ุจุชุซุจูŠุช ู…ูƒุฏุณุงุช ุงู„ุฅู†ุชุฑู†ุช ุนู„ู‰ ุงู„ุนู‚ุฏุชูŠู† ูˆ
ูŠู†ุดุฆ ูˆุงุฌู‡ุงุช ูˆูŠุนูŠู† ุนู†ุงูˆูŠู† IP ู„ู„ุฃุฌู‡ุฒุฉ ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ.

ู†ุธุฑู‹ุง ู„ุฃู†ู†ุง ู†ุณุชุฎุฏู… TCPุŒ ูู†ุญู† ุจุญุงุฌุฉ ุฅู„ู‰ ุดูŠุก ู…ุง ุนู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ูˆุฌู‡ุฉ ู„ุงุณุชู‚ุจุงู„ TCP
ุงู„ุงุชุตุงู„ุงุช ูˆุงู„ุจูŠุงู†ุงุช. ุงู„ PacketSink ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูŠุดูŠุน ุงุณุชุฎุฏุงู…ู‡ ููŠ NS-3 ู…ู† ุฃุฌู„ ู‡ุฐุง
ุบุฑุถ.

uint16_tsinkPort = 8080;
ุนู†ูˆุงู† ุญูˆุถ ุงู„ุนู†ูˆุงู† (InetSocketAddress(interfaces.GetAddress (1),sinkPort));
PacketSinkHelper packetSinkHelper ("ns3::TcpSocketFactory"ุŒ
InetSocketAddress (Ipv4Address::GetAny(),sinkPort));
ApplicationContainer SinkApps = packetSinkHelper.Install (nodes.Get (1));
SinkApps.Start (Seconds (0.));
SinkApps.Stop (ุซูˆุงู†ูŠ (20.))ุ›

ูŠุฌุจ ุฃู† ูŠูƒูˆู† ูƒู„ ู‡ุฐุง ู…ุฃู„ูˆูู‹ุงุŒ ุจุงุณุชุซู†ุงุกุŒ

PacketSinkHelper packetSinkHelper ("ns3::TcpSocketFactory"ุŒ
InetSocketAddress (Ipv4Address::GetAny(),sinkPort));

ูŠู‚ูˆู… ู‡ุฐุง ุงู„ุฑู…ุฒ ุจุฅู†ุดุงุก ู…ุซูŠู„ ู„ู€ PacketSinkHelper ูˆูŠุฎุจุฑู‡ ุจุฅู†ุดุงุก ู…ุขุฎุฐ ุชูˆุตูŠู„ ุจุงุณุชุฎุฏุงู… ุงู„ูุตู„
ns3::TcpSocketFactory. ุชุทุจู‚ ู‡ุฐู‡ ุงู„ูุฆุฉ ู†ู…ุท ุชุตู…ูŠู… ูŠุณู…ู‰ "ู…ุตู†ุน ุงู„ูƒุงุฆู†ุงุช"
ูˆู‡ูŠ ุขู„ูŠุฉ ุดุงุฆุนุฉ ุงู„ุงุณุชุฎุฏุงู… ู„ุชุญุฏูŠุฏ ูุฆุฉ ุชุณุชุฎุฏู… ู„ุฅู†ุดุงุก ูƒุงุฆู†ุงุช ููŠ ู…ู„ู
ุทุฑูŠู‚ุฉ ู…ุฌุฑุฏุฉ. ู‡ู†ุงุŒ ุจุฏู„ุงู‹ ู…ู† ุงู„ุงุถุทุฑุงุฑ ุฅู„ู‰ ุฅู†ุดุงุก ุงู„ูƒุงุฆู†ุงุช ู†ูุณู‡ุงุŒ ูŠู…ูƒู†ูƒ ุชูˆููŠุฑ
PacketSinkHelper ุณู„ุณู„ุฉ ุชุญุฏุฏ ุฃ ุงู„ู†ูˆุน ุงู„ุณู„ุณู„ุฉ ุงู„ู…ุณุชุฎุฏู…ุฉ ู„ุฅู†ุดุงุก ูƒุงุฆู†
ูˆูŠู…ูƒู† ุจุนุฏ ุฐู„ูƒ ุงุณุชุฎุฏุงู…ู‡ุง ู„ุฅู†ุดุงุก ู…ุซูŠู„ุงุช ู„ู„ูƒุงุฆู†ุงุช ุงู„ุชูŠ ุฃู†ุดุฃู‡ุง ุงู„ู…ุตู†ุน.

ุงู„ู…ุนู„ู…ุฉ ุงู„ู…ุชุจู‚ูŠุฉ ุชุฎุจุฑ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุงู„ุนู†ูˆุงู† ูˆุงู„ู…ู†ูุฐ ุงู„ุฐูŠ ูŠู†ุจุบูŠ ู…ุฃุฒู‚ ุฅู„ู‰.

ุณูŠู‚ูˆู… ุงู„ุณุทุฑุงู† ุงู„ุชุงู„ูŠุงู† ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุจุฅู†ุดุงุก ุงู„ู…ู‚ุจุณ ูˆุชูˆุตูŠู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน.

ุจูŠ ุชูŠ ุขุฑ ns3TcpSocket = ุงู„ู…ู‚ุจุณ::CreateSocket (ุงู„ุนู‚ุฏ.Get (0)ุŒ
TcpSocketFactory::GetTypeId());
ns3TcpSocket->TraceConnectWithoutContext ("CongestionWindow"ุŒ
MakeCallback (&CwndChange));

ูŠุณุชุฏุนูŠ ุงู„ุจูŠุงู† ุงู„ุฃูˆู„ ูˆุธูŠูุฉ ุงู„ุนุถูˆ ุงู„ุซุงุจุช ุงู„ู…ู‚ุจุณ::ุฅู†ุดุงุกSocket ูˆูŠูˆูุฑ ุฃ
ุนู‚ุฏุฉ ูˆุตุฑูŠุญุฉ ุงู„ู†ูˆุน ู„ู…ุตู†ุน ุงู„ูƒุงุฆู† ุงู„ู…ุณุชุฎุฏู… ู„ุฅู†ุดุงุก ุงู„ู…ู‚ุจุณ. ู‡ุฐุง ุงู„
ู…ุณุชูˆู‰ ุงุชุตุงู„ ุฃู‚ู„ ู‚ู„ูŠู„ุงู‹ ู…ู† ู…ุณุชูˆู‰ ุงู„ู…ูƒุงู„ู…ุฉ PacketSinkHelper ุงุณุชุฏุนุงุก ุฃุนู„ุงู‡ุŒ ูˆูŠุณุชุฎุฏู… C++ ุตุฑูŠุญุฉ
ุงูƒุชุจ ุจุฏู„ุงู‹ ู…ู† ูˆุงุญุฏ ูŠุดุงุฑ ุฅู„ูŠู‡ ุจุณู„ุณู„ุฉ. ูˆุฅู„ุง ูู‡ูˆ ู†ูุณ ุงู„ู…ูู‡ูˆู…
ุดูŠุก.

ุจู…ุฌุฑุฏ TcpSocket ูŠุชู… ุฅู†ุดุงุคู‡ ูˆุฅุฑูุงู‚ู‡ ุจุงู„ุนู‚ุฏุฉุŒ ูŠู…ูƒู†ู†ุง ุงุณุชุฎุฏุงู…ู‡
TraceConnectWithoutContext ู„ุชูˆุตูŠู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน CongestionWindow ุจู…ุตุฑู ุงู„ุชุชุจุน ุงู„ุฎุงุต ุจู†ุง.

ุชุฐูƒุฑ ุฃู†ู†ุง ู‚ู…ู†ุง ุจุชุฑู…ูŠุฒ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุญุชู‰ ู†ุชู…ูƒู† ู…ู† ุงุชุฎุงุฐ ุฐู„ูƒ ุงู„ุจุฑูŠุฒุฉ ู„ู‚ุฏ ุตู†ุนู†ุง ู„ู„ุชูˆ (ุฃุซู†ุงุก
ูˆู‚ุช ุงู„ุชูƒูˆูŠู†) ูˆุงุณุชุฎุฏุงู…ู‡ ููŠ ูˆู‚ุช ุงู„ู…ุญุงูƒุงุฉ. ุนู„ูŠู†ุง ุงู„ุขู† ุฅู†ุดุงุก ู…ุซูŠู„ ู„ุฐู„ูƒ
ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ. ู„ู… ู†ูˆุงุฌู‡ ุฃูŠ ู…ุดูƒู„ุฉ ููŠ ุฅู†ุดุงุก ู…ุณุงุนุฏ ู„ุฅุฏุงุฑุฉ ู…ู„ู ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ so
ุณูŠุชุนูŠู† ุนู„ูŠู†ุง ุฅู†ุดุงุคู‡ ูˆุชุซุจูŠุชู‡ "ูŠุฏูˆูŠู‹ุง". ู‡ุฐุง ููŠ ุงู„ูˆุงู‚ุน ุณู‡ู„ ู„ู„ุบุงูŠุฉ:

ุจูŠ ุชูŠ ุขุฑ ุงู„ุชุทุจูŠู‚ = ุฅู†ุดุงุก ูƒุงุฆู† ()ุ›
ุงู„ุชุทุจูŠู‚->ุงู„ุฅุนุฏุงุฏ (ns3TcpSocket,sinkAddress, 1040, 1000, DataRate ("1Mbps"));
ุงู„ุนู‚ุฏุฉ.Get (0)->AddApplication (ุงู„ุชุทุจูŠู‚)ุ›
ุงู„ุชุทุจูŠู‚->ุงุจุฏุฃ (ุงู„ุซูˆุงู†ูŠ (1.));
ุงู„ุชุทุจูŠู‚->ุฅูŠู‚ุงู (ุซูˆุงู†ูŠ (20.))ุ›

ุงู„ุณุทุฑ ุงู„ุฃูˆู„ ูŠุฎู„ู‚ ู‡ุฏู ู…ู† ุงู„ู†ูˆุน ุงุณู… ุงู„ุชุทุจูŠู‚ -- ู…ู„ูƒู†ุง ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ. ุงู„ุณุทุฑ ุงู„ุซุงู†ูŠ ูŠุญูƒูŠ
ู‡ูŠู‡ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ู…ุงุฐุง ุงู„ุจุฑูŠุฒุฉ ู„ู„ุงุณุชุฎุฏุงู…ุŒ ูˆุงู„ุนู†ูˆุงู† ุงู„ุฐูŠ ุชุฑูŠุฏ ุงู„ุงุชุตุงู„ ุจู‡ุŒ ูˆูƒู… ุงู„ุจูŠุงู†ุงุช ุงู„ุชูŠ ุณูŠุชู… ุฅุฑุณุงู„ู‡ุง ุฅู„ูŠู‡
ูƒู„ ุญุฏุซ ุฅุฑุณุงู„ุŒ ูˆุนุฏุฏ ุฃุญุฏุงุซ ุงู„ุฅุฑุณุงู„ ุงู„ู…ุทู„ูˆุจ ุฅู†ุดุงุคู‡ุง ูˆู…ุนุฏู„ ุฅู†ุชุงุฌ ุงู„ุจูŠุงู†ุงุช
ู…ู† ุชู„ูƒ ุงู„ุฃุญุฏุงุซ.

ุจุนุฏ ุฐู„ูƒุŒ ู†ู‚ูˆู… ุจุฅุถุงูุฉ ูŠุฏูˆูŠุงู‹ ุงุณู… ุงู„ุชุทุจูŠู‚ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ู…ุตุฏุฑ ูˆุงุณุชุฏุนุงุก ุตุฑุงุญุฉู‹
ุขุจุฏุฃ ู‚ู„ุฉ ุงู„ู†ูˆู… ุงู„ุฃุณุงู„ูŠุจ ุนู„ู‰ ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ู„ุฅุฎุจุงุฑู‡ ู…ุชู‰ ูŠุจุฏุฃ ูˆูŠุชูˆู‚ู ุนู† ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ
ุดูŠุก.

ู†ุญู† ุจุญุงุฌุฉ ุฅู„ู‰ ุฅุฌุฑุงุก ุงู„ุงุชุตุงู„ ูุนู„ูŠู‹ุง ู…ู† ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ุงู„ู…ุชู„ู‚ูŠ NetDevice ุญุฏุซ ุฅุณู‚ุงุท
ุงู„ู‰ ุขุฑ ุฅูƒุณ ุฏุฑูˆุจ ู…ุนุงูˆุฏุฉ ุงู„ุงุชุตุงู„ ุงู„ุขู†.

devices.Get (1)->TraceConnectWithoutContext("PhyRxDrop", MakeCallback (&RxDrop));

ูŠุฌุจ ุฃู† ูŠูƒูˆู† ูˆุงุถุญู‹ุง ุงู„ุขู† ุฃู†ู†ุง ู†ุญุตู„ ุนู„ู‰ ุฅุดุงุฑุฉ ุฅู„ู‰ ุงู„ุงุณุชู„ุงู… ุงู„ุนู‚ุฏุฉ NetDevice
ู…ู† ุญุงูˆูŠุชู‡ ูˆุชูˆุตูŠู„ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ู…ุญุฏุฏ ุจูˆุงุณุทุฉ ุงู„ุณู…ุฉ "PhyRxDrop".
ู‡ุฐุง ุงู„ุฌู‡ุงุฒ ุฅู„ู‰ ุจุงู„ูˆุนุฉ ุงู„ุชุชุจุน ุขุฑ ุฅูƒุณ ุฏุฑูˆุจ.

ุฃุฎูŠุฑู‹ุงุŒ ู†ุทู„ุจ ู…ู† ุฌู‡ุงุฒ ุงู„ู…ุญุงูƒุงุฉ ุฃู† ูŠุชุฌุงูˆุฒ ุฃูŠู‹ุง ู…ู†ู‡ุง ุงู„ุชุทุจูŠู‚ุงุช ูˆุชูˆู‚ู ุนู† ุงู„ู…ุนุงู„ุฌุฉ
ุงู„ุฃุญุฏุงุซ ููŠ 20 ุซุงู†ูŠุฉ ููŠ ุงู„ู…ุญุงูƒุงุฉ.

ู…ุญุงูƒูŠ::ุชูˆู‚ู (ุซุงู†ูŠุฉ(20)) ุ›
ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ () ุ›
ุฌู‡ุงุฒ ู…ุญุงูƒุงุฉ :: ุชุฏู…ูŠุฑ () ุ›

0 ุงู„ุนูˆุฏุฉุ›
}

ุฃุฐูƒุฑ ุฐู„ูƒ ููŠ ุฃู‚ุฑุจ ูˆู‚ุช ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ ูŠุชู… ุงุณุชุฏุนุงุกุŒ ูˆูŠู†ุชู‡ูŠ ูˆู‚ุช ุงู„ุชูƒูˆูŠู†ุŒ ูˆุงู„ู…ุญุงูƒุงุฉ
ูŠุจุฏุฃ ุงู„ูˆู‚ุช. ุฌู…ูŠุน ุงู„ุฃุนู…ุงู„ ุงู„ุชูŠ ู‚ู…ู†ุง ุจุชู†ุณูŠู‚ู‡ุง ู…ู† ุฎู„ุงู„ ุฅู†ุดุงุก ุทู„ุจ ุชูˆุธูŠู ุฌุฏูŠุฏ ูˆุชุนู„ูŠู…ู‡ุง
ูƒูŠููŠุฉ ุงู„ุงุชุตุงู„ ูˆุฅุฑุณุงู„ ุงู„ุจูŠุงู†ุงุช ูŠุญุฏุซ ุจุงู„ูุนู„ ุฃุซู†ุงุก ุงุณุชุฏุนุงุก ุงู„ูˆุธูŠูุฉ ู‡ุฐุง.

ููŠ ุฃู‚ุฑุจ ูˆู‚ุช ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ ูŠุนูˆุฏุŒ ุงูƒุชู…ู„ุช ุงู„ู…ุญุงูƒุงุฉ ูˆู†ุฏุฎู„ ููŠ ุนู…ู„ูŠุฉ ุงู„ุชููƒูŠูƒ
ู…ุฑุญู„ุฉ. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ู…ุญุงูƒุงุฉ::ุชุฏู…ูŠุฑ ูŠุนุชู†ูŠ ุจุงู„ุชูุงุตูŠู„ ุงู„ุฏู…ูˆูŠุฉ ูˆู†ุนูˆุฏ ู„ู„ุชูˆ
ุฑู…ุฒ ุงู„ู†ุฌุงุญ ุจุนุฏ ุงูƒุชู…ุงู„ู‡.

ุงู„ุฑูƒุถ Fifth.cc
ู…ู†ุฐ ุฃู† ู‚ุฏู…ู†ุง โ€‹โ€‹ุงู„ู…ู„ู Fifth.cc ุจุงู„ู†ุณุจุฉ ู„ูƒุŒ ุฅุฐุง ู‚ู…ุช ุจุจู†ุงุก ุงู„ุชูˆุฒูŠุน ุงู„ุฎุงุต ุจูƒ (ููŠ
ูˆุถุน ุงู„ุชุตุญูŠุญ ู„ุฃู†ู‡ ูŠุณุชุฎุฏู… NS_LOG - ุชุฐูƒุฑ ุฃู† ุงู„ุฅุตุฏุงุฑุงุช ุงู„ู…ุญุณู†ุฉ ุชุนู…ู„ ุนู„ู‰ ุชุญุณูŠู†ู‡ุง NS_LOG) ู‡ูˆ - ู‡ูŠ
ุณูˆู ูŠูƒูˆู† ููŠ ุงู†ุชุธุงุฑูƒู… ู„ู„ุชุดุบูŠู„.

$ ./waf --ุงู„ุชุดุบูŠู„ ุงู„ุฎุงู…ุณ
Waf: ุฅุฏุฎุงู„ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone-dev/ns-3-dev/build'
Waf: ู…ุบุงุฏุฑุฉ ุงู„ุฏู„ูŠู„ `/home/craigdo/repos/ns-3-allinone-dev/ns-3-dev/build'
ุงู†ุชู‡ู‰ "ุงู„ุจู†ุงุก" ุจู†ุฌุงุญ (0.684 ุซุงู†ูŠุฉ)
1 536
1.0093 1072
1.01528 1608
1.02167 2144

1.11319 8040
1.12151 8576
1.12983 9112
ุขุฑ ุฅูƒุณ ุฏุฑูˆุจ ุนู†ุฏ 1.13696


ุฑุจู…ุง ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ุนู„ู‰ ุงู„ููˆุฑ ุงู„ุฌุงู†ุจ ุงู„ุณู„ุจูŠ ู„ุงุณุชุฎุฏุงู… ุงู„ู…ุทุจูˆุนุงุช ู…ู† ุฃูŠ ู†ูˆุน ููŠ ุขุซุงุฑูƒ.
ู†ุญุตู„ ุนู„ู‰ ุฑุณุงุฆู„ waf ุงู„ุฏุฎูŠู„ุฉ ู‡ุฐู‡ ู…ุทุจูˆุนุฉ ููŠ ุฌู…ูŠุน ุฃู†ุญุงุก ู…ุนู„ูˆู…ุงุชู†ุง ุงู„ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู…
ู…ุน ุชู„ูƒ ุงู„ุฑุณุงุฆู„ RxDrop. ุณู†ู‚ูˆู… ุจู…ุนุงู„ุฌุฉ ุฐู„ูƒ ู‚ุฑูŠุจู‹ุงุŒ ู„ูƒู†ู†ูŠ ู…ุชุฃูƒุฏ ู…ู† ุฃู†ูƒ ู„ุง ุชุณุชุทูŠุน ุงู„ุงู†ุชุธุงุฑ ู„ุชุฑู‰
ู†ุชุงุฆุฌ ูƒู„ ู‡ุฐุง ุงู„ุนู…ู„. ุฏุนูˆู†ุง ู†ุนูŠุฏ ุชูˆุฌูŠู‡ ู‡ุฐุง ุงู„ุฅุฎุฑุงุฌ ุฅู„ู‰ ู…ู„ู ูŠุณู…ู‰ cwnd.dat:

$ ./waf --run ุงู„ุฎุงู…ุณ > cwnd.dat 2>&1

ุงู„ุขู† ู‚ู… ุจุชุญุฑูŠุฑ "cwnd.dat" ููŠ ุงู„ู…ุญุฑุฑ ุงู„ู…ูุถู„ ู„ุฏูŠูƒ ูˆู‚ู… ุจุฅุฒุงู„ุฉ ุญุงู„ุฉ ุฅู†ุดุงุก waf ูˆุฅูู„ุงุชู‡ุง
ุงู„ุฃุณุทุฑุŒ ู…ุน ุชุฑูƒ ุงู„ุจูŠุงู†ุงุช ุงู„ุชูŠ ุชู… ุชุชุจุนู‡ุง ูู‚ุท (ูŠู…ูƒู†ูƒ ุฃูŠุถู‹ุง ุงู„ุชุนู„ูŠู‚ ุนู„ู‰ ู…ู„ู
TraceConnectWithoutContext("PhyRxDrop"ุŒ ุฅุฌุนู„ ุงู„ุฅุชุตุงู„ (&RxDrop)); ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ู†ุตูŠ ู„ู„ุชุฎู„ุต
ู…ู† ุงู„ู…ุทุจูˆุนุงุช ุงู„ู…ุชุณุงู‚ุทุฉ ุจู†ูุณ ุงู„ุณู‡ูˆู„ุฉ.

ูŠู…ูƒู†ูƒ ุงู„ุขู† ุชุดุบูŠู„ gnuplot (ุฅุฐุง ูƒุงู† ู…ุซุจุชู‹ุง ู„ุฏูŠูƒ) ูˆุฅุฎุจุงุฑู‡ ุจุฅู†ุดุงุก ุจุนุถ ุงู„ุนู†ุงุตุฑ ุงู„ุฌู…ูŠู„ุฉ
ุงู„ุตูˆุฑ:

$ ุบู†ูˆุจู„ูˆุช
gnuplot> ุชุนูŠูŠู† ุญุฌู… png ุงู„ุทุฑููŠุฉ 640,480ุŒXNUMX
gnuplot> ู‚ู… ุจุชุนูŠูŠู† ุงู„ุฅุฎุฑุงุฌ "cwnd.png"
gnuplot> ุฑุณู… "cwnd.dat" ุจุงุณุชุฎุฏุงู… ุนู†ูˆุงู† 1:2 "ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู…" ู…ุน ู†ู‚ุงุท ุงู„ุฎุทูˆุท
gnuplot> ุฎุฑูˆุฌ

ูŠุฌุจ ุฃู† ูŠูƒูˆู† ู„ุฏูŠูƒ ุงู„ุขู† ุฑุณู… ุจูŠุงู†ูŠ ู„ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู… ู…ู‚ุงุจู„ ุงู„ูˆู‚ุช ุงู„ู…ูˆุฌูˆุฏ ููŠ ุงู„ู…ู„ู
"cwnd.png" ุงู„ุชุญู…ูŠู„ = "lazy" ุงู„ุฐูŠ ูŠุจุฏูˆ ูƒู…ุง ูŠู„ูŠ:
[ุตูˆุฑุฉ]

ุจุงุณุชุฎุฏุงู… ุงู„ู…ุณุชูˆู‰ ุงู„ู…ุชูˆุณุท ุงู„ู…ุณุงุนุฏูˆู†
ููŠ ุงู„ู‚ุณู… ุงู„ุณุงุจู‚ุŒ ุฃุธู‡ุฑู†ุง ูƒูŠููŠุฉ ุฑุจุท ู…ุตุฏุฑ ุงู„ุชุชุจุน ูˆุงู„ุญุตูˆู„ ุนู„ูŠู‡
ู…ุนู„ูˆู…ุงุช ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู… ู…ู† ุงู„ู…ุญุงูƒุงุฉ. ุฑุจู…ุง ุชุชุฐูƒุฑ ุฃู†ู†ุง ุงุชุตู„ู†ุง
ุชุณุฌูŠู„ ุงู„ุฏุฎูˆู„ ุฅู„ู‰ ุงู„ุฅุฎุฑุงุฌ ุงู„ู‚ูŠุงุณูŠ ุจุงุณุชุฎุฏุงู… ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ูƒูˆุช "ุฃุฏุงุฉ ุญุงุฏุฉ" ููŠ ูˆู‚ุช ุณุงุจู‚ ู…ู† ู‡ุฐุง ุจูƒุซูŠุฑ
ุงู„ูุตู„. ู„ู‚ุฏ ูƒุชุจู†ุง ุฃูŠุถู‹ุง ุนู† ู…ุฏู‰ ุตุนูˆุจุฉ ุชุญู„ูŠู„ ู…ุฎุฑุฌุงุช ุงู„ุณุฌู„ ุจุงู„ุชุฑุชูŠุจ
ู„ุนุฒู„ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ู…ุซูŠุฑุฉ ู„ู„ุงู‡ุชู…ุงู…. ุฑุจู…ุง ุฎุทุฑ ุจุจุงู„ูƒ ุฃู†ู†ุง ุฃู†ูู‚ู†ุง ุงู„ูƒุซูŠุฑ ู„ู„ุชูˆ
ู…ู† ุงู„ูˆู‚ุช ููŠ ุชู†ููŠุฐ ู…ุซุงู„ ูŠุนุฑุถ ุฌู…ูŠุน ุงู„ู…ุดูƒู„ุงุช ุงู„ุชูŠ ู†ู‡ุฏู ุฅู„ู‰ ุฅุตู„ุงุญู‡ุง
ู‡ูŠู‡ NS-3 ู†ุธุงู… ุงู„ุชุชุจุน! ุณุชูƒูˆู† ุนู„ู‰ ุญู‚. ู„ูƒู† ุชุญู…ู„ ู…ุนู†ุง. ู„ู… ู†ู†ุชู‡ูŠ ุจุนุฏ.

ุฃุญุฏ ุฃู‡ู… ุงู„ุฃุดูŠุงุก ุงู„ุชูŠ ู†ุฑูŠุฏ ุงู„ู‚ูŠุงู… ุจู‡ุง ู‡ูˆ ุฃู† ุชูƒูˆู† ู„ุฏูŠู†ุง ุงู„ู‚ุฏุฑุฉ ุนู„ู‰ ุฐู„ูƒ ุจุณู‡ูˆู„ุฉ
ุงู„ุชุญูƒู… ููŠ ูƒู…ูŠุฉ ุงู„ู…ุฎุฑุฌุงุช ุงู„ุฎุงุฑุฌุฉ ู…ู† ุงู„ู…ุญุงูƒุงุฉุ› ูˆู†ุญู† ู†ุฑูŠุฏ ุฃูŠุถุง ุญูุธ ุชู„ูƒ
ุงู„ุจูŠุงู†ุงุช ุฅู„ู‰ ู…ู„ู ุญุชู‰ ู†ุชู…ูƒู† ู…ู† ุงู„ุฑุฌูˆุน ุฅู„ูŠู‡ุง ู„ุงุญู‚ู‹ุง. ูŠู…ูƒู†ู†ุง ุงุณุชุฎุฏุงู… ู…ุณุงุนุฏูŠ ุงู„ุชุชุจุน ู…ู† ุงู„ู…ุณุชูˆู‰ ุงู„ู…ุชูˆุณุท
ุงู„ู…ู‚ุฏู…ุฉ ููŠ NS-3 ู„ู„ู‚ูŠุงู… ุจุฐู„ูƒ ูู‚ุท ูˆุฅูƒู…ุงู„ ุงู„ุตูˆุฑุฉ.

ู†ุญู† ู†ู‚ุฏู… ุจุฑู†ุงู…ุฌู‹ุง ู†ุตูŠู‹ุง ูŠูƒุชุจ ุฃุญุฏุงุซ ุงู„ุชุบูŠูŠุฑ ูˆุงู„ุฅุณู‚ุงุท cwnd ุงู„ุชูŠ ุชู… ุชุทูˆูŠุฑู‡ุง ููŠ ุงู„ู…ุซุงู„
Fifth.cc ุฅู„ู‰ ุงู„ู‚ุฑุต ููŠ ู…ู„ูุงุช ู…ู†ูุตู„ุฉ. ูŠุชู… ุชุฎุฒูŠู† ุชุบูŠูŠุฑุงุช cwnd ูƒู…ู„ู ASCII ู…ูุตูˆู„ ุจุนู„ุงู…ุงุช ุฌุฏูˆู„ุฉ
ูŠุชู… ุชุฎุฒูŠู† ุงู„ู…ู„ู ูˆุฃุญุฏุงุซ ุงู„ุฅูู„ุงุช ููŠ ู…ู„ู PCAP. ุงู„ุชุบูŠูŠุฑุงุช ู„ุชุญู‚ูŠู‚ ุฐู„ูƒ ู‡ูŠ
ุตุบูŠุฑุฉ ุฌุฏุง.

ุชุฌูˆู„: six.cc
ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ ุงู„ุชุบูŠูŠุฑุงุช ุงู„ู…ุทู„ูˆุจุฉ ู„ู„ุงู†ุชู‚ุงู„ ู…ู† Fifth.cc ุฅู„ู‰ six.cc. ูุชุญ
ุฃู…ุซู„ุฉ/ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ/sixth.cc ููŠ ู…ุญุฑุฑูƒ ุงู„ู…ูุถู„ ูŠู…ูƒู†ูƒ ุฑุคูŠุฉ ุงู„ุชุบูŠูŠุฑ ุงู„ุฃูˆู„ ู…ู† ุฎู„ุงู„
ุงู„ุจุญุซ ุนู† CwndChange. ุณุชุฌุฏ ุฃู†ู†ุง ู‚ู…ู†ุง ุจุชุบูŠูŠุฑ ุงู„ุชูˆู‚ูŠุนุงุช ุงู„ุฎุงุตุฉ ุจุงู„ุชุชุจุน
ุงู„ู…ุตุงุฑู ูˆุฃุถูุช ุณุทุฑู‹ุง ูˆุงุญุฏู‹ุง ุฅู„ู‰ ูƒู„ ุญูˆุถ ูŠูƒุชุจ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ู…ุชุชุจุนุฉ ุฅู„ู‰ ู…ู„ู
ุชูŠุงุฑ ูŠู…ุซู„ ู…ู„ู.

ุงู„ูุฑุงุบ ุซุงุจุช
ูƒูˆู†ุฏุชุดุงู†ุฌ (ุจุชุฑ ุงู„ุฏูู‚ุŒ uint32_t oldCwndุŒ uint32_t newCwnd)
{
NS_LOG_UNCOND (Simulator::Now ().GetSeconds () << "\t" << newCwnd);
*stream->GetStream () << Simulator::Now ().GetSeconds () << "\t" << oldCwnd << "\t" << newCwnd << std::endl;
}

ุงู„ูุฑุงุบ ุซุงุจุช
ุขุฑ ุฅูƒุณ ุฏุฑูˆุจ (ุจูŠ ุชูŠ ุขุฑ ุงู„ู…ู„ูุŒ ุจูŠ ุชูŠ ุขุฑ ุน)
{
NS_LOG_UNCOND ("RxDrop at " << Simulator::Now ().GetSeconds ());
file->Write(Simulator::Now(), p);
}

ู„ู‚ุฏ ุฃุถูู†ุง ู…ุนู„ู…ุฉ "ุฏูู‚" ุฅู„ู‰ ู…ู„ู CwndChange ุชุชุจุน ุจุงู„ูˆุนุฉ. ู‡ุฐุง ู‡ูˆ ุงู„ูƒุงุฆู† ุงู„ุฐูŠ
ูŠุญู…ู„ (ูŠุจู‚ูŠู‡ ุนู„ู‰ ู‚ูŠุฏ ุงู„ุญูŠุงุฉ ุจุฃู…ุงู†) ุฏูู‚ ุฅุฎุฑุงุฌ C++. ูˆุชุจูŠู† ุฃู† ู‡ุฐุง ุฃู…ุฑ ุจุณูŠุท ู„ู„ุบุงูŠุฉ
ูƒุงุฆู†ุŒ ูˆู„ูƒู†ู‡ ูŠุฏูŠุฑ ู…ุดูƒู„ุงุช ู…ุฏู‰ ุงู„ุญูŠุงุฉ ู„ู„ุชูŠุงุฑ ูˆูŠุญู„ ู…ุดูƒู„ุฉ ุญุชู‰
ูŠูˆุงุฌู‡ ู…ุณุชุฎุฏู…ูˆ C++ ุฐูˆูŠ ุงู„ุฎุจุฑุฉ. ูˆุชุจูŠู† ุฃู† ู…ู†ุดุฆ ู†ุณุฎุฉ ู„ ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง::ostream
ุชู… ูˆุถุน ุนู„ุงู…ุฉ ุฎุงุตุฉ. ู‡ุฐุง ูŠุนู†ูŠ ุฐุงูƒ ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง::ostreams ู„ุง ุชุทูŠุน ุฏู„ุงู„ุงุช ุงู„ู‚ูŠู…ุฉ ูˆู„ุง ุชุณุชุทูŠุน ุฐู„ูƒ
ูŠู…ูƒู† ุงุณุชุฎุฏุงู…ู‡ุง ููŠ ุฃูŠ ุขู„ูŠุฉ ุชุชุทู„ุจ ู†ุณุฎ ุงู„ุฏูู‚. ูˆู‡ุฐุง ูŠุดู…ู„ NS-3
ู†ุธุงู… ุฑุฏ ุงู„ุงุชุตุงู„ุŒ ูˆุงู„ุฐูŠ ูƒู…ุง ุชุชุฐูƒุฑุŒ ูŠุชุทู„ุจ ูƒุงุฆู†ุงุช ุชุฎุถุน ู„ุฏู„ุงู„ุงุช ุงู„ู‚ูŠู…ุฉ.
ู„ุงุญุธ ุฃูŠุถู‹ุง ุฃู†ู†ุง ุฃุถูู†ุง ุงู„ุณุทุฑ ุงู„ุชุงู„ูŠ ููŠ CwndChange ุชุชุจุน ุจุงู„ูˆุนุฉ
ุงู„ุชู†ููŠุฐ:

*stream->GetStream () << Simulator::Now ().GetSeconds () << "\t" << oldCwnd << "\t" << newCwnd << std::endl;

ุณูŠูƒูˆู† ู‡ุฐุง ุฑู…ุฒู‹ุง ู…ุฃู„ูˆูู‹ุง ุฌุฏู‹ุง ุฅุฐุง ู‚ู…ุช ุจุงุณุชุจุฏุงู„ู‡ * ุชูŠุงุฑ->ุงุญุตู„ ุนู„ู‰ ุชูŠุงุฑ () ู…ุน ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ูƒูˆุชุŒ ูƒู…ุง
ููŠ:

std::cout << Simulator::Now ().GetSeconds () << "\t" << oldCwnd << "\t" << newCwnd << std::endl;

ูˆู‡ุฐุง ูŠูˆุถุญ ุฃู† ุจูŠ ุชูŠ ุขุฑ ู‡ูˆ ููŠ ุงู„ุญู‚ูŠู‚ุฉ ู…ุฌุฑุฏ ุญู…ู„ ุฃ
ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง::ofstream ุจุงู„ู†ุณุจุฉ ู„ูƒุŒ ูˆูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู…ู‡ ู‡ู†ุง ู…ุซู„ ุฃูŠ ุฏูู‚ ุฅุฎุฑุงุฌ ุขุฎุฑ.

ูˆูŠุญุฏุซ ูˆุถุน ู…ู…ุงุซู„ ููŠ ุขุฑ ุฅูƒุณ ุฏุฑูˆุจ ุจุงุณุชุซู†ุงุก ุฃู† ุงู„ูƒุงุฆู† ุงู„ุฐูŠ ูŠุชู… ุชู…ุฑูŠุฑู‡ (ุฃ
ุจูŠ ุชูŠ ุขุฑ) ูŠู…ุซู„ ู…ู„ู PCAP. ู‡ู†ุงูƒ ุจุทุงู†ุฉ ูˆุงุญุฏุฉ ููŠ ุจุงู„ูˆุนุฉ ุงู„ุชุชุจุน
ุงูƒุชุจ ุทุงุจุนู‹ุง ุฒู…ู†ูŠู‹ุง ูˆุณูŠุชู… ุฅุณู‚ุงุท ู…ุญุชูˆูŠุงุช ุงู„ุญุฒู…ุฉ ุฅู„ู‰ ู…ู„ู PCAP:

file->Write(Simulator::Now(), p);

ุจุงู„ุทุจุนุŒ ุฅุฐุง ูƒุงู† ู„ุฏูŠู†ุง ูƒุงุฆู†ุงุช ุชู…ุซู„ ุงู„ู…ู„ููŠู†ุŒ ูุณู†ุญุชุงุฌ ุฅู„ู‰ ุฅู†ุดุงุฆู‡ู…ุง ููŠ ู…ูƒุงู† ู…ุง
ูˆูŠุชุณุจุจ ุฃูŠุถู‹ุง ููŠ ุชู…ุฑูŠุฑู‡ุง ุฅู„ู‰ ุฃุญูˆุงุถ ุงู„ุชุชุจุน. ุฅุฐุง ู†ุธุฑุช ููŠ ุฑุฆูŠุณูŠ ูˆุธูŠูุฉุŒ
ุณุชุฌุฏ ุฑู…ุฒู‹ุง ุฌุฏูŠุฏู‹ุง ู„ู„ู‚ูŠุงู… ุจุฐู„ูƒ:

asciiTraceHelper asciiTraceHelper;
ุจูŠ ุชูŠ ุขุฑ ุชูŠุงุฑ = asciiTraceHelper.CreateFileStream ("sixth.cwnd")ุ›
ns3TcpSocket->TraceConnectWithoutContext ("CongestionWindow"ุŒ MakeBoundCallback (&CwndChangeุŒstream));



PcapHelper pcapHelper;
ุจูŠ ุชูŠ ุขุฑ file = pcapHelper.CreateFile ("sixth.pcap"ุŒ std::ios::outุŒ PcapHelper::DLT_PPP)ุ›
devices.Get (1)->TraceConnectWithoutContext("PhyRxDrop", MakeBoundCallback (&RxDrop, file));

ููŠ ุงู„ู‚ุณู… ุงู„ุฃูˆู„ ู…ู† ู…ู‚ุชุทู ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุฃุนู„ุงู‡ุŒ ู†ู‚ูˆู… ุจุฅู†ุดุงุก ู…ู„ู ุชุชุจุน ASCIIุŒ
ุฅู†ุดุงุก ูƒุงุฆู† ู…ุณุคูˆู„ ุนู† ุฅุฏุงุฑุชู‡ ูˆุงุณุชุฎุฏุงู… ู…ุชุบูŠุฑ ุฑุฏ ุงู„ุงุชุตุงู„
ูˆุธูŠูุฉ ุงู„ุฅู†ุดุงุก ู„ุชุฑุชูŠุจ ุชู…ุฑูŠุฑ ุงู„ูƒุงุฆู† ุฅู„ู‰ ุงู„ุญูˆุถ. ู„ุฏูŠู†ุง ุชุชุจุน ASCII
ูŠูˆูุฑ ุงู„ู…ุณุงุนุฏูˆู† ู…ุฌู…ูˆุนุฉ ุบู†ูŠุฉ ู…ู† ุงู„ูˆุธุงุฆู ู„ุชุณู‡ูŠู„ ุงุณุชุฎุฏุงู… ุงู„ู…ู„ูุงุช ุงู„ู†ุตูŠุฉ (ASCII). ู†ุญู†
ุณุฃู‚ูˆู… ูู‚ุท ุจุชูˆุถูŠุญ ุงุณุชุฎุฏุงู… ูˆุธูŠูุฉ ุฅู†ุดุงุก ุฏูู‚ ุงู„ู…ู„ูุงุช ู‡ู†ุง.

ุฅู†ู‘ ุฅู†ุดุงุก ู…ู„ู ุฏูู‚ ุณุชู‚ูˆู… ุงู„ูˆุธูŠูุฉ ุจุดูƒู„ ุฃุณุงุณูŠ ุจุฅู†ุดุงุก ู…ุซูŠู„ ู„ู€ a ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง::ofstream ูƒุงุฆู† ูˆ
ุฅู†ุดุงุก ู…ู„ู ุฌุฏูŠุฏ (ุฃูˆ ุงู‚ุชุทุงุน ู…ู„ู ู…ูˆุฌูˆุฏ). ู‡ุฐุง ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง::ofstream ูŠุชู… ุชุนุจุฆุชู‡ุง ููŠ
NS-3 ูƒุงุฆู† ู„ุฅุฏุงุฑุฉ ู…ุฏู‰ ุงู„ุญูŠุงุฉ ูˆุญู„ ู…ุดูƒู„ุฉ ู…ูู†ุดุฆ ุงู„ู†ุณุฎ.

ุซู… ู†ุฃุฎุฐ ู‡ุฐุง NS-3 ุงู„ูƒุงุฆู† ุงู„ุฐูŠ ูŠู…ุซู„ ุงู„ู…ู„ู ูˆุชู…ุฑูŠุฑู‡ ุฅู„ูŠู‡ MakeBoundCallback().
ุชู‚ูˆู… ู‡ุฐู‡ ุงู„ูˆุธูŠูุฉ ุจุฅู†ุดุงุก ุฑุฏ ุงุชุตุงู„ ุชู…ุงู…ู‹ุง ู…ุซู„ ุฅุฌุฑุงุก ุฑุฏ ุงุชุตุงู„ ()ุŒ ู„ูƒู†ู‡ "ูŠุฑุจุท" ู‚ูŠู…ุฉ ุฌุฏูŠุฏุฉ ุจู€
ุฑุฏ ุงู„ุงุชุตุงู„. ุชุชู… ุฅุถุงูุฉ ู‡ุฐู‡ ุงู„ู‚ูŠู…ุฉ ูƒูˆุณูŠุทุฉ ุฃูˆู„ู‰ ุฅู„ู‰ ุฑุฏ ุงู„ุงุชุตุงู„ ู‚ุจู„ ุฃู† ุชุชู… ุฅุถุงูุชู‡ุง
ุงุชุตู„.

ุฃุณุงุณุงุŒ MakeBoundCallback(&CwndChange, ุชุฏูู‚) ูŠุคุฏูŠ ู…ุตุฏุฑ ุงู„ุชุชุจุน ุฅู„ู‰ ุฅุถุงูุฉ ู…ู„ู
ู…ุนู„ู…ุฉ "ุฏูู‚" ุฅุถุงููŠุฉ ููŠ ู…ู‚ุฏู…ุฉ ู‚ุงุฆู…ุฉ ุงู„ู…ุนู„ู…ุงุช ุงู„ุฑุณู…ูŠุฉ ู‚ุจู„ ุงู„ุงุณุชุฏุนุงุก
ุฑุฏ ุงู„ุงุชุตุงู„. ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุชุบูŠูŠุฑ ุงู„ุชูˆู‚ูŠุน ุงู„ู…ุทู„ูˆุจ ู„ู€ CwndChange ุชุบุฑู‚ ู„ุชุชู†ุงุณุจ ู…ุน ูˆุงุญุฏ
ุงู„ู…ูˆุถุญ ุฃุนู„ุงู‡ุŒ ูˆุงู„ุฐูŠ ูŠุชุถู…ู† ุงู„ู…ุนู„ู…ุฉ "ุงู„ุฅุถุงููŠุฉ". ุจูŠ ุชูŠ ุขุฑ ู…ุฌุฑู‰.

ููŠ ุงู„ู‚ุณู… ุงู„ุซุงู†ูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ููŠ ุงู„ู…ู‚ุชุทู ุฃุนู„ุงู‡ุŒ ู†ู‚ูˆู… ุจุฅู†ุดุงุก ู…ุซูŠู„ ู„ู€ PcapHelper ู„ู„ู‚ูŠุงู…
ู†ูุณ ุงู„ุดูŠุก ุจุงู„ู†ุณุจุฉ ู„ู…ู„ู ุชุชุจุน PCAP ุงู„ุฎุงุต ุจู†ุง ูˆุงู„ุฐูŠ ูุนู„ู†ุงู‡ ู…ุน ู…ู„ู AsciiTraceHelper. ุฎุท
ุงู„ุฑู…ุฒุŒ

ุจูŠ ุชูŠ ุขุฑ ุงู„ู…ู„ู = pcapHelper.CreateFile ("sixth.pcap"ุŒ
"w"ุŒ PcapHelper::DLT_PPP);

ูŠู‚ูˆู… ุจุฅู†ุดุงุก ู…ู„ู PCAP ูŠุณู…ู‰ "sixth.pcap" ู…ุน ูˆุถุน ุงู„ู…ู„ู "w". ูˆู‡ุฐุง ูŠุนู†ูŠ ุฃู† ุงู„ู…ู„ู ุงู„ุฌุฏูŠุฏ
ูŠุชู… ุงู‚ุชุทุงุนู‡ (ุญุฐู ุงู„ู…ุญุชูˆูŠุงุช) ุฅุฐุง ุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ู…ู„ู ู…ูˆุฌูˆุฏ ุจู‡ุฐุง ุงู„ุงุณู…. ุงู„ุงุฎูŠุฑ
ุงู„ู…ุนู„ู…ุฉ ู‡ูŠ "ู†ูˆุน ุฑุงุจุท ุงู„ุจูŠุงู†ุงุช" ู„ู…ู„ู PCAP ุงู„ุฌุฏูŠุฏ. ู‡ุฐู‡ ู‡ูŠ ู†ูุณ PCAP
ุฃู†ูˆุงุน ุงุฑุชุจุงุทุงุช ุจูŠุงู†ุงุช ุงู„ู…ูƒุชุจุฉ ุงู„ู…ุญุฏุฏุฉ ููŠ bpf.h ุฅุฐุง ูƒู†ุช ู…ุฃู„ูˆูู‹ุง ู…ุน PCAP. ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ
DLT_PPP ูŠุดูŠุฑ ุฅู„ู‰ ุฃู† ู…ู„ู PCAP ุณูŠุญุชูˆูŠ ุนู„ู‰ ุญุฒู… ู…ุณุจูˆู‚ุฉ ุจุงู„ู†ู‚ุทุฉ ุฅู„ู‰
ุฑุคูˆุณ ุงู„ู†ู‚ุงุท. ูˆู‡ุฐุง ุตุญูŠุญ ู„ุฃู† ุงู„ุญุฒู… ุชุฃุชูŠ ู…ู† ุฌู‡ุงุฒ ู†ู‚ุทุฉ ุฅู„ู‰ ู†ู‚ุทุฉ ู„ุฏูŠู†ุง
ุณุงุฆู‚. ุฃู†ูˆุงุน ุงุฑุชุจุงุทุงุช ุงู„ุจูŠุงู†ุงุช ุงู„ุดุงุฆุนุฉ ุงู„ุฃุฎุฑู‰ ู‡ูŠ DLT_EN10MB (10 ู…ูŠุฌุงุจุงูŠุช ุฅูŠุซุฑู†ุช) ุงู„ู…ู†ุงุณุจุฉ ู„ู€ csma
ุงู„ุฃุฌู‡ุฒุฉ ูˆDLT_IEEE802_11 (IEEE 802.11) ุงู„ู…ู†ุงุณุจ ู„ุฃุฌู‡ุฒุฉ wifi. ูŠุชู… ุชุนุฑูŠู ู‡ุฐู‡
in src / network / helper / trace-helper.h ุฅุฐุง ูƒู†ุช ู…ู‡ุชู…ู‹ุง ุจุฑุคูŠุฉ ุงู„ู‚ุงุฆู…ุฉ. ุงู„
ุงู„ุฅุฏุฎุงู„ุงุช ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ู‚ุงุฆู…ุฉ ุชุชุทุงุจู‚ ู…ุน ุชู„ูƒ ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ bpf.h ู„ูƒู†ู†ุง ู†ูƒุฑุฑู‡ุง ู„ุชุฌู†ุจ ู…ุตุฏุฑ PCAP
ุงู„ุงุนุชู…ุงุฏ.

A NS-3 ูŠุชู… ุฅุฑุฌุงุน ุงู„ูƒุงุฆู† ุงู„ุฐูŠ ูŠู…ุซู„ ู…ู„ู PCAP ู…ู† CreateFile ูˆุชุณุชุฎุฏู… ููŠ ุญุฏูˆุฏ
ุฑุฏ ุงู„ุงุชุตุงู„ ุชู…ุงู…ู‹ุง ูƒู…ุง ูƒุงู† ููŠ ุญุงู„ุฉ ASCII.

ุงู†ุนุทุงู ู…ู‡ู…: ู…ู† ุงู„ู…ู‡ู… ู…ู„ุงุญุธุฉ ุฃู†ู‡ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ูˆุฌูˆุฏ ู‡ุฐูŠู† ุงู„ูƒุงุฆู†ูŠู†
ุฃุนู„ู† ุจุทุฑู‚ ู…ุดุงุจู‡ุฉ ุฌุฏุงุŒ

ุจูŠ ุชูŠ ุขุฑ ู…ู„ู ...
ุจูŠ ุชูŠ ุขุฑ ุชุฏูู‚ ...

ุงู„ูƒุงุฆู†ุงุช ุงู„ุฃุณุงุณูŠุฉ ู…ุฎุชู„ูุฉ ุชู…ุงู…ู‹ุง. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุจูŠ ุชูŠ ุขุฑ ู‡ูˆ
ู…ุคุดุฑ ุฐูƒูŠ ู„ NS-3 ุงู„ูƒุงุฆู† ุงู„ุฐูŠ ู‡ูˆ ุดูŠุก ุซู‚ูŠู„ ุงู„ูˆุฒู† ุฅู„ู‰ ุญุฏ ู…ุง ูŠุฏุนู…
ุณู…ุงุช ูˆู…ุชูƒุงู…ู„ุฉ ููŠ ู†ุธุงู… ุงู„ุชูƒูˆูŠู†. ุงู„ ุจูŠ ุชูŠ ุขุฑุŒ ุนู„ู‰
ู…ู† ู†ุงุญูŠุฉ ุฃุฎุฑู‰ุŒ ูŠุนุฏ ู…ุคุดุฑู‹ุง ุฐูƒูŠู‹ุง ู„ูƒุงุฆู† ู…ูุนุฏ ู…ุฑุฌุนูŠู‹ุง ูˆุฎููŠู ุงู„ูˆุฒู† ุฌุฏู‹ุง
ุดูŠุก. ุชุฐูƒุฑ ุฃู† ุชู†ุธุฑ ุฅู„ู‰ ุงู„ูƒุงุฆู† ุงู„ุฐูŠ ุชุดูŠุฑ ุฅู„ูŠู‡ ู‚ุจู„ ุฅุฌุฑุงุก ุฃูŠ ุงูุชุฑุงุถุงุช
ุญูˆู„ "ุงู„ุตู„ุงุญูŠุงุช" ุงู„ุชูŠ ู‚ุฏ ูŠู…ุชู„ูƒู‡ุง ู‡ุฐุง ุงู„ูƒุงุฆู†.

ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฃู„ู‚ ู†ุธุฑุฉ ุนู„ู‰ src/network/utils/pcap-file-wrapper.h ููŠ ุงู„ุชูˆุฒูŠุน ูˆ
ุชู†ูˆูŠู‡ุŒ

ูุฆุฉ PcapFileWrapper: ูƒุงุฆู† ุนุงู…

ุชู„ูƒ ุงู„ูุฆุฉ PcapFileWrapper ู‡ูˆ NS-3 ุงู„ูƒุงุฆู† ุจุญูƒู… ุงู„ู…ูŠุฑุงุซ. ุซู… ุงู†ุธุฑ
src/network/model/output-stream-wrapper.h ูˆู„ุงุญุธุŒ

ูุฆุฉ OutputStreamWrapper: public
SimpleRefCount

ุฃู† ู‡ุฐุง ุงู„ูƒุงุฆู† ู„ูŠุณ NS-3 ุงู„ูƒุงุฆู† ุนู„ู‰ ุงู„ุฅุทู„ุงู‚ุŒ ู‡ูˆ "ู…ุฌุฑุฏ" ูƒุงุฆู† C++ ุงู„ุฐูŠ ูŠุญุฏุซ ู„ู‡
ุฏุนู… ุงู„ุนุฏ ุงู„ู…ุฑุฌุนูŠ ุงู„ุชุฏุฎู„ูŠ.

ุงู„ู†ู‚ุทุฉ ู‡ู†ุง ู‡ูŠ ุฃู†ู‡ ูู‚ุท ู„ุฃู†ูƒ ุชู‚ุฑุฃ ุจูŠ ุชูŠ ุขุฑ ู„ุง ูŠุนู†ูŠ ุจุงู„ุถุฑูˆุฑุฉ
ุฃู† ุดูŠุก ู‡ูˆ NS-3 ุงู„ูƒุงุฆู† ุงู„ุฐูŠ ูŠู…ูƒู†ูƒ ุชุนู„ูŠู‚ู‡ NS-3 ุงู„ุตูุงุช ู…ุซู„ุง.

ูˆุงู„ุขู† ู†ุนูˆุฏ ุฅู„ู‰ ุงู„ู…ุซุงู„. ุฅุฐุง ู‚ู…ุช ุจุฅู†ุดุงุก ู‡ุฐุง ุงู„ู…ุซุงู„ ูˆุชุดุบูŠู„ู‡ุŒ

$ ./waf --ุงู„ุชุดุบูŠู„ ุงู„ุณุงุฏุณ

ุณุชุฑู‰ ู†ูุณ ุงู„ุฑุณุงุฆู„ ุชุธู‡ุฑ ุนู†ุฏู…ุง ู‚ู…ุช ุจุชุดุบูŠู„ "ุงู„ุฎุงู…ุณ"ุŒ ูˆู„ูƒู† ุณูŠุธู‡ุฑ ู…ู„ูุงู† ุฌุฏูŠุฏุงู†
ุชุธู‡ุฑ ููŠ ุฏู„ูŠู„ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ุงู„ุฎุงุต ุจูƒ NS-3 ุงู„ุชูˆุฒูŠุน.

six.cwnd six.pcap

ู†ุธุฑู‹ุง ู„ุฃู† "sixth.cwnd" ู‡ูˆ ู…ู„ู ู†ุตูŠ ุจุชู†ุณูŠู‚ ASCIIุŒ ููŠู…ูƒู†ูƒ ู…ุดุงู‡ุฏุชู‡ ุจุงุณุชุฎุฏุงู…ู‡ ู‚ุท ุฃูˆ ุงู„ู…ู„ู ุงู„ู…ูุถู„ ู„ุฏูŠูƒ
ู…ุดุงู‡ุฏ.

1 0 536
1.0093 536 1072
1.01528 1072 1608
1.02167 1608 2144

9.69256 5149 5204
9.89311 5204 5259

ู„ุฏูŠูƒ ู…ู„ู ู…ูุตูˆู„ ุจุนู„ุงู…ุงุช ุฌุฏูˆู„ุฉ ู…ุน ุทุงุจุน ุฒู…ู†ูŠ ูˆู†ุงูุฐุฉ ุงุฒุฏุญุงู… ู‚ุฏูŠู…ุฉ ูˆู…ู„ู
ู†ุงูุฐุฉ ุงู„ุงุฒุฏุญุงู… ู…ู†ุงุณุจุฉ ู„ู„ุงุณุชูŠุฑุงุฏ ู…ุจุงุดุฑุฉ ุฅู„ู‰ ุจุฑู†ุงู…ุฌ ุงู„ุฑุณู… ุงู„ุฎุงุต ุจูƒ. ู„ุง ูŠูˆุฌุฏ
ู…ุทุจูˆุนุงุช ุบุฑูŠุจุฉ ููŠ ุงู„ู…ู„ูุŒ ู„ุง ูŠู„ุฒู… ุงู„ุชุญู„ูŠู„ ุฃูˆ ุงู„ุชุญุฑูŠุฑ.

ู†ุธุฑู‹ุง ู„ุฃู† "sixth.pcap" ู‡ูˆ ู…ู„ู PCAPุŒ ููŠู…ูƒู†ูƒ ู…ุดุงู‡ุฏุชู‡ ุจุงุณุชุฎุฏุงู…ู‡ com.tcpdump.

ุงู„ู‚ุฑุงุกุฉ ู…ู† ุงู„ู…ู„ู six.pcapุŒ PPP ู…ู† ู†ูˆุน ุงู„ุงุฑุชุจุงุท (PPP)
1.136956 IP 10.1.1.1.49153 > 10.1.1.2.8080: ุงู„ุฃุนู„ุงู… [.]ุŒ seq 17177:17681ุŒ ack 1ุŒ ุงู„ููˆุฒ 32768ุŒ ุงู„ุฎูŠุงุฑุงุช [TS val 1133 ecr 1127,eol]ุŒ ุงู„ุทูˆู„ 504
1.403196 IP 10.1.1.1.49153 > 10.1.1.2.8080: ุงู„ุฃุนู„ุงู… [.]ุŒ seq 33280:33784ุŒ ack 1ุŒ ุงู„ููˆุฒ 32768ุŒ ุงู„ุฎูŠุงุฑุงุช [TS val 1399 ecr 1394,eol]ุŒ ุงู„ุทูˆู„ 504

7.426220 IP 10.1.1.1.49153 > 10.1.1.2.8080: ุงู„ุฃุนู„ุงู… [.]ุŒ seq 785704:786240ุŒ ack 1ุŒ ุงู„ููˆุฒ 32768ุŒ ุงู„ุฎูŠุงุฑุงุช [TS val 7423 ecr 7421,eol]ุŒ ุงู„ุทูˆู„ 536
9.630693 IP 10.1.1.1.49153 > 10.1.1.2.8080: ุงู„ุฃุนู„ุงู… [.]ุŒ seq 882688:883224ุŒ ack 1ุŒ ุงู„ููˆุฒ 32768ุŒ ุงู„ุฎูŠุงุฑุงุช [TS val 9620 ecr 9618,eol]ุŒ ุงู„ุทูˆู„ 536

ู„ุฏูŠูƒ ู…ู„ู PCAP ูŠุญุชูˆูŠ ุนู„ู‰ ุงู„ุญุฒู… ุงู„ุชูŠ ุชู… ุฅุณู‚ุงุทู‡ุง ููŠ ุงู„ู…ุญุงูƒุงุฉ. ู„ุง ูŠูˆุฌุฏ
ุงู„ุญุฒู… ุงู„ุฃุฎุฑู‰ ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ู…ู„ู ูˆู„ุง ูŠูˆุฌุฏ ุดูŠุก ุขุฎุฑ ู„ุฅุถูุงุก ุงู„ุญูŠุงุฉ
ุตุนูˆุจุฉ.

ู„ู‚ุฏ ูƒุงู†ุช ุฑุญู„ุฉ ุทูˆูŠู„ุฉุŒ ู„ูƒู†ู†ุง ุงู„ุขู† ููŠ ู…ุฑุญู„ุฉ ุญูŠุซ ูŠู…ูƒู†ู†ุง ุฃู† ู†ู‚ุฏุฑ ู…ุง ุญุฏุซ NS-3
ู†ุธุงู… ุงู„ุชุชุจุน. ู„ู‚ุฏ ู‚ู…ู†ุง ุจุณุญุจ ุงู„ุฃุญุฏุงุซ ุงู„ู…ู‡ู…ุฉ ู…ู† ู…ู†ุชุตู ุชู†ููŠุฐ TCP
ูˆุจุฑู†ุงู…ุฌ ุชุดุบูŠู„ ุงู„ุฌู‡ุงุฒ. ู‚ู…ู†ุง ุจุชุฎุฒูŠู† ุชู„ูƒ ุงู„ุฃุญุฏุงุซ ู…ุจุงุดุฑุฉ ููŠ ู…ู„ูุงุช ู‚ุงุจู„ุฉ ู„ู„ุงุณุชุฎุฏุงู… ูˆู…ุนุฑูˆูุฉ ุจุดูƒู„ ุดุงุฆุน
ุฃุฏูˆุงุช. ู„ู‚ุฏ ูุนู„ู†ุง ุฐู„ูƒ ุฏูˆู† ุชุนุฏูŠู„ ุฃูŠ ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ ุงู„ุฃุณุงุณูŠุฉ ุงู„ู…ุนู†ูŠุฉุŒ ูˆู‚ุฏ ูุนู„ู†ุง ุฐู„ูƒ ููŠ
18 ุณุทุฑู‹ุง ูู‚ุท ู…ู† ุงู„ุชุนู„ูŠู…ุงุช ุงู„ุจุฑู…ุฌูŠุฉ:

ุงู„ูุฑุงุบ ุซุงุจุช
ูƒูˆู†ุฏุชุดุงู†ุฌ (ุจุชุฑ ุงู„ุฏูู‚ุŒ uint32_t oldCwndุŒ uint32_t newCwnd)
{
NS_LOG_UNCOND (Simulator::Now ().GetSeconds () << "\t" << newCwnd);
*stream->GetStream () << Simulator::Now ().GetSeconds () << "\t" << oldCwnd << "\t" << newCwnd << std::endl;
}



asciiTraceHelper asciiTraceHelper;
ุจูŠ ุชูŠ ุขุฑ ุชูŠุงุฑ = asciiTraceHelper.CreateFileStream ("sixth.cwnd")ุ›
ns3TcpSocket->TraceConnectWithoutContext ("CongestionWindow"ุŒ MakeBoundCallback (&CwndChangeุŒstream));



ุงู„ูุฑุงุบ ุซุงุจุช
ุขุฑ ุฅูƒุณ ุฏุฑูˆุจ (ุจูŠ ุชูŠ ุขุฑ ุงู„ู…ู„ูุŒ ุจูŠ ุชูŠ ุขุฑ ุน)
{
NS_LOG_UNCOND ("RxDrop at " << Simulator::Now ().GetSeconds ());
file->Write(Simulator::Now(), p);
}



PcapHelper pcapHelper;
ุจูŠ ุชูŠ ุขุฑ file = pcapHelper.CreateFile ("sixth.pcap"ุŒ "w"ุŒ PcapHelper::DLT_PPP)ุ›
devices.Get (1)->TraceConnectWithoutContext("PhyRxDrop", MakeBoundCallback (&RxDrop, file));

ุฃุซุฑ ุงู„ู…ุณุงุนุฏูˆู†
ุฅู†ู‘ NS-3 ูŠูˆูุฑ ู…ุณุงุนุฏูˆ ุงู„ุชุชุจุน ุจูŠุฆุฉ ุบู†ูŠุฉ ู„ุชูƒูˆูŠู† ูˆุงุฎุชูŠุงุฑ ู…ุฎุชู„ู
ุชุชุจุน ุงู„ุฃุญุฏุงุซ ูˆูƒุชุงุจุชู‡ุง ููŠ ุงู„ู…ู„ูุงุช. ููŠ ุงู„ุฃู‚ุณุงู… ุงู„ุณุงุจู‚ุฉุŒ ููŠ ุงู„ู…ู‚ุงู… ุงู„ุฃูˆู„
ุจู†ุงุก ุงู„ุทูˆุจูˆู„ูˆุฌูŠุงุชุŒ ู„ู‚ุฏ ุฑุฃูŠู†ุง ุนุฏุฉ ุฃู†ูˆุงุน ู…ู† ุฃุณุงู„ูŠุจ ู…ุณุงุนุฏ ุงู„ุชุชุจุน ุงู„ู…ุตู…ู…ุฉ
ู„ู„ุงุณุชุฎุฏุงู… ุฏุงุฎู„ ุงู„ู…ุณุงุนุฏูŠู† ุงู„ุขุฎุฑูŠู† (ุงู„ุฌู‡ุงุฒ).

ุฑุจู…ุง ุชุชุฐูƒุฑ ุฑุคูŠุฉ ุจุนุถ ู‡ุฐู‡ ุงู„ุงุฎุชู„ุงูุงุช:

pointToPoint.EnablePcapAll ("ุงู„ุซุงู†ูŠุฉ") ุŒ
pointToPoint.EnablePcap ("second"ุŒ p2pNodes.Get (0) -> GetId ()ุŒ 0) ุ›
csma.EnablePcap ("ุซุงู„ุซ"ุŒ csmaDevices.Get (0)ุŒ true) ุ›
pointToPoint.EnableAsciiAll (ascii.CreateFileStream ("myfirst.tr")) ุ›

ู…ุง ู‚ุฏ ู„ุง ูŠูƒูˆู† ูˆุงุถุญู‹ุง ุŒ ู…ุน ุฐู„ูƒ ุŒ ู‡ูˆ ุฃู† ู‡ู†ุงูƒ ู†ู…ูˆุฐุฌู‹ุง ุซุงุจุชู‹ุง ู„ุฌู…ูŠุน
ุงู„ุทุฑู‚ ุฐุงุช ุงู„ุตู„ุฉ ุจุงู„ุชุชุจุน ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ู†ุธุงู…. ุณู†ุฃุฎุฐ ุงู„ุขู† ุจุนุถ ุงู„ูˆู‚ุช ูˆู†ู„ู‚ูŠ ู†ุธุฑุฉ
ููŠ "ุงู„ุตูˆุฑุฉ ุงู„ูƒุจูŠุฑุฉ".

ุชูˆุฌุฏ ุญุงู„ูŠู‹ุง ุญุงู„ุชุง ุงุณุชุฎุฏุงู… ุฃุณุงุณูŠุชุงู† ู„ู…ุณุงุนุฏูŠ ุงู„ุชุชุจุน ููŠ NS-3: ู…ุณุงุนุฏูŠู† ุงู„ุฌู‡ุงุฒ
ูˆู…ุณุงุนุฏูŠ ุงู„ุจุฑูˆุชูˆูƒูˆู„. ูŠุจุญุซ ู…ุณุงุนุฏูˆ ุงู„ุฃุฌู‡ุฒุฉ ููŠ ู…ุดูƒู„ุฉ ุชุญุฏูŠุฏ ุงู„ุขุซุงุฑ
ูŠุฌุจ ุชู…ูƒูŠู†ู‡ ู…ู† ุฎู„ุงู„ ุฒูˆุฌ (ุงู„ุนู‚ุฏุฉุŒ ุงู„ุฌู‡ุงุฒ). ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ู‚ุฏ ุชุฑุบุจ ููŠ ุชุญุฏูŠุฏ
ูŠุฌุจ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ุฌู‡ุงุฒ ู…ุนูŠู† ุนู„ู‰ ุนู‚ุฏุฉ ู…ุนูŠู†ุฉ. ู‡ุฐุง
ูŠุชุจุน ู…ู† NS-3 ุงู„ู†ู…ูˆุฐุฌ ุงู„ู…ูุงู‡ูŠู…ูŠ ู„ู„ุฌู‡ุงุฒุŒ ูˆูƒุฐู„ูƒ ุงู„ู†ู…ุงุฐุฌ ุงู„ู…ูุงู‡ูŠู…ูŠุฉ ู„ู„
ู…ุฎุชู„ู ู…ุณุงุนุฏูŠ ุงู„ุฃุฌู‡ุฒุฉ. ุจุนุฏ ุฐู„ูƒ ุจุดูƒู„ ุทุจูŠุนูŠุŒ ุชุชุจุน ุงู„ู…ู„ูุงุช ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง ู…ู„ู
- - ุงุตุทู„ุงุญ ุงู„ุชุณู…ูŠุฉ.

ูŠู†ุธุฑ ู…ุณุงุนุฏูˆ ุงู„ุจุฑูˆุชูˆูƒูˆู„ ููŠ ู…ุดูƒู„ุฉ ุชุญุฏูŠุฏ ุงู„ุขุซุงุฑ ุงู„ุชูŠ ูŠุฌุจ ุชู…ูƒูŠู†ู‡ุง ู…ู† ุฎู„ุงู„ู‡ุง
ุฒูˆุฌ ู…ู† ุงู„ุจุฑูˆุชูˆูƒูˆู„ ูˆุงู„ูˆุงุฌู‡ุฉ. ู‡ุฐุง ูŠุชุจุน ู…ู† NS-3 ู…ูƒุฏุณ ุงู„ุจุฑูˆุชูˆูƒูˆู„ ุงู„ู…ูุงู‡ูŠู…ูŠ
ุงู„ู†ู…ูˆุฐุฌุŒ ูˆูƒุฐู„ูƒ ุงู„ู†ู…ุงุฐุฌ ุงู„ู…ูุงู‡ูŠู…ูŠุฉ ู„ู…ุณุงุนุฏูŠ ู…ูƒุฏุณ ุงู„ุฅู†ุชุฑู†ุช. ุจุทุจูŠุนุฉ ุงู„ุญุงู„ุŒ ุงู„ุชุชุจุน
ูŠุฌุจ ุฃู† ุชุชุจุน ุงู„ู…ู„ูุงุช ุฃ - - ุงุตุทู„ุงุญ ุงู„ุชุณู…ูŠุฉ.

ูˆุจุงู„ุชุงู„ูŠ ูุฅู† ู…ุณุงุนุฏูŠ ุงู„ุชุชุจุน ูŠู‚ุนูˆู† ุจุดูƒู„ ุทุจูŠุนูŠ ููŠ ุชุตู†ูŠู ุซู†ุงุฆูŠ ุงู„ุฃุจุนุงุฏ. ู‡ู†ุงูƒ
ุงู„ุฎูˆุงุต ุงู„ุฏู‚ูŠู‚ุฉ ุงู„ุชูŠ ุชู…ู†ุน ุงู„ูุฆุงุช ุงู„ุฃุฑุจุน ู…ู† ุงู„ุชุตุฑู ุจุดูƒู„ ู…ุชู…ุงุซู„ ุŒ ู„ูƒู†ู†ุง ู†ุณุนู‰ ุฌุงู‡ุฏูŠู† ู„ุชุญู‚ูŠู‚ ุฐู„ูƒ
ุงุฌุนู„ู‡ู… ุฌู…ูŠุนู‹ุง ูŠุนู…ู„ูˆู† ุจุดูƒู„ ู…ุดุงุจู‡ ู‚ุฏุฑ ุงู„ุฅู…ูƒุงู† ุ› ูˆูƒู„ู…ุง ุฃู…ูƒู† ู‡ู†ุงูƒ ู†ุธุงุฆุฑ ู„
ุฌู…ูŠุน ุงู„ุทุฑู‚ ููŠ ุฌู…ูŠุน ุงู„ูุฆุงุช.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ โ”‚ PCAP โ”‚ ASCII โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”‚ ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ โ”‚ โ”‚ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ู…ุณุงุนุฏ ุงู„ุจุฑูˆุชูˆูƒูˆู„ โ”‚ โ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ู†ุญู† ู†ุณุชุฎุฏู… ู†ู‡ุฌุง ูŠุณู…ู‰ ุฃ mixin ู„ุฅุถุงูุฉ ูˆุธุงุฆู ุงู„ุชุชุจุน ู„ูุฆุงุช ุงู„ู…ุณุงุนุฏุฉ ู„ุฏูŠู†ุง. ุฃ
mixin ู‡ูŠ ูุฆุฉ ุชูˆูุฑ ุงู„ูˆุธุงุฆู ุนู†ุฏู…ุง ุชุฑุซู‡ุง ูุฆุฉ ูุฑุนูŠุฉ.
ู„ุง ูŠุนุชุจุฑ ุงู„ู…ูŠุฑุงุซ ู…ู† mixin ุดูƒู„ุงู‹ ู…ู† ุฃุดูƒุงู„ ุงู„ุชุฎุตุต ูˆู„ูƒู†ู‡ ููŠ ุงู„ุญู‚ูŠู‚ุฉ ูˆุณูŠู„ุฉ ู„ุชุญู‚ูŠู‚ ุฐู„ูƒ
ุฌู…ุน ุงู„ูˆุธุงุฆู.

ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุณุฑูŠุนุฉ ุนู„ู‰ ูƒู„ ู‡ุฐู‡ ุงู„ุญุงู„ุงุช ุงู„ุฃุฑุจุน ูˆูƒู„ ู…ู†ู‡ุง ู…ุฒูŠุฌ.

ุงู„ุฌู‡ุงุฒ ุงู„ู…ุณุงุนุฏูˆู†
PCAP
ุงู„ู‡ุฏู ู…ู† ู‡ุคู„ุงุก ุงู„ู…ุณุงุนุฏูŠู† ู‡ูˆ ุชุณู‡ูŠู„ ุฅุถุงูุฉ ูˆุณูŠู„ุฉ ุชุชุจุน PCAP ู…ุชุณู‚ุฉ ุฅู„ู‰ ู…ู„ู
NS-3 ุฌู‡ุงุฒ. ู†ุฑูŠุฏ ุฃู† ุชุนู…ู„ ุฌู…ูŠุน ุงู„ู†ูƒู‡ุงุช ุงู„ู…ุฎุชู„ูุฉ ู„ุชุชุจุน PCAP ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ
ุฌู…ูŠุน ุงู„ุฃุฌู‡ุฒุฉ ุŒ ู„ุฐู„ูƒ ูŠุชู… ุชูˆุฑูŠุซ ุทุฑู‚ ู‡ุคู„ุงุก ุงู„ู…ุณุงุนุฏูŠู† ุจูˆุงุณุทุฉ ู…ุณุงุนุฏูŠ ุงู„ุฌู‡ุงุฒ. ุฅู„ู‚ ู†ุธุฑุฉ
at src / network / helper / trace-helper.h ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ู…ุชุงุจุนุฉ ุงู„ู…ู†ุงู‚ุดุฉ ุฃุซู†ุงุก ุงู„ู†ุธุฑ ููŠ
ูƒูˆุฏ ุญู‚ูŠู‚ูŠ.

ุงู„ูุตู„ PcapHelperForDevice ู‡ูˆ mixin ูŠูˆูุฑ ูˆุธุงุฆู ุนุงู„ูŠุฉ ุงู„ู…ุณุชูˆู‰ ู„ุงุณุชุฎุฏุงู…
ุชุชุจุน PCAP ููŠ NS-3 ุฌู‡ุงุฒ. ูŠุฌุจ ุฃู† ูŠู†ูุฐ ูƒู„ ุฌู‡ุงุฒ ุทุฑูŠู‚ุฉ ุงูุชุฑุงุถูŠุฉ ูˆุงุญุฏุฉ
ูˆุฑุซุช ู…ู† ู‡ุฐู‡ ุงู„ุทุจู‚ุฉ.

ุงู„ูุฑุงุบ ุงู„ุธุงู‡ุฑูŠ EnablePcapInternal (std::string ุจุงุฏุฆุฉุŒ Ptr nd, bool promiscous, bool ุตุฑูŠุญุงุณู… ุงู„ู…ู„ู) = 0;

ูŠุนูƒุณ ุชูˆู‚ูŠุน ู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ ูˆุฌู‡ุฉ ุงู„ู†ุธุฑ ุงู„ู…ุชู…ุญูˆุฑุฉ ุญูˆู„ ุงู„ุฌู‡ุงุฒ ู„ู„ูˆุถุน ููŠ ู‡ุฐุง ุงู„ุตุฏุฏ
ู…ุณุชูˆู‰. ุฌู…ูŠุน ุงู„ุฃุณุงู„ูŠุจ ุงู„ุนุงู…ุฉ ุงู„ู…ูˆุฑูˆุซุฉ ู…ู† ุงู„ุทุจู‚ุฉ PcapUserHelperForDevice ู‚ู„ู„ ุงู„ู‰
ุงุณุชุฏุนุงุก ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ ุงู„ู…ุนุชู…ุฏุฉ ุนู„ู‰ ุงู„ุฌู‡ุงุฒ ุงู„ูุฑุฏูŠ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฃุฏู†ู‰ ู…ุณุชูˆู‰
ุทุฑูŠู‚ุฉ PCAPุŒ

EnablePcap ุจุงุทู„ุฉ (ุจุงุฏุฆุฉ std :: string ุŒ Ptr ุงู„ุซุงู†ูŠุฉ ุŒ ู…ู†ุทู‚ูŠุฉ ู…ุฎุชู„ุทุฉ = ุฎุทุฃ ุŒ ู…ู†ุทู‚ูŠุฉ ุตุฑูŠุญุฉ = ุฎุทุฃ) ุ›

ุณูŠุณุชุฏุนูŠ ุชู†ููŠุฐ ุงู„ุฌู‡ุงุฒ ู„ู€ ุชู…ูƒูŠู†PcapInternal ู…ุจุงุดุฑุฉ. ุฌู…ูŠุน PCAP ุงู„ุนุงู…ุฉ ุงู„ุฃุฎุฑู‰
ุชุนุชู…ุฏ ุฃุณุงู„ูŠุจ ุงู„ุชุชุจุน ุนู„ู‰ ู‡ุฐุง ุงู„ุชู†ููŠุฐ ู„ุชูˆููŠุฑ ู…ุณุชูˆู‰ ู…ุณุชุฎุฏู… ุฅุถุงููŠ
ูˆุธุงุฆู. ู…ุง ูŠุนู†ูŠู‡ ู‡ุฐุง ู„ู„ู…ุณุชุฎุฏู… ู‡ูˆ ุฃู† ุฌู…ูŠุน ู…ุณุงุนุฏูŠ ุงู„ุฌู‡ุงุฒ ููŠ ุงู„ู†ุธุงู… ุณูŠูุนู„ูˆู† ุฐู„ูƒ
ุชูˆูุฑ ูƒุงูุฉ ุฃุณุงู„ูŠุจ ุชุชุจุน PCAPุ› ูˆุณุชุนู…ู„ ุฌู…ูŠุน ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ
ุนุจุฑ ุงู„ุฃุฌู‡ุฒุฉ ุฅุฐุง ูƒุงู† ุงู„ุฌู‡ุงุฒ ูŠุทุจู‚ ุชู…ูƒูŠู†PcapInternal ุจุดูƒู„ ุตุญูŠุญ.

ุทุฑู‚
EnablePcap ุจุงุทู„ุฉ (ุจุงุฏุฆุฉ std :: string ุŒ Ptr ุงู„ุซุงู†ูŠุฉ ุŒ ู…ู†ุทู‚ูŠุฉ ู…ุฎุชู„ุทุฉ = ุฎุทุฃ ุŒ ู…ู†ุทู‚ูŠุฉ ุตุฑูŠุญุฉ = ุฎุทุฃ) ุ›
EnablePcap ุจุงุทู„ (std :: string ุจุงุฏุฆุฉ ุŒ std :: string ุŒ ndName ุŒ bool ู…ุฎุชู„ุท = false ุŒ bool ุตุฑูŠุญ ุตุฑูŠุญ = ุฎุทุฃ) ุ›
void EnablePcap (std::string prefix, NetDeviceContainer d, bool promiscous = false);
void EnablePcap (std::string prefix, NodeContainer n, bool promiscous = false);
void EnablePcap (std::string prefix, uint32_t nodeid, uint32_t devicesid, bool promiscous = false);
EnablePcapAll void (ุจุงุฏุฆุฉ std :: string ุŒ bool promiscuous = false) ุ›

ููŠ ูƒู„ ู…ู† ุงู„ุทุฑู‚ ุงู„ู…ูˆุถุญุฉ ุฃุนู„ุงู‡ ุŒ ู‡ู†ุงูƒ ู…ุนู„ู…ุฉ ุงูุชุฑุงุถูŠุฉ ุชุณู…ู‰ ุบูŠุฑ ุดุฑุนูŠ ุฃู†
ุงู„ุชุฎู„ู ุนู† ุฒุงุฆู. ุชุดูŠุฑ ู‡ุฐู‡ ุงู„ู…ุนู„ู…ุฉ ุฅู„ู‰ ุฃู†ู‡ ู„ุง ูŠู†ุจุบูŠ ุชุฌู…ูŠุน ุงู„ุชุชุจุน
ู…ู†ุญู„. ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุฃู† ุชุชุถู…ู† ุขุซุงุฑูƒ ูƒู„ ุญุฑูƒุฉ ุงู„ู…ุฑูˆุฑ ุงู„ุชูŠ ูŠุฑุงู‡ุง ุงู„ุฌู‡ุงุฒ
(ูˆุฅุฐุง ูƒุงู† ุงู„ุฌู‡ุงุฒ ูŠุฏุนู… ุงู„ูˆุถุน ุงู„ู…ุฎุชู„ุท) ุŒ ูู…ุง ุนู„ูŠูƒ ุณูˆู‰ ุฅุถุงูุฉ ู…ุนู„ู…ุฉ ุญู‚ูŠู‚ูŠุฉ ุฅู„ู‰ ุฃูŠ ู…ู† ู…ู„ูุงุช
ุงู„ู…ูƒุงู„ู…ุงุช ุฃุนู„ุงู‡. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

Ptr ุงุฎุชุตุงุฑ ุงู„ุซุงู†ูŠุ›

helper.EnablePcap ("ุจุงุฏุฆุฉ" ุŒ nd ุŒ ุตูˆุงุจ) ุ›

ุณูŠู…ูƒู† ูˆุถุน ุงู„ู„ู‚ุทุงุช ุงู„ู…ุฎุชู„ุทุฉ ุนู„ู‰ NetDevice ุงู„ู…ุญุฏุฏ ู…ู† ู‚ุจู„ nd.

ุชุชุถู…ู† ุงู„ุทุฑูŠู‚ุชุงู† ุงู„ุฃูˆู„ูŠุงู† ุฃูŠุถู‹ุง ู…ุนู„ู…ุฉ ุงูุชุฑุงุถูŠุฉ ุชุณู…ู‰ ุตุฑูŠุญ ุงุณู… ุงู„ู…ู„ู ุฐู„ูƒ ุณูˆู
ุชู†ุงู‚ุด ุฃุฏู†ุงู‡.

ู†ุดุฌุนูƒ ุนู„ู‰ ุงู„ุงุทู„ุงุน ุนู„ู‰ ูˆุซุงุฆู‚ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ุงู„ุฎุงุตุฉ ุจุงู„ูุตู„ ุงู„ุฏุฑุงุณูŠ PcapHelperForDevice ู„ู„ุนุซูˆุฑ ุนู„ู‰
ุชูุงุตูŠู„ ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจุ› ูˆู„ูƒู† ู„ุชู„ุฎูŠุต ...

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ุฒูˆุฌ ุนู‚ุฏุฉ/ุฌู‡ุงุฒ ุดุจูƒุฉ ู…ุนูŠู† ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
Ptr ุฅู„ู‰ ุชู…ูƒูŠู†Pcap ุทุฑูŠู‚ุฉ. ุงู„ Ptr ุถู…ู†ูŠู‹ุง ู…ู†ุฐ ุงู„ุฌู‡ุงุฒ ุงู„ุตุงููŠ
ูŠุฌุจ ุฃู† ุชู†ุชู…ูŠ ุฅู„ู‰ ุนู‚ุฏุฉ ูˆุงุญุฏุฉ ุจุงู„ุถุจุท. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

Ptr ุงุฎุชุตุงุฑ ุงู„ุซุงู†ูŠุ›

helper.EnablePcap ("ุจุงุฏุฆุฉ" ุŒ ุจุฏูˆู† ุชุงุฑูŠุฎ) ุ›

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ุฒูˆุฌ ุนู‚ุฏุฉ/ุฌู‡ุงุฒ ุดุจูƒุฉ ู…ุนูŠู† ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ุณู„ุณู„ุฉ ุชู…ุซู„ ุณู„ุณู„ุฉ ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ุฅู„ู‰ ู…ู„ู ุชู…ูƒูŠู†Pcap ุทุฑูŠู‚ุฉ. ุงู„
Ptr ุชู… ุงู„ุจุญุซ ุนู†ู‡ ู…ู† ุณู„ุณู„ุฉ ุงู„ุงุณู…. ู…ุฑุฉ ุฃุฎุฑู‰ ุŒ ูุฅู† ุถู…ู†ูŠู‹ุง ู…ู†ุฐ ุฐู„ูƒ ุงู„ุญูŠู†
ูŠุฌุจ ุฃู† ูŠู†ุชู…ูŠ ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ ุงู„ู…ุญุฏุฏ ุฅู„ู‰ ุนู‚ุฏุฉ ูˆุงุญุฏุฉ ุจุงู„ุถุจุท. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("ุงู„ุฎุงุฏู…" ...) ุ›
ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("server / eth0" ...) ุ›

helper.EnablePcap ("ุจุงุฏุฆุฉ"ุŒ "server / ath0") ุ›

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ู…ู† ุฃุฒูˆุงุฌ ุงู„ุนู‚ุฏุฉ/ุงู„ุดุจูƒุฉ ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
NetDeviceContainer. ู„ูƒู„ ูˆุงุญุฏ NetDevice ููŠ ุงู„ุญุงูˆูŠุฉ ูŠุชู… ูุญุต ุงู„ู†ูˆุน. ู„ูƒู„
ุฌู‡ุงุฒ ู…ู† ุงู„ู†ูˆุน ุงู„ู…ู†ุงุณุจ (ู†ูุณ ุงู„ู†ูˆุน ุงู„ุฐูŠ ูŠุฏูŠุฑู‡ ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ) ุŒ ุงู„ุชุชุจุน ู‡ูˆ
ู…ู…ูƒู†. ู…ุฑุฉ ุฃุฎุฑู‰ ุŒ ูุฅู† ุถู…ู†ูŠู‹ุง ู†ุธุฑู‹ุง ู„ุฃู† ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ ุงู„ุฐูŠ ุชู… ุงู„ุนุซูˆุฑ ุนู„ูŠู‡ ูŠุฌุจ ุฃู† ูŠู†ุชู…ูŠ ุฅู„ูŠู‡
ุนู‚ุฏุฉ ูˆุงุญุฏุฉ ุจุงู„ุถุจุท. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

NetDeviceContainer d = ... ุ›

helper.EnablePcap ("ุจุงุฏุฆุฉ"ุŒ d) ุ›

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ู…ู† ุฃุฒูˆุงุฌ ุงู„ุนู‚ุฏุฉ/ุงู„ุดุจูƒุฉ ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
NodeContainer. ู„ูƒู„ ุนู‚ุฏุฉ ููŠ NodeContainer ู…ุฑูู‚ ุจู‡ NetDevices ุชุชูƒุฑุฑ.
ู„ูƒู„ NetDevice ุงู„ู…ุฑูู‚ุฉ ุจูƒู„ ุนู‚ุฏุฉ ููŠ ุงู„ุญุงูˆูŠุฉุŒ ู‡ูˆ ู†ูˆุน ู‡ุฐุง ุงู„ุฌู‡ุงุฒ
ุงู„ุชุญู‚ู‚. ู„ูƒู„ ุฌู‡ุงุฒ ู…ู† ุงู„ู†ูˆุน ุงู„ู…ู†ุงุณุจ (ู†ูุณ ุงู„ู†ูˆุน ุงู„ุฐูŠ ูŠุฏูŠุฑู‡ ุงู„ุฌู‡ุงุฒ
ู…ุณุงุนุฏ)ุŒ ุชู… ุชู…ูƒูŠู† ุงู„ุชุชุจุน.

NodeContainer n ุ›

helper.EnablePcap ("ุจุงุฏุฆุฉ"ุŒ n) ุ›

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ุฃุณุงุณ ู…ุนุฑู ุงู„ุนู‚ุฏุฉ ูˆู…ุนุฑู ุงู„ุฌู‡ุงุฒ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒ
ุตุฑูŠุญ ุจูŠ ุชูŠ ุขุฑ. ุชุญุชูˆูŠ ูƒู„ ุนู‚ุฏุฉ ููŠ ุงู„ู†ุธุงู… ุนู„ู‰ ู…ุนุฑู ุนู‚ุฏุฉ ุตุญูŠุญ ูˆูƒู„ ุฌู‡ุงุฒ ู…ุชุตู„
ุฅู„ู‰ ุนู‚ุฏุฉ ู„ุฏูŠู‡ุง ู…ุนุฑู ุฌู‡ุงุฒ ุนุฏุฏ ุตุญูŠุญ.

helper.EnablePcap ("ุจุงุฏุฆุฉ"ุŒ 21ุŒ 1) ุ›

ยท ูˆุฃุฎูŠุฑู‹ุงุŒ ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ู„ุฌู…ูŠุน ุงู„ุฃุฌู‡ุฒุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ู†ุธุงู…ุŒ ูˆู…ู† ู†ูุณ ุงู„ู†ูˆุน
ูƒู…ุง ุฃู† ูŠุฏูŠุฑู‡ุง ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ.

helper.EnablePcapAll ("ุจุงุฏุฆุฉ") ุŒ

ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช
ุถู…ู†ูŠู‹ุง ููŠ ุฃูˆุตุงู ุงู„ุทุฑูŠู‚ุฉ ุฃุนู„ุงู‡ ู‡ูˆ ุฅู†ุดุงุก ุงุณู… ู…ู„ู ูƒุงู…ู„ ุจูˆุงุณุทุฉ
ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ. ูˆูู‚ู‹ุง ู„ู„ุงุชูุงู‚ูŠุฉุŒ ูŠุชุชุจุน PCAP ููŠ NS-3 ุงู„ู†ุธุงู… ู…ู† ุงู„ุดูƒู„
- ู…ุนุฑู> - ู…ุนุฑู> .pcap

ูƒู…ุง ุฐูƒุฑู†ุง ุณุงุจู‚ู‹ุงุŒ ุณูŠูƒูˆู† ู„ูƒู„ ุนู‚ุฏุฉ ููŠ ุงู„ู†ุธุงู… ู…ุนุฑู ุนู‚ุฏุฉ ู…ุฎุตุต ู„ู„ู†ุธุงู…ุ› ูˆ
ุณูŠุญุชูˆูŠ ูƒู„ ุฌู‡ุงุฒ ุนู„ู‰ ูู‡ุฑุณ ูˆุงุฌู‡ุฉ (ูŠุณู…ู‰ ุฃูŠุถู‹ุง ู…ุนุฑู ุงู„ุฌู‡ุงุฒ) ุจุงู„ู†ุณุจุฉ ู„ู„ุนู‚ุฏุฉ ุงู„ุฎุงุตุฉ ุจู‡.
ุงูุชุฑุงุถูŠู‹ุงุŒ ูŠุชู… ุฅู†ุดุงุก ู…ู„ู ุชุชุจุน PCAP ูƒู†ุชูŠุฌุฉ ู„ุชู…ูƒูŠู† ุงู„ุชุชุจุน ููŠ ุงู„ุฃูˆู„
ุฌู‡ุงุฒ Node 21 ุจุงุณุชุฎุฏุงู… ุงู„ุจุงุฏุฆุฉ "prefix" ุณูŠูƒูˆู† ุงู„ุจุงุฏุฆุฉ -21-1.

ูŠู…ูƒู†ูƒ ุฏุงุฆู…ู‹ุง ุงุณุชุฎุฏุงู… ู…ู„ู NS-3 ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ู„ุฌุนู„ ู‡ุฐุง ุฃูƒุซุฑ ูˆุถูˆุญู‹ุง. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฅุฐุง
ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ู„ุชุนูŠูŠู† ุงุณู… "ุงู„ุฎุงุฏู…" ู„ู„ุนู‚ุฏุฉ 21ุŒ PCAP ุงู„ู†ุงุชุฌ
ุณูŠุตุจุญ ุงุณู… ู…ู„ู ุงู„ุชุชุจุน ุชู„ู‚ุงุฆูŠู‹ุง ุŒ ุจุงุฏุฆุฉ ุฎุงุฏู… 1.pcap ูˆุฅุฐุง ู‚ู…ุช ุฃูŠุถู‹ุง ุจุชุนูŠูŠู†
ุงุณู… "eth0" ุนู„ู‰ ุงู„ุฌู‡ุงุฒุŒ ูุฅู† ุงุณู… ู…ู„ู PCAP ุงู„ุฎุงุต ุจูƒ ุณูˆู ูŠู„ุชู‚ุท ู‡ุฐุง ุชู„ู‚ุงุฆูŠู‹ุง ูˆูŠูƒูˆู†
ุชุณู…ู‰ ุจุงุฏุฆุฉ ุฎุงุฏู… eth0.pcap.

ุฃุฎูŠุฑู‹ุงุŒ ู‡ู†ุงูƒ ุทุฑูŠู‚ุชุงู† ู…ู† ุงู„ุทุฑู‚ ุงู„ู…ูˆุถุญุฉ ุฃุนู„ุงู‡ุŒ

EnablePcap ุจุงุทู„ุฉ (ุจุงุฏุฆุฉ std :: string ุŒ Ptr ุงู„ุซุงู†ูŠุฉ ุŒ ู…ู†ุทู‚ูŠุฉ ู…ุฎุชู„ุทุฉ = ุฎุทุฃ ุŒ ู…ู†ุทู‚ูŠุฉ ุตุฑูŠุญุฉ = ุฎุทุฃ) ุ›
EnablePcap ุจุงุทู„ (std :: string ุจุงุฏุฆุฉ ุŒ std :: string ุŒ ndName ุŒ bool ู…ุฎุชู„ุท = false ุŒ bool ุตุฑูŠุญ ุตุฑูŠุญ = ุฎุทุฃ) ุ›

ู„ู‡ุง ู…ุนู„ู…ุฉ ุงูุชุฑุงุถูŠุฉ ุชุณู…ู‰ ุตุฑูŠุญ ุงุณู… ุงู„ู…ู„ู. ุนู†ุฏ ุงู„ุชุนูŠูŠู† ุนู„ู‰ ุตุญูŠุญ ุŒ ู‡ุฐู‡ ุงู„ู…ุนู„ู…ุฉ
ูŠุนุทู„ ุขู„ูŠุฉ ุฅูƒู…ุงู„ ุงุณู… ุงู„ู…ู„ู ุงู„ุชู„ู‚ุงุฆูŠ ูˆูŠุณู…ุญ ู„ูƒ ุจุฅู†ุดุงุก ู…ู„ู
ุงุณู… ุงู„ู…ู„ู. ูŠุชูˆูุฑ ู‡ุฐุง ุงู„ุฎูŠุงุฑ ูู‚ุท ููŠ ุงู„ุทุฑู‚ ุงู„ุชูŠ ุชุชูŠุญ ุชุชุจุน PCAP ุนู„ู‰ ู…ู„ู
ุฌู‡ุงุฒ ูˆุงุญุฏ.

ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ู…ู† ุฃุฌู„ ุงู„ุชุฑุชูŠุจ ู„ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ ู„ุฅู†ุดุงุก PCAP ูˆุงุญุฏ ุบูŠุฑ ุดุฑุนูŠ
ู…ู„ู ุงู„ุชู‚ุงุท ุจุงุณู… ู…ุญุฏุฏ my-pcap-file.pcap ุนู„ู‰ ุฌู‡ุงุฒ ู…ุนูŠู†ุŒ ูŠู…ูƒู† ู„ู„ู…ุฑุก:

Ptr ุงุฎุชุตุงุฑ ุงู„ุซุงู†ูŠุ›

helper.EnablePcap ("my-pcap-file.pcap" ุŒ nd ุŒ true ุŒ true) ุ›

ุฃูˆู„ ุตุญูŠุญ ุชู…ูƒู† ุงู„ู…ุนู„ู…ุฉ ู…ู† ุชุชุจุนุงุช ุงู„ูˆุถุน ุงู„ู…ุฎุชู„ุท ูˆุงู„ุซุงู†ูŠุฉ ุชุฎุจุฑ ุงู„ู…ุณุงุนุฏ
ู„ุชูุณูŠุฑ ุจุงุฏุฆุฉ ุงู„ู…ุนู„ู…ุฉ ูƒุงุณู… ู…ู„ู ูƒุงู…ู„.

ASCII
ุณู„ูˆูƒ ู…ุณุงุนุฏ ุงู„ุชุชุจุน ASCII mixin ูŠุดุจู‡ ุฅู„ู‰ ุญุฏ ูƒุจูŠุฑ ุฅุตุฏุงุฑ PCAP.
ุงู„ู‚ ู†ุธุฑุฉ ุนู„ู‰ src / network / helper / trace-helper.h ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ู…ุชุงุจุนุฉ ุงู„ู…ู†ุงู‚ุดุฉ
ุฃุซู†ุงุก ุงู„ู†ุธุฑ ุฅู„ู‰ ุงู„ูƒูˆุฏ ุงู„ุญู‚ูŠู‚ูŠ.

ุงู„ูุตู„ AsciiTraceHelperForDevice ูŠุถูŠู ูˆุธุงุฆู ุนุงู„ูŠุฉ ุงู„ู…ุณุชูˆู‰ ู„ุงุณุชุฎุฏุงู… ASCII
ุงู„ุชุชุจุน ุฅู„ู‰ ูุฆุฉ ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ. ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ุญุงู„ุฉ PCAPุŒ ูŠุฌุจ ุนู„ู‰ ูƒู„ ุฌู‡ุงุฒ ุชู†ููŠุฐ
ุทุฑูŠู‚ุฉ ุงูุชุฑุงุถูŠุฉ ูˆุงุญุฏุฉ ู…ูˆุฑูˆุซุฉ ู…ู† ุชุชุจุน ASCII mixin.

ุงู„ูุฑุงุบ ุงู„ุธุงู‡ุฑูŠ EnableAsciiInternal (Ptr ุชุฏูู‚ุŒ
ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง::ุณู„ุณู„ุฉ ุงู„ุจุงุฏุฆุฉุŒ
ุจูŠ ุชูŠ ุขุฑ ุงุฎุชุตุงุฑ ุงู„ุซุงู†ูŠุŒ
ู…ู†ุทู‚ูŠ ุงุณู… ุงู„ู…ู„ู ุงู„ูˆุงุถุญ) = 0ุ›

ูŠุนูƒุณ ุชูˆู‚ูŠุน ู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ ูˆุฌู‡ุฉ ุงู„ู†ุธุฑ ุงู„ู…ุชู…ุญูˆุฑุฉ ุญูˆู„ ุงู„ุฌู‡ุงุฒ ู„ู„ูˆุถุน ููŠ ู‡ุฐุง ุงู„ุตุฏุฏ
ู…ุณุชูˆู‰ุ› ูˆูƒุฐู„ูƒ ุญู‚ูŠู‚ุฉ ุฃู† ุงู„ู…ุณุงุนุฏ ู‚ุฏ ูŠูƒุชุจ ุฅู„ู‰ ุชุฏูู‚ ุฅุฎุฑุงุฌ ู…ุดุชุฑูƒ. ูƒู„
ุงู„ุฃุณุงู„ูŠุจ ุงู„ุนุงู…ุฉ ุงู„ู…ุฑุชุจุทุฉ ุจุชุชุจุน ASCII ุงู„ู…ูˆุฑูˆุซุฉ ู…ู† ุงู„ูุตู„ AsciiTraceHelperForDevice
ุชู‚ู„ูŠู„ ุงุณุชุฏุนุงุก ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ ุงู„ู…ุนุชู…ุฏุฉ ุนู„ู‰ ุฌู‡ุงุฒ ูˆุงุญุฏ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู…ู„ู
ุฃุฏู†ู‰ ู…ุณุชูˆู‰ ู„ุทุฑู‚ ุชุชุจุน ascii

ุจุงุทู„ุฉ EnableAscii (std::string ุจุงุฏุฆุฉุŒ Ptr ndุŒ bool simpleFilename = false)ุ›
ุจุงุทู„ EnableAscii (Ptr ุชูŠุงุฑ ุŒ Ptr ุงุฎุชุตุงุฑ ุงู„ุซุงู†ูŠ)ุ›

ุณูŠุณุชุฏุนูŠ ุชู†ููŠุฐ ุงู„ุฌู‡ุงุฒ ู„ู€ ุชู…ูƒูŠู† AsciiInternal ุจุดูƒู„ ู…ุจุงุดุฑ ุŒ ู…ุน ุชูˆููŠุฑ ุฅู…ุง ุฃ
ุจุงุฏุฆุฉ ุฃูˆ ุชูŠุงุฑ ุตุงู„ุญ. ุณุชุนุชู…ุฏ ุฌู…ูŠุน ุทุฑู‚ ุชุชุจุน ASCII ุงู„ุนุงู…ุฉ ุงู„ุฃุฎุฑู‰ ุนู„ู‰ ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ
ูˆุธุงุฆู ู…ู†ุฎูุถุฉ ุงู„ู…ุณุชูˆู‰ ู„ุชูˆููŠุฑ ูˆุธุงุฆู ุฅุถุงููŠุฉ ุนู„ู‰ ู…ุณุชูˆู‰ ุงู„ู…ุณุชุฎุฏู…. ู…ุงุฐุง ูŠุนู†ูŠ ู‡ุฐุง ู„
ุงู„ู…ุณุชุฎุฏู… ู‡ูˆ ุฃู† ุฌู…ูŠุน ู…ุณุงุนุฏูŠ ุงู„ุฃุฌู‡ุฒุฉ ููŠ ุงู„ู†ุธุงู… ุณูŠูƒูˆู† ู„ุฏูŠู‡ู… ุฌู…ูŠุน ุทุฑู‚ ุชุชุจุน ASCII
ู…ุชุงุญุ› ูˆุณุชุนู…ู„ ุฌู…ูŠุน ู‡ุฐู‡ ุงู„ุทุฑู‚ ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ ุนุจุฑ ุงู„ุฃุฌู‡ุฒุฉ ุฅุฐุง ูƒุงู†ุช ุงู„ุฃุฌู‡ุฒุฉ
ุชู†ููŠุฐ EnablAscii ุงู„ุฏุงุฎู„ูŠุฉ ุจุดูƒู„ ุตุญูŠุญ.

ุทุฑู‚
ุจุงุทู„ุฉ EnableAscii (std::string ุจุงุฏุฆุฉุŒ Ptr ndุŒ bool simpleFilename = false)ุ›
ุจุงุทู„ EnableAscii (Ptr ุชูŠุงุฑ ุŒ Ptr ุงุฎุชุตุงุฑ ุงู„ุซุงู†ูŠ)ุ›

void EnableAscii (std::string prefix, std::string ndName, bool plainFilename = false);
ุจุงุทู„ EnableAscii (Ptr ุชูŠุงุฑ ุŒ ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ุณู„ุณู„ุฉ ndName) ุ›

EnableAscii ุจุงุทู„ุฉ (ุจุงุฏุฆุฉ std :: string ุŒ NetDeviceContainer d) ุ›
ุจุงุทู„ EnableAscii (Ptr ุชูŠุงุฑ ุŒ NetDeviceContainer ุฏ) ุ›

EnableAscii ุจุงุทู„ุฉ (ุจุงุฏุฆุฉ std :: string ุŒ NodeContainer n) ุ›
ุจุงุทู„ EnableAscii (Ptr ุชูŠุงุฑ ุŒ NodeContainer n) ุ›

ุจุงุทู„ EnableAsciiAll (ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ุจุงุฏุฆุฉ ุณู„ุณู„ุฉ) ุ›
ุจุงุทู„ EnableAsciiAll (Ptr ุชุฏูู‚)ุ›

void EnableAscii (std::string prefix, uint32_t nodeid, uint32_t devicesid, bool plainFilename);
ุจุงุทู„ EnableAscii (Ptr ุชูŠุงุฑ ุŒ uint32_t nodeid ุŒ uint32_t deviceid) ุ›

ู†ุดุฌุนูƒ ุนู„ู‰ ุงู„ุงุทู„ุงุน ุนู„ู‰ ูˆุซุงุฆู‚ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ุงู„ุฎุงุตุฉ ุจุงู„ูุตู„ ุงู„ุฏุฑุงุณูŠ AsciiTraceHelperForDevice ุฅู„ู‰
ุงู„ุนุซูˆุฑ ุนู„ู‰ ุชูุงุตูŠู„ ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ. ูˆู„ูƒู† ู„ุชู„ุฎูŠุต ...

ยท ู‡ู†ุงูƒ ุถุนู ุนุฏุฏ ุงู„ุทุฑู‚ ุงู„ู…ุชุงุญุฉ ู„ุชุชุจุน ASCII ู…ู‚ุงุฑู†ุฉ ุจู€ PCAP
ุงู‚ุชูุงุก ุฃุซุฑ. ูˆุฐู„ูƒ ู„ุฃู†ู‡ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ู†ู…ูˆุฐุฌ ู†ู…ุท PCAP ุญูŠุซ ุชูˆุฌุฏ ุขุซุงุฑ ู…ู† ูƒู„ ู…ู†ู‡ู…ุง
ุชุชู… ูƒุชุงุจุฉ ุฒูˆุฌ ุงู„ุนู‚ุฏุฉ / ุงู„ุฌู‡ุงุฒ ุงู„ูุฑูŠุฏ ููŠ ู…ู„ู ูุฑูŠุฏ ุŒ ูˆู†ุญู† ู†ุฏุนู… ุงู„ู†ู…ูˆุฐุฌ ุงู„ุฐูŠ ุชุชุจุน ููŠู‡
ุชุชู… ูƒุชุงุจุฉ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุฎุงุตุฉ ุจุงู„ุนุฏูŠุฏ ู…ู† ุฃุฒูˆุงุฌ ุงู„ุนู‚ุฏ / ุงู„ุฃุฌู‡ุฒุฉ ููŠ ู…ู„ู ู…ุดุชุฑูƒ. ู‡ุฐุง ูŠุนู†ูŠ ุฃู† ู…ู„ู
- - ูŠุชู… ุงุณุชุจุฏุงู„ ุขู„ูŠุฉ ุฅู†ุดุงุก ุงุณู… ุงู„ู…ู„ู ุจุขู„ูŠุฉ
ุงู„ุฑุฌูˆุน ุฅู„ู‰ ู…ู„ู ู…ุดุชุฑูƒ ุ› ูˆูŠุชุถุงุนู ุนุฏุฏ ุทุฑู‚ API ู„ู„ุณู…ุงุญ ู„ู„ุฌู…ูŠุน
ู…ุฌู…ูˆุนุงุช.

ยท ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ุชุชุจุน PCAPุŒ ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน ASCII ุนู„ู‰ ุฌู‡ุงุฒ ู…ุนูŠู† (ุนู‚ุฏุฉุŒ ุดุจูƒุฉ)
ุงู„ุฒูˆุฌ ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู Ptr ุฅู„ู‰ ุชู…ูƒูŠู† ุทุฑูŠู‚ุฉ. ุงู„ Ptr ุถู…ู†ูŠ
ู†ุธุฑู‹ุง ู„ุฃู† ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ ูŠุฌุจ ุฃู† ูŠู†ุชู…ูŠ ุฅู„ู‰ ุนู‚ุฏุฉ ูˆุงุญุฏุฉ ุจุงู„ุถุจุท. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

Ptr ุงุฎุชุตุงุฑ ุงู„ุซุงู†ูŠุ›

helper.EnableAscii ("ุงู„ุจุงุฏุฆุฉ" ุŒ ุงู„ุซุงู†ูŠุฉ) ุ›

ยท ุชุชุถู…ู† ุงู„ุทุฑู‚ ุงู„ุฃุฑุจุน ุงู„ุฃูˆู„ู‰ ุฃูŠุถู‹ุง ู…ุนู„ู…ุฉ ุงูุชุฑุงุถูŠุฉ ุชุณู…ู‰ ุตุฑูŠุญ ุงุณู… ุงู„ู…ู„ู ุฃู†
ุชุนู…ู„ ุจุดูƒู„ ู…ุดุงุจู‡ ู„ู„ู…ุนู„ู…ุงุช ุงู„ู…ูƒุงูุฆุฉ ููŠ ุญุงู„ุฉ PCAP.

ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ู„ุง ุชุชู… ูƒุชุงุจุฉ ุฃูŠ ุณูŠุงู‚ุงุช ุชุชุจุน ุฅู„ู‰ ู…ู„ู ุชุชุจุน ASCII ู„ุฃู†ู‡ุง ุณุชูƒูˆู† ูƒุฐู„ูƒ
ู…ุชูƒุฑุฑ. ุณูŠุฎุชุงุฑ ุงู„ู†ุธุงู… ุงุณู… ุงู„ู…ู„ู ุงู„ุฐูŠ ุณูŠุชู… ุฅู†ุดุงุคู‡ ุจุงุณุชุฎุฏุงู… ู†ูุณ ุงู„ู‚ูˆุงุนุฏ ู…ุซู„
ุงู„ู…ูˆุตูˆูุฉ ููŠ ู‚ุณู… PCAPุŒ ุจุงุณุชุซู†ุงุก ุฃู† ุงู„ู…ู„ู ุณูŠูƒูˆู† ู„ู‡ ุงู„ู„ุงุญู‚ุฉ .tr ุจุฏู„ุง ู…ู†
.pcap.

ยท ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุชู…ูƒูŠู† ุชุชุจุน ASCII ุนู„ู‰ ุฃูƒุซุฑ ู…ู† ุฌู‡ุงุฒ ุดุจูƒูŠ ูˆุงุญุฏ ูˆุฅุฑุณุงู„ ูƒุงูุฉ ุงู„ุขุซุงุฑ
ุฅู„ู‰ ู…ู„ู ูˆุงุญุฏุŒ ูŠู…ูƒู†ูƒ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ ุฃูŠุถู‹ุง ุจุงุณุชุฎุฏุงู… ูƒุงุฆู† ู„ู„ุฅุดุงุฑุฉ ุฅู„ู‰ ู…ู„ู ูˆุงุญุฏ.
ู„ู‚ุฏ ุฑุฃูŠู†ุง ู‡ุฐุง ุจุงู„ูุนู„ ููŠ ู…ุซุงู„ "cwnd" ุฃุนู„ุงู‡:

Ptr ูˆ 1 ุ›
Ptr ูˆ 2 ุ›

Ptr ุชูŠุงุฑ = asciiTraceHelper.CreateFileStream ("trace-file-name.tr") ุ›

ุงู„ู…ุณุงุนุฏ EnableAscii (ุชูŠุงุฑ ุŒ nd1) ุ›
ุงู„ู…ุณุงุนุฏ EnableAscii (ุชูŠุงุฑ ุŒ nd2) ุ›

ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ุณูŠุงู‚ุงุช ุงู„ุชุชุจุน . ู…ูƒุชูˆุจุฉ ููŠ ู…ู„ู ุชุชุจุน ASCII ู„ุฃู†ู‡ุง ู…ุทู„ูˆุจุฉ
ู„ุฅุฒุงู„ุฉ ุงู„ุบู…ูˆุถ ุนู† ุงู„ุขุซุงุฑ ู…ู† ุงู„ุฌู‡ุงุฒูŠู†. ู„ุงุญุธ ุฃู†ู‡ ู…ู†ุฐ ุงู„ู…ุณุชุฎุฏู… ุชู…ุงู…ุง
ุชุญุฏูŠุฏ ุงุณู… ุงู„ู…ู„ูุŒ ูŠุฌุจ ุฃู† ุชุชุถู…ู† ุงู„ุณู„ุณู„ุฉ ู…ู„ู ุŒ ุขุฑ ู„ุงุญู‚ุฉ ู„ู„ุงุชุณุงู‚.

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน ASCII ุนู„ู‰ ุฒูˆุฌ ู…ุนูŠู† (ุนู‚ุฏุฉุŒ ุดุจูƒุฉ ุฌู‡ุงุฒ) ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ
ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ุณู„ุณู„ุฉ ุชู…ุซู„ ุณู„ุณู„ุฉ ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ุฅู„ู‰ ู…ู„ู ุชู…ูƒูŠู†Pcap ุทุฑูŠู‚ุฉ. ุงู„
Ptr ุชู… ุงู„ุจุญุซ ุนู†ู‡ ู…ู† ุณู„ุณู„ุฉ ุงู„ุงุณู…. ู…ุฑุฉ ุฃุฎุฑู‰ ุŒ ูุฅู† ุถู…ู†ูŠู‹ุง ู…ู†ุฐ ุฐู„ูƒ ุงู„ุญูŠู†
ูŠุฌุจ ุฃู† ูŠู†ุชู…ูŠ ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ ุงู„ู…ุญุฏุฏ ุฅู„ู‰ ุนู‚ุฏุฉ ูˆุงุญุฏุฉ ุจุงู„ุถุจุท. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("ุงู„ุนู…ูŠู„" ...) ุ›
ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("client / eth0" ...) ุ›
ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("ุงู„ุฎุงุฏู…" ...) ุ›
ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("server / eth0" ...) ุ›

helper.EnableAscii ("ุจุงุฏุฆุฉ"ุŒ "client / eth0") ุ›
helper.EnableAscii ("ุจุงุฏุฆุฉ"ุŒ "server / eth0") ุ›

ุณูŠุคุฏูŠ ุฐู„ูƒ ุฅู„ู‰ ุธู‡ูˆุฑ ู…ู„ููŠู† ุจุงุณู… "prefix-client-eth0.tr" ูˆ
``prefix-server-eth0.tr`` ู…ุน ุชุชุจุนุงุช ู„ูƒู„ ุฌู‡ุงุฒ ููŠ
ู…ู„ู ุงู„ุชุชุจุน ุงู„ู…ุนู†ูŠ. ู†ุธุฑู‹ุง ู„ุฃู† ุฌู…ูŠุน ูˆุธุงุฆู ``EnableAscii``
ูŠุชู… ุชุญู…ูŠู„ู‡ุง ุจุดูƒู„ ุฒุงุฆุฏ ู„ุฃุฎุฐ ุบู„ุงู ุฏูู‚ุŒ ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ู‡ุฐุง ุงู„ู†ู…ูˆุฐุฌ ูƒู€
ุญุณู†ู‹ุง::

ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("ุงู„ุนู…ูŠู„" ...) ุ›
ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("client / eth0" ...) ุ›
ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("ุงู„ุฎุงุฏู…" ...) ุ›
ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("server / eth0" ...) ุ›

Ptr ุชูŠุงุฑ = asciiTraceHelper.CreateFileStream ("trace-file-name.tr") ุ›

helper.EnableAscii (ุชูŠุงุฑ ุŒ "ุงู„ุนู…ูŠู„ / eth0") ุ›
helper.EnableAscii (ุชูŠุงุฑ ุŒ "ุงู„ุฎุงุฏู… / eth0") ุ›

ู‚ุฏ ูŠู†ุชุฌ ุนู† ู‡ุฐุง ู…ู„ู ุชุชุจุน ูˆุงุญุฏ ูŠุณู…ู‰ ุชุชุจุน ุงุณู… ุงู„ู…ู„ู.tr ุงู„ุฐูŠ ูŠุญุชูˆูŠ ุนู„ู‰ ูƒู„
ุฃุญุฏุงุซ ุงู„ุชุชุจุน ู„ูƒู„ุง ุงู„ุฌู‡ุงุฒูŠู†. ุณูŠุชู… ุชูˆุถูŠุญ ุงู„ุฃุญุฏุงุซ ู…ู† ุฎู„ุงู„ ุณูŠุงู‚ ุงู„ุชุชุจุน
ุณู„ุงุณู„.

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน ASCII ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ู…ู† ุฃุฒูˆุงุฌ (ุงู„ุนู‚ุฏุฉุŒ ุงู„ุดุจูƒุฉ-ุงู„ุฌู‡ุงุฒ) ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
NetDeviceContainer. ู„ูƒู„ ูˆุงุญุฏ NetDevice ููŠ ุงู„ุญุงูˆูŠุฉ ูŠุชู… ูุญุต ุงู„ู†ูˆุน. ู„ูƒู„
ุฌู‡ุงุฒ ู…ู† ุงู„ู†ูˆุน ุงู„ู…ู†ุงุณุจ (ู†ูุณ ุงู„ู†ูˆุน ุงู„ุฐูŠ ูŠุฏูŠุฑู‡ ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ) ุŒ ุงู„ุชุชุจุน ู‡ูˆ
ู…ู…ูƒู†. ู…ุฑุฉ ุฃุฎุฑู‰ ุŒ ูุฅู† ุถู…ู†ูŠู‹ุง ู†ุธุฑู‹ุง ู„ุฃู† ุฌู‡ุงุฒ ุงู„ุดุจูƒุฉ ุงู„ุฐูŠ ุชู… ุงู„ุนุซูˆุฑ ุนู„ูŠู‡ ูŠุฌุจ ุฃู† ูŠู†ุชู…ูŠ ุฅู„ูŠู‡
ุนู‚ุฏุฉ ูˆุงุญุฏุฉ ุจุงู„ุถุจุท. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

NetDeviceContainer d = ... ุ›

helper.EnableAscii ("ุงู„ุจุงุฏุฆุฉ" ุŒ d) ุ›

ู‚ุฏ ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุฅู†ุดุงุก ุนุฏุฏ ู…ู† ู…ู„ูุงุช ุชุชุจุน ASCIIุŒ
ูƒู„ ู…ู†ู‡ุง ูŠุชุจุน `` - - .tr``
ู…ุคุชู…ุฑ.

ูŠุชู… ุฏู…ุฌ ูƒุงูุฉ ุงู„ุขุซุงุฑ ููŠ ู…ู„ู ูˆุงุญุฏ ุจุดูƒู„ ู…ุดุงุจู‡ ู„ู„ุฃู…ุซู„ุฉ
ููŠ ุงู„ุงุนู„ู‰:

NetDeviceContainer d = ... ุ›

Ptr ุชูŠุงุฑ = asciiTraceHelper.CreateFileStream ("trace-file-name.tr") ุ›

ุงู„ู…ุณุงุนุฏ EnableAscii (ุชูŠุงุฑ ุŒ ุฏ) ุ›

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน ASCII ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ู…ู† ุฃุฒูˆุงุฌ (ุงู„ุนู‚ุฏุฉุŒ ุงู„ุดุจูƒุฉ-ุงู„ุฌู‡ุงุฒ) ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
NodeContainer. ู„ูƒู„ ุนู‚ุฏุฉ ููŠ NodeContainer ู…ุฑูู‚ ุจู‡ NetDevices ุชุชูƒุฑุฑ.
ู„ูƒู„ NetDevice ุงู„ู…ุฑูู‚ุฉ ุจูƒู„ ุนู‚ุฏุฉ ููŠ ุงู„ุญุงูˆูŠุฉุŒ ู‡ูˆ ู†ูˆุน ู‡ุฐุง ุงู„ุฌู‡ุงุฒ
ุงู„ุชุญู‚ู‚. ู„ูƒู„ ุฌู‡ุงุฒ ู…ู† ุงู„ู†ูˆุน ุงู„ู…ู†ุงุณุจ (ู†ูุณ ุงู„ู†ูˆุน ุงู„ุฐูŠ ูŠุฏูŠุฑู‡ ุงู„ุฌู‡ุงุฒ
ู…ุณุงุนุฏ)ุŒ ุชู… ุชู…ูƒูŠู† ุงู„ุชุชุจุน.

NodeContainer n ุ›

helper.EnableAscii ("ุจุงุฏุฆุฉ"ุŒ n) ุ›

ู‚ุฏ ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุฅู†ุดุงุก ุนุฏุฏ ู…ู† ู…ู„ูุงุช ุชุชุจุน ASCIIุŒ ูŠุชุจุน ูƒู„ ู…ู†ู‡ุง
ู‡ูŠู‡ - ู…ุนุฑู> - ู…ุนุฑู>. tr ู…ุคุชู…ุฑ. ุงู„ุฌู…ุน ุจูŠู† ูƒุงูุฉ ุงู„ุขุซุงุฑ ููŠ ุฃ
ูŠุชู… ุฅู†ุฌุงุฒ ู…ู„ู ูˆุงุญุฏ ุจุดูƒู„ ู…ุดุงุจู‡ ู„ู„ุฃู…ุซู„ุฉ ุงู„ู…ุฐูƒูˆุฑุฉ ุฃุนู„ุงู‡.

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ุฃุณุงุณ ู…ุนุฑู ุงู„ุนู‚ุฏุฉ ูˆู…ุนุฑู ุงู„ุฌู‡ุงุฒ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒ
ุตุฑูŠุญ ุจูŠ ุชูŠ ุขุฑ. ุชุญุชูˆูŠ ูƒู„ ุนู‚ุฏุฉ ููŠ ุงู„ู†ุธุงู… ุนู„ู‰ ู…ุนุฑู ุนู‚ุฏุฉ ุตุญูŠุญ ูˆูƒู„ ุฌู‡ุงุฒ ู…ุชุตู„
ุฅู„ู‰ ุนู‚ุฏุฉ ู„ุฏูŠู‡ุง ู…ุนุฑู ุฌู‡ุงุฒ ุนุฏุฏ ุตุญูŠุญ.

helper.EnableAscii ("ุจุงุฏุฆุฉ" ุŒ 21 ุŒ 1) ุ›

ุจุงู„ุทุจุน ุŒ ูŠู…ูƒู† ุฏู…ุฌ ุงู„ุขุซุงุฑ ููŠ ู…ู„ู ูˆุงุญุฏ ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ุฃุนู„ุงู‡.

ยท ูˆุฃุฎูŠุฑู‹ุงุŒ ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ู„ุฌู…ูŠุน ุงู„ุฃุฌู‡ุฒุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ู†ุธุงู…ุŒ ูˆู…ู† ู†ูุณ ุงู„ู†ูˆุน
ูƒู…ุง ุฃู† ูŠุฏูŠุฑู‡ุง ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ.

helper.EnableAsciiAll ("ุจุงุฏุฆุฉ") ุ›

ู‚ุฏ ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุฅู†ุดุงุก ุนุฏุฏ ู…ู† ู…ู„ูุงุช ุชุชุจุน ASCIIุŒ ู…ู„ู ูˆุงุญุฏ ู„ูƒู„ ุฌู‡ุงุฒ
ููŠ ุงู„ู†ุธุงู… ู…ู† ุงู„ู†ูˆุน ุงู„ุฐูŠ ูŠุฏูŠุฑู‡ ุงู„ู…ุณุงุนุฏ. ูƒู„ ู‡ุฐู‡ ุงู„ู…ู„ูุงุช ุณูˆู ุชุชุจุน
- ู…ุนุฑู> - ู…ุนุฑู>. tr ู…ุคุชู…ุฑ. ุงู„ุฌู…ุน ุจูŠู† ูƒู„ ุงู„ุขุซุงุฑ ููŠ ูˆุงุญุฏ
ู…ู„ู ุชู… ุฅู†ุฌุงุฒู‡ ุจุดูƒู„ ู…ุดุงุจู‡ ู„ู„ุฃู…ุซู„ุฉ ุฃุนู„ุงู‡.

ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช
ุถู…ู†ูŠู‹ุง ููŠ ุฃูˆุตุงู ุฃุณู„ูˆุจ ุงู„ุจุงุฏุฆุฉ ุฃุนู„ุงู‡ ู‡ูˆ ุจู†ุงุก ุงู„ูƒุงู…ู„
ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช ุนู† ุทุฑูŠู‚ ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ. ูˆูู‚ู‹ุง ู„ู„ุงุชูุงู‚ูŠุฉุŒ ูŠุชุชุจุน ASCII ููŠ ู…ู„ู NS-3 ู†ุธุงู…
ู‡ูŠ ู…ู† ุงู„ุดูƒู„ - ู…ุนุฑู> - ู…ุนุฑู>. tr

ูƒู…ุง ุฐูƒุฑู†ุง ุณุงุจู‚ู‹ุงุŒ ุณูŠูƒูˆู† ู„ูƒู„ ุนู‚ุฏุฉ ููŠ ุงู„ู†ุธุงู… ู…ุนุฑู ุนู‚ุฏุฉ ู…ุฎุตุต ู„ู„ู†ุธุงู…ุ› ูˆ
ุณูŠุญุชูˆูŠ ูƒู„ ุฌู‡ุงุฒ ุนู„ู‰ ูู‡ุฑุณ ูˆุงุฌู‡ุฉ (ูŠุณู…ู‰ ุฃูŠุถู‹ุง ู…ุนุฑู ุงู„ุฌู‡ุงุฒ) ุจุงู„ู†ุณุจุฉ ู„ู„ุนู‚ุฏุฉ ุงู„ุฎุงุตุฉ ุจู‡.
ุงูุชุฑุงุถูŠู‹ุงุŒ ูŠุชู… ุฅู†ุดุงุก ู…ู„ู ุชุชุจุน ASCII ูƒู†ุชูŠุฌุฉ ู„ุชู…ูƒูŠู† ุงู„ุชุชุจุน ููŠ ุงู„ู…ู„ู ุงู„ุฃูˆู„
ุฌู‡ุงุฒ Node 21ุŒ ุจุงุณุชุฎุฏุงู… ุงู„ุจุงุฏุฆุฉ "prefix"ุŒ ุณูŠูƒูˆู† ุงู„ุจุงุฏุฆุฉ 21-1.tr.

ูŠู…ูƒู†ูƒ ุฏุงุฆู…ู‹ุง ุงุณุชุฎุฏุงู… ู…ู„ู NS-3 ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ู„ุฌุนู„ ู‡ุฐุง ุฃูƒุซุฑ ูˆุถูˆุญู‹ุง. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฅุฐุง
ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ู„ุชุนูŠูŠู† ุงุณู… "ุงู„ุฎุงุฏู…" ู„ู„ุนู‚ุฏุฉ 21ุŒ ู…ู…ุง ูŠู†ุชุฌ ุนู†ู‡
ุณูŠุตุจุญ ุงุณู… ู…ู„ู ุงู„ุชุชุจุน ASCII ุชู„ู‚ุงุฆูŠู‹ุงุŒ ุจุงุฏุฆุฉ- server-1.tr ูˆุฅุฐุง ู‚ู…ุช ุฃูŠุถู‹ุง ุจุชุนูŠูŠู†
ุงู„ุงุณู… "eth0" ุฅู„ู‰ ุงู„ุฌู‡ุงุฒุŒ ูˆุณูŠู„ุชู‚ุท ุงุณู… ู…ู„ู ุงู„ุชุชุจุน ASCII ู‡ุฐุง ุชู„ู‚ุงุฆูŠู‹ุง
ูˆูŠุชู… ุงุณุชุฏุนุงุคู‡ู… ุจุงุฏุฆุฉ- server-eth0.tr.

ุชุญุชูˆูŠ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุทุฑู‚ ุนู„ู‰ ู…ุนู„ู…ุฉ ุงูุชุฑุงุถูŠุฉ ุชุณู…ู‰ ุตุฑูŠุญ ุงุณู… ุงู„ู…ู„ู. ุนู†ุฏ ุงู„ุถุจุท ุนู„ู‰
ุตุญูŠุญ ุฃู† ู‡ุฐู‡ ุงู„ู…ุนู„ู…ุฉ ุชุนู…ู„ ุนู„ู‰ ุชุนุทูŠู„ ุขู„ูŠุฉ ุฅูƒู…ุงู„ ุงุณู… ุงู„ู…ู„ู ุชู„ู‚ุงุฆูŠู‹ุง ูˆุชุณู…ุญ ู„ูƒ ุจุฐู„ูƒ
ู„ุฅู†ุดุงุก ุงุณู… ู…ู„ู ูˆุงุถุญ. ู‡ุฐุง ุงู„ุฎูŠุงุฑ ู…ุชุงุญ ูู‚ุท ููŠ ุงู„ุทุฑู‚ ุงู„ุชูŠ ุชุณุชุบุฑู‚
ุงู„ุจุงุฏุฆุฉ ูˆุชู…ูƒูŠู† ุงู„ุชุชุจุน ุนู„ู‰ ุฌู‡ุงุฒ ูˆุงุญุฏ.

ุจุฑูˆุชูˆูƒูˆู„ ุงู„ู…ุณุงุนุฏูˆู†
PCAP
ุงู„ู‡ุฏู ู…ู† ู‡ุคู„ุงุก ู…ุฒูŠุฌ ู‡ูˆ ุชุณู‡ูŠู„ ุฅุถุงูุฉ ูˆุณูŠู„ุฉ ุชุชุจุน PCAP ู…ุชุณู‚ุฉ ุฅู„ู‰
ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช. ู†ุฑูŠุฏ ุฃู† ุชุนู…ู„ ุฌู…ูŠุน ุงู„ู†ูƒู‡ุงุช ุงู„ู…ุฎุชู„ูุฉ ู„ุชุชุจุน PCAP ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ ููŠ ุงู„ุฌู…ูŠุน
ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ุŒ ู„ุฐู„ูƒ ูŠุชู… ุชูˆุฑูŠุซ ุฃุณุงู„ูŠุจ ู‡ุคู„ุงุก ุงู„ู…ุณุงุนุฏูŠู† ุจูˆุงุณุทุฉ ู…ุณุงุนุฏูŠ ุงู„ู…ูƒุฏุณ. ุฃู„ู‚ ู†ุธุฑุฉ ุนู„ู‰
src / network / helper / trace-helper.h ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ู…ุชุงุจุนุฉ ุงู„ู…ู†ุงู‚ุดุฉ ุฃุซู†ุงุก ุงู„ู†ุธุฑ ููŠ
ูƒูˆุฏ ุญู‚ูŠู‚ูŠ.

ุณู†ู‚ูˆู… ููŠ ู‡ุฐุง ุงู„ู‚ุณู… ุจุชูˆุถูŠุญ ุงู„ุฃุณุงู„ูŠุจ ุงู„ู…ุทุจู‚ุฉ ุนู„ู‰ ุงู„ุจุฑูˆุชูˆูƒูˆู„ IPv4. ุฅู„ู‰
ุชุญุฏูŠุฏ ุงู„ุชุชุจุน ููŠ ุจุฑูˆุชูˆูƒูˆู„ุงุช ู…ู…ุงุซู„ุฉ ุŒ ูู‚ุท ุงุณุชุจุฏู„ ุงู„ู†ูˆุน ุงู„ู…ู†ุงุณุจ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ
ุฅุณุชุฎุฏู… Ptr ุจุฏู„ุง ู…ู† Ptr ูˆ ุงุชุตู„ ุชู…ูƒูŠู†PcapIpv6 ุจุฏู„ุง ู…ู† ุชู…ูƒูŠู†PcapIpv4.

ุงู„ูุตู„ PcapHelperForIpv4 ูŠูˆูุฑ ูˆุธุงุฆู ุนุงู„ูŠุฉ ุงู„ู…ุณุชูˆู‰ ู„ุงุณุชุฎุฏุงู… ุชุชุจุน PCAP
ููŠ ุงู„ IPv4 ุจุฑูˆุชูˆูƒูˆู„. ูŠุฌุจ ุฃู† ูŠู‚ูˆู… ูƒู„ ู…ุณุงุนุฏ ุจุฑูˆุชูˆูƒูˆู„ ูŠุชูŠุญ ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ ุจุชู†ููŠุฐ ู…ู„ู
ุงู„ุทุฑูŠู‚ุฉ ุงู„ุงูุชุฑุงุถูŠุฉ ุงู„ู…ูˆุฑูˆุซุฉ ู…ู† ู‡ุฐู‡ ุงู„ูุฆุฉ. ุณูŠูƒูˆู† ู‡ู†ุงูƒ ุชู†ููŠุฐ ู…ู†ูุตู„ ู„ู€
IPv6ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ูˆู„ูƒู† ุงู„ุงุฎุชู„ุงู ุงู„ูˆุญูŠุฏ ุณูŠูƒูˆู† ููŠ ุฃุณู…ุงุก ุงู„ุทุฑู‚ ูˆุงู„ุชูˆู‚ูŠุนุงุช.
ู…ุทู„ูˆุจ ุฃุณู…ุงุก ุทุฑู‚ ู…ุฎุชู„ูุฉ ู„ุฅุฒุงู„ุฉ ุงู„ุบู…ูˆุถ ุนู† ุงู„ูุตู„ IPv4 ุชุจุฏุฃ ู…ู† IPv6 ูƒู„ุงู‡ู…ุง
ู…ุดุชู‚ ู…ู† ุงู„ุทุจู‚ุฉ ู‡ุฏููˆุงู„ุทุฑู‚ ุงู„ุชูŠ ุชุดุชุฑูƒ ููŠ ู†ูุณ ุงู„ุชูˆู‚ูŠุน.

ุงู„ูุฑุงุบ ุงู„ุธุงู‡ุฑูŠ EnablePcapIpv4Internal (ุจุงุฏุฆุฉ ุณู„ุณู„ุฉ::stdุŒ
ุจูŠ ุชูŠ ุขุฑ IPv4,
ูˆุงุฌู‡ุฉ uint32_tุŒ
ู…ู†ุทู‚ูŠ ุงุณู… ุงู„ู…ู„ู ุงู„ูˆุงุถุญ) = 0ุ›

ูŠุนูƒุณ ุชูˆู‚ูŠุน ู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ ุงู„ุจุฑูˆุชูˆูƒูˆู„ ูˆุนุฑุถ ู…ุฑูƒุฒ ุงู„ูˆุงุฌู‡ุฉ ู„ู€
ุงู„ูˆุถุน ุนู„ู‰ ู‡ุฐุง ุงู„ู…ุณุชูˆู‰. ุฌู…ูŠุน ุงู„ุฃุณุงู„ูŠุจ ุงู„ุนุงู…ุฉ ุงู„ู…ูˆุฑูˆุซุฉ ู…ู† ุงู„ุทุจู‚ุฉ PcapHelperForIpv4
ุชู‚ู„ูŠู„ ุฅู„ู‰ ุงุณุชุฏุนุงุก ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ ุงู„ู…ุนุชู…ุฏุฉ ุนู„ู‰ ุฌู‡ุงุฒ ูˆุงุญุฏ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู…ู„ู
ุทุฑูŠู‚ุฉ PCAP ุฐุงุช ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุฏู†ู‰

EnablePcapIpv4 ุจุงุทู„ุฉ (std::string ุจุงุฏุฆุฉุŒ Ptr ipv4, ูˆุงุฌู‡ุฉ uint4_t, bool plainFilename = false);

ุณูŠุณุชุฏุนูŠ ุชู†ููŠุฐ ุงู„ุฌู‡ุงุฒ ู„ู€ ุชู…ูƒูŠู†PcapIpv4Internal ู…ุจุงุดุฑุฉ. ูƒู„ ุงู„ุฌู…ู‡ูˆุฑ ุงู„ุขุฎุฑ
ุชุนุชู…ุฏ ุฃุณุงู„ูŠุจ ุชุชุจุน PCAP ุนู„ู‰ ู‡ุฐุง ุงู„ุชู†ููŠุฐ ู„ุชูˆููŠุฑ ู…ุณุชูˆู‰ ุฅุถุงููŠ ู„ู„ู…ุณุชุฎุฏู…
ูˆุธุงุฆู. ู…ุง ูŠุนู†ูŠู‡ ู‡ุฐุง ู„ู„ู…ุณุชุฎุฏู… ู‡ูˆ ุฃู† ุฌู…ูŠุน ู…ุณุงุนุฏูŠ ุงู„ุจุฑูˆุชูˆูƒูˆู„ ููŠ ุงู„ู†ุธุงู…
ุณูŠูƒูˆู† ู„ุฏูŠู‡ ูƒุงูุฉ ุฃุณุงู„ูŠุจ ุงู„ุชุชุจุน PCAP ุงู„ู…ุชุงุญุฉุ› ูˆุณุชุนู…ู„ ุฌู…ูŠุน ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ ููŠ
ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ ุนุจุฑ ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ุฅุฐุง ู‚ุงู… ุงู„ู…ุณุงุนุฏ ุจุชู†ููŠุฐู‡ุง ุชู…ูƒูŠู†PcapIpv4Internal ุจุดูƒู„ ุตุญูŠุญ.

ุทุฑู‚
ุชู… ุชุตู…ูŠู… ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ ู„ุชูƒูˆู† ููŠ ู…ุฑุงุณู„ุงุช ูุฑุฏูŠุฉ ู…ุน ุงู„ุนู‚ุฏุฉ ูˆ
NetDevice- ุงู„ุฅุตุฏุงุฑุงุช ุงู„ู…ุฑูƒุฒูŠุฉ ู„ุฅุตุฏุงุฑุงุช ุงู„ุฌู‡ุงุฒ. ุจุฏู„ุงู‹ ู…ู† ุงู„ุนู‚ุฏุฉ ูˆ NetDevice ุฒูˆุฌ
ุงู„ู‚ูŠูˆุฏ ุŒ ู†ุณุชุฎุฏู… ู‚ูŠูˆุฏ ุงู„ุจุฑูˆุชูˆูƒูˆู„ ูˆุงู„ูˆุงุฌู‡ุฉ.

ู„ุงุญุธ ุฃู†ู‡ ุชู…ุงู…ู‹ุง ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ุฅุตุฏุงุฑ ุงู„ุฌู‡ุงุฒ ุŒ ู‡ู†ุงูƒ ุณุช ุทุฑู‚:

EnablePcapIpv4 ุจุงุทู„ุฉ (std::string ุจุงุฏุฆุฉุŒ Ptr ipv4, ูˆุงุฌู‡ุฉ uint4_t, bool plainFilename = false);
void EnablePcapIpv4 (std::string prefix, std::string ipv4Name, uint32_t Interface, bool plainFilename = false);
ุจุงุทู„ EnablePcapIpv4 (std :: string ุจุงุฏุฆุฉ ุŒ Ipv4InterfaceContainer c) ุ›
EnablePcapIpv4 ุจุงุทู„ุฉ (ุจุงุฏุฆุฉ std :: string ุŒ NodeContainer n) ุ›
void EnablePcapIpv4 (std::string prefix, uint32_tnodeid, uint32_t Interface, bool plainFilename);
ุจุงุทู„ EnablePcapIpv4All (std :: string ุจุงุฏุฆุฉ) ุ›

ู†ุดุฌุนูƒ ุนู„ู‰ ุงู„ุงุทู„ุงุน ุนู„ู‰ ูˆุซุงุฆู‚ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ุงู„ุฎุงุตุฉ ุจุงู„ูุตู„ ุงู„ุฏุฑุงุณูŠ PcapHelperForIpv4 ู„ุชุฌุฏ ุงู„
ุชูุงุตูŠู„ ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ ุ› ู„ูƒู† ู„ุชู„ุฎูŠุต ...

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ุฒูˆุฌ ุจุฑูˆุชูˆูƒูˆู„/ูˆุงุฌู‡ุฉ ู…ุนูŠู† ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
Ptr ุงู„ูˆุงุฌู‡ุฉ ุฅู„ู‰ ุชู…ูƒูŠู†Pcap ุทุฑูŠู‚ุฉ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

Ptr ipv4 = ุนู‚ุฏุฉ-> GetObject () ุ›

helper.EnablePcapIpv4 ("ุจุงุฏุฆุฉ"ุŒ ipv4ุŒ 0) ุ›

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ุฒูˆุฌ ุนู‚ุฏุฉ/ุฌู‡ุงุฒ ุดุจูƒุฉ ู…ุนูŠู† ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ุณู„ุณู„ุฉ ุชู…ุซู„ ุณู„ุณู„ุฉ ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ุฅู„ู‰ ู…ู„ู ุชู…ูƒูŠู†Pcap ุทุฑูŠู‚ุฉ. ุงู„
Ptr ูŠุชู… ุงู„ุจุญุซ ุนู†ู‡ ู…ู† ุณู„ุณู„ุฉ ุงู„ุงุณู…. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("serverIPv4" ...) ุ›

helper.EnablePcapIpv4 ("ุจุงุฏุฆุฉ"ุŒ "serverIpv4"ุŒ 1) ุ›

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ู…ู† ุฃุฒูˆุงุฌ ุงู„ุจุฑูˆุชูˆูƒูˆู„/ุงู„ูˆุงุฌู‡ุฉ ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ
IPv4InterfaceContainer. ู„ูƒู„ ูˆุงุญุฏ IPv4 / ุฒูˆุฌ ุงู„ูˆุงุฌู‡ุฉ ููŠ ุญุงูˆูŠุฉ ุงู„ุจุฑูˆุชูˆูƒูˆู„
ูŠุชู… ูุญุต ุงู„ู†ูˆุน. ู„ูƒู„ ุจุฑูˆุชูˆูƒูˆู„ ู…ู† ุงู„ู†ูˆุน ุงู„ู…ู†ุงุณุจ (ู†ูุณ ุงู„ู†ูˆุน ุงู„ุฐูŠ ุชุชู… ุฅุฏุงุฑุชู‡ ุจูˆุงุณุทุฉ
ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ)ุŒ ูŠุชู… ุชู…ูƒูŠู† ุงู„ุชุชุจุน ู„ู„ูˆุงุฌู‡ุฉ ุงู„ู…ู‚ุงุจู„ุฉ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

ุนู‚ุฏ NodeContainer

ุฃุฌู‡ุฒุฉ NetDeviceContainer = deviceHelper.Install (ุงู„ุนู‚ุฏ) ุ›

IPv4AddressHelper ipv4 ุ›
ipv4.SetBase ("10.1.1.0"ุŒ "255.255.255.0") ุ›
ูˆุงุฌู‡ุงุช Ipv4InterfaceContainer = ipv4.Assign (ุงู„ุฃุฌู‡ุฒุฉ) ุ›

helper.EnablePcapIpv4 ("ุจุงุฏุฆุฉ" ุŒ ูˆุงุฌู‡ุงุช) ุ›

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ู…ู† ุฃุฒูˆุงุฌ ุงู„ุจุฑูˆุชูˆูƒูˆู„/ุงู„ูˆุงุฌู‡ุฉ ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
NodeContainer. ู„ูƒู„ ุนู‚ุฏุฉ ููŠ NodeContainer ุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ุจุฑูˆุชูˆูƒูˆู„ ุงู„ู…ู†ุงุณุจ.
ูŠุชู… ุชุนุฏุงุฏ ูˆุงุฌู‡ุงุช ูƒู„ ุจุฑูˆุชูˆูƒูˆู„ ูˆุชู…ูƒูŠู† ุงู„ุชุชุจุน ุนู„ู‰ ุงู„ู†ุชุงุฆุฌ
ุฃุฒูˆุงุฌ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

NodeContainer n ุ›

helper.EnablePcapIpv4 ("ุจุงุฏุฆุฉ"ุŒ n) ุ›

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ุฃุณุงุณ ู…ุนุฑู ุงู„ุนู‚ุฏุฉ ูˆุงู„ูˆุงุฌู‡ุฉ ุฃูŠุถู‹ุง. ููŠ ู‡ุฐุง
ููŠ ุงู„ุญุงู„ุฉุŒ ุชุชู… ุชุฑุฌู…ุฉ ู…ุนุฑู ุงู„ุนู‚ุฏุฉ ุฅู„ู‰ a Ptr ูˆูŠุชู… ุงู„ุจุญุซ ุนู† ุงู„ุจุฑูˆุชูˆูƒูˆู„ ุงู„ู…ู†ุงุณุจ
ููŠ ุงู„ุนู‚ุฏุฉ. ูŠุชู… ุงุณุชุฎุฏุงู… ุงู„ุจุฑูˆุชูˆูƒูˆู„ ูˆุงู„ูˆุงุฌู‡ุฉ ุงู„ู†ุงุชุฌุฉ ู„ุชุญุฏูŠุฏ ุงู„ู†ุชูŠุฌุฉ
ู…ุตุฏุฑ ุงู„ุชุชุจุน.

helper.EnablePcapIpv4 ("ุจุงุฏุฆุฉ"ุŒ 21ุŒ 1) ุ›

ยท ูˆุฃุฎูŠุฑุงู‹ุŒ ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† PCAP ู„ุชุชุจุน ูƒุงูุฉ ุงู„ูˆุงุฌู‡ุงุช ููŠ ุงู„ู†ุธุงู…ุŒ ู…ุน ุงู„ู…ุฑุชุจุทุฉ ุจู‡ุง
ุงู„ุจุฑูˆุชูˆูƒูˆู„ ู‡ูˆ ู†ูุณ ุงู„ู†ูˆุน ุงู„ุฐูŠ ูŠุฏูŠุฑู‡ ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ.

helper.EnablePcapIpv4All ("ุจุงุฏุฆุฉ") ุ›

ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช
ุถู…ู†ูŠู‹ุง ููŠ ุฌู…ูŠุน ุชูˆุตูŠูุงุช ุงู„ุทุฑูŠู‚ุฉ ุฃุนู„ุงู‡ ู‡ูˆ ุจู†ุงุก ุงู„ูƒุงู…ู„
ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช ุนู† ุทุฑูŠู‚ ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ. ูˆูู‚ู‹ุง ู„ู„ุงุชูุงู‚ูŠุฉุŒ ูŠุชู… ุฃุฎุฐ ุขุซุงุฑ PCAP ู„ู„ุฃุฌู‡ุฒุฉ ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ
ู‡ูŠู‡ NS-3 ุงู„ู†ุธุงู… ุนู„ู‰ ุดูƒู„ " - - .pcap". ููŠ ุญุงู„ุฉ
ุจุฑูˆุชูˆูƒูˆู„ ุชุชุจุน ุŒ ู‡ู†ุงูƒ ู…ุฑุงุณู„ุงุช ูˆุงุญุฏ ู„ูˆุงุญุฏ ุจูŠู† ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ูˆ ุงู„ุนู‚ุฏ. ู‡ุฐุง
ูˆุฐู„ูƒ ู„ุฃู† ุงู„ุจุฑูˆุชูˆูƒูˆู„ ุงู„ุฃุฌุณุงู… ูŠุชู… ุชุฌู…ูŠุนู‡ุง ุฅู„ู‰ ุงู„ุนู‚ุฏุฉ ุงู„ุฃุฌุณุงู…. ู„ุฃู†ู‡ ู„ุง ูŠูˆุฌุฏ ุนุงู„ู…ูŠ
ู…ุนุฑู ุงู„ุจุฑูˆุชูˆูƒูˆู„ ููŠ ุงู„ู†ุธุงู…ุŒ ู†ุณุชุฎุฏู… ู…ุนุฑู ุงู„ุนู‚ุฏุฉ ุงู„ู…ู‚ุงุจู„ ููŠ ุชุณู…ูŠุฉ ุงู„ู…ู„ูุงุช. ู„ุฐู„ูƒ
ู‡ู†ุงูƒ ุงุญุชู…ุงู„ูŠุฉ ู„ุชุถุงุฑุจ ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช ููŠ ุฃุณู…ุงุก ู…ู„ูุงุช ุงู„ุชุชุจุน ุงู„ุชูŠ ุชู… ุงุฎุชูŠุงุฑู‡ุง ุชู„ู‚ุงุฆูŠู‹ุง.
ู„ู‡ุฐุง ุงู„ุณุจุจุŒ ูŠุชู… ุชุบูŠูŠุฑ ุงุตุทู„ุงุญ ุงุณู… ุงู„ู…ู„ู ู„ุชุชุจุนุงุช ุงู„ุจุฑูˆุชูˆูƒูˆู„.

ูƒู…ุง ุฐูƒุฑู†ุง ุณุงุจู‚ู‹ุงุŒ ุณูŠูƒูˆู† ู„ูƒู„ ุนู‚ุฏุฉ ููŠ ุงู„ู†ุธุงู… ู…ุนุฑู ุนู‚ุฏุฉ ู…ุฎุตุต ู„ู„ู†ุธุงู….
ู†ุธุฑู‹ุง ู„ูˆุฌูˆุฏ ู…ุฑุงุณู„ุงุช ูุฑุฏูŠุฉ ุจูŠู† ู…ุซูŠู„ุงุช ุงู„ุจุฑูˆุชูˆูƒูˆู„ ูˆู…ุซูŠู„ุงุช ุงู„ุนู‚ุฏุฉ
ู†ุญู† ู†ุณุชุฎุฏู… ู…ุนุฑู ุงู„ุนู‚ุฏุฉ. ุชุญุชูˆูŠ ูƒู„ ูˆุงุฌู‡ุฉ ุนู„ู‰ ู…ุนุฑู ูˆุงุฌู‡ุฉ ูŠุชุนู„ู‚ ุจุงู„ุจุฑูˆุชูˆูƒูˆู„ ุงู„ุฎุงุต ุจู‡ุง. ู†ุญู† ู†ุณุชุฎุฏู…
ุงู„ุงุชูุงู‚ูŠุฉ " -ู† -ุฃู†ุง .pcap "ู„ุชุณู…ูŠุฉ ู…ู„ู ุงู„ุชุชุจุน ุจุชู†ุณูŠู‚
ู…ุณุงุนุฏูŠ ุงู„ุจุฑูˆุชูˆูƒูˆู„.

ู„ุฐู„ูƒุŒ ุจุดูƒู„ ุงูุชุฑุงุถูŠุŒ ูŠุชู… ุฅู†ุดุงุก ู…ู„ู ุชุชุจุน PCAP ูƒู†ุชูŠุฌุฉ ู„ุชู…ูƒูŠู† ุงู„ุชุชุจุน
ุณุชูƒูˆู† ุงู„ูˆุงุฌู‡ุฉ 1 ู„ุจุฑูˆุชูˆูƒูˆู„ Ipv4 ู„ู„ุนู‚ุฏุฉ 21 ุจุงุณุชุฎุฏุงู… ุงู„ุจุงุฏุฆุฉ "ุงู„ุจุงุฏุฆุฉ".
"ุงู„ุจุงุฏุฆุฉ-n21-i1.pcap".

ูŠู…ูƒู†ูƒ ุฏุงุฆู…ู‹ุง ุงุณุชุฎุฏุงู… ู…ู„ู NS-3 ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ู„ุฌุนู„ ู‡ุฐุง ุฃูƒุซุฑ ูˆุถูˆุญู‹ุง. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฅุฐุง
ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ู„ุชุนูŠูŠู† ุงู„ุงุณู… "serverIpv4" ุฅู„ู‰ Ptr ุนู„ู‰ ุงู„ุนู‚ุฏุฉ
21ุŒ ุณูŠุตุจุญ ุงุณู… ู…ู„ู ุชุชุจุน PCAP ุงู„ู†ุงุชุฌ ุชู„ู‚ุงุฆูŠู‹ุงุŒ
"ุจุงุฏุฆุฉ nserverIpv4-i1.pcap".

ุชุญุชูˆูŠ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุทุฑู‚ ุนู„ู‰ ู…ุนู„ู…ุฉ ุงูุชุฑุงุถูŠุฉ ุชุณู…ู‰ ุตุฑูŠุญ ุงุณู… ุงู„ู…ู„ู. ุนู†ุฏ ุงู„ุถุจุท ุนู„ู‰
ุตุญูŠุญ ุฃู† ู‡ุฐู‡ ุงู„ู…ุนู„ู…ุฉ ุชุนู…ู„ ุนู„ู‰ ุชุนุทูŠู„ ุขู„ูŠุฉ ุฅูƒู…ุงู„ ุงุณู… ุงู„ู…ู„ู ุชู„ู‚ุงุฆูŠู‹ุง ูˆุชุณู…ุญ ู„ูƒ ุจุฐู„ูƒ
ู„ุฅู†ุดุงุก ุงุณู… ู…ู„ู ูˆุงุถุญ. ู‡ุฐุง ุงู„ุฎูŠุงุฑ ู…ุชุงุญ ูู‚ุท ููŠ ุงู„ุทุฑู‚ ุงู„ุชูŠ ุชุณุชุบุฑู‚
ุงู„ุจุงุฏุฆุฉ ูˆุชู…ูƒูŠู† ุงู„ุชุชุจุน ุนู„ู‰ ุฌู‡ุงุฒ ูˆุงุญุฏ.

ASCII
ูŠุดุจู‡ ุณู„ูˆูƒ ู…ุณุงุนุฏุงุช ุงู„ุชุชุจุน ASCII ุฅู„ู‰ ุญุฏ ูƒุจูŠุฑ ุญุงู„ุฉ PCAP. ุฎุฐ ุฃ
ุงู„ู†ุธุฑ ููŠ src / network / helper / trace-helper.h ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ู…ุชุงุจุนุฉ ุงู„ู…ู†ุงู‚ุดุฉ ุฃุซู†ุงุก
ุจุงู„ู†ุธุฑ ุฅู„ู‰ ุงู„ูƒูˆุฏ ุงู„ุญู‚ูŠู‚ูŠ.

ุณู†ู‚ูˆู… ููŠ ู‡ุฐุง ุงู„ู‚ุณู… ุจุชูˆุถูŠุญ ุงู„ุฃุณุงู„ูŠุจ ุงู„ู…ุทุจู‚ุฉ ุนู„ู‰ ุงู„ุจุฑูˆุชูˆูƒูˆู„ IPv4. ุฅู„ู‰
ุชุญุฏูŠุฏ ุงู„ุชุชุจุน ููŠ ุจุฑูˆุชูˆูƒูˆู„ุงุช ู…ู…ุงุซู„ุฉ ุŒ ูู‚ุท ุงุณุชุจุฏู„ ุงู„ู†ูˆุน ุงู„ู…ู†ุงุณุจ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ
ุฅุณุชุฎุฏู… Ptr ุจุฏู„ุง ู…ู† Ptr ูˆ ุงุชุตู„ ุชู…ูƒูŠู†AsciiIpv6 ุจุฏู„ุง ู…ู†
ุชู…ูƒูŠู†AsciiIpv4.

ุงู„ูุตู„ AsciiTraceHelperForIpv4 ูŠุถูŠู ูˆุธุงุฆู ุนุงู„ูŠุฉ ุงู„ู…ุณุชูˆู‰ ู„ุงุณุชุฎุฏุงู… ASCII
ุชุชุจุน ุฅู„ู‰ ู…ุณุงุนุฏ ุจุฑูˆุชูˆูƒูˆู„. ูŠุฌุจ ุนู„ู‰ ูƒู„ ุจุฑูˆุชูˆูƒูˆู„ ูŠู…ูƒู‘ู† ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ ุชู†ููŠุฐ ุฃ
ุทุฑูŠู‚ุฉ ุงูุชุฑุงุถูŠุฉ ูˆุงุญุฏุฉ ู…ูˆุฑูˆุซุฉ ู…ู† ู‡ุฐู‡ ุงู„ูุฆุฉ.

ุงู„ูุฑุงุบ ุงู„ุธุงู‡ุฑูŠ EnableAsciiIpv4Internal (Ptr ุชุฏูู‚ุŒ
ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง::ุณู„ุณู„ุฉ ุงู„ุจุงุฏุฆุฉุŒ
ุจูŠ ุชูŠ ุขุฑ IPv4,
ูˆุงุฌู‡ุฉ uint32_tุŒ
ู…ู†ุทู‚ูŠ ุงุณู… ุงู„ู…ู„ู ุงู„ูˆุงุถุญ) = 0ุ›

ูŠุนูƒุณ ุชูˆู‚ูŠุน ู‡ุฐู‡ ุงู„ุทุฑูŠู‚ุฉ ุทุฑูŠู‚ุฉ ุนุฑุถ ุงู„ุจุฑูˆุชูˆูƒูˆู„ ูˆุงู„ูˆุงุฌู‡ุฉ ุงู„ู…ุฑูƒุฒูŠุฉ ู„ู€
ุงู„ูˆุถุน ุนู„ู‰ ู‡ุฐุง ุงู„ู…ุณุชูˆู‰. ูˆูƒุฐู„ูƒ ุญู‚ูŠู‚ุฉ ุฃู† ุงู„ู…ุณุงุนุฏ ุฑุจู…ุง ูŠูƒุชุจ ุฅู„ู‰ ู…ู„ู ู…ุดุชุฑูƒ
ุชูŠุงุฑ ุงู„ุฅุฎุฑุงุฌ. ุฌู…ูŠุน ุงู„ุฃุณุงู„ูŠุจ ุงู„ุนุงู…ุฉ ุงู„ู…ูˆุฑูˆุซุฉ ู…ู† ุงู„ุทุจู‚ุฉ
PcapAndAsciiTraceHelperForIpv4 ุชู‚ู„ูŠู„ ุฅู„ู‰ ุงุณุชุฏุนุงุก ู‡ุฐุง ุงู„ุฌู‡ุงุฒ ุงู„ูุฑุฏูŠ ุงู„ู…ุนุชู…ุฏ
ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ ุฃุณุงู„ูŠุจ ุชุชุจุน ASCII ุฐุงุช ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุฏู†ู‰ุŒ

ุจุงุทู„ุฉ EnableAsciiIpv4 (std::string ุจุงุฏุฆุฉุŒ Ptr ipv4, ูˆุงุฌู‡ุฉ uint4_t, bool plainFilename = false);
ุจุงุทู„ EnableAsciiIpv4 (Ptr ุชูŠุงุฑ ุŒ Ptr ipv4 ุŒ ูˆุงุฌู‡ุฉ uint4_t) ุ›

ุณูŠุณุชุฏุนูŠ ุชู†ููŠุฐ ุงู„ุฌู‡ุงุฒ ู„ู€ ุชู…ูƒูŠู†AsciiIpv4Internal ุจุดูƒู„ ู…ุจุงุดุฑ ุŒ ู…ุน ุชูˆููŠุฑ ุฅู…ุง
ุงู„ุจุงุฏุฆุฉ ุฃูˆ ุงู„ุฏูู‚. ุณุชุนุชู…ุฏ ุฌู…ูŠุน ุทุฑู‚ ุชุชุจุน ASCII ุงู„ุนุงู…ุฉ ุงู„ุฃุฎุฑู‰ ุนู„ู‰ ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ
ูˆุธุงุฆู ู…ู†ุฎูุถุฉ ุงู„ู…ุณุชูˆู‰ ู„ุชูˆููŠุฑ ูˆุธุงุฆู ุฅุถุงููŠุฉ ุนู„ู‰ ู…ุณุชูˆู‰ ุงู„ู…ุณุชุฎุฏู…. ู…ุงุฐุง ูŠุนู†ูŠ ู‡ุฐุง ู„
ุงู„ู…ุณุชุฎุฏู… ู‡ูˆ ุฃู† ุฌู…ูŠุน ู…ุณุงุนุฏูŠ ุงู„ุฃุฌู‡ุฒุฉ ููŠ ุงู„ู†ุธุงู… ุณูŠูƒูˆู† ู„ุฏูŠู‡ู… ุฌู…ูŠุน ุทุฑู‚ ุชุชุจุน ASCII
ู…ุชุงุญุ› ูˆุณุชุนู…ู„ ุฌู…ูŠุน ู‡ุฐู‡ ุงู„ุทุฑู‚ ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ ุนุจุฑ ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ุฅุฐุง ูƒุงู†
ุชู†ููŠุฐ ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช EnablAsciiIpv4 ุฏุงุฎู„ูŠ ุจุดูƒู„ ุตุญูŠุญ.

ุทุฑู‚
ุจุงุทู„ุฉ EnableAsciiIpv4 (std::string ุจุงุฏุฆุฉุŒ Ptr ipv4, ูˆุงุฌู‡ุฉ uint4_t, bool plainFilename = false);
ุจุงุทู„ EnableAsciiIpv4 (Ptr ุชูŠุงุฑ ุŒ Ptr ipv4 ุŒ ูˆุงุฌู‡ุฉ uint4_t) ุ›

void EnableAsciiIpv4 (std::string prefix, std::string ipv4Name, uint32_t Interface, bool plainFilename = false);
ุจุงุทู„ EnableAsciiIpv4 (Ptr ุชูŠุงุฑ ุŒ ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ุณู„ุณู„ุฉ ipv4Name ุŒ ูˆุงุฌู‡ุฉ uint32_t) ุ›

ุจุงุทู„ EnableAsciiIpv4 (std :: string ุจุงุฏุฆุฉ ุŒ Ipv4InterfaceContainer c) ุ›
ุจุงุทู„ EnableAsciiIpv4 (Ptr ุชูŠุงุฑ ุŒ Ipv4InterfaceContainer ุฌ) ุ›

ุจุงุทู„ EnableAsciiIpv4 (std :: string ุจุงุฏุฆุฉ ุŒ NodeContainer n) ุ›
ุจุงุทู„ EnableAsciiIpv4 (Ptr ุชูŠุงุฑ ุŒ NodeContainer n) ุ›

ุจุงุทู„ EnableAsciiIpv4All (std :: string prefix) ุ›
ุจุงุทู„ EnableAsciiIpv4All (Ptr ุชุฏูู‚)ุ›

void EnableAsciiIpv4 (std::string prefix, uint32_tnodeid, uint32_t devicesid, bool plainFilename);
ุจุงุทู„ EnableAsciiIpv4 (Ptr ุชูŠุงุฑ ุŒ uint32_t nodeid ุŒ ูˆุงุฌู‡ุฉ uint32_t) ุ›

ู†ุดุฌุนูƒ ุนู„ู‰ ุงู„ุงุทู„ุงุน ุนู„ู‰ ูˆุซุงุฆู‚ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ุงุช (API) ุงู„ุฎุงุตุฉ ุจุงู„ูุตู„ ุงู„ุฏุฑุงุณูŠ PcapAndAsciiHelperForIpv4 ุฅู„ู‰
ุงู„ุนุซูˆุฑ ุนู„ู‰ ุชูุงุตูŠู„ ู‡ุฐู‡ ุงู„ุฃุณุงู„ูŠุจ. ูˆู„ูƒู† ู„ุชู„ุฎูŠุต ...

ยท ู‡ู†ุงูƒ ุถุนู ุนุฏุฏ ุงู„ุทุฑู‚ ุงู„ู…ุชุงุญุฉ ู„ุชุชุจุน ASCII ู…ู‚ุงุฑู†ุฉ ุจู€ PCAP
ุงู‚ุชูุงุก ุฃุซุฑ. ูˆุฐู„ูƒ ู„ุฃู†ู‡ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ู†ู…ูˆุฐุฌ ู†ู…ุท PCAP ุญูŠุซ ุชูˆุฌุฏ ุขุซุงุฑ ู…ู† ูƒู„ ู…ู†ู‡ู…ุง
ุชุชู… ูƒุชุงุจุฉ ุฒูˆุฌ ุจุฑูˆุชูˆูƒูˆู„ / ูˆุงุฌู‡ุฉ ูุฑูŠุฏ ููŠ ู…ู„ู ูุฑูŠุฏ ุŒ ูˆู†ุญู† ู†ุฏุนู… ู†ู…ูˆุฐุฌู‹ุง ููŠู‡
ุชุชู… ูƒุชุงุจุฉ ู…ุนู„ูˆู…ุงุช ุงู„ุชุชุจุน ู„ู„ุนุฏูŠุฏ ู…ู† ุฃุฒูˆุงุฌ ุงู„ุจุฑูˆุชูˆูƒูˆู„ / ุงู„ูˆุงุฌู‡ุฉ ููŠ ู…ู„ู ู…ุดุชุฑูƒ. ู‡ุฐุง
ูŠุนู†ูŠ ุฃู† -ู† - ุขู„ูŠุฉ ุฅู†ุดุงุก ุงุณู… ุงู„ู…ู„ู ู‡ูŠ
ูˆุงุณุชุจุฏุงู„ู‡ุง ุจุขู„ูŠุฉ ู„ู„ุฅุดุงุฑุฉ ุฅู„ู‰ ู…ู„ู ู…ุดุชุฑูƒุ› ูˆุนุฏุฏ ุทุฑู‚ API ู‡ูˆ
ุชุถุงุนู ู„ู„ุณู…ุงุญ ู„ุฌู…ูŠุน ุงู„ู…ุฌู…ูˆุนุงุช.

ยท ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ููŠ ุชุชุจุน PCAPุŒ ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน ASCII ุนู„ู‰ ุจุฑูˆุชูˆูƒูˆู„/ูˆุงุฌู‡ุฉ ู…ุนูŠู†ุฉ
ุงู„ุฒูˆุฌ ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู Ptr ูˆ ุงู„ูˆุงุฌู‡ุฉ ุฅู„ู‰ ุชู…ูƒูŠู† ุทุฑูŠู‚ุฉ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

Ptr ipv4 ุ›

helper.EnableAsciiIpv4 ("ุจุงุฏุฆุฉ" ุŒ ipv4 ุŒ 1) ุ›

ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ู„ุง ุชุชู… ูƒุชุงุจุฉ ุฃูŠ ุณูŠุงู‚ุงุช ุชุชุจุน ุฅู„ู‰ ู…ู„ู ุชุชุจุน ASCII ู„ุฃู†ู‡ุง ุณุชูƒูˆู† ูƒุฐู„ูƒ
ู…ุชูƒุฑุฑ. ุณูŠุฎุชุงุฑ ุงู„ู†ุธุงู… ุงุณู… ุงู„ู…ู„ู ุงู„ุฐูŠ ุณูŠุชู… ุฅู†ุดุงุคู‡ ุจุงุณุชุฎุฏุงู… ู†ูุณ ุงู„ู‚ูˆุงุนุฏ ู…ุซู„
ุงู„ู…ูˆุตูˆูุฉ ููŠ ู‚ุณู… PCAPุŒ ุจุงุณุชุซู†ุงุก ุฃู† ุงู„ู…ู„ู ุณูŠุญุชูˆูŠ ุนู„ู‰ ุงู„ู„ุงุญู‚ุฉ ".tr" ุจุฏู„ุงู‹ ู…ู† ุฐู„ูƒ
ู…ู† ".pcap".

ยท ุฅุฐุง ูƒู†ุช ุชุฑูŠุฏ ุชู…ูƒูŠู† ุชุชุจุน ASCII ุนู„ู‰ ุฃูƒุซุฑ ู…ู† ูˆุงุฌู‡ุฉ ูˆุงุญุฏุฉ ูˆุฅุฑุณุงู„ ูƒุงูุฉ ุงู„ุขุซุงุฑ
ุฅู„ู‰ ู…ู„ู ูˆุงุญุฏุŒ ูŠู…ูƒู†ูƒ ุงู„ู‚ูŠุงู… ุจุฐู„ูƒ ุฃูŠุถู‹ุง ุจุงุณุชุฎุฏุงู… ูƒุงุฆู† ู„ู„ุฅุดุงุฑุฉ ุฅู„ู‰ ู…ู„ู ูˆุงุญุฏ.
ู„ุฏูŠู†ุง ุจุงู„ูุนู„ ุดูŠุก ู…ุดุงุจู‡ ู„ู‡ุฐุง ููŠ ู…ุซุงู„ "cwnd" ุฃุนู„ุงู‡:

Ptr Protocol4 = node1-> GetObject () ุ›
Ptr Protocol4 = node2-> GetObject () ุ›

Ptr ุชูŠุงุฑ = asciiTraceHelper.CreateFileStream ("trace-file-name.tr") ุ›

helper.EnableAsciiIpv4 (ุชูŠุงุฑ ุŒ ุจุฑูˆุชูˆูƒูˆู„ 1 ุŒ 1) ุ›
helper.EnableAsciiIpv4 (ุชูŠุงุฑ ุŒ ุจุฑูˆุชูˆูƒูˆู„ 2 ุŒ 1) ุ›

ููŠ ู‡ุฐู‡ ุงู„ุญุงู„ุฉุŒ ุชุชู… ูƒุชุงุจุฉ ุณูŠุงู‚ุงุช ุงู„ุชุชุจุน ุฅู„ู‰ ู…ู„ู ุงู„ุชุชุจุน ASCII ู†ุธุฑู‹ุง ู„ุฃู†ู‡ุง ู…ุทู„ูˆุจุฉ
ู„ุฅุฒุงู„ุฉ ุงู„ุบู…ูˆุถ ุนู† ุงู„ุขุซุงุฑ ู…ู† ุงู„ูˆุงุฌู‡ุชูŠู†. ู„ุงุญุธ ุฃู†ู‡ ู…ู†ุฐ ุงู„ู…ุณุชุฎุฏู… ุชู…ุงู…ุง
ุนู†ุฏ ุชุญุฏูŠุฏ ุงุณู… ุงู„ู…ู„ูุŒ ูŠุฌุจ ุฃู† ุชุชุถู…ู† ุงู„ุณู„ุณู„ุฉ "ุŒtr" ู„ุชุญู‚ูŠู‚ ุงู„ุงุชุณุงู‚.

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน ASCII ุนู„ู‰ ุจุฑูˆุชูˆูƒูˆู„ ู…ุนูŠู† ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง :: ุณู„ุณู„ุฉ
ุชู…ุซู„ ุณู„ุณู„ุฉ ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ุฅู„ู‰ ู…ู„ู ุชู…ูƒูŠู†Pcap ุทุฑูŠู‚ุฉ. ุงู„ Ptr is
ุจุญุซุช ุนู† ุณู„ุณู„ุฉ ุงู„ุงุณู…. ุงู„ ููŠ ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช ุงู„ู†ุงุชุฌุฉ ุถู…ู†ูŠู‹ุง ู…ู†ุฐ ุฐู„ูƒ ุงู„ุญูŠู†
ู‡ู†ุงูƒ ู…ุฑุงุณู„ุงุช ูุฑุฏูŠุฉ ุจูŠู† ู…ุซูŠู„ุงุช ุงู„ุจุฑูˆุชูˆูƒูˆู„ ูˆุงู„ุนู‚ุฏุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("node1Ipv4" ...) ุ›
ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("node2Ipv4" ...) ุ›

helper.EnableAsciiIpv4 ("ุจุงุฏุฆุฉ"ุŒ "node1Ipv4"ุŒ 1) ุ›
helper.EnableAsciiIpv4 ("ุจุงุฏุฆุฉ"ุŒ "node2Ipv4"ุŒ 1) ุ›

ู‚ุฏ ูŠู†ุชุฌ ุนู† ู‡ุฐุง ู…ู„ููŠู† ุจุงุณู… "ุจุงุฏุฆุฉ-nnode1Ipv4-i1.tr" ูˆ
"ุจุงุฏุฆุฉ-nnode2Ipv4-i1.tr" ู…ุน ุชุชุจุนุงุช ู„ูƒู„ ูˆุงุฌู‡ุฉ ููŠ ู…ู„ู ุงู„ุชุชุจุน ุงู„ู…ุนู†ูŠ.
ู†ุธุฑู‹ุง ู„ุฃู† ุฌู…ูŠุน ูˆุธุงุฆู EnableAscii ู…ุญู…ู„ุฉ ููˆู‚ ุทุงู‚ุชู‡ุง ู„ุฃุฎุฐ ุบู„ุงู ุฏูู‚ ุŒ ูŠู…ูƒู†ูƒ ุฐู„ูƒ
ุงุณุชุฎุฏู… ู‡ุฐุง ุงู„ู†ู…ูˆุฐุฌ ุฃูŠุถู‹ุง:

ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("node1Ipv4" ...) ุ›
ุงู„ุฃุณู…ุงุก :: ุฅุถุงูุฉ ("node2Ipv4" ...) ุ›

Ptr ุชูŠุงุฑ = asciiTraceHelper.CreateFileStream ("trace-file-name.tr") ุ›

helper.EnableAsciiIpv4 (ุชูŠุงุฑุŒ "node1Ipv4"ุŒ 1) ุ›
helper.EnableAsciiIpv4 (ุชูŠุงุฑุŒ "node2Ipv4"ุŒ 1) ุ›

ู‚ุฏ ูŠู†ุชุฌ ุนู† ู‡ุฐุง ู…ู„ู ุชุชุจุน ูˆุงุญุฏ ูŠุณู…ู‰ "trace-file-name.tr" ูŠุญุชูˆูŠ ุนู„ู‰ ุงู„ูƒู„
ู…ู† ุฃุญุฏุงุซ ุงู„ุชุชุจุน ู„ูƒู„ุง ุงู„ูˆุงุฌู‡ุงุช. ุณูŠุชู… ุชูˆุถูŠุญ ุงู„ุฃุญุฏุงุซ ุนู† ุทุฑูŠู‚ ุงู„ุชุชุจุน
ุณู„ุงุณู„ ุงู„ุณูŠุงู‚.

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน ASCII ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ู…ู† ุฃุฒูˆุงุฌ ุงู„ุจุฑูˆุชูˆูƒูˆู„/ุงู„ูˆุงุฌู‡ุฉ ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
IPv4InterfaceContainer. ู„ูƒู„ ุจุฑูˆุชูˆูƒูˆู„ ู…ู† ุงู„ู†ูˆุน ุงู„ู…ู†ุงุณุจ (ู†ูุณ ุงู„ู†ูˆุน ูƒู…ุง ู‡ูˆ
ุชุชู… ุฅุฏุงุฑุชู‡ุง ุจูˆุงุณุทุฉ ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ)ุŒ ูˆูŠุชู… ุชู…ูƒูŠู† ุงู„ุชุชุจุน ู„ู„ูˆุงุฌู‡ุฉ ุงู„ู…ู‚ุงุจู„ุฉ.
ู…ุฑุฉ ุฃุฎุฑู‰ ุŒ ุถู…ู†ูŠู‹ุง ู†ุธุฑู‹ุง ู„ูˆุฌูˆุฏ ู…ุฑุงุณู„ุงุช ูุฑุฏูŠุฉ ุจูŠู† ูƒู„ ู…ู†ู‡ู…ุง
ุงู„ุจุฑูˆุชูˆูƒูˆู„ ูˆุนู‚ุฏุชู‡. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

ุนู‚ุฏ NodeContainer

ุฃุฌู‡ุฒุฉ NetDeviceContainer = deviceHelper.Install (ุงู„ุนู‚ุฏ) ุ›

IPv4AddressHelper ipv4 ุ›
ipv4.SetBase ("10.1.1.0"ุŒ "255.255.255.0") ุ›
ูˆุงุฌู‡ุงุช Ipv4InterfaceContainer = ipv4.Assign (ุงู„ุฃุฌู‡ุฒุฉ) ุ›


helper.EnableAsciiIpv4 ("ุจุงุฏุฆุฉ" ุŒ ูˆุงุฌู‡ุงุช) ุ›

ู‚ุฏ ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุฅู†ุดุงุก ุนุฏุฏ ู…ู† ู…ู„ูุงุช ุชุชุจุน ASCIIุŒ ูŠุชุจุน ูƒู„ ู…ู†ู‡ุง
ุงู„ -ู† -ุฃู†ุง .tr ุงุชูุงู‚ูŠุฉ. ูŠุชู… ุฏู…ุฌ ูƒู„ ุงู„ุขุซุงุฑ ููŠ ู…ู„ู
ู…ู„ู ูˆุงุญุฏ ูŠุชู… ุฅู†ุฌุงุฒู‡ ุจุดูƒู„ ู…ุดุงุจู‡ ู„ู„ุฃู…ุซู„ุฉ ุฃุนู„ุงู‡:

ุนู‚ุฏ NodeContainer

ุฃุฌู‡ุฒุฉ NetDeviceContainer = deviceHelper.Install (ุงู„ุนู‚ุฏ) ุ›

IPv4AddressHelper ipv4 ุ›
ipv4.SetBase ("10.1.1.0"ุŒ "255.255.255.0") ุ›
ูˆุงุฌู‡ุงุช Ipv4InterfaceContainer = ipv4.Assign (ุงู„ุฃุฌู‡ุฒุฉ) ุ›

Ptr ุชูŠุงุฑ = asciiTraceHelper.CreateFileStream ("trace-file-name.tr") ุ›

helper.EnableAsciiIpv4 (ุฏูู‚ ุŒ ูˆุงุฌู‡ุงุช) ุ›

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน ASCII ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ู…ู† ุฃุฒูˆุงุฌ ุงู„ุจุฑูˆุชูˆูƒูˆู„/ุงู„ูˆุงุฌู‡ุฉ ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู
NodeContainer. ู„ูƒู„ ุนู‚ุฏุฉ ููŠ NodeContainer ุชู… ุงู„ุนุซูˆุฑ ุนู„ู‰ ุงู„ุจุฑูˆุชูˆูƒูˆู„ ุงู„ู…ู†ุงุณุจ.
ูŠุชู… ุชุนุฏุงุฏ ูˆุงุฌู‡ุงุช ูƒู„ ุจุฑูˆุชูˆูƒูˆู„ ูˆุชู…ูƒูŠู† ุงู„ุชุชุจุน ุนู„ู‰ ุงู„ู†ุชุงุฆุฌ
ุฃุฒูˆุงุฌ. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ุŒ

NodeContainer n ุ›

helper.EnableAsciiIpv4 ("ุจุงุฏุฆุฉ"ุŒ n) ุ›

ู‚ุฏ ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุฅู†ุดุงุก ุนุฏุฏ ู…ู† ู…ู„ูุงุช ุชุชุจุน ASCIIุŒ ูŠุชุจุน ูƒู„ ู…ู†ู‡ุง
ุงู„ - - .tr ุงุชูุงู‚ูŠุฉ. ูŠุชู… ุฏู…ุฌ ูƒู„ ุงู„ุขุซุงุฑ ููŠ ู…ู„ู
ูŠุชู… ุฅู†ุฌุงุฒ ู…ู„ู ูˆุงุญุฏ ุจุดูƒู„ ู…ุดุงุจู‡ ู„ู„ุฃู…ุซู„ุฉ ุงู„ู…ุฐูƒูˆุฑุฉ ุฃุนู„ุงู‡.

ยท ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน PCAP ุนู„ู‰ ุฃุณุงุณ ู…ุนุฑู ุงู„ุนู‚ุฏุฉ ูˆู…ุนุฑู ุงู„ุฌู‡ุงุฒ ุฃูŠุถู‹ุง. ููŠ ู‡ุฐุง
ููŠ ุงู„ุญุงู„ุฉุŒ ุชุชู… ุชุฑุฌู…ุฉ ู…ุนุฑู ุงู„ุนู‚ุฏุฉ ุฅู„ู‰ a Ptr ูˆูŠุชู… ุงู„ุจุญุซ ุนู† ุงู„ุจุฑูˆุชูˆูƒูˆู„ ุงู„ู…ู†ุงุณุจ
ููŠ ุงู„ุนู‚ุฏุฉ. ูŠุชู… ุงุณุชุฎุฏุงู… ุงู„ุจุฑูˆุชูˆูƒูˆู„ ูˆุงู„ูˆุงุฌู‡ุฉ ุงู„ู†ุงุชุฌุฉ ู„ุชุญุฏูŠุฏ ุงู„ู†ุชูŠุฌุฉ
ู…ุตุฏุฑ ุงู„ุชุชุจุน.

helper.EnableAsciiIpv4 ("ุจุงุฏุฆุฉ"ุŒ 21ุŒ 1) ุ›

ุจุงู„ุทุจุน ุŒ ูŠู…ูƒู† ุฏู…ุฌ ุงู„ุขุซุงุฑ ููŠ ู…ู„ู ูˆุงุญุฏ ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ุฃุนู„ุงู‡.

ยท ูˆุฃุฎูŠุฑุงุŒ ูŠู…ูƒู†ูƒ ุชู…ูƒูŠู† ุชุชุจุน ASCII ู„ุฌู…ูŠุน ุงู„ูˆุงุฌู‡ุงุช ููŠ ุงู„ู†ุธุงู…ุŒ ู…ุน ุงู„ู…ุฑุชุจุทุฉ ุจู‡ุง
ุงู„ุจุฑูˆุชูˆูƒูˆู„ ู‡ูˆ ู†ูุณ ุงู„ู†ูˆุน ุงู„ุฐูŠ ูŠุฏูŠุฑู‡ ู…ุณุงุนุฏ ุงู„ุฌู‡ุงุฒ.

helper.EnableAsciiIpv4All ("ุจุงุฏุฆุฉ") ุ›

ู‚ุฏ ูŠุคุฏูŠ ู‡ุฐุง ุฅู„ู‰ ุฅู†ุดุงุก ุนุฏุฏ ู…ู† ู…ู„ูุงุช ุชุชุจุน ASCIIุŒ ูˆุงุญุฏ ู„ูƒู„ ู…ู†ู‡ุง
ูˆุงุฌู‡ุฉ ููŠ ุงู„ู†ุธุงู… ุชุชุนู„ู‚ ุจุจุฑูˆุชูˆูƒูˆู„ ู…ู† ุงู„ู†ูˆุน ุงู„ุฐูŠ ูŠุฏูŠุฑู‡ ุงู„ู…ุณุงุนุฏ. ูƒู„
ุณุชุชุจุน ู‡ุฐู‡ ุงู„ู…ู„ูุงุช -ู† -ุฃู†ุง
ูŠุชู… ุชู†ููŠุฐ ุฌู…ูŠุน ุนู…ู„ูŠุงุช ุงู„ุชุชุจุน ููŠ ู…ู„ู ูˆุงุญุฏ ุจุดูƒู„ ู…ุดุงุจู‡ ู„ู„ุฃู…ุซู„ุฉ ุงู„ู…ุฐูƒูˆุฑุฉ ุฃุนู„ุงู‡.

ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช
ุถู…ู†ูŠู‹ุง ููŠ ุฃูˆุตุงู ุฃุณู„ูˆุจ ุงู„ุจุงุฏุฆุฉ ุฃุนู„ุงู‡ ู‡ูˆ ุจู†ุงุก ุงู„ูƒุงู…ู„
ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช ุนู† ุทุฑูŠู‚ ุทุฑูŠู‚ุฉ ุงู„ุชู†ููŠุฐ. ูˆูู‚ู‹ุง ู„ู„ุงุชูุงู‚ูŠุฉุŒ ูŠุชุชุจุน ASCII ููŠ ู…ู„ู NS-3 ู†ุธุงู…
ู‡ูŠ ู…ู† ุงู„ุดูƒู„ " - - .tr"

ูƒู…ุง ุฐูƒุฑู†ุง ุณุงุจู‚ู‹ุงุŒ ุณูŠูƒูˆู† ู„ูƒู„ ุนู‚ุฏุฉ ููŠ ุงู„ู†ุธุงู… ู…ุนุฑู ุนู‚ุฏุฉ ู…ุฎุตุต ู„ู„ู†ุธุงู….
ู†ุธุฑู‹ุง ู„ูˆุฌูˆุฏ ู…ุฑุงุณู„ุงุช ูุฑุฏูŠุฉ ุจูŠู† ุงู„ุจุฑูˆุชูˆูƒูˆู„ุงุช ูˆุงู„ุนู‚ุฏ ุงู„ุชูŠ ู†ุณุชุฎุฏู…ู‡ุง ู„ู…ุนุฑู ุงู„ุนู‚ุฏุฉ
ู„ุชุญุฏูŠุฏ ู‡ูˆูŠุฉ ุงู„ุจุฑูˆุชูˆูƒูˆู„. ุณูŠูƒูˆู† ู„ูƒู„ ูˆุงุฌู‡ุฉ ุนู„ู‰ ุจุฑูˆุชูˆูƒูˆู„ ู…ุนูŠู†
ูู‡ุฑุณ ุงู„ูˆุงุฌู‡ุฉ (ูŠุณู…ู‰ ุฃูŠุถู‹ุง ุจุจุณุงุทุฉ ูˆุงุฌู‡ุฉ) ุจุงู„ู†ุณุจุฉ ุฅู„ู‰ ุจุฑูˆุชูˆูƒูˆู„ู‡ุง. ุจุดูƒู„ ุงูุชุฑุงุถูŠุŒ
ุจุนุฏ ุฐู„ูƒุŒ ูŠุชู… ุฅู†ุดุงุก ู…ู„ู ุชุชุจุน ASCII ูƒู†ุชูŠุฌุฉ ู„ุชู…ูƒูŠู† ุงู„ุชุชุจุน ุนู„ู‰ ุงู„ุฌู‡ุงุฒ ุงู„ุฃูˆู„
ุงู„ุนู‚ุฏุฉ 21ุŒ ุจุงุณุชุฎุฏุงู… ุงู„ุจุงุฏุฆุฉ "prefix"ุŒ ุณุชูƒูˆู† "prefix-n21-i1.tr". ุงุณุชุฎุฏู… ุงู„ุจุงุฏุฆุฉ ู„
ุชูˆุถูŠุญ ุนุฏุฉ ุจุฑูˆุชูˆูƒูˆู„ุงุช ู„ูƒู„ ุนู‚ุฏุฉ.

ูŠู…ูƒู†ูƒ ุฏุงุฆู…ู‹ุง ุงุณุชุฎุฏุงู… ู…ู„ู NS-3 ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ู„ุฌุนู„ ู‡ุฐุง ุฃูƒุซุฑ ูˆุถูˆุญู‹ุง. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฅุฐุง
ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ุฎุฏู…ุฉ ุงุณู… ุงู„ูƒุงุฆู† ู„ุชุนูŠูŠู† ุงุณู… "serverIpv4" ู„ู„ุจุฑูˆุชูˆูƒูˆู„ ุงู„ู…ูˆุฌูˆุฏ ุนู„ู‰ Node
21ุŒ ูˆูƒุฐู„ูƒ ุชุญุฏูŠุฏ ุงู„ูˆุงุฌู‡ุฉ ุงู„ุฃูˆู„ู‰ุŒ ุณูŠุชู… ุชู„ู‚ุงุฆูŠู‹ุง ุฅู†ุดุงุก ุงุณู… ู…ู„ู ุงู„ุชุชุจุน ASCII ุงู„ู†ุงุชุฌ
ุชุตุจุญ ุŒ "ุจุงุฏุฆุฉ-nserverIpv4-1.tr".

ุชุญุชูˆูŠ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุทุฑู‚ ุนู„ู‰ ู…ุนู„ู…ุฉ ุงูุชุฑุงุถูŠุฉ ุชุณู…ู‰ ุตุฑูŠุญ ุงุณู… ุงู„ู…ู„ู. ุนู†ุฏ ุงู„ุถุจุท ุนู„ู‰
ุตุญูŠุญ ุฃู† ู‡ุฐู‡ ุงู„ู…ุนู„ู…ุฉ ุชุนู…ู„ ุนู„ู‰ ุชุนุทูŠู„ ุขู„ูŠุฉ ุฅูƒู…ุงู„ ุงุณู… ุงู„ู…ู„ู ุชู„ู‚ุงุฆูŠู‹ุง ูˆุชุณู…ุญ ู„ูƒ ุจุฐู„ูƒ
ู„ุฅู†ุดุงุก ุงุณู… ู…ู„ู ูˆุงุถุญ. ู‡ุฐุง ุงู„ุฎูŠุงุฑ ู…ุชุงุญ ูู‚ุท ููŠ ุงู„ุทุฑู‚ ุงู„ุชูŠ ุชุณุชุบุฑู‚
ุงู„ุจุงุฏุฆุฉ ูˆุชู…ูƒูŠู† ุงู„ุชุชุจุน ุนู„ู‰ ุฌู‡ุงุฒ ูˆุงุญุฏ.

ุงู„ู…ู„ุฎุต
NS-3 ูŠุชุถู…ู† ุจูŠุฆุฉ ุบู†ูŠุฉ ู„ู„ุบุงูŠุฉ ุชุณู…ุญ ู„ู„ู…ุณุชุฎุฏู…ูŠู† ุจุงู„ุชุฎุตูŠุต ุนู„ู‰ ุนุฏุฉ ู…ุณุชูˆูŠุงุช
ุฃู†ูˆุงุน ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุชูŠ ูŠู…ูƒู† ุงุณุชุฎู„ุงุตู‡ุง ู…ู† ุนู…ู„ูŠุงุช ุงู„ู…ุญุงูƒุงุฉ.

ู‡ู†ุงูƒ ูˆุธุงุฆู ู…ุณุงุนุฏุฉ ุนุงู„ูŠุฉ ุงู„ู…ุณุชูˆู‰ ุชุชูŠุญ ู„ู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุชุญูƒู… ุจุจุณุงุทุฉ ููŠ ู…ุฌู…ูˆุนุฉ ุงู„ู…ู„ูุงุช
ู…ุฎุฑุฌุงุช ู…ุญุฏุฏุฉ ู…ุณุจู‚ู‹ุง ุจุฏู‚ุฉ ุฏู‚ูŠู‚ุฉ. ู‡ู†ุงูƒ ูˆุธุงุฆู ู…ุณุงุนุฏุฉ ู…ุชูˆุณุทุฉ ุงู„ู…ุณุชูˆู‰ ู„ู„ุณู…ุงุญ ุจู‡ุง
ู…ุณุชุฎุฏู…ูŠู† ุฃูƒุซุฑ ุชุทูˆุฑุงู‹ ู„ุชุฎุตูŠุต ูƒูŠููŠุฉ ุงุณุชุฎุฑุงุฌ ุงู„ู…ุนู„ูˆู…ุงุช ูˆุญูุธู‡ุงุ› ูˆ ู‡ู†ุงูƒ
ู‡ูŠ ูˆุธุงุฆู ุฃุณุงุณูŠุฉ ู…ู†ุฎูุถุฉ ุงู„ู…ุณุชูˆู‰ ู„ู„ุณู…ุงุญ ู„ู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุฎุจุฑุงุก ุจุชุบูŠูŠุฑ ุงู„ู†ุธุงู… ู„ุชู‚ุฏูŠู… ุฌุฏูŠุฏ ูˆ
ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุชูŠ ู„ู… ูŠุชู… ุชุตุฏูŠุฑู‡ุง ู…ุณุจู‚ู‹ุง ุจุทุฑูŠู‚ุฉ ูŠู…ูƒู† ู„ู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ูˆุตูˆู„ ุฅู„ูŠู‡ุง ุนู„ู‰ ุงู„ููˆุฑ
ู…ุณุชูˆูŠุงุช ุฃุนู„ู‰.

ู‡ุฐุง ู†ุธุงู… ุดุงู…ู„ ู„ู„ุบุงูŠุฉุŒ ูˆู†ุญู† ู†ุฏุฑูƒ ุฃู†ู‡ ูŠุชุทู„ุจ ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ู‡ุถู…ุŒ ุนู„ู‰ ูˆุฌู‡ ุงู„ุฎุตูˆุต
ู„ู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุฌุฏุฏ ุฃูˆ ุฃูˆู„ุฆูƒ ุงู„ุฐูŠู† ู„ูŠุณูˆุง ุนู„ู‰ ุฏุฑุงูŠุฉ ูˆุซูŠู‚ุฉ ุจู€ C++ ูˆู…ุตุทู„ุญุงุชู‡. ู†ุญู† ู†ุนุชุจุฑ
ูŠุนุฏ ู†ุธุงู… ุงู„ุชุชุจุน ุฌุฒุกู‹ุง ู…ู‡ู…ู‹ุง ุฌุฏู‹ุง ู…ู† NS-3 ูˆู„ุฐุง ู†ูˆุตูŠ ุจุฃู† ุชุตุจุญ ู…ุฃู„ูˆูู‹ุง
ู…ู…ูƒู† ู…ุนู‡ุง. ุฑุจู…ุง ูŠูƒูˆู† ุงู„ุฃู…ุฑ ูƒุฐู„ูƒ ู‡ูˆ ูู‡ู… ุจู‚ูŠุฉ NS-3 ู†ุธุงู…
ุณูŠูƒูˆู† ุงู„ุฃู…ุฑ ุจุณูŠุทู‹ุง ู„ู„ุบุงูŠุฉ ุจู…ุฌุฑุฏ ุฅุชู‚ุงู† ู†ุธุงู… ุงู„ุชุชุจุน

ุจูŠุงู†ุงุช ู…ุฌู…ูˆุนุฉ


ูŠู‚ุฏู… ุงู„ูุตู„ ุงู„ุชุนู„ูŠู…ูŠ ุงู„ุฃุฎูŠุฑ ู„ุฏูŠู†ุง ุจุนุถ ุงู„ู…ูƒูˆู†ุงุช ุงู„ุชูŠ ุชู…ุช ุฅุถุงูุชู‡ุง ุฅู„ูŠู‡ุง NS-3 ููŠ ุงู„ุฅุตุฏุงุฑ
3.18ุŒ ูˆุงู„ุชูŠ ู„ุง ุชุฒุงู„ ู‚ูŠุฏ ุงู„ุชุทูˆูŠุฑ. ู‡ุฐุง ุงู„ู‚ุณู… ุงู„ุชุนู„ูŠู…ูŠ ู‡ูˆ ุฃูŠุถุง
ุงู„ุนู…ู„ ู‚ูŠุฏ ุงู„ุชู†ููŠุฐ.

ุงู„ุชุญููŠุฒ
ุฅุญุฏู‰ ุงู„ู†ู‚ุงุท ุงู„ุฑุฆูŠุณูŠุฉ ู„ุชุดุบูŠู„ ุนู…ู„ูŠุงุช ุงู„ู…ุญุงูƒุงุฉ ู‡ูŠ ุฅู†ุดุงุก ุจูŠุงู†ุงุช ุงู„ู…ุฎุฑุฌุงุชุŒ ุณูˆุงุกู‹ ูƒุงู†ุช
ู„ุฃุบุฑุงุถ ุงู„ุจุญุซ ุฃูˆ ุจุจุณุงุทุฉ ู„ู„ุชุนุฑู ุนู„ู‰ ุงู„ู†ุธุงู…. ููŠ ุงู„ูุตู„ ุงู„ุณุงุจู‚ ู†ุญู†
ู‚ุฏู… ุงู„ู†ุธุงู… ุงู„ูุฑุนูŠ ู„ู„ุชุชุจุน ูˆุงู„ู…ุซุงู„ six.cc. ู…ู† ุฎู„ุงู„ู‡ุง ุชุชุจุน PCAP ุฃูˆ ASCII
ูŠุชู… ุฅู†ุดุงุก ู…ู„ูุงุช . ู‡ุฐู‡ ุงู„ุขุซุงุฑ ุฐุงุช ู‚ูŠู…ุฉ ู„ุชุญู„ูŠู„ ุงู„ุจูŠุงู†ุงุช ุจุงุณุชุฎุฏุงู… ู…ุฌู…ูˆุนุฉ ู…ุชู†ูˆุนุฉ ู…ู†
ุฃุฏูˆุงุช ุฎุงุฑุฌูŠุฉุŒ ูˆุจุงู„ู†ุณุจุฉ ู„ู„ุนุฏูŠุฏ ู…ู† ุงู„ู…ุณุชุฎุฏู…ูŠู†ุŒ ุชุนุฏ ุจูŠุงู†ุงุช ุงู„ู…ุฎุฑุฌุงุช ู‡ุฐู‡ ูˆุณูŠู„ุฉ ู…ูุถู„ุฉ ู„ุฌู…ุนู‡ุง
ุงู„ุจูŠุงู†ุงุช (ู„ู„ุชุญู„ูŠู„ ุจูˆุงุณุทุฉ ุฃุฏูˆุงุช ุฎุงุฑุฌูŠุฉ).

ูˆู…ุน ุฐู„ูƒุŒ ู‡ู†ุงูƒ ุฃูŠุถู‹ุง ุญุงู„ุงุช ุงุณุชุฎุฏุงู… ู„ุฃูƒุซุฑ ู…ู† ู…ุฌุฑุฏ ุฅู†ุดุงุก ู…ู„ูุงุช ุงู„ุชุชุจุนุŒ ุจู…ุง ููŠ ุฐู„ูƒ
ุงู„ุชุงู„ูŠุฉ:

ยท ุชูˆู„ูŠุฏ ุงู„ุจูŠุงู†ุงุช ุงู„ุชูŠ ู„ุง ุชุชูˆุงูู‚ ุจุดูƒู„ ุฌูŠุฏ ู…ุน ุขุซุงุฑ PCAP ุฃูˆ ASCIIุŒ ู…ุซู„ ุงู„ุจูŠุงู†ุงุช ุบูŠุฑ ุงู„ุญุฒู…ุฉ
ุงู„ุจูŠุงู†ุงุช (ู…ุซู„ ุงู†ุชู‚ุงู„ุงุช ุขู„ุฉ ุญุงู„ุฉ ุงู„ุจุฑูˆุชูˆูƒูˆู„)ุŒ

ุนู…ู„ูŠุงุช ุงู„ู…ุญุงูƒุงุฉ ุงู„ูƒุจูŠุฑุฉ ุงู„ุชูŠ ูŠุชุทู„ุจู‡ุง ุฅุฏุฎุงู„/ุฅุฎุฑุงุฌ ุงู„ู‚ุฑุต ู„ุชูˆู„ูŠุฏ ู…ู„ูุงุช ุงู„ุชุชุจุน
ู…ุญุธูˆุฑุฉ ุฃูˆ ู…ุฑู‡ู‚ุฉุŒ ูˆ

ยท ุงู„ุญุงุฌุฉ ุฅู„ู‰ online ุชู‚ู„ูŠู„ ุงู„ุจูŠุงู†ุงุช ุฃูˆ ุญุณุงุจู‡ุงุŒ ุฃุซู†ุงุก ุนู…ู„ูŠุฉ ุงู„ู…ุญุงูƒุงุฉ.
ูˆุฎูŠุฑ ู…ุซุงู„ ุนู„ู‰ ุฐู„ูƒ ู‡ูˆ ุชุญุฏูŠุฏ ุดุฑุท ุฅู†ู‡ุงุก ุงู„ู…ุญุงูƒุงุฉ
ู…ุชู‰ ูŠุชูˆู‚ู ุนู†ุฏู…ุง ูŠุชู„ู‚ู‰ ุจูŠุงู†ุงุช ูƒุงููŠุฉ ู„ุชูƒูˆูŠู† ุซู‚ุฉ ุถูŠู‚ุฉ ุจู…ุง ููŠู‡ ุงู„ูƒูุงูŠุฉ
ุงู„ูุงุตู„ ุงู„ุฒู…ู†ูŠ ุญูˆู„ ุชู‚ุฏูŠุฑ ุจุนุถ ุงู„ู…ุนู„ู…ุงุช.

ุฅู†ู‘ NS-3 ุชู… ุชุตู…ูŠู… ุฅุทุงุฑ ุฌู…ุน ุงู„ุจูŠุงู†ุงุช ู„ุชูˆููŠุฑ ู‡ุฐู‡ ุงู„ู‚ุฏุฑุงุช ุงู„ุฅุถุงููŠุฉ
ุฃุจุนุฏ ู…ู† ุงู„ุฅุฎุฑุงุฌ ุงู„ู‚ุงุฆู… ุนู„ู‰ ุงู„ุชุชุจุน. ูˆู†ูˆุตูŠ ุงู„ู‚ุงุฑุฆ ุงู„ู…ู‡ุชู… ุจู‡ุฐุง ุงู„ู…ูˆุถูˆุน ุจุงุณุชุดุงุฑุฉ
ู‡ูŠู‡ NS-3 ุฏู„ูŠู„ ู„ู…ุนุงู„ุฌุฉ ุฃูƒุซุฑ ุชูุตูŠู„ุง ู„ู‡ุฐุง ุงู„ุฅุทุงุฑุ› ู‡ู†ุงุŒ ู†ู„ุฎุต ู…ุน
ุจุฑู†ุงู…ุฌ ู…ุซุงู„ ู„ุจุนุถ ุงู„ู‚ุฏุฑุงุช ุงู„ู†ุงู…ูŠุฉ.

ู…ุซุงู„ ุฑู…ุฒ
ุงู„ู…ุซุงู„ ุงู„ุชุนู„ูŠู…ูŠ ุฃู…ุซู„ุฉ/ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ/seventh.cc ูŠุดุจู‡ six.cc ู…ุซุงู„ ู†ุญู†
ุชู…ุช ู…ุฑุงุฌุนุชู‡ุง ู…ุณุจู‚ู‹ุงุŒ ุจุงุณุชุซู†ุงุก ุจุนุถ ุงู„ุชุบูŠูŠุฑุงุช. ุฃูˆู„ุงู‹ุŒ ุชู… ุชู…ูƒูŠู†ู‡ ู„ู€ IPv6
ุงู„ุฏุนู… ู…ุน ุฎูŠุงุฑ ุณุทุฑ ุงู„ุฃูˆุงู…ุฑ:

CommandLine ูƒู…ุฏ ุ›
cmd.AddValue ("useIpv6"ุŒ "ุงุณุชุฎุฏุงู… Ipv6"ุŒ useV6)ุ›
cmd ุŒ Parse (argc ุŒ argv) ุ›

ุฅุฐุง ุญุฏุฏ ุงู„ู…ุณุชุฎุฏู… useIpv6ุงู„ุฎูŠุงุฑุŒ ุณูŠุชู… ุชุดุบูŠู„ ุงู„ุจุฑู†ุงู…ุฌ ุจุงุณุชุฎุฏุงู… IPv6 ุจุฏู„ุงู‹ ู…ู† IPv4.
ุฅู†ู‘ ู…ุณุงุนุฏุฉ ุงู„ุฎูŠุงุฑ ู…ุชุงุญ ู„ู„ุฌู…ูŠุน NS-3 ุงู„ุจุฑุงู…ุฌ ุงู„ุชูŠ ุชุฏุนู… ูƒุงุฆู† CommandLine ูƒู€
ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ุฃุนู„ุงู‡ุŒ ูŠู…ูƒู† ุงุณุชุฏุนุงุคู‡ ุนู„ู‰ ุงู„ู†ุญูˆ ุงู„ุชุงู„ูŠ (ูŠุฑุฌู‰ ู…ู„ุงุญุธุฉ ุงุณุชุฎุฏุงู… ุนู„ุงู…ุงุช ุงู„ุงู‚ุชุจุงุณ ุงู„ู…ุฒุฏูˆุฌุฉ):

./waf --ุชุดุบูŠู„ "ุงู„ุณุงุจุน --ู…ุณุงุนุฏุฉ"

ุงู„ุฐูŠ ูŠู†ุชุฌ:

ns3-dev-seventh-debug [ูˆุณุงุฆุท ุงู„ุจุฑู†ุงู…ุฌ] [ุงู„ูˆุณุงุฆุท ุงู„ุนุงู…ุฉ]

ุญุฌุฌ ุงู„ุจุฑู†ุงู…ุฌ:
--useIpv6: ุงุณุชุฎุฏู… Ipv6 [ุฎุทุฃ]

ุงู„ุญุฌุฌ ุงู„ุนุงู…ุฉ:
--PrintGlobals: ุทุจุงุนุฉ ู‚ุงุฆู…ุฉ ุงู„ุนุงู„ู…ูŠุงุช.
--PrintGroups: ุทุจุงุนุฉ ู‚ุงุฆู…ุฉ ุงู„ู…ุฌู…ูˆุนุงุช.
--PrintGroup=[group]: ุทุจุงุนุฉ ูƒุงูุฉ ู…ุนุฑูุงุช ุงู„ู…ุฌู…ูˆุนุฉ.
--PrintTypeIds: ุทุจุงุนุฉ ูƒุงูุฉ ู…ุนุฑูุงุช ุงู„ู†ูˆุน.
--PrintAttributes=[typeid]: ุทุจุงุนุฉ ูƒุงูุฉ ุณู…ุงุช typeid.
--PrintHelp: ุงุทุจุน ุฑุณุงู„ุฉ ุงู„ู…ุณุงุนุฏุฉ ู‡ุฐู‡.

ูŠู…ูƒู† ุชุบูŠูŠุฑ ู‡ุฐุง ุงู„ุงูุชุฑุงุถูŠ (ุงุณุชุฎุฏุงู… IPv4ุŒ ู†ุธุฑู‹ุง ู„ุฃู† useIpv6 ุฎุทุฃ) ุนู† ุทุฑูŠู‚ ุชุจุฏูŠู„ ุงู„ู‚ูŠู…ุฉ ุงู„ู…ู†ุทู‚ูŠุฉ
ุงู„ู‚ูŠู…ุฉ ุนู„ู‰ ุงู„ู†ุญูˆ ุงู„ุชุงู„ูŠ:

./waf --ุชุดุบูŠู„ "ุงู„ุณุงุจุน --useIpv6=1"

ูˆุฅู„ู‚ุงุก ู†ุธุฑุฉ ุนู„ู‰ PCAP ุงู„ุฐูŠ ุชู… ุฅู†ุดุงุคู‡ุŒ ูƒู…ุง ู‡ูˆ ุงู„ุญุงู„ ู…ุน com.tcpdump:

tcpdump -r ุงู„ุณุงุจุน.pcap -nn -tt

ู„ู‚ุฏ ูƒุงู† ู‡ุฐุง ุงุณุชุทุฑุงุฏุง ู‚ุตูŠุฑุง ู„ุฏุนู… IPv6 ูˆุณุทุฑ ุงู„ุฃูˆุงู…ุฑุŒ ูˆุงู„ุฐูŠ ูƒุงู† ูƒุฐู„ูƒ
ุชู… ุชู‚ุฏูŠู…ู‡ ู…ุณุจู‚ู‹ุง ููŠ ู‡ุฐุง ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ. ู„ู„ุญุตูˆู„ ุนู„ู‰ ู…ุซุงู„ ู…ุฎุตุต ู„ุงุณุชุฎุฏุงู… ุณุทุฑ ุงู„ุฃูˆุงู…ุฑุŒ
ู„ุทูุง ุฃู†ุธุฑ src/core/examples/command-line-example.cc.

ุนุงุฏ ุงู„ุขู† ุฅู„ู‰ ุฌู…ุน ุงู„ุจูŠุงู†ุงุช. ููŠ ุงู„ ุฃู…ุซู„ุฉ / ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ / ุงู„ุฏู„ูŠู„ุŒ ุงูƒุชุจ ู…ุง ูŠู„ูŠ
ุฃู…ุฑ: ูุฑู‚ -u six.cc ุงู„ุณุงุจุนุŒ ูˆูุญุต ุจุนุถ ุงู„ุฃุณุทุฑ ุงู„ุฌุฏูŠุฏุฉ ู„ู‡ุฐุง ุงู„ุงุฎุชู„ุงู:

+ ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง::ู†ูˆุน ุงู„ุชุญู‚ูŠู‚ ุณู„ุณู„ุฉุ›
+ ุณุชุฏ::ุณู„ุณู„ุฉ ุชุชุจุน ุงู„ู…ุณุงุฑุ›
+ ุฅุฐุง (useV6 == ุฎุทุฃ)
+ {

+probeType = "ns3::Ipv4PacketProbe";
+ TracePath = "/NodeList/*/$ns3::Ipv4L3Protocol/Tx";
+ }
+ ุขุฎุฑ
+ {

+probeType = "ns3::Ipv6PacketProbe";
+ TracePath = "/NodeList/*/$ns3::Ipv6L3Protocol/Tx";
+ }

+ // ุงุณุชุฎุฏู… GnuplotHelper ู„ุฑุณู… ุนุฏุฏ ุจุงูŠุชุงุช ุงู„ุญุฒู…ุฉ ุจู…ุฑูˆุฑ ุงู„ูˆู‚ุช
+ GnuplotHelperplotHelper;
+
+ // ุชูƒูˆูŠู† ุงู„ู…ุคุงู…ุฑุฉ. ุงู„ูˆุณูŠุทุฉ ุงู„ุฃูˆู„ู‰ ู‡ูŠ ุจุงุฏุฆุฉ ุงุณู… ุงู„ู…ู„ู
+ // ู„ู…ู„ูุงุช ุงู„ุฅุฎุฑุงุฌ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง. ุงู„ุซุงู†ูŠ ูˆุงู„ุซุงู„ุซ ูˆุงู„ุฑุงุจุน
+ // ุงู„ูˆุณุงุฆุท ู‡ูŠุŒ ุนู„ู‰ ุงู„ุชูˆุงู„ูŠุŒ ุนู†ูˆุงู† ู‚ุทุนุฉ ุงู„ุฃุฑุถุŒ ูˆุงู„ู…ุญูˆุฑ ุงู„ุณูŠู†ูŠุŒ ูˆุงู„ู…ุญูˆุฑ ุงู„ุตุงุฏูŠ
+plotHelper.ConfigurePlot ("ุนุฏุฏ ุงู„ุจุงูŠุชุงุช ุงู„ุณุงุจุน ู„ู„ุญุฒู…ุฉ"ุŒ
+ "ุนุฏุฏ ุจุงูŠุชุงุช ุงู„ุญุฒู…ุฉ ู…ู‚ุงุจู„ ุงู„ูˆู‚ุช"ุŒ
+ "ุงู„ูˆู‚ุช (ุจุงู„ุซูˆุงู†ูŠ)"ุŒ
+ "ุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ")ุ›
+
+ // ุญุฏุฏ ู†ูˆุน ุงู„ู…ุณุจุงุฑุŒ ูˆุชุชุจุน ู…ุณุงุฑ ุงู„ู…ุตุฏุฑ (ููŠ ู…ุณุงุญุฉ ุงุณู… ุงู„ุชูƒูˆูŠู†)ุŒ ูˆ
+ // ุงู„ุชุญู‚ูŠู‚ ููŠ ู…ุตุฏุฑ ุชุชุจุน ุงู„ุฅุฎุฑุงุฌ ("OutputBytes") ู„ู„ุชุฎุทูŠุท. ุงู„ุญุฌุฉ ุงู„ุฑุงุจุนุฉ
+ // ูŠุญุฏุฏ ุงุณู… ุชุณู…ูŠุฉ ุณู„ุณู„ุฉ ุงู„ุจูŠุงู†ุงุช ุนู„ู‰ ู‚ุทุนุฉ ุงู„ุฃุฑุถ. ุงู„ุงุฎูŠุฑ
+ // ุชู‚ูˆู… ุงู„ูˆุณูŠุทุฉ ุจุชู†ุณูŠู‚ ุงู„ู…ุคุงู…ุฑุฉ ุนู† ุทุฑูŠู‚ ุชุญุฏูŠุฏ ุงู„ู…ูƒุงู† ุงู„ุฐูŠ ูŠุฌุจ ูˆุถุน ุงู„ู…ูุชุงุญ ููŠู‡.
+plotHelper.PlotProbe (probeTypeุŒ
+ ู…ุณุงุฑ ุงู„ุชุชุจุนุŒ
+ "ูˆุญุฏุงุช ุจุงูŠุช ุงู„ุฅุฎุฑุงุฌ"ุŒ
+ "ุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ"ุŒ
+ GnuplotAggregator::KEY_BELOW);
+
+ // ุงุณุชุฎุฏู… FileHelper ู„ูƒุชุงุจุฉ ุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ ุจู…ุฑูˆุฑ ุงู„ูˆู‚ุช
+ FileHelper fileHelperุ›
+
+ // ุชูƒูˆูŠู† ุงู„ู…ู„ู ุงู„ู…ุฑุงุฏ ูƒุชุงุจุชู‡ ูˆุชู†ุณูŠู‚ ุจูŠุงู†ุงุช ุงู„ุฅุฎุฑุงุฌ.
+ fileHelper.ConfigureFile ("ุนุฏุฏ ุงู„ุจุงูŠุชุงุช ุงู„ุณุงุจุนุฉ ู„ู„ุญุฒู…ุฉ"ุŒ
+ ู…ุฌู…ุน ุงู„ู…ู„ูุงุช::FORMATTED);
+
+ // ู‚ู… ุจุชุนูŠูŠู† ุงู„ุชุณู…ูŠุงุช ู„ู…ู„ู ุงู„ุฅุฎุฑุงุฌ ุงู„ู…ู†ุณู‚ ู‡ุฐุง.
+ fileHelper.Set2dFormat ("ุงู„ูˆู‚ุช (ุงู„ุซูˆุงู†ูŠ) = %.3e\tุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ = %.0f");
+
+ // ุญุฏุฏ ู†ูˆุน ุงู„ู…ุณุจุงุฑ ูˆู…ุณุงุฑ ุงู„ู…ุณุจุงุฑ (ููŠ ู…ุณุงุญุฉ ุงุณู… ุงู„ุชูƒูˆูŠู†) ูˆ
+ // ุงู„ุชุญู‚ูŠู‚ ููŠ ู…ุตุฏุฑ ุชุชุจุน ุงู„ุฅุฎุฑุงุฌ ("OutputBytes") ู„ู„ูƒุชุงุจุฉ.
+ fileHelper.WriteProbe (probeTypeุŒ
+ ู…ุณุงุฑ ุงู„ุชุชุจุนุŒ
+ "ูˆุญุฏุงุช ุจุงูŠุช ุงู„ุฅุฎุฑุงุฌ");
+
ู…ุญุงูƒูŠ::ุชูˆู‚ู (ุซูˆุงู†ูŠ (20))ุ›
ู…ุญุงูƒูŠ :: ุชุดุบูŠู„ () ุ›
ุฌู‡ุงุฒ ู…ุญุงูƒุงุฉ :: ุชุฏู…ูŠุฑ () ุ›

ู„ุง ุจุฏ ุฃู† ุงู„ู‚ุงุฑุฆ ุงู„ู…ุชุฃู†ูŠ ู‚ุฏ ู„ุงุญุธุŒ ุนู†ุฏ ุงุฎุชุจุงุฑ ุณู…ุฉ ุณุทุฑ ุฃูˆุงู…ุฑ IPv6 ุฃุนู„ุงู‡ุŒ
ุฃู† ุงู„ุณุงุจุน ู‚ุงู… ุจุฅู†ุดุงุก ุนุฏุฏ ู…ู† ู…ู„ูุงุช ุงู„ุฅุฎุฑุงุฌ ุงู„ุฌุฏูŠุฏุฉ:

ุงู„ุญุฒู…ุฉ ุงู„ุณุงุจุนุฉ ุจุงูŠุช ุนุฏุฏ 0.txt
ุงู„ุญุฒู…ุฉ ุงู„ุณุงุจุนุฉ ุจุงูŠุช ุนุฏุฏ 1.txt
ุงู„ุญุฒู…ุฉ ุงู„ุณุงุจุนุฉ ุจุงูŠุช ุนุฏุฏ. dat
ุงู„ุนุฏุฏ ุงู„ุณุงุจุน ู„ู„ุญุฒู…ุฉ ุงู„ุจุงูŠุช
ุนุฏุฏ ุงู„ุจุงูŠุชุงุช ุงู„ุณุงุจุนุฉ.png
ุงู„ุญุฒู…ุฉ ุงู„ุณุงุจุนุฉ ุจุงูŠุช- ุงู„ุนุฏ. sh

ุชู… ุฅู†ุดุงุคู‡ุง ุจูˆุงุณุทุฉ ุงู„ุจูŠุงู†ุงุช ุงู„ุฅุถุงููŠุฉ ุงู„ู…ู‚ุฏู…ุฉ ุฃุนู„ุงู‡ุ› ุนู„ู‰ ูˆุฌู‡ ุงู„ุฎุตูˆุตุŒ ู…ู† ู‚ุจู„ ุฃ
GnuplotHelper ูˆFileHelper. ุชู… ุฅู†ุชุงุฌ ู‡ุฐู‡ ุงู„ุจูŠุงู†ุงุช ุนู† ุทุฑูŠู‚ ุฑุจุท ุฌู…ุน ุงู„ุจูŠุงู†ุงุช
ุงู„ู…ูƒูˆู†ุงุช ู„ NS-3 ุชุชุจุน ุงู„ู…ุตุงุฏุฑุŒ ูˆุชู†ุธูŠู… ุงู„ุจูŠุงู†ุงุช ููŠ ุดูƒู„ ู…ู†ุณู‚ ุบู†ูˆุจู„ูˆุช
ููŠ ู…ู„ู ู†ุตูŠ ู…ู†ุณู‚. ูˆููŠ ุงู„ุฃู‚ุณุงู… ุงู„ุชุงู„ูŠุฉุŒ ุณู†ุฑุงุฌุน ูƒู„ู‹ุง ู…ู†ู‡ุง.

ู…ุณุงุนุฏ Gnuplot
GnuplotHelper ู‡ูˆ NS-3 ูƒุงุฆู† ู…ุณุงุนุฏ ูŠู‡ุฏู ุฅู„ู‰ ุฅู†ุชุงุฌ ุบู†ูˆุจู„ูˆุช ุงู„ู…ุคุงู…ุฑุงุช ู…ุน
ุฃู‚ู„ ุนุฏุฏ ู…ู…ูƒู† ู…ู† ุงู„ุจูŠุงู†ุงุชุŒ ู„ู„ุญุงู„ุงุช ุงู„ุดุงุฆุนุฉ. ุงู†ู‡ุง ุงู„ุณู†ุงู†ูŠุฑ NS-3 ุชุชุจุน ุงู„ู…ุตุงุฏุฑ ุจุงู„ุจูŠุงู†ุงุช
ุงู„ุฃู†ูˆุงุน ุงู„ุชูŠ ูŠุฏุนู…ู‡ุง ู†ุธุงู… ุฌู…ุน ุงู„ุจูŠุงู†ุงุช. ู„ูŠุณ ูƒู„ ุดูŠุก NS-3 ุฃู†ูˆุงุน ุจูŠุงู†ุงุช ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ู‡ูŠ
ู…ุฏุนูˆู…ุฉุŒ ูˆู„ูƒู† ุงู„ุนุฏูŠุฏ ู…ู† ุฃู†ูˆุงุน ุงู„ุชุชุจุน ุงู„ุดุงุฆุนุฉ ู‡ูŠ ูƒุฐู„ูƒุŒ ุจู…ุง ููŠ ุฐู„ูƒ TracedValues โ€‹โ€‹ุฐุงุช ุงู„ู‚ูŠู…ุฉ ุงู„ู‚ุฏูŠู…ุฉ ุงู„ุจุณูŠุทุฉ
ุฃู†ูˆุงุน ุงู„ุจูŠุงู†ุงุช (POD).

ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ ุงู„ู…ุฎุฑุฌุงุช ุงู„ุชูŠ ูŠู†ุชุฌู‡ุง ู‡ุฐุง ุงู„ู…ุณุงุนุฏ:

ุงู„ุญุฒู…ุฉ ุงู„ุณุงุจุนุฉ ุจุงูŠุช ุนุฏุฏ. dat
ุงู„ุนุฏุฏ ุงู„ุณุงุจุน ู„ู„ุญุฒู…ุฉ ุงู„ุจุงูŠุช
ุงู„ุญุฒู…ุฉ ุงู„ุณุงุจุนุฉ ุจุงูŠุช- ุงู„ุนุฏ. sh

ุงู„ุฃูˆู„ ู‡ูˆ ู…ู„ู ุจูŠุงู†ุงุช gnuplot ุงู„ุฐูŠ ูŠุญุชูˆูŠ ุนู„ู‰ ุณู„ุณู„ุฉ ู…ู† ุงู„ุทูˆุงุจุน ุงู„ุฒู…ู†ูŠุฉ ูˆุงู„ุญุฒู… ุงู„ู…ุญุฏุฏุฉ ุจู…ุณุงูุงุช
ุนุฏุฏ ุงู„ุจุงูŠุชุงุช. ุณู†ุบุทูŠ ูƒูŠููŠุฉ ุชูƒูˆูŠู† ู…ุฎุฑุฌุงุช ุงู„ุจูŠุงู†ุงุช ุงู„ู…ุญุฏุฏุฉ ู‡ุฐู‡ ุฃุฏู†ุงู‡ุŒ ูˆู„ูƒู† ุฏุนู†ุง ู†ูุนู„ ุฐู„ูƒ
ุชูˆุงุตู„ ู…ุน ู…ู„ูุงุช ุงู„ุฅุฎุฑุงุฌ. ุงู„ู…ู„ู ุงู„ุนุฏุฏ ุงู„ุณุงุจุน ู„ู„ุญุฒู…ุฉ ุงู„ุจุงูŠุช ู‡ูŠ ู…ุคุงู…ุฑุฉ gnuplot
ุงู„ู…ู„ู ุงู„ุฐูŠ ูŠู…ูƒู† ูุชุญู‡ ู…ู† ุฏุงุฎู„ gnuplot. ูŠู…ูƒู† ู„ู„ู‚ุฑุงุก ุงู„ุฐูŠู† ูŠูู‡ู…ูˆู† ุจู†ุงุก ุฌู…ู„ุฉ gnuplot ุฃู† ูŠูุนู„ูˆุง ุฐู„ูƒ
ุชุฃูƒุฏ ู…ู† ุฃู† ู‡ุฐุง ุณูŠุคุฏูŠ ุฅู„ู‰ ุฅุฎุฑุงุฌ ู…ู„ู PNG ู…ู†ุณู‚ ุจุงุณู…
ุนุฏุฏ ุงู„ุจุงูŠุชุงุช ุงู„ุณุงุจุนุฉ.png. ูˆุฃุฎูŠุฑุงุŒ ู†ุต ุดู„ ุตุบูŠุฑ
ุงู„ุญุฒู…ุฉ ุงู„ุณุงุจุนุฉ ุจุงูŠุช- ุงู„ุนุฏ. sh ูŠู‚ูˆู… ุจุชุดุบูŠู„ ู…ู„ู ุงู„ุฑุณู… ู‡ุฐุง ู…ู† ุฎู„ุงู„ gnuplot ู„ุฅู†ุชุงุฌ ุงู„ู…ู„ู ุงู„ู…ุทู„ูˆุจ
PNG (ุงู„ุฐูŠ ูŠู…ูƒู† ุนุฑุถู‡ ููŠ ู…ุญุฑุฑ ุงู„ุตูˆุฑ)ุ› ุฃูŠ ุงู„ุฃู…ุฑ:

sh XNUMX-packet-byte-count.sh

ุณูˆู ุชุณูุฑ ุนุฏุฏ ุงู„ุจุงูŠุชุงุช ุงู„ุณุงุจุนุฉ.png. ู„ู…ุงุฐุง ู„ู… ูŠุชู… ุฅู†ุชุงุฌ PNG ู‡ุฐุง ููŠ ุงู„ุฃูˆู„
ู…ูƒุงู†ุŸ ุงู„ุฌูˆุงุจ ู‡ูˆ ุฃู†ู‡ ู…ู† ุฎู„ุงู„ ุชูˆููŠุฑ ู…ู„ู pltุŒ ูŠู…ูƒู† ู„ู„ู…ุณุชุฎุฏู… ุชูƒูˆูŠู† ู…ู„ู
ุงู„ู†ุชูŠุฌุฉ ุฅุฐุง ุฑุบุจุช ููŠ ุฐู„ูƒุŒ ู‚ุจู„ ุฅู†ุชุงุฌ PNG.

ูŠู†ุต ุนู†ูˆุงู† ุตูˆุฑุฉ PNG ุนู„ู‰ ุฃู† ู‡ุฐู‡ ุงู„ู…ุคุงู…ุฑุฉ ุนุจุงุฑุฉ ุนู† ู…ุคุงู…ุฑุฉ "ุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ ู…ู‚ุงุจู„ ุงู„ูˆู‚ุช"ุŒ ูˆ
ุฃู†ู‡ ูŠู‚ูˆู… ุจุชุฎุทูŠุท ุงู„ุจูŠุงู†ุงุช ุงู„ุชูŠ ุชู… ูุญุตู‡ุง ูˆุงู„ุชูŠ ุชุชูˆุงูู‚ ู…ุน ู…ุณุงุฑ ู…ุตุฏุฑ ุงู„ุชุชุจุน:

/NodeList/*/$ns3::Ipv6L3Protocol/Tx

ู„ุงุญุธ ุญุฑู ุงู„ุจุฏู„ ููŠ ู…ุณุงุฑ ุงู„ุชุชุจุน. ุจุงุฎุชุตุงุฑุŒ ู…ุง ุชู„ุชู‚ุทู‡ ู‡ุฐู‡ ุงู„ุญุจูƒุฉ ู‡ูˆ ุงู„ุญุจูƒุฉ
ู…ู† ุจุงูŠุชุงุช ุงู„ุญุฒู…ุฉ ุงู„ุชูŠ ุชู…ุช ู…ู„ุงุญุธุชู‡ุง ุนู†ุฏ ู…ุตุฏุฑ ุชุชุจุน ุงู„ุฅุฑุณุงู„ ู„ูƒุงุฆู† Ipv6L3Protocolุ›
ุฅู„ู‰ ุญุฏ ูƒุจูŠุฑ ู…ู‚ุงุทุน TCP ุจุญุฌู… 596 ุจุงูŠุช ููŠ ุงุชุฌุงู‡ ูˆุงุญุฏุŒ ูˆ60 ุจุงูŠุช TCP ููŠ ุงู„ุงุชุฌุงู‡ ุงู„ุขุฎุฑ (ุงุซู†ุงู†
ุชู…ุช ู…ุทุงุจู‚ุฉ ู…ุตุงุฏุฑ ุชุชุจุน ุงู„ุนู‚ุฏุฉ ู…ุน ู…ุตุฏุฑ ุงู„ุชุชุจุน ู‡ุฐุง).

ูƒูŠู ุชู… ุชูƒูˆูŠู† ู‡ุฐุงุŸ ู…ู† ุงู„ุถุฑูˆุฑูŠ ุชู‚ุฏูŠู… ุจุนุถ ุงู„ุจูŠุงู†ุงุช. ุฃูˆู„ุงู‹ุŒ ุจุฑู†ุงู…ุฌ GnuplotHelper
ูŠุฌุจ ุงู„ุฅุนู„ุงู† ุนู† ุงู„ูƒุงุฆู† ูˆุชูƒูˆูŠู†ู‡:

+ // ุงุณุชุฎุฏู… GnuplotHelper ู„ุฑุณู… ุนุฏุฏ ุจุงูŠุชุงุช ุงู„ุญุฒู…ุฉ ุจู…ุฑูˆุฑ ุงู„ูˆู‚ุช
+ GnuplotHelperplotHelper;
+
+ // ุชูƒูˆูŠู† ุงู„ู…ุคุงู…ุฑุฉ. ุงู„ูˆุณูŠุทุฉ ุงู„ุฃูˆู„ู‰ ู‡ูŠ ุจุงุฏุฆุฉ ุงุณู… ุงู„ู…ู„ู
+ // ู„ู…ู„ูุงุช ุงู„ุฅุฎุฑุงุฌ ุงู„ุชูŠ ุชู… ุฅู†ุดุงุคู‡ุง. ุงู„ุซุงู†ูŠ ูˆุงู„ุซุงู„ุซ ูˆุงู„ุฑุงุจุน
+ // ุงู„ูˆุณุงุฆุท ู‡ูŠุŒ ุนู„ู‰ ุงู„ุชูˆุงู„ูŠุŒ ุนู†ูˆุงู† ู‚ุทุนุฉ ุงู„ุฃุฑุถุŒ ูˆุงู„ู…ุญูˆุฑ ุงู„ุณูŠู†ูŠุŒ ูˆุงู„ู…ุญูˆุฑ ุงู„ุตุงุฏูŠ
+plotHelper.ConfigurePlot ("ุนุฏุฏ ุงู„ุจุงูŠุชุงุช ุงู„ุณุงุจุน ู„ู„ุญุฒู…ุฉ"ุŒ
+ "ุนุฏุฏ ุจุงูŠุชุงุช ุงู„ุญุฒู…ุฉ ู…ู‚ุงุจู„ ุงู„ูˆู‚ุช"ุŒ
+ "ุงู„ูˆู‚ุช (ุจุงู„ุซูˆุงู†ูŠ)"ุŒ
+ "ุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ")ุ›

ุฅู„ู‰ ู‡ุฐู‡ ุงู„ู†ู‚ุทุฉุŒ ุชู… ุชูƒูˆูŠู† ู‚ุทุนุฉ ุฃุฑุถ ูุงุฑุบุฉ. ุจุงุฏุฆุฉ ุงุณู… ุงู„ู…ู„ู ู‡ูŠ ุงู„ุฃูˆู„ู‰
ุงู„ูˆุณูŠุทุฉุŒ ุนู†ูˆุงู† ุงู„ุญุจูƒุฉ ู‡ูˆ ุงู„ุซุงู†ูŠุŒ ูˆุชุณู…ูŠุฉ ุงู„ู…ุญูˆุฑ ุงู„ุณูŠู†ูŠ ู‡ูŠ ุงู„ุซุงู„ุซุฉุŒ ูˆุชุณู…ูŠุฉ ุงู„ู…ุญูˆุฑ ุต
ุงู„ุญุฌุฉ ุงู„ุฑุงุจุนุฉ.

ุงู„ุฎุทูˆุฉ ุงู„ุชุงู„ูŠุฉ ู‡ูŠ ุชูƒูˆูŠู† ุงู„ุจูŠุงู†ุงุชุŒ ูˆู‡ู†ุง ูŠุชู… ุฑุจุท ู…ุตุฏุฑ ุงู„ุชุชุจุน.
ุฃูˆู„ุงู‹ุŒ ู„ุงุญุธ ุฃุนู„ุงู‡ ููŠ ุงู„ุจุฑู†ุงู…ุฌ ุฃู†ู†ุง ุฃุนู„ู†ุง ุนู† ุจุนุถ ุงู„ู…ุชุบูŠุฑุงุช ู„ุงุณุชุฎุฏุงู…ู‡ุง ู„ุงุญู‚ู‹ุง:

+ ุงู„ุฃู…ุฑุงุถ ุงู„ู…ู†ู‚ูˆู„ุฉ ุฌู†ุณูŠุง::ู†ูˆุน ุงู„ุชุญู‚ูŠู‚ ุณู„ุณู„ุฉุ›
+ ุณุชุฏ::ุณู„ุณู„ุฉ ุชุชุจุน ุงู„ู…ุณุงุฑุ›
+probeType = "ns3::Ipv6PacketProbe";
+ TracePath = "/NodeList/*/$ns3::Ipv6L3Protocol/Tx";

ู†ุณุชุฎุฏู…ู‡ุง ู‡ู†ุง:

+ // ุญุฏุฏ ู†ูˆุน ุงู„ู…ุณุจุงุฑุŒ ูˆุชุชุจุน ู…ุณุงุฑ ุงู„ู…ุตุฏุฑ (ููŠ ู…ุณุงุญุฉ ุงุณู… ุงู„ุชูƒูˆูŠู†)ุŒ ูˆ
+ // ุงู„ุชุญู‚ูŠู‚ ููŠ ู…ุตุฏุฑ ุชุชุจุน ุงู„ุฅุฎุฑุงุฌ ("OutputBytes") ู„ู„ุชุฎุทูŠุท. ุงู„ุญุฌุฉ ุงู„ุฑุงุจุนุฉ
+ // ูŠุญุฏุฏ ุงุณู… ุชุณู…ูŠุฉ ุณู„ุณู„ุฉ ุงู„ุจูŠุงู†ุงุช ุนู„ู‰ ู‚ุทุนุฉ ุงู„ุฃุฑุถ. ุงู„ุงุฎูŠุฑ
+ // ุชู‚ูˆู… ุงู„ูˆุณูŠุทุฉ ุจุชู†ุณูŠู‚ ุงู„ู…ุคุงู…ุฑุฉ ุนู† ุทุฑูŠู‚ ุชุญุฏูŠุฏ ุงู„ู…ูƒุงู† ุงู„ุฐูŠ ูŠุฌุจ ูˆุถุน ุงู„ู…ูุชุงุญ ููŠู‡.
+plotHelper.PlotProbe (probeTypeุŒ
+ ู…ุณุงุฑ ุงู„ุชุชุจุนุŒ
+ "ูˆุญุฏุงุช ุจุงูŠุช ุงู„ุฅุฎุฑุงุฌ"ุŒ
+ "ุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ"ุŒ
+ GnuplotAggregator::KEY_BELOW);

ุงู„ูˆุณูŠุทุชุงู† ุงู„ุฃูˆู„ูŠุงู† ู‡ู…ุง ุงุณู… ู†ูˆุน ุงู„ู…ุณุจุงุฑ ูˆู…ุณุงุฑ ู…ุตุฏุฑ ุงู„ุชุชุจุน. ู‡ุคู„ุงุก
ู…ู† ุงู„ู…ุญุชู…ู„ ุฃู† ูŠูƒูˆู† ุชุญุฏูŠุฏ ุงุซู†ูŠู† ู‡ูˆ ุงู„ุฃุตุนุจ ุนู†ุฏ ู…ุญุงูˆู„ุฉ ุงุณุชุฎุฏุงู… ู‡ุฐุง ุงู„ุฅุทุงุฑ ู„ุฑุณู… ุฅุทุงุฑ ุขุฎุฑ
ุขุซุงุฑ. ุฃุซุฑ ุงู„ุชุญู‚ูŠู‚ ู‡ู†ุง ู‡ูˆ Tx ุชุชุจุน ู…ุตุฏุฑ ุงู„ุทุจู‚ุฉ ุจุฑูˆุชูˆูƒูˆู„ IPv6L3. ุนู†ุฏู…ุง ูƒู†ุง
ูุญุต ุชู†ููŠุฐ ู‡ุฐุง ุงู„ูุตู„ (src/internet/model/ipv6-l3-protocol.cc) ูŠู…ูƒู†ู†ุง ุฃู† ู†ู„ุงุญุธ:

.AddTraceSource ("Tx"ุŒ "ุฅุฑุณุงู„ ุญุฒู…ุฉ IPv6 ุฅู„ู‰ ุงู„ูˆุงุฌู‡ุฉ ุงู„ุตุงุฏุฑุฉ."ุŒ
MakeTraceSourceAccessor (&Ipv6L3Protocol::m_txTrace))

ู‡ุฐุง ูŠู‚ูˆู„ ุฐู„ูƒ Tx ู‡ูˆ ุงุณู… ู„ู„ู…ุชุบูŠุฑ m_txTraceุŒ ูˆุงู„ุฐูŠ ูŠุญุชูˆูŠ ุนู„ู‰ ุฅุนู„ุงู†:

/ **
* \brief Callback ู„ุชุชุจุน ุญุฒู… TX (ุงู„ุฅุฑุณุงู„).
*/
ุชุชุจุน ุงู„ุงุชุตุงู„ , ุจูŠ ุชูŠ ุขุฑ , uint6_t> m_txTrace;

ุงุชุถุญ ุฃู† ุชูˆู‚ูŠุน ู…ุตุฏุฑ ุงู„ุชุชุจุน ุงู„ู…ุญุฏุฏ ู‡ุฐุง ู…ุฏุนูˆู… ุจูุฆุฉ Probe (what
ู†ุญุชุงุฌู‡ ู‡ู†ุง) ู…ู† ูุฆุฉ Ipv6PacketProbe. ุงู†ุธุฑ ุงู„ู…ู„ูุงุช
src/internet/model/ipv6-packet-probe.{h,cc}.

ู„ุฐุงุŒ ููŠ ุนุจุงุฑุฉ PlotProbe ุฃุนู„ุงู‡ุŒ ู†ุฑู‰ ุฃู† ุงู„ุนุจุงุฑุฉ ุชู‚ูˆู… ุจุฑุจุท ุงู„ุชุชุจุน
ุงู„ู…ุตุฏุฑ (ูŠุชู… ุชุญุฏูŠุฏู‡ ุจูˆุงุณุทุฉ ุณู„ุณู„ุฉ ุงู„ู…ุณุงุฑ) ู…ุน ู…ุทุงุจู‚ุฉ NS-3 ู†ูˆุน ุงู„ู…ุณุจุงุฑ IPv6PacketProbe. ุฅุฐุง
ู„ู… ู†ุฏุนู… ู‡ุฐุง ุงู„ู†ูˆุน ู…ู† ุงู„ู…ุณุจุงุฑ (ู…ุทุงุจู‚ุฉ ุชูˆู‚ูŠุน ู…ุตุฏุฑ ุงู„ุชุชุจุน)ุŒ ู„ู… ูŠูƒู† ู…ู† ุงู„ู…ู…ูƒู† ุฃู† ู†ูุนู„ ุฐู„ูƒ
ุงุณุชุฎุฏู… ู‡ุฐุง ุงู„ุจูŠุงู† (ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ู‡ ูƒุงู† ู…ู† ุงู„ู…ู…ูƒู† ุฃู† ุชูƒูˆู† ุจุนุถ ุงู„ุจูŠุงู†ุงุช ุฐุงุช ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุฏู†ู‰ ุงู„ุฃูƒุซุฑ ุชุนู‚ูŠุฏู‹ุง
ุงู„ู…ุณุชุฎุฏู…ุฉุŒ ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ููŠ ุงู„ุฏู„ูŠู„).

ูŠู‚ูˆู… Ipv6PacketProbe ุจุชุตุฏูŠุฑ ุจุนุถ ู…ุตุงุฏุฑ ุงู„ุชุชุจุน ุงู„ุชูŠ ุชุณุชุฎุฑุฌ ุงู„ุจูŠุงู†ุงุช ู…ู† ุงู„ู…ู„ู
ูƒุงุฆู† ุงู„ุญุฒู…ุฉ ุงู„ุฐูŠ ุชู… ุงุฎุชุจุงุฑู‡:

ุงู„ู†ูˆุน
Ipv6PacketProbe :: GetTypeId ()
{
ุซุงุจุช TypeId tid = TypeId ("ns3 :: Ipv6PacketProbe")
.SetParent ()
.AddConstructor ()
.AddTraceSource ("ุงู„ุฅุฎุฑุงุฌ"ุŒ
"ุงู„ุญุฒู…ุฉ ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ูƒุงุฆู† IPv6 ุงู„ุฎุงุต ุจู‡ุง ูˆุงู„ูˆุงุฌู‡ุฉ ุงู„ุชูŠ ุชุนู…ู„ ูƒุฅุฎุฑุงุฌ ู„ู‡ุฐุง ุงู„ุชุญู‚ูŠู‚" ุŒ
MakeTraceSourceAccessor (& Ipv6PacketProbe :: m_output))
.AddTraceSource ("OutputBytes"ุŒ
"ุนุฏุฏ ุงู„ุจุงูŠุช ููŠ ุงู„ุญุฒู…ุฉ" ุŒ
MakeTraceSourceAccessor (& Ipv6PacketProbe :: m_outputBytes))
;
ุนูˆุฏุฉ ุงู„ู…ุฏ
}

ุชุญุฏุฏ ุงู„ูˆุณูŠุทุฉ ุงู„ุซุงู„ุซุฉ ููŠ ุจูŠุงู† PlotProbe ุฃู†ู†ุง ู…ู‡ุชู…ูˆู† ุจู€
ุนุฏุฏ ุงู„ุจุงูŠุชุงุช ููŠ ู‡ุฐู‡ ุงู„ุญุฒู…ุฉุ› ุนู„ู‰ ูˆุฌู‡ ุงู„ุชุญุฏูŠุฏุŒ ู…ุตุฏุฑ ุงู„ุชุชุจุน "OutputBytes" ู„ู€
IPv6PacketProbe. ุฃุฎูŠุฑู‹ุงุŒ ุชูˆูุฑ ุงู„ูˆุณูŠุทุชุงู† ุงู„ุฃุฎูŠุฑุชุงู† ู„ู„ุจูŠุงู† ุฃุณุทูˆุฑุฉ ุงู„ุญุจูƒุฉ
ู„ุณู„ุณู„ุฉ ุงู„ุจูŠุงู†ุงุช ู‡ุฐู‡ ("ุนุฏุฏ ุจุงูŠุชุงุช ุงู„ุญุฒู…ุฉ")ุŒ ูˆุจูŠุงู† ุชู†ุณูŠู‚ gnuplot ุงู„ุงุฎุชูŠุงุฑูŠ
(GnuplotAggregator::KEY_BELOW) ุฃู†ู†ุง ู†ุฑูŠุฏ ุฅุฏุฑุงุฌ ู…ูุชุงุญ ุงู„ู…ุคุงู…ุฑุฉ ุฃุณูู„ ุงู„ู…ุคุงู…ุฑุฉ.
ุชุชุถู…ู† ุงู„ุฎูŠุงุฑุงุช ุงู„ุฃุฎุฑู‰ NO_KEYุŒ ูˆKEY_INSIDEุŒ ูˆKEY_ABOVE.

ู…ุฏุนูˆู…ุฉ ุฃุซุฑ ุงู„ุฃู†ูˆุงุน
ูŠุชู… ุฏุนู… ุงู„ู‚ูŠู… ุงู„ู…ุชุชุจุนุฉ ุงู„ุชุงู„ูŠุฉ ุจุงุณุชุฎุฏุงู… ุงู„ู…ุฌุณุงุช ุญุชู‰ ูƒุชุงุจุฉ ู‡ุฐู‡ ุงู„ุณุทูˆุฑ:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ู†ูˆุน TracedValue โ”‚ ู†ูˆุน ุงู„ู…ุณุจุงุฑ โ”‚ ุงู„ู…ู„ู โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚double โ”‚ DoubleProbe โ”‚ ุงุญุตุงุฆูŠุงุช/ู†ู…ูˆุฐุฌ/double-probe.h โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚uint8_t โ”‚ Uinteger8Probe โ”‚ stats/model/uinteger-8-probe.h โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚uint16_t โ”‚ Uinteger16Probe โ”‚ stats/model/uinteger-16-probe.h โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚uint32_t โ”‚ Uinteger32Probe โ”‚ stats/model/uinteger-32-probe.h โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚bool โ”‚ BooleanProbe โ”‚ stats/model/uinteger-16-probe.h โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ns3::ุงู„ูˆู‚ุช โ”‚ TimeProbe โ”‚ stats/model/time-probe.h โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ูŠุชู… ุฏุนู… ุฃู†ูˆุงุน TraceSource ุงู„ุชุงู„ูŠุฉ ุจูˆุงุณุทุฉ Probes ุญุชู‰ ูƒุชุงุจุฉ ู‡ุฐู‡ ุงู„ุณุทูˆุฑ:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ูƒู…ุง ู‡ูˆ ูˆุงุถุญุŒ ูŠุชู… ุฏุนู… ุนุฏุฏ ู‚ู„ูŠู„ ูู‚ุท ู…ู† ู…ุตุงุฏุฑ ุงู„ุชุชุจุนุŒ ูˆูƒู„ู‡ุง ู…ูˆุฌู‡ุฉ ู†ุญูˆู‡ุง
ุฅุฎุฑุงุฌ ุญุฌู… ุงู„ุญุฒู…ุฉ (ุจุงู„ุจุงูŠุช). ูˆู…ุน ุฐู„ูƒุŒ ูุฅู† ู…ุนุธู… ุฃู†ูˆุงุน ุงู„ุจูŠุงู†ุงุช ุงู„ุฃุณุงุณูŠุฉ
ู…ุชุงุญุฉ ุญูŠุซ ูŠู…ูƒู† ุฏุนู… TracedValues โ€‹โ€‹ุจุงุณุชุฎุฏุงู… ู‡ุคู„ุงุก ุงู„ู…ุณุงุนุฏูŠู†.

FileHelper
ุชุนุฏ ูุฆุฉ FileHelper ู…ุฌุฑุฏ ู†ุณุฎุฉ ู…ุฎุชู„ูุฉ ู…ู† ู…ุซุงู„ GnuplotHelper ุงู„ุณุงุจู‚. ุงู„
ูŠูˆูุฑ ุจุฑู†ุงู…ุฌ ุงู„ู…ุซุงู„ ู…ุฎุฑุฌุงุช ู…ู†ุณู‚ุฉ ู„ู†ูุณ ุงู„ุจูŠุงู†ุงุช ุฐุงุช ุงู„ุทุงุจุน ุงู„ุฒู…ู†ูŠุŒ ู…ุซู„ ู…ุง ูŠู„ูŠ:

ุงู„ูˆู‚ุช (ุจุงู„ุซูˆุงู†ูŠ) = 9.312e + 00 ุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ = 596
ุงู„ูˆู‚ุช (ุจุงู„ุซูˆุงู†ูŠ) = 9.312e + 00 ุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ = 564

ูŠุชู… ุชูˆููŠุฑ ู…ู„ููŠู†ุŒ ุฃุญุฏู‡ู…ุง ู„ู„ุนู‚ุฏุฉ "0" ูˆุงู„ุขุฎุฑ ู„ู„ุนู‚ุฏุฉ "1" ูƒู…ุง ูŠู…ูƒู† ุฑุคูŠุชู‡ ููŠ ู…ู„ู
ุฃุณู…ุงุก ุงู„ู…ู„ูุงุช. ุฏุนูˆู†ุง ู†ู„ู‚ูŠ ู†ุธุฑุฉ ุนู„ู‰ ุงู„ูƒูˆุฏ ู‚ุทุนุฉ ู‚ุทุนุฉ:

+ // ุงุณุชุฎุฏู… FileHelper ู„ูƒุชุงุจุฉ ุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ ุจู…ุฑูˆุฑ ุงู„ูˆู‚ุช
+ FileHelper fileHelperุ›
+
+ // ุชูƒูˆูŠู† ุงู„ู…ู„ู ุงู„ู…ุฑุงุฏ ูƒุชุงุจุชู‡ ูˆุชู†ุณูŠู‚ ุจูŠุงู†ุงุช ุงู„ุฅุฎุฑุงุฌ.
+ fileHelper.ConfigureFile ("ุนุฏุฏ ุงู„ุจุงูŠุชุงุช ุงู„ุณุงุจุนุฉ ู„ู„ุญุฒู…ุฉ"ุŒ
+ ู…ุฌู…ุน ุงู„ู…ู„ูุงุช::FORMATTED);

ุจุงุฏุฆุฉ ุงู„ู…ู„ู ุงู„ู…ุณุงุนุฏ ู„ู„ู…ู„ู ู‡ูŠ ุงู„ูˆุณูŠุทุฉ ุงู„ุฃูˆู„ู‰ุŒ ูˆู…ุญุฏุฏ ุงู„ุชู†ุณูŠู‚ ู‡ูˆ ุงู„ุชุงู„ูŠ. ุจุนุถ
ุชุชุถู…ู† ุงู„ุฎูŠุงุฑุงุช ุงู„ุฃุฎุฑู‰ ู„ู„ุชู†ุณูŠู‚ SPACE_SEPARATEDุŒ ูˆCOMMA_SEPARATEDุŒ ูˆTAB_SEPARATED.
ูŠุณุชุทูŠุน ุงู„ู…ุณุชุฎุฏู…ูˆู† ุชุบูŠูŠุฑ ุงู„ุชู†ุณูŠู‚ (ุฅุฐุง ุชู… ุชุญุฏูŠุฏ FORMATTED) ุจุงุณุชุฎุฏุงู… ุณู„ุณู„ุฉ ุชู†ุณูŠู‚
ู…ุซู„ ู…ุง ูŠู„ูŠ:

+
+ // ู‚ู… ุจุชุนูŠูŠู† ุงู„ุชุณู…ูŠุงุช ู„ู…ู„ู ุงู„ุฅุฎุฑุงุฌ ุงู„ู…ู†ุณู‚ ู‡ุฐุง.
+ fileHelper.Set2dFormat ("ุงู„ูˆู‚ุช (ุงู„ุซูˆุงู†ูŠ) = %.3e\tุนุฏุฏ ุจุงูŠุช ุงู„ุญุฒู…ุฉ = %.0f");

ูˆุฃุฎูŠุฑู‹ุงุŒ ูŠุฌุจ ุฑุจุท ู…ุตุฏุฑ ุงู„ุงู‡ุชู…ุงู… ุงู„ุชุชุจุนูŠ. ู…ุฑุฉ ุฃุฎุฑู‰ุŒ ู†ูˆุน ุงู„ุชุญู‚ูŠู‚ ูˆTracePath
ูŠุชู… ุงุณุชุฎุฏุงู… ุงู„ู…ุชุบูŠุฑุงุช ููŠ ู‡ุฐุง ุงู„ู…ุซุงู„ุŒ ูˆู…ุตุฏุฑ ุชุชุจุน ุฅุฎุฑุงุฌ ุงู„ู…ุณุจุงุฑ "OutputBytes" ู‡ูˆ
ู…ุนู„ู‚:

+
+ // ุญุฏุฏ ู†ูˆุน ุงู„ู…ุณุจุงุฑุŒ ูˆุชุชุจุน ู…ุณุงุฑ ุงู„ู…ุตุฏุฑ (ููŠ ู…ุณุงุญุฉ ุงุณู… ุงู„ุชูƒูˆูŠู†)ุŒ ูˆ
+ // ุงู„ุชุญู‚ูŠู‚ ููŠ ู…ุตุฏุฑ ุชุชุจุน ุงู„ุฅุฎุฑุงุฌ ("OutputBytes") ู„ู„ูƒุชุงุจุฉ.
+ fileHelper.WriteProbe (probeTypeุŒ
+ ู…ุณุงุฑ ุงู„ุชุชุจุนุŒ
+ "ูˆุญุฏุงุช ุจุงูŠุช ุงู„ุฅุฎุฑุงุฌ");
+

ุชุชุทุงุจู‚ ุญู‚ูˆู„ ุฃุญุฑู ุงู„ุจุฏู„ ููŠ ู…ุญุฏุฏ ู…ุตุฏุฑ ุงู„ุชุชุจุน ู‡ุฐุง ู…ุน ู…ุตุฏุฑูŠ ุชุชุจุน. ุนู„ู‰ ุนูƒุณ
ู…ุซุงู„ GnuplotHelperุŒ ุญูŠุซ ุชู… ุชุฑุงูƒุจ ุณู„ุณู„ุชูŠู† ู…ู† ุงู„ุจูŠุงู†ุงุช ุนู„ู‰ ู†ูุณ ุงู„ู…ุฎุทุทุŒ ู‡ู†ุงุŒ ุงุซู†ุชุงู†
ุชุชู… ูƒุชุงุจุฉ ู…ู„ูุงุช ู…ู†ูุตู„ุฉ ุนู„ู‰ ุงู„ู‚ุฑุต.

ุงู„ู…ู„ุฎุต
ูŠุนุฏ ุฏุนู… ุฌู…ุน ุงู„ุจูŠุงู†ุงุช ุฌุฏูŠุฏู‹ุง ุงุนุชุจุงุฑู‹ุง ู…ู† ns-3.18ุŒ ูˆุงู„ุฏุนู… ุงู„ุฃุณุงุณูŠ ู„ุชูˆููŠุฑ ุงู„ุณู„ุงุณู„ ุงู„ุฒู…ู†ูŠุฉ
ุชู…ุช ุฅุถุงูุฉ ุงู„ุฅุฎุฑุงุฌ. ูŠู…ูƒู† ุชูƒุฑุงุฑ ุงู„ู†ู…ุท ุงู„ุฃุณุงุณูŠ ุงู„ู…ูˆุถุญ ุฃุนู„ุงู‡ ุฏุงุฎู„
ู†ุทุงู‚ ุฏุนู… ุงู„ุชุญู‚ูŠู‚ุงุช ุงู„ุญุงู„ูŠุฉ ูˆู…ุตุงุฏุฑ ุงู„ุชุชุจุน. ุงู„ู…ุฒูŠุฏ ู…ู† ุงู„ู‚ุฏุฑุงุช ุจู…ุง ููŠ ุฐู„ูƒ
ุณูŠุชู… ุฅุถุงูุฉ ู…ุนุงู„ุฌุฉ ุงู„ุฅุญุตุงุกุงุช ููŠ ุงู„ุฅุตุฏุงุฑุงุช ุงู„ู…ุณุชู‚ุจู„ูŠุฉ.

ุงู„ุฎู„ุงุตุฉ


ุงู„ุนู‚ูˆุฏ ุงู„ุขุฌู„ุฉ
ุชู‡ุฏู ู‡ุฐู‡ ุงู„ูˆุซูŠู‚ุฉ ุฅู„ู‰ ุฃู† ุชูƒูˆู† ูˆุซูŠู‚ุฉ ุญูŠุฉ. ูˆู†ุฃู…ู„ ูˆู†ุชูˆู‚ุน ุฃู† ุชู†ู…ูˆ ู…ุน ู…ุฑูˆุฑ ุงู„ูˆู‚ุช
ู„ุชุบุทูŠุฉ ุงู„ู…ุฒูŠุฏ ูˆุงู„ู…ุฒูŠุฏ ู…ู† ุงู„ุตูˆุงู…ูŠู„ ูˆุงู„ู…ุณุงู…ูŠุฑ NS-3.

ุฅู† ูƒุชุงุจุฉ ุงู„ูุตูˆู„ ุงู„ูŠุฏูˆูŠุฉ ูˆุงู„ุฏุฑูˆุณ ุงู„ุชุนู„ูŠู…ูŠุฉ ู„ูŠุณ ุดูŠุฆู‹ุง ูŠุซูŠุฑ ุญู…ุงุณู†ุง ุฌู…ูŠุนู‹ุงุŒ ูˆู„ูƒู†ู‡ ูƒุฐู„ูƒ
ู…ู‡ู… ุฌุฏุง ู„ู„ู…ุดุฑูˆุน. ุฅุฐุง ูƒู†ุช ุฎุจูŠุฑุง ููŠ ุฃุญุฏ ู‡ุฐู‡ ุงู„ู…ุฌุงู„ุงุชุŒ ู…ู† ูุถู„ูƒ
ุงู„ู†ุธุฑ ููŠ ุงู„ู…ุณุงู‡ู…ุฉ ููŠ NS-3 ูˆุฐู„ูƒ ุจุชู‚ุฏูŠู… ุฃุญุฏ ู‡ุฐู‡ ุงู„ูุตูˆู„ุ› ุฃูˆ ุฃูŠ ูุตู„ ุขุฎุฑ ู„ูƒ
ู‚ุฏ ูŠุนุชู‚ุฏ ุฃู†ู‡ ู…ู† ุงู„ู…ู‡ู….

ุฅุบู„ุงู‚
NS-3 ู‡ูˆ ู†ุธุงู… ูƒุจูŠุฑ ูˆู…ุนู‚ุฏ. ู…ู† ุงู„ู…ุณุชุญูŠู„ ุชุบุทูŠุฉ ูƒู„ ุงู„ุฃุดูŠุงุก ุงู„ุชูŠ ู„ุฏูŠูƒ
ุณูˆู ุชุญุชุงุฌ ุฅู„ู‰ ู…ุนุฑูุชู‡ ููŠ ุจุฑู†ุงู…ุฌ ุชุนู„ูŠู…ูŠ ุตุบูŠุฑ ูˆุงุญุฏ. ูŠุชู… ุชุดุฌูŠุน ุงู„ู‚ุฑุงุก ุงู„ุฐูŠู† ูŠุฑุบุจูˆู† ููŠ ู…ุนุฑูุฉ ุงู„ู…ุฒูŠุฏ ุนู„ู‰ ุฐู„ูƒ
ุงู‚ุฑุฃ ุงู„ูˆุซุงุฆู‚ ุงู„ุฅุถุงููŠุฉ ุงู„ุชุงู„ูŠุฉ:

ยท ุงู„ NS-3 ูƒุชูŠุจ

ยท ุงู„ NS-3 ูˆุซุงุฆู‚ ุงู„ู…ูƒุชุจุฉ ุงู„ู†ู…ูˆุฐุฌูŠุฉ

ยท ุงู„ NS-3 ุฏูˆูƒุณูŠุฌูŠู† (ูˆุซุงุฆู‚ API)

ยท ุงู„ NS-3 ูˆูŠูƒูŠ

-- ุงู„ NS-3 ูุฑูŠู‚ ุงู„ุชุทูˆูŠุฑ.

ุงุณุชุฎุฏู… ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ ns-3 ุนุจุฑ ุงู„ุฅู†ุชุฑู†ุช ุจุงุณุชุฎุฏุงู… ุฎุฏู…ุงุช onworks.net


ุฎูˆุงุฏู… ูˆู…ุญุทุงุช ุนู…ู„ ู…ุฌุงู†ูŠุฉ

ู‚ู… ุจุชู†ุฒูŠู„ ุชุทุจูŠู‚ุงุช Windows ูˆ Linux

  • 1
    USBLoaderGX
    USBLoaderGX
    USBLoaderGX ู‡ูˆ ูˆุงุฌู‡ุฉ ู…ุณุชุฎุฏู… ุฑุณูˆู…ูŠุฉ ู„ู€
    ู…ุญู…ู„ USB ู…ู† Waninkoko ุŒ ุงุณุชู†ุงุฏู‹ุง ุฅู„ู‰
    libwiigui. ูŠุณู…ุญ ุจุฅุฏุฑุงุฌ ูˆ
    ุฅุทู„ุงู‚ ุฃู„ุนุงุจ Wii ูˆุฃู„ุนุงุจ Gamecube ูˆ
    ุงู„ุจูŠุฑุฉ ุนู„ู‰ Wii ูˆ WiiU ...
    ู‚ู… ุจุชู†ุฒูŠู„ USBLoaderGX
  • 2
    ูุงูŠุฑุจูŠุฑุฏ
    ูุงูŠุฑุจูŠุฑุฏ
    ูŠูˆูุฑ Firebird RDBMS ู…ูŠุฒุงุช ANSI SQL
    & ูŠุนู…ู„ ุนู„ู‰ Linux ูˆ Windows ูˆ
    ุงู„ุนุฏูŠุฏ ู…ู† ู…ู†ุตุงุช Unix. ุณู…ุงุช
    ุงู„ุชุฒุงู…ู† ุงู„ู…ู…ุชุงุฒ ูˆุงู„ุฃุฏุงุก
    & ู‚ูˆุฉ...
    ุชู†ุฒูŠู„ Firebird
  • 3
    KompoZer ูˆ
    KompoZer ูˆ
    KompoZer ู‡ูˆ ู…ุญุฑุฑ wysiwyg HTML ูŠุณุชุฎุฏู…
    ู‚ุงุนุฏุฉ ูƒูˆุฏ Mozilla Composer. ู…ุซู„
    ุชู… ุฅูŠู‚ุงู ุชุทูˆูŠุฑ Nvu
    ููŠ ุนุงู… 2005 ุŒ ู‚ุงู… KompoZer ุจุฅุตู„ุงุญ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ุฃุฎุทุงุก ูˆ
    ูŠุถูŠู ูˆ ...
    ุชู†ุฒูŠู„ KompoZer
  • 4
    ุชู†ุฒูŠู„ ู…ุงู†ุบุง ู…ุฌุงู†ูŠ
    ุชู†ุฒูŠู„ ู…ุงู†ุบุง ู…ุฌุงู†ูŠ
    ุจุฑู†ุงู…ุฌ Free Manga Downloader (FMD) ู‡ูˆ ู…ู„ู
    ุชุทุจูŠู‚ ู…ูุชูˆุญ ุงู„ู…ุตุฏุฑ ู…ูƒุชูˆุจ ุจู„ุบุฉ
    Object-Pascal ู„ุฅุฏุงุฑุฉ ูˆ
    ุชุญู…ูŠู„ ุงู„ู…ุงู†ุฌุง ู…ู† ู…ุฎุชู„ู ุงู„ู…ูˆุงู‚ุน.
    ู‡ุฐุง ู‡ูˆ ุงู„ู…ุฑุขุฉ ...
    ุชู†ุฒูŠู„ Free Manga Downloader
  • 5
    UNetbootin
    UNetbootin
    ูŠุชูŠุญ ู„ูƒ UNetbootin ุฅู†ุดุงุก ู…ู„ูุงุช
    ู…ุญุฑูƒุงุช ุฃู‚ุฑุงุต USB ุงู„ู…ุจุงุดุฑุฉ ู„ู€ Ubuntu ูˆ Fedora ูˆ
    ุชูˆุฒูŠุนุงุช Linux ุงู„ุฃุฎุฑู‰ ุจุฏูˆู† ู…ู„ูุงุช
    ุญุฑู‚ ู‚ุฑุต ู…ุถุบูˆุท. ูŠุนู…ู„ ุนู„ู‰ ุฃู†ุธู…ุฉ ุชุดุบูŠู„ Windows ูˆ Linux ูˆ
    ูˆ ...
    ุชู†ุฒูŠู„ UNetbootin
  • 6
    ุฏูˆู„ูŠุจุงุฑ ุชุฎุทูŠุท ู…ูˆุงุฑุฏ ุงู„ู…ุคุณุณุงุช - ุฅุฏุงุฑุฉ ุนู„ุงู‚ุงุช ุงู„ุนู…ู„ุงุก
    ุฏูˆู„ูŠุจุงุฑ ุชุฎุทูŠุท ู…ูˆุงุฑุฏ ุงู„ู…ุคุณุณุงุช - ุฅุฏุงุฑุฉ ุนู„ุงู‚ุงุช ุงู„ุนู…ู„ุงุก
    Dolibarr ERP - CRM ู‡ูˆ ูˆุณูŠู„ุฉ ุณู‡ู„ุฉ ู„ู„ุงุณุชุฎุฏุงู…
    ุญุฒู…ุฉ ุงู„ุจุฑุงู…ุฌ ู…ูุชูˆุญุฉ ุงู„ู…ุตุฏุฑ ERP ูˆ CRM
    (ุชุดุบูŠู„ ู…ุน ุฎุงุฏู… ูˆูŠุจ php ุฃูˆ ูƒู…ู„ู
    ุจุฑู†ุงู…ุฌ ู…ุณุชู‚ู„) ู„ู„ุดุฑูƒุงุช ุŒ
    ุฃุณุณ ...
    ุชู†ุฒูŠู„ Dolibarr ERP - CRM
  • ุชุญู…ูŠู„ ุจุฑู†ุงู…ุฌ Windows Presentation Foundation Linux app" href="/ar/software/linux/app-windows-presentation-foundation">ุชู†ุฒูŠู„ ุจุฑู†ุงู…ุฌ Windows Presentation Foundation "/software/linux/app-transmission-remote-gui">ุชู†ุฒูŠู„ ุจุฑู†ุงู…ุฌ Transmission Remote GUI ู„ู†ุธุงู…ูŠ ุงู„ุชุดุบูŠู„ Windows ูˆMacOS ูˆWindows. ุงู„ุฃุฏุงุฉ ุงู„ุฑุฆูŠุณูŠุฉ...
    ุชุญู…ูŠู„ ุจุงุช (ุงู„ุจุซ ุจุงุณุชุฎุฏุงู… ู‡ุฐู‡ ุงู„ุฃุฏุงุฉ)
  • ุฃูƒุซุฑ "

ุฃูˆุงู…ุฑ ู„ูŠู†ูƒุณ

Ad