Π’Π°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΠΎΡΠΊΡΠΈΠ²Π° ΡΠ΅ΡΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΏΡΠ΅Π²ΠΎΠ΄ Π½Π° ΡΡΠ΅Π±Π½ΠΈΠΊΠ° "" ΠΏΠΎ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΈ ns-3.

Π’ΠΎΠ·ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π΅ ΠΏΡΠ΅Π²ΠΎΠ΄ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½ Π² Π·Π° ΠΈ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ doc/tutorial Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° ns-3.
1 ΠΡΠ΅Π΄Π³ΠΎΠ²ΠΎΡ
1.1 ΠΠ° ns-3
1.2 ΠΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° ns-2
1.3 Π£ΡΠ°ΡΡΠΈΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°
1.4 ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ
2 ΠΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
2.1 ΠΡΠ΅ΠΆΠ°
2.2 Git
2.3 WAF
2.4 Π‘ΡΠ΅Π΄Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
2.5 ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠΊΠ΅ΡΠΈ
ΠΡΡΠ²ΠΈΡΠ½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ns-3 Π΅ Π½Π°Π»ΠΈΡΠ½Π° Π² ΠΏΠ΅Ρ ΡΠΎΡΠΌΠ°ΡΠ°:
- ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° API Π½Π° ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ°: ns-3 .
- Π£ΡΠ΅Π±Π½ΠΈΠΊ, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΈ .
- ns-3.
ΠΠ»Π°Π²Π° 1
ΠΡΠ΅Π΄Π³ΠΎΠ²ΠΎΡ
Π‘ΠΈΠΌΡΠ»Π°ΡΠΎΡΡΡ ns-3 Π΅ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡ Π½Π° ΠΌΡΠ΅ΠΆΠΈ Ρ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΈ ΡΡΠ±ΠΈΡΠΈΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π·Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΈ ΡΠ΅Π»ΠΈ. ΠΡΠΎΠ΅ΠΊΡΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Ρ ns-3, Π·Π°ΠΏΠΎΡΠ½Π° ΠΏΡΠ΅Π· 2006 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ Π΅ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄.
Π¦Π΅Π»ΡΠ° Π½Π° ΡΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΅ Π΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ ns-3 Π½Π° Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΏΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅Π½ ΠΈ ΡΡΡΡΠΊΡΡΡΠ΅Π½ Π½Π°ΡΠΈΠ½. ΠΠΎΠ½ΡΠΊΠΎΠ³Π° Π΅ ΡΡΡΠ΄Π½ΠΎ Π½Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Π΄Π° Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Ρ Π² ΡΠ°Π±ΠΎΡΠ½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅. Π ΡΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ°Π½Π΅, ΠΎΠ±ΡΡΠ½ΡΠ²Π°ΠΉΠΊΠΈ ΠΊΠ»ΡΡΠΎΠ²ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠΎ ΠΏΡΡΡ.
Π Ρ ΠΎΠ΄Π° Π½Π° ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΡΠ»Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π·Π° ns-3 ΠΈ ΡΠ΅ Π΄Π°Π΄Π΅ΠΌ Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ ΠΎΡ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
Π Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠ»ΡΡΠΎΠ²ΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°:
- ns-3 ΠΈΠΌΠ° ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΡΡΠ΅ΠΌΠΈ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡΠΊΡΠΈΡΠ° ΡΡΠ΅Π΄Π°, Π² ΠΊΠΎΡΡΠΎ ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²Π½Π΅ΡΠ°Ρ ΡΠ²ΠΎΡ ΠΏΡΠΈΠ½ΠΎΡ ΠΈ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΡ ΡΠ²ΠΎΠΈΡΠ΅ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
- ns-3 Π½Π΅ Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ns-2, ΡΠΎΠ²Π° Π΅ Π½ΠΎΠ² ΡΠΈΠΌΡΠ»Π°ΡΠΎΡ. Π Π΄Π²Π°ΡΠ° ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ° ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° C++, Π½ΠΎ ns-3 Π΅ Π½ΠΎΠ² ΡΠΈΠΌΡΠ»Π°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈΡΠ΅ Π½Π° ns-2.
1.1 ΠΠ° 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 ΠΈΠ»ΠΈ macOS, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ BSD, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Windows, ΡΠΏΠΎΡΠΎΠ±Π½ΠΈ Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Ρ ΠΊΠΎΠ΄ Π·Π° Linux, ΠΊΠ°ΡΠΎ Windows Subsystem for Linux ΠΈΠ»ΠΈ Cygwin. Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ° Π·Π° Windows Visual Studio Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°, Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Windows ΡΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Ρ Linux.
- ns-3 Π½Π΅ Π΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ ΡΠΎΡΡΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΎΡ Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ. ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ°ΡΠ° Π·Π° ns-3 ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΠΎΡΠ΄Π°Π΄Π΅Π½ΠΎΡΡ Π½Π° ΡΠΎΡΡΠΌΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ns-3 (ns-3-users@googlegroups.com).
1.2 ΠΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° ns-2
ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π·Π°ΠΏΠΎΠ·Π½Π°ΡΠΈ Ρ ns-2 (ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π°Π» Π½Π° ns-3), Π½Π°ΠΉ-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠ°ΡΠ° Π²ΡΠ½ΡΠ½Π° ΠΏΡΠΎΠΌΡΠ½Π° ΠΏΡΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΊΡΠΌ ns-3 Π΅ ΡΠΌΡΠ½Π°ΡΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ Π² ns-2 ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π² OTcl, Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΠΈΠΌΡΠ»Π°ΡΠΈΡΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π· Π°Π½ΠΈΠΌΠ°ΡΠΎΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΈ nam. Π ns-2 Π½Π΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΡΠΈΠΌΡΠ»Π°ΡΠΈΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ ΠΎΡ C++ (Ρ.Π΅. ΠΊΠ°ΡΠΎ main() ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΡΠ² OTcl). ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π½ΡΠΊΠΎΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° ns-2 ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° C++, Π° Π΄ΡΡΠ³ΠΈ Π½Π° OTcl. Π ns-3 ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΡΡ Π΅ ΠΈΠ·ΡΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C++ Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π½ΠΈ Python Π²ΡΡΠ·ΠΊΠΈ. ΠΠ°ΡΠΎΠ²Π°, ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΈΠΌΡΠ»Π°ΡΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΠΊΡΠΎ Π½Π° 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 ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ Π»Π΅ΠΊΠΎ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΄Π΅ΡΠ΅Ρ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π½Π΅ Π΅ Π²ΠΈΠ΄ΡΠ» ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΡΠΈ Π΄ΡΡΠ²ΠΎ Ρ ΠΊΠΎΠ΄.
- ns-3 ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π² ns-2, ΠΊΠ°ΡΠΎ ΡΡΠ΅Π΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π² ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠ° ΡΠ΅Π°Π»Π΅Π½ ΠΊΠΎΠ΄ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°).
- ns-3 ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎ-Π½ΠΈΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ns-2, ΠΊΠΎΠ΅ΡΠΎ ΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΎΡΡΠ°Π·ΡΠ²Π° ΠΊΠ°ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°Ρ ΡΠ΅Π°Π»Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΡΠΊΠΎΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΎΡΠΊΡΠΈΡΠΈ Π² ns-2 (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠ΅ΠΊΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΏΠΎΠ²Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π½Π° Π²ΡΠ·Π΅Π») Π±ΡΡ Π° ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ Π² ns-3.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΡΠ»Π³Π°ΡΠ° ΡΠΈ ΠΈΡΡΠΎΡΠΈΡ, ns-2 ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ns-3. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ns-3 ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° LTE ΠΈ WiFi); Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π΅Π½ ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΎΡΡ. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Π½Π΅Π½Π°Π΄Π°Π½ΠΈ Π΄Π° Π½Π°ΡΡΠ°Ρ, ΡΠ΅ ΡΠ΅Π»ΠΈΡΡ ΠΌΡΠ΅ΠΆΠΎΠ² ΡΡΠ΅ΠΊ Π½Π° Linux ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½ Π² Π²ΡΠ·Π΅Π» ns-3, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠ°ΠΌΠΊΠ°ΡΠ° Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ (DCE). ΠΠΎΠ΄Π΅Π»ΠΈ ΠΎΡ ns-2 ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½ΠΈ Π² ns-3, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π°ΠΊΠΎ ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π° C++.
ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΡΠΌΠ½Π΅Π½ΠΈΡ, Π΄ΠΎΠ±ΡΠ° ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠ° Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΠΈ Π΄Π²Π΅ΡΠ΅ ΡΠΈΠΌΡΠ»Π°ΡΠΈΠΈ (ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡΠΈ), ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ΅, Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π° Π²Π°ΡΠ΅ΡΠΎ ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅, Π½ΠΎ ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ Π²Π°ΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΡ, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° (ns-3).
1.3 Π£ΡΠ°ΡΡΠΈΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°
ns-3 Π΅ Π½Π°ΡΡΠ½ΠΎ-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Π΅Π½ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡ Π·Π° ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΊΠ°ΡΠ° ΠΎΠ±ΡΠ½ΠΎΡΡ. Π’ΠΎΠΉ ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ° Π½Π° ΡΠ΅ΠΊΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ½ΠΎΡΠΈ ΠΎΡ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ. ΠΠΌΠ° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π½Π°Π΄ΡΠ²Π°ΠΌΠ΅ Π΄Π° Π½Π°ΡΡΡΡΠΈ Ρ ΠΎΡΠ°ΡΠ° Π΄Π° Π΄ΠΎΠΏΡΠΈΠ½Π°ΡΡΡ Π·Π° ns-3, ΠΊΠ°ΠΊΡΠΎ ΠΏΡΠ°Π²ΡΡ Π·Π° ns-2:
- ΠΠΈΡΠ΅Π½Π·ΠΈΡΠ°Π½Π΅ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ Π»ΠΈΡΠ΅Π½Π·Π° GNU GPLv2.
- wiki.
- Π‘ΡΡΠ°Π½ΠΈΡΠ° , ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Π·Π° ns-2.
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° GitLab.com, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ:
Π Π°Π·Π±ΠΈΡΠ°ΠΌΠ΅, ΡΠ΅ Π΄ΠΎΡΠΈ ΠΈ Π΄Π° ΡΠ΅ΡΠ΅ΡΠ΅ ΡΠΎΠ·ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π½Π° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Π΄Π° Π½ΡΠΌΠ°ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π° Π΄ΠΎΠΏΡΠΈΠ½Π΅ΡΠ΅ΡΠ΅ Π·Π° Π½Π΅Π³ΠΎ. ΠΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π·Π½Π°Π΅ΡΠ΅, ΡΠ΅ Π΄ΠΎΠΏΡΠΈΠ½Π°ΡΡΠ½Π΅ΡΠΎ Π΅ Π² Π΄ΡΡ Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π²Π°ΡΠΈΡΠ΅ ΠΎΡΠ·ΠΈΠ²ΠΈ, Π΄ΠΎΡΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΠ°Π½Π½ΠΈΡ Π²ΠΈ ΠΎΠΏΠΈΡ Ρ ns-3 (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 'ΡΠΎΠ·ΠΈ ΡΠ°Π·Π΄Π΅Π» Π½Π° ΡΡΠ΅Π±Π½ΠΈΠΊΠ° Π½Π΅ Π±Π΅ΡΠ΅ ΡΡΠ΅Π½...'), ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΎΡΡΠ°ΡΡΠ»Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ Π² ΠΊΠΎΠ΄Π° Π±ΠΈΡ Π° Π±ΠΈΠ»ΠΈ ΡΠ΅Π½Π½ΠΈ Π·Π° Π½Π°Ρ. ΠΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈΡΡ Π½Π°ΡΠΈΠ½ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π΅ ΠΈΠ»ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ (ΡΠΎΡΠΊ) Π½Π° Ρ Π²Π°ΡΠΈΡΠ΅ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΈΡΠΊΠ°Π½Π΅ Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅, ΠΈΠ»ΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΈΡΠΊΠ°Π½Π΅ Π² Π½Π°ΡΠΈΡ ΡΡΠ΅ΠΊΠ΅Ρ ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΏΠ°Ρ.
1.4 ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ
Π’ΠΎΠ·ΠΈ Π½Π°ΡΡΡΠ½ΠΈΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°, ΡΠ΅ Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ»Π΅Π΄Π²Π°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΡΠ² ΠΏΡΡ:
- ΠΠ° ΠΏΡΠΎΠ±Π²Π°Ρ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΡ ΠΈ ΡΡΠ±Π΅ΡΠ°Ρ ΠΊΠΎΠΏΠΈΠ΅;
- ΠΠ° ΠΏΡΠΎΠ±Π²Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ;
- ΠΠΈΠΆΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΡΠΈΠΌΡΠ»Π°ΡΠΈΡΡΠ° ΠΈ ΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΠ΅.
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°, Π½ΠΈΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ°Ρ ΠΌΠ΅ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΠΎΠ±ΡΠ°Π·Π½ΠΎ Ρ ΡΠ΅Π·ΠΈ ΡΡΡΠΏΠΊΠΈ.
ΠΠ»Π°Π²Π° 2
ΠΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
2.1 ΠΡΠ΅ΠΆΠ°
ΠΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π°ΠΆΠ½ΠΈ ΡΠ΅ΡΡΡΡΠ°, Π·Π° ΠΊΠΎΠΈΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° ns-3 ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅. ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΡΠ΅Π±ΡΠ°ΠΉΡ Π΅ Π½Π° Π°Π΄ΡΠ΅Ρ:
ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ns-3. ΠΠΎΠ΄ΡΠΎΠ±Π½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΡΠ΅Π· ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠ΅Π±ΡΠ°ΠΉΡ Π½Π° Π°Π΄ΡΠ΅Ρ: .
ΠΠ° ΡΡΡΠ°ΡΠ° ΡΠ΅Π±ΡΡΡΠ°Π½ΠΈΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠ°ΡΠ°Π΅ΡΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΠΌΠ° ΡΠΈΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ Π΄ΠΎΠΏΡΠ»Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠ΅Π±ΡΠ°ΠΉΡ Π½Π° ns-3, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Ρ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π° Π°Π΄ΡΠ΅Ρ: .
Π’Π°ΠΌ ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° ΡΠ΅ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π½ΠΈ Π²ΡΠΏΡΠΎΡΠΈ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π²ΡΠ½ΡΠ΅Π½ ΠΊΠΎΠ΄, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ ΠΈ Ρ.Π½.
ΠΠ·Ρ
ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ ΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄Π°Π½ Π½Π° GitLab.com:
.
Π‘ΡΡΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ Ρ ΠΈΠΌΠ΅ ns-3-dev ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° ΡΠ΅ΠΊΡΡΠΎΡΠΎ Π΄ΡΡΠ²ΠΎ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°. ΠΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΈ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ ΡΠ΄ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΡΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ ΠΏΠΎΠ΄ Mercurial Π½Π° ΡΡΠ°ΡΠΈΡ ΡΠ°ΠΉΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° Π°Π΄ΡΠ΅Ρ:
.
2.2 Git
Π‘Π»ΠΎΠΆΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ ΠΎΡ Π½Π°ΡΠΈΠ½ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΡΠΎΠ²Π°, ΠΈ ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΡΡΠ΅ ΡΡΠ²Π°Π»ΠΈ Π·Π° Π½ΡΠΊΠΎΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΡΠΎΠ²Π°. ΠΠΎ Π½Π΅ΠΎΡΠ΄Π°Π²Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΡΡ ns-3 ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Mercurial ΠΊΠ°ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄, Π½ΠΎ ΠΏΡΠ΅Π· Π΄Π΅ΠΊΠ΅ΠΌΠ²ΡΠΈ 2018 Π³. ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Git. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° Git, Π·Π° Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ Π½Π΅Π³ΠΎ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄. GitLab.com ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΡΡΠ²ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠΌΠ΅Π½ΠΈΡ Π½Π° Π°Π΄ΡΠ΅Ρ: .
2.3 WAF
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ° ΡΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π³ΠΎΡΠΎΠ²Π° Π·Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΡΠ΅. ΠΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄, Π·Π° ΡΠΎΠ²Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΡΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ Π½Π°ΠΉ-ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈΡΡ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π΅ make. ΠΠ°ΡΠ΅Π΄ Ρ ΡΠΎΠ²Π°, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΅ Π½Π°ΠΉ-ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈΡΡ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π΅, ΡΠ΅ ΡΠΎΠΉ Π΅ ΠΈ Π½Π°ΠΉ-ΡΠ»ΠΎΠΆΠ½ΠΈΡΡ ΠΏΡΠΈ ΡΠΏΠΎΡΡΠ΅Π±Π° Π² ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈ Π³ΡΠ²ΠΊΠ°Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. Π’ΠΎΠ²Π° Π΅ ΠΏΡΠΈΡΠΈΠ½Π°ΡΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΈ. ΠΠ°ΡΠΊΠΎΡΠΎ Π±ΡΡ Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΅Π·ΠΈΠΊΠ° Python.
Π ΠΏΡΠΎΠ΅ΠΊΡΠ° ns-3 ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Waf. Π’Ρ Π΅ ΠΎΡ Π½ΠΎΠ²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Python. ΠΠ° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ns-3, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅ Python.
ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°Ρ ΠΎΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Waf, ΠΈΠΌΠ° ΠΊΠ½ΠΈΠ³Π°, Π΄ΠΎΡΡΡΠΏΠ½Π° Π½Π° Π°Π΄ΡΠ΅Ρ:
ΠΈ ΡΠ΅ΠΊΡΡΠΈΡ ΠΊΠΎΠ΄:
.
2.4 Π‘ΡΠ΅Π΄Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
ΠΠ°ΠΊΡΠΎ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΌΠ΅ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π² ns-3 ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π½Π° C++ ΠΈΠ»ΠΈ Python. ΠΠΎ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΡΠ°ΡΡ ΠΎΡ API Π½Π° ns-3 Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π½Π° Python, Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ΅ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° C++. Π’ΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°, ΡΠ΅ ΡΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°ΡΠΈ Ρ ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΎΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° C++. Π Ρ ΠΎΠ΄Π° Π½Π° ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΠΈΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π½Π°ΠΉ-Π½Π°ΠΏΡΠ΅Π΄Π½Π°Π»ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΏΠΎΠ·Π½Π°ΡΠΈ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ°, ΠΊΠ°ΡΠΎ ΠΈΠ΄ΠΈΠΎΠΌΠΈ ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅. ΠΠ΅ ΠΈΡΠΊΠ°ΠΌΠ΅ ΡΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠ½Π΅ Π² ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ C++, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π²Π»Π°Π΄Π΅Π΅Π½Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° C++, Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈΠ»ΠΈ Π² ΠΏΠ΅ΡΠ°Ρ.
ΠΠΊΠΎ ΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π² C++, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅, ΡΡΠ²ΠΎΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅ Π½Π° Π΅Π·ΠΈΠΊΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΈΠ»ΠΈ ΡΠ΅Π±ΡΠ°ΠΉΡ, ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ»ΠΈ Π³ΠΎΡΠΎΠ²ΠΈ ΡΠ΅ΡΠ΅ΠΏΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΡΠ²: .
ΠΠΎΠ΄ Linux ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ns-3 ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° GNU. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ Π΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, Π½Π°Π»ΠΈΡΠ½ΠΈ Π² ΡΠ°Π·ΠΈ ΡΠΎΡΡΡΠ΅ΡΠ½Π° ΡΡΠ΅Π΄Π°. ΠΠ° Π±ΡΡΠ· ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ GNU Π²ΠΈΠΆΡΠ΅. .
Π‘ΠΈΠΌΡΠ»Π°ΡΠΎΡΡΡ ns-3 ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° gcc, GNU binutils ΠΈ gdb. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½ΠΈΡΠΎ make, Π½ΠΈΡΠΎ autotools ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° GNU. ΠΠ° ΡΠ΅Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Waf.
Π macOS ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Xcode. ΠΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ns-3 Π½Π° Mac ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π³ΠΎΡΠ΅ΡΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ Xcode ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄ ΠΎΡ Apple App Store, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ°, Π·Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π΄Π° ΠΏΠΎΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° ns-3 Π² wiki: ().
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, Π°Π²ΡΠΎΡΡΡ Π½Π° ns-3 ΡΠ°Π±ΠΎΡΠΈ Π² Linux ΠΈΠ»ΠΈ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΡΡΠ΅Π΄Π°. ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ ΠΏΠΎΠ΄ Windows, ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΡΡΠ΅Π΄ΠΈ, ΠΊΠΎΠΈΡΠΎ Π² ΡΠ°Π·Π»ΠΈΡΠ½Π° ΡΡΠ΅ΠΏΠ΅Π½ ΠΈΠΌΠΈΡΠΈΡΠ°Ρ ΡΡΠ΅Π΄Π° Linux. ΠΠ° ΡΠ°ΠΊΠΈΠ²Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡΡ ns-3 Π² ΠΌΠΈΠ½Π°Π»ΠΎΡΠΎ (Π½ΠΎ Π½Π΅ ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°) ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π² ΡΡΠ΅Π΄Π° Cygwin. ΠΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ΡΠΎ ΠΈ Cygwin ΠΈ ns-3, ΠΏΠΎΡΠ΅ΡΠ΅ΡΠ΅ wiki ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π½Π° ns-3:
.
MinGW Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°. ΠΡΡΠ³Π°ΡΠ° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° Cygwin Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΡΡΠ΅Π΄Π°, ΠΊΠ°ΡΠΎ VMware server, ΠΊΡΠ΄Π΅ΡΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Linux.
2.5 ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠΊΠ΅ΡΠΈ
Π ΠΏΡΠΈΠΌΠ΅ΡΠΈΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΡΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π° ΡΠΎΠΊΠ΅ΡΠΈΡΠ΅ Π½Π° ΠΠ΅ΡΠΊΠ»ΠΈ (Berkeley Sockets). ΠΠΊΠΎ ΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΡΡ ΡΠΎΠΊΠ΅ΡΠΈ, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ API ΠΈ Π½ΡΠΊΠΎΠΈ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈ ΡΠ»ΡΡΠ°ΠΈ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π°. ΠΠ° Π΄ΠΎΠ±ΡΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠΊΠ΅ΡΠΈ TCP/IP ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅: "TCP/IP Sockets in C", Donahoo ΠΈ Calvert.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΡΠ²ΡΡΠ·Π°Π½ ΡΠ΅Π±ΡΠ°ΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠΈΡΠ΅ Π² ΠΊΠ½ΠΈΠ³Π°ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π° Π°Π΄ΡΠ΅Ρ:
.
ΠΠΊΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΠΏΡΡΠ²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΡΠΈ Π³Π»Π°Π²ΠΈ Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ° (ΠΈΠ»ΠΈ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½ΡΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ°, eΡ
ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΈ ΡΡΡΠ²ΡΡΠΈΡΠ΅, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ Π½Π° ΡΠ΅Π±ΡΠ°ΠΉΡΠ° ΠΏΠΎ Π³ΠΎΡΠ΅ ΠΏΠΎΡΠΎΡΠ΅Π½Π°ΡΠ° Π²ΡΡΠ·ΠΊΠ°), ΡΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΡΡΠ΅Π±Π½ΠΈΠΊΠ°. ΠΠΌΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΠΊΠ½ΠΈΠ³Π°
"Multicast Sockets, Multicast Sockets", Makofske ΠΈ Almeroth.
Π’Ρ ΠΎΠ±Ρ Π²Π°ΡΠ° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ, Π°ΠΊΠΎ ΠΈΠ·ΡΡΠ°Π²Π°ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΠ°Π΄ΡΠ΅ΡΠ½Π° ΡΠ°Π·ΠΏΡΠ°ΡΠΊΠ° Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ°.
ΠΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅:
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
