Π’ΠΎΠ΄ΠΈΡ‡ Π·Π° симулатор ΠΌΡ€Π΅ΠΆΠ΅ нс-3. ΠŸΠΎΠ³Π»Π°Π²Ρ™Π΅ 5

Π’ΠΎΠ΄ΠΈΡ‡ Π·Π° симулатор ΠΌΡ€Π΅ΠΆΠ΅ нс-3. ΠŸΠΎΠ³Π»Π°Π²Ρ™Π΅ 5
ΠΏΠΎΠ³Π»Π°Π²Ρ™Π΅ 1,2
ΠΏΠΎΠ³Π»Π°Π²Ρ™Π΅ 3
ΠΏΠΎΠ³Π»Π°Π²Ρ™Π΅ 4

5 ПодСшавањС
5.1 ΠšΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π° Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅
5.1.1 ΠŸΡ€Π΅Π³Π»Π΅Π΄ Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π΅
5.1.2 ΠžΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚Π΅ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅
5.1.3 Π”ΠΎΠ΄Π°Π²Π°ΡšΠ΅ Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π΅ вашСм ΠΊΠΎΠ΄Ρƒ
5.2 ΠšΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС
5.2.1 ΠŸΠΎΠ½ΠΈΡˆΡ‚Π°Π²Π°ΡšΠ΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΈΡ… врСдности Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°
5.2.2 БнимањС сопствСних ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
5.3 ΠšΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ систСма ΠΏΡ€Π°Ρ›Π΅ΡšΠ°
5.3.1 АБЦИИ ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅
ΠŸΠ°Ρ€ΡΠΈΠ½Π³ АБЦИИ Ρ‚Ρ€Π°Π³ΠΎΠ²Π°
5.3.2 ПЦАП Π’Ρ€Π°Ρ†Π΅

ΠŸΠΎΠ³Π»Π°Π²Ρ™Π΅ КБНУМКБ

подСшавањС

5.1 ΠšΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π° Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅

Π’Π΅Ρ› смо Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π°Π»ΠΈ ΠΌΠΎΠ΄ΡƒΠ» Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ нс-3 Π³Π»Π΅Π΄Π°Ρ˜ΡƒΡ›ΠΈ скрипту ΠΏΡ€Π²ΠΎ.Ρ†Ρ†. Π£ ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ³Π»Π°Π²Ρ™Ρƒ Ρ›Π΅ΠΌΠΎ Π΄Π΅Ρ‚Π°Ρ™Π½ΠΈΡ˜Π΅ ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ›Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π΅ подсистСма Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅.

5.1.1 ΠŸΡ€Π΅Π³Π»Π΅Π΄ Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π΅

Многи Π²Π΅Π»ΠΈΠΊΠΈ систСми ΠΏΠΎΠ΄Ρ€ΠΆΠ°Π²Π°Ρ˜Ρƒ Π½Π΅ΠΊΡƒ врсту могућности Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° ΠΏΠΎΡ€ΡƒΠΊΠ°, Π° нс-3 нијС ΠΈΠ·ΡƒΠ·Π΅Ρ‚Π°ΠΊ. Π£ Π½Π΅ΠΊΠΈΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²ΠΈΠΌΠ°, само ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΠΎ Π³Ρ€Π΅ΡˆΡ†ΠΈ сС ΠΏΠΈΡˆΡƒ Ρƒ β€žΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΡΠΊΡƒ ΠΊΠΎΠ½Π·ΠΎΠ»Ρƒβ€œ (која јС ΠΎΠ±ΠΈΡ‡Π½ΠΎ стдСрр Π½Π° систСмима заснованим Π½Π° Π£Π½ΠΈΠΊ-Ρƒ). На Π΄Ρ€ΡƒΠ³ΠΈΠΌ систСмима, ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΡƒΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠ° ΠΌΠΎΠ³Ρƒ Π±ΠΈΡ‚ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½Π΅ ΠΊΠ°ΠΎ ΠΈ Π΄Π΅Ρ‚Π°Ρ™Π½ΠΈΡ˜Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅. Π£ Π½Π΅ΠΊΠΈΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²ΠΈΠΌΠ°, Π°Π»Π°Ρ‚ΠΈ Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ сС користС Π·Π° ΠΈΠ·Π»Π°Π· ΠΏΠΎΡ€ΡƒΠΊΠ° Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° којС ΠΌΠΎΠ³Ρƒ Π±Ρ€Π·ΠΎ Π΄Π° Π·Π°ΠΌΡƒΡ‚Π΅ ΠΈΠ·Π»Π°Π·.

Π‘ΡƒΠ±Π₯Π Π” који сС користи Ρƒ нс-3 прСтпоставља Π΄Π° су сви ΠΎΠ²ΠΈ Π½ΠΈΠ²ΠΎΠΈ ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° корисни, Π° ΠΌΠΈ ΠΏΡ€ΡƒΠΆΠ°ΠΌΠΎ сСлСктиван, ΡΠ»ΠΎΡ˜Π΅Π²ΠΈΡ‚ приступ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΡƒ ΠΏΠΎΡ€ΡƒΠΊΠ°. Π•Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ сС ΠΌΠΎΠΆΠ΅ ΠΏΠΎΡ‚ΠΏΡƒΠ½ΠΎ ΠΎΠ½Π΅ΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ, ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ Π½Π° основу свакС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΈΠ»ΠΈ Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ. Π£ Ρ‚Ρƒ сврху сС користС подСсиви Π½ΠΈΠ²ΠΎΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎΠ³ ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜Π°. нс-3 ΠΌΠΎΠ΄ΡƒΠ» Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ ΠΏΡ€ΡƒΠΆΠ° Ρ€Π΅Π»Π°Ρ‚ΠΈΠ²Π½ΠΎ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π°Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° добијањС корисних ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΈΠ· вашС ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅.

Π’Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Ρ€Π°Π·ΡƒΠΌΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΡƒΠΆΠ°ΠΌΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ ΠΎΠΏΡˆΡ‚Π΅ Π½Π°ΠΌΠ΅Π½Π΅ – ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅ – Π·Π° издвајањС ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈΠ· Π²Π°ΡˆΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π°, ΡˆΡ‚ΠΎ Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° Π±ΡƒΠ΄Π΅ ΠΏΡ€Π΅Ρ„Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΈΠ·Π»Π°Π· Π·Π° ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅ (Π·Π° вишС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΎ нашСм систСму ΠΏΡ€Π°Ρ›Π΅ΡšΠ°, ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ˜Ρ‚Π΅ ΠΎΠ΄Π΅Ρ™Π°ΠΊ 5.3 Π²ΠΎΠ΄ΠΈΡ‡Π°). Π•Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° Π±ΡƒΠ΄Π΅ ΠΏΡ€Π΅Ρ„Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° добијањС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΎ ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΡƒ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°, ΡƒΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠ°, ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΎ Π³Ρ€Π΅ΡˆΠΊΠ°ΠΌΠ° ΠΈΠ»ΠΈ Π·Π° Π±Ρ€Π·ΠΎ слањС ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΈΠ· Π²Π°ΡˆΠΈΡ… скрипти ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»Π° Ρƒ Π±ΠΈΠ»ΠΎ ΠΊΠΎΠΌ Ρ‚Ρ€Π΅Π½ΡƒΡ‚ΠΊΡƒ.

Π’Ρ€Π΅Π½ΡƒΡ‚Π½ΠΎ, систСм Π΄Π΅Ρ„ΠΈΠ½ΠΈΡˆΠ΅ сСдам Π½ΠΈΠ²ΠΎΠ° (Ρ‚ΠΈΠΏΠΎΠ²Π°) Π΄Π½Π΅Π²Π½ΠΈΠΊ ΠΏΠΎΡ€ΡƒΠΊΠ° Ρƒ растућСм рСдослСду ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π°.

  • Π›ΠžΠ“_Π•Π Π ΠžΠ  - Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΎ Π³Ρ€Π΅ΡˆΡ†ΠΈ (ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΈ ΠΌΠ°ΠΊΡ€ΠΎ: НБ_Π›ΠžΠ“_Π•Π Π ΠžΠ );
  • Π›ΠžΠ“_ВАРН - Π—Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΡƒΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠ° (ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΈ ΠΌΠ°ΠΊΡ€ΠΎ: НБ_Π›ΠžΠ“_ВАРН);
  • Π›ΠžΠ“_Π”Π•Π‘Π£Π“ - Π•Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°Ρ˜ Ρ€Π΅Π»Π°Ρ‚ΠΈΠ²Π½ΠΎ Ρ€Π΅Ρ‚ΠΊΠ΅ посСбнС ΠΏΠΎΡ€ΡƒΠΊΠ΅ Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° (ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΈ ΠΌΠ°ΠΊΡ€ΠΎ: НБ_Π›ΠžΠ“_Π”Π•Π‘Π£Π“);
  • Π›ΠžΠ“_ИНЀО - Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΈΡ… ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΎ Π½Π°ΠΏΡ€Π΅Ρ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° (ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΈ ΠΌΠ°ΠΊΡ€ΠΎ: НБ_Π›ΠžΠ“_ИНЀО);
  • Π›ΠžΠ“_ЀУНЦВИОН - Π•Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π° ΠΏΠΎΡ€ΡƒΠΊΠ΅ којС ΠΎΠΏΠΈΡΡƒΡ˜Ρƒ сваку ΠΏΠΎΠ·Π²Π°Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Ρƒ (Π΄Π²Π° ΠΏΠΎΠ²Π΅Π·Π°Π½Π° ΠΌΠ°ΠΊΡ€ΠΎΠ°: НБ_Π›ΠžΠ“_ЀУНЦВИОН, који сС користи Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ Ρ‡Π»Π°Π½Π°, ΠΈ НБ_Π›ΠžΠ“_ЀУНЦВИОН_ΠΠžΠΠ Π“Π‘, који сС користи Π·Π° статичкС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅);
  • Π›ΠžΠ“_Π›ΠžΠ“Π˜Π¦ - Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΡ€ΡƒΠΊΠ° којС ΠΎΠΏΠΈΡΡƒΡ˜Ρƒ Π»ΠΎΠ³ΠΈΡ‡ΠΊΠΈ Ρ‚ΠΎΠΊ ΡƒΠ½ΡƒΡ‚Π°Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ (ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΈ ΠΌΠ°ΠΊΡ€ΠΎ: НБ_Π›ΠžΠ“_Π›ΠžΠ“Π˜Π¦);
  • Π›ΠžΠ“_АЛЛ - Π•Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π° свС Π³ΠΎΡ€Π΅ ΠΏΠΎΠΌΠ΅Π½ΡƒΡ‚ΠΎ (Π±Π΅Π· ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΎΠ³ ΠΌΠ°ΠΊΡ€ΠΎΠ°).
    Π—Π° сваки Ρ‚ΠΈΠΏ (Π›ΠžΠ“_Π’Π˜ΠŸΠ•) ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ ΠΈ Π›ΠžΠ“_Π›Π•Π’Π•Π›_Π’Π˜ΠŸΠ• који, Π°ΠΊΠΎ сС користи, Π΄ΠΎΠ·Π²ΠΎΡ™Π°Π²Π° Π΄Π° сС сви Π½ΠΈΠ²ΠΎΠΈ ΠΈΠ·Π½Π°Π΄ њСга Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°Ρ˜Ρƒ ΠΏΠΎΡ€Π΅Π΄ сопствСног Π½ΠΈΠ²ΠΎΠ°. (Као послСдица Ρ‚ΠΎΠ³Π°, Π›ΠžΠ“_Π•Π Π ΠžΠ  ΠΈ Π›ΠžΠ“_Π›Π•Π’Π•Π›_Π•Π Π ΠžΠ , ΠΈ Π›ΠžΠ“_АЛЛ ΠΈ Π›ΠžΠ“_Π›Π•Π’Π•Π›_АЛЛ су Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΈ.) На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°ΡšΠ΅ Π›ΠžΠ“_ИНЀО Ρ›Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΠΈ само ΠΏΠΎΡ€ΡƒΠΊΠ΅ којС ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜Π΅ ΠΌΠ°ΠΊΡ€ΠΎ НБ_Π›ΠžΠ“_ИНЀО, Π΄ΠΎΠΊ Ρ›Π΅ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°ΡšΠ΅ Π›ΠžΠ“_Π›Π•Π’Π•Π›_ИНЀО Ρ‚Π°ΠΊΠΎΡ’Π΅ ΡƒΠΊΡ™ΡƒΡ‡ΠΈΠ²Π°Ρ‚ΠΈ ΠΏΠΎΡ€ΡƒΠΊΠ΅ којС ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜Ρƒ ΠΌΠ°ΠΊΡ€ΠΎΠΈ , ΠΈ Π›ΠžΠ“_Π”Π•Π›ΠžΠ“Π‘Π£Π“ΠΠ‘_РН_Π”Π•Π›ΠžΠ“Π‘Π£Π“ΠΠ‘.

Π’Π°ΠΊΠΎΡ’Π΅ ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜Π΅ΠΌΠΎ бСзусловни ΠΌΠ°ΠΊΡ€ΠΎ Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ који сС ΡƒΠ²Π΅ΠΊ ΠΏΡ€ΠΈΠΊΠ°Π·ΡƒΡ˜Π΅, Π±Π΅Π· ΠΎΠ±Π·ΠΈΡ€Π° Π½Π° Π½ΠΈΠ²ΠΎ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΈΠ·Π±ΠΎΡ€Π°.

  • НБ_Π›ΠžΠ“_Π£ΠΠ¦ΠžΠΠ” - БСзусловно Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ²Π΅Π·Π°Π½Π΅ ΠΏΠΎΡ€ΡƒΠΊΠ΅ (Π±Π΅Π· ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΎΠ³ Π½ΠΈΠ²ΠΎΠ° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ°).

Π‘Π²Π°ΠΊΠΈ Π½ΠΈΠ²ΠΎ сС ΠΌΠΎΠΆΠ΅ испитивати ΠΏΠΎΡ˜Π΅Π΄ΠΈΠ½Π°Ρ‡Π½ΠΎ ΠΈΠ»ΠΈ ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΈΠ²Π½ΠΎ. Π•Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ сС ΠΌΠΎΠΆΠ΅ конфигурисати ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ΠΌ сх ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ° НБ_Π›ΠžΠ“ ΠΈΠ»ΠΈ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΠ²Π° систСмскС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅. Као ΡˆΡ‚ΠΎ јС Ρ€Π°Π½ΠΈΡ˜Π΅ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½ΠΎ, систСм Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° ΠΈΠΌΠ° Π”ΠΎΠΊΠΈΠ³Π΅Π½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Ρƒ ΠΈ сада јС ΠΏΡ€Π°Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° јС ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°Ρ‚Π΅ Π°ΠΊΠΎ Π²Π΅Ρ› нистС.

Π‘Π°Π΄Π° ΠΊΠ°Π΄Π° стС Π΄Π΅Ρ‚Π°Ρ™Π½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Ρƒ, Ρ…Π°Ρ˜Π΄Π΅ Π΄Π° искористимо Ρ‚ΠΎ знањС Π΄Π° добијСмо Π½Π΅ΠΊΠ΅ Π·Π°Π½ΠΈΠΌΡ™ΠΈΠ²Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° скриптС сцратцх/мифирст.Ρ†Ρ†ΠΊΠΎΡ˜Π΅ стС Π²Π΅Ρ› саставили.

5.1.2 ΠžΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚Π΅ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅

Π₯ајдС Π΄Π° користимо ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ° НБ_Π›ΠžΠ“ Π΄Π° ΠΏΠΎΠΊΡ€Π΅Π½Π΅ΠΌΠΎ још Π½Π΅ΠΊΠ΅ Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π΅, Π°Π»ΠΈ ΠΏΡ€Π²ΠΎ, само Π΄Π° бистС сС ΠΎΡ€ΠΈΡ˜Π΅Π½Ρ‚ΠΈΡΠ°Π»ΠΈ, ΠΏΠΎΠΊΡ€Π΅Π½ΠΈΡ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΡšΡƒ скрипту ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ стС Ρ€Π°Π΄ΠΈΠ»ΠΈ Ρ€Π°Π½ΠΈΡ˜Π΅,

$ ./waf --run scratch/myfirst

Π’Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ ΠΈΠ·Π»Π°Π· ΠΈΠ· ΠΏΡ€Π²ΠΎΠ³ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° нс-3

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

Π˜ΡΠΏΠΎΡΡ‚Π°Π²ΠΈΠ»ΠΎ сС Π΄Π° су "послатС" ΠΈ "ΠΏΡ€ΠΈΠΌΡ™Π΅Π½Π΅" ΠΏΠΎΡ€ΡƒΠΊΠ΅ којС Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈΠ·Π½Π°Π΄ Π·Π°ΠΏΡ€Π°Π²ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠ΅Π½Π΅ ΠΏΠΎΡ€ΡƒΠΊΠ΅ ΠΎΠ΄ УдпЕцхоЦлиСнтАпплицатион ΠΈ УдпЕцхоБСрвСрАпплицатион. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π·Π°Ρ‚Ρ€Π°ΠΆΠΈΡ‚ΠΈ ΠΎΠ΄ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Π΄Π° ΠΎΠ΄ΡˆΡ‚Π°ΠΌΠΏΠ° Π΄ΠΎΠ΄Π°Ρ‚Π½Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅ΠΌΠΎ поставити Π½ΠΈΠ²ΠΎ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° ΠΏΡ€Π΅ΠΊΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ° НБ_Π›ΠžΠ“.

Од сада Ρ›Ρƒ прСтпоставити Π΄Π° користитС љуску Π½Π°Π»ΠΈΠΊ сх која користи синтаксу "Π’ΠΠ Π˜ΠΠ‘Π›Π•=Π²Π°Π»ΡƒΠ΅". Ако користитС ΡˆΠΊΠΎΡ™ΠΊΡƒ Π½Π°Π»ΠΈΠΊ цсх-Ρƒ, ΠΎΠ½Π΄Π° Ρ›Π΅Ρ‚Π΅ ΠΌΠΎΡ€Π°Ρ‚ΠΈ Π΄Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΡƒΡ˜Π΅Ρ‚Π΅ мојС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ синтаксу β€žΡΠ΅Ρ‚Π΅Π½Π² ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ Π²Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΠΈβ€œ ΠΊΠΎΡ˜Ρƒ Π·Π°Ρ…Ρ‚Π΅Π²Π°Ρ˜Ρƒ Ρ‚Π΅ љускС.

Π’Ρ€Π΅Π½ΡƒΡ‚Π½ΠΎ, Π£Π”ΠŸ Π΅Ρ†Ρ…ΠΎ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠ° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° Π½Π° слСдСћи Ρ€Π΅Π΄ ΠΊΠΎΠ΄Π° сцратцх/мифирст.Ρ†Ρ†,

LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);

ΠžΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π½ΠΈΠ²ΠΎ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° Π›ΠžΠ“_Π›Π•Π’Π•Π›_ИНЀО. Када прослСдимо ΠΎΠ·Π½Π°ΠΊΡƒ Π½ΠΈΠ²ΠΎΠ° Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π΅, ΠΌΠΈ Π·Π°ΠΏΡ€Π°Π²ΠΎ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°ΠΌΠΎ Ρ‚Π°Ρ˜ Π½ΠΈΠ²ΠΎ ΠΈ свС Π½ΠΈΠΆΠ΅ Π½ΠΈΠ²ΠΎΠ΅. Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΠ»ΠΈ смо НБ_Π›ΠžΠ“_ИНЀО, НБ_Π›ΠžΠ“_Π”Π•Π‘Π£Π“, НБ_Π›ΠžΠ“_ВАРН ΠΈ НБ_Π›ΠžΠ“_Π•Π Π ΠžΠ . МоТСмо ΠΏΠΎΠ²Π΅Ρ›Π°Ρ‚ΠΈ Π½ΠΈΠ²ΠΎ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° ΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΠΈ вишС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π°, Π±Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅Π½Π° скриптС ΠΈ ΠΏΠΎΠ½ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π΅, ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ΠΌ НБ_Π›ΠžΠ“ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ° Π½Π° слСдСћи Π½Π°Ρ‡ΠΈΠ½:

$ export NS_LOG=UdpEchoClientApplication=level_all

Π’Π°ΠΊΠΎ смо поставили сх схСлл ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ НБ_Π›ΠžΠ“ Π½Π° слСдСћу врСдност,

UdpEchoClientApplication=level_all

Π›Π΅Π²Π° страна Π΄ΠΎΠ΄Π΅Π»Π΅ јС ΠΈΠΌΠ΅ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ ΠΊΠΎΡ˜Ρƒ ΠΆΠ΅Π»ΠΈΠΌΠΎ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅ΠΌΠΎ, Π° дСсна јС ΠΎΠ·Π½Π°ΠΊΠ° ΠΊΠΎΡ˜Ρƒ ΠΆΠ΅Π»ΠΈΠΌΠΎ Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π·Π° ΡšΡƒ. Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ›Π΅ΠΌΠΎ свС Π½ΠΈΠ²ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ° Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° Ρƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ. Ако ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ скрипту са НБ_Π›ΠžΠ“ подСшСним Π½Π° овај Π½Π°Ρ‡ΠΈΠ½, нс-3 систСм Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° Ρ›Π΅ ΠΏΡ€ΠΈΡ…Π²Π°Ρ‚ΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅ ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ слСдСћи ΠΈΠ·Π»Π°Π·:

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

Π”ΠΎΠ΄Π°Ρ‚Π½Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ ΠΎ ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΡƒ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° којС дајС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° сада су Π½Π° Π½ΠΈΠ²ΠΎΡƒ НБ_Π›ΠžΠ“_ЀУНЦВИОН. ΠŸΡ€ΠΈΠΊΠ°Π·ΡƒΡ˜Π΅ сваку инстанцу ΠΏΠΎΠ·ΠΈΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ Ρ‚ΠΎΠΊΠΎΠΌ ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π°ΡšΠ° скриптС. Као ΠΎΠΏΡˆΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°ΠΌΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎΠΆΠ΅Ρ™Π½ΠΎ јС користити (најмањС)NS_LOG_FUNCTION (this)... Π£ΠΏΠΎΡ‚Ρ€Π΅Π±Π° NS_LOG_FUNCTION_NOARGS ()
само Ρƒ статичким Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°ΠΌΠ°. ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, ΠΈΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° нс-3 систСм нијС ΠΎΠ±Π°Π²Π΅Π·Π°Π½ Π΄Π° ΠΏΠΎΠ΄Ρ€ΠΆΠ°Π²Π° Π±ΠΈΠ»ΠΎ ΠΊΠ°ΠΊΠ²Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Ρƒ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ°. ΠžΠ΄Π»ΡƒΠΊΠ° ΠΎ Ρ‚ΠΎΠΌΠ΅ ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° сС снима ΠΏΡ€Π΅ΠΏΡƒΡˆΡ‚Π° сС ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€Ρƒ ΠΌΠΎΠ΄Π΅Π»Π°. Π£ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ Π΅Ρ…ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°, доступна јС Π²Π΅Π»ΠΈΠΊΠ° ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½Π° ΠΈΠ·Π»Π°Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π΅.

Π‘Π°Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ‚ΠΈ Π΄Π½Π΅Π²Π½ΠΈΠΊ ΠΏΠΎΠ·ΠΈΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° којС јС ΠΎΠ±Π°Π²ΠΈΠ»Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°. Ако ΠΏΠ°ΠΆΡ™ΠΈΠ²ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ‚Π΅, ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΡ›Π΅Ρ‚Π΅ Π΄Π²ΠΎΡ‚Π°Ρ‡ΠΊΡƒ ΠΈΠ·ΠΌΠ΅Ρ’Ρƒ Ρ€Π΅Π΄Π° УдпЕцхоЦлиСнтАпплицатион ΠΈ Π½Π°Π·ΠΈΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‡Π΅ΠΊΠΈΠ²Π°Ρ‚ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π¦++ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ опсСга (: :). Ово јС Π½Π°ΠΌΠ΅Ρ€Π½ΠΎ.

Ово Π·Π°ΠΏΡ€Π°Π²ΠΎ нијС ΠΈΠΌΠ΅ класС, Π²Π΅Ρ› ΠΈΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅. Када ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ ΠΏΠΎΠ΄ΡƒΠ΄Π°Ρ€Π°ΡšΠ΅ ΠΈΠ·ΠΌΠ΅Ρ’Ρƒ ΠΈΠ·Π²ΠΎΡ€Π½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ ΠΈ класС, Ρ‚ΠΎ јС ΠΎΠ±ΠΈΡ‡Π½ΠΎ ΠΈΠΌΠ΅ класС, Π°Π»ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° схватитС Π΄Π° Ρ‚ΠΎ Π·Π°ΠΏΡ€Π°Π²ΠΎ нијС ΠΈΠΌΠ΅ класС, ΠΈ Π΄Π° ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ јСдна Π΄Π²ΠΎΡ‚Π°Ρ‡ΠΊΠ° умСсто двострукС. Ово јС Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»Π½ΠΎ ΠΎΠ΄Π²ΠΎΡ˜ΠΈΡ‚Π΅ ΠΈΠΌΠ΅ Π±Π΅Π°Π½-Π° Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ ΠΎΠ΄ Π½Π°Π·ΠΈΠ²Π° класС Π½Π° Ρ€Π΅Π»Π°Ρ‚ΠΈΠ²Π½ΠΎ суптилан Π½Π°Ρ‡ΠΈΠ½.

ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, Ρƒ Π½Π΅ΠΊΠΈΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²ΠΈΠΌΠ° ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ Ρ‚Π΅ΡˆΠΊΠΎ ΠΎΠ΄Ρ€Π΅Π΄ΠΈΡ‚ΠΈ који ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΏΡ€Π°Π²ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡˆΠ΅ ΠΏΠΎΡ€ΡƒΠΊΡƒ Π΄Π½Π΅Π²Π½ΠΈΠΊΠ°. Ако ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ‚Π΅ Π³ΠΎΡ€ΡšΠΈ тСкст, ΠΌΠΎΠΆΠ΄Π° Ρ›Π΅Ρ‚Π΅ сС ΠΏΠΈΡ‚Π°Ρ‚ΠΈ Π³Π΄Π΅ јС линија "Received 1024 bytes from 10.1.1.2" Овај ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΠΈ подСшавањСм Π½ΠΈΠ²ΠΎΠ° ΠΏΡ€Π΅Ρ„ΠΈΠΊ_Ρ„ΡƒΠ½Ρ† Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ° НБ_Π›ΠžΠ“. ΠŸΠΎΠΊΡƒΡˆΠ°Ρ˜Ρ‚Π΅ слСдСћС:

$ export 'NS_LOG=UdpEchoClientApplication=level_all|prefix_func'

Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° су Π½Π°Π²ΠΎΠ΄Π½ΠΈΡ†ΠΈ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΈ Ρ˜Π΅Ρ€ јС Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½Π° Ρ‚Ρ€Π°ΠΊΠ° ΠΊΠΎΡ˜Ρƒ користимо Π΄Π° прСдстављамо ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Ρƒ Π˜Π›Π˜ Ρ‚Π°ΠΊΠΎΡ’Π΅ Π£Π½ΠΈΠΊ ΠΊΠΎΠ½Π΅ΠΊΡ‚ΠΎΡ€ Ρ†Π΅Π²ΠΈ. Π‘Π°Π΄Π° Π°ΠΊΠΎ ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ скрипту, Π²ΠΈΠ΄Π΅Ρ›Π΅Ρ‚Π΅ Π΄Π° систСм Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜Π΅ Π΄Π° свака ΠΏΠΎΡ€ΡƒΠΊΠ° Ρƒ Π΄Π°Ρ‚ΠΎΠΌ Π΄Π½Π΅Π²Π½ΠΈΠΊΡƒ ΠΈΠΌΠ° прСфикс ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅.

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

Π‘Π°Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Π΄Π° су свС ΠΏΠΎΡ€ΡƒΠΊΠ΅ којС Π΄ΠΎΠ»Π°Π·Π΅ ΠΈΠ· Π£Π”ΠŸ Π΅Ρ†Ρ…ΠΎ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠΎΠ²Π°Π½Π΅ ΠΊΠ°ΠΎ Ρ‚Π°ΠΊΠ²Π΅. ΠŸΠΎΡ€ΡƒΠΊΠ° "Received 1024 bytes from 10.1.1.2" сада јС јасно ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠΎΠ²Π°Π½ΠΎ Π΄Π° Π΄ΠΎΠ»Π°Π·ΠΈ ΠΈΠ· Π΅Ρ†Ρ…ΠΎ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅. ΠŸΡ€Π΅ΠΎΡΡ‚Π°Π»Π° ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΌΠΎΡ€Π° Π΄ΠΎΡ›ΠΈ ΠΈΠ· Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Π£Π”ΠŸ Π΅Ρ…ΠΎ сСрвСра. ΠžΠ²Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅ΠΌΠΎ ΡƒΠ½Π΅Ρ‚ΠΈ листу ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Ρ€Π°Π·Π΄Π²ΠΎΡ˜Π΅Π½ΠΈΡ… Π΄Π²Π΅ Ρ‚Π°Ρ‡ΠΊΠ΅ Ρƒ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ° НБ_Π›ΠžΠ“.

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

Π£ΠΏΠΎΠ·ΠΎΡ€Π΅ΡšΠ΅: Π£ Π³ΠΎΡ€ΡšΠ΅ΠΌ тСксту ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΌΠΎΡ€Π°Ρ›Π΅Ρ‚Π΅ Π΄Π° ΡƒΠΊΠ»ΠΎΠ½ΠΈΡ‚Π΅ Π·Π½Π°ΠΊ Π½ΠΎΠ²ΠΎΠ³ Ρ€Π΅Π΄Π° послС Π΄Π²ΠΎΡ‚Π°Ρ‡ΠΊΠ° (:), ΠΎΠ½ сС користи Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π‘Π°Π΄Π°, Π°ΠΊΠΎ ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ скрипту, Π²ΠΈΠ΄Π΅Ρ›Π΅Ρ‚Π΅ свС ΠΏΠΎΡ€ΡƒΠΊΠ΅ Π΄Π½Π΅Π²Π½ΠΈΠΊΠ° ΠΈΠ· ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠΈΡ… ΠΈ сСрвСрских Π΅Ρ…ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Π΄Π° ΠΎΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ Π²Π΅ΠΎΠΌΠ° корисно ΠΏΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ° Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°.

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

Π’Π°ΠΊΠΎΡ’Π΅ јС ΠΏΠΎΠ½Π΅ΠΊΠ°Π΄ корисно ΠΌΠΎΡ›ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅ Ρƒ којСм јС гСнСрисана ΠΏΠΎΡ€ΡƒΠΊΠ° Π΄Π½Π΅Π²Π½ΠΈΠΊΠ°. Π’ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡ‡ΠΈΠ½ΠΈΡ‚ΠΈ додавањСм Π±ΠΈΡ‚Π° ОР прСфикс_Π²Ρ€Π΅ΠΌΠ΅:

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

ΠžΠΏΠ΅Ρ‚, ΠΌΠΎΡ€Π°Ρ›Π΅Ρ‚Π΅ Π΄Π° ΡƒΠΊΠ»ΠΎΠ½ΠΈΡ‚Π΅ Π³ΠΎΡ€ΡšΠΈ Π·Π½Π°ΠΊ Π½ΠΎΠ²ΠΎΠ³ Ρ€Π΅Π΄Π°. Ако сада ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ скрипту, Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ слСдСћи ΠΈΠ·Π»Π°Π·:

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

Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° конструктор Π·Π° Π£Π΄ΠΏΠ•Ρ†Ρ…ΠΎΠ‘Π΅Ρ€Π²Π΅Ρ€ јС ΠΏΠΎΠ·Π²Π°Π½ Ρ‚ΠΎΠΊΠΎΠΌ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅ 0 сСкунди. Ово сС Π·Π°ΠΏΡ€Π°Π²ΠΎ дСшава ΠΏΡ€Π΅ Π½Π΅Π³ΠΎ ΡˆΡ‚ΠΎ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π° ΠΏΠΎΡ‡Π½Π΅, Π°Π»ΠΈ јС Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΎ Π½ΡƒΠ»Π° сСкунди. Π˜ΡΡ‚ΠΎ Π²Π°ΠΆΠΈ ΠΈ Π·Π° ΠΏΠΎΡ€ΡƒΠΊΡƒ конструктора Π£Π΄ΠΏΠ•Ρ†Ρ…ΠΎΠ¦Π»ΠΈΠ΅Π½Ρ‚.

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

ΠŸΠΎΠ΄ΡΠ΅Ρ‚ΠΈΠΌΠΎ сС Π΄Π° јС сцСнарио сцратцх/фирст.Ρ†Ρ† ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ Π΅Ρ…ΠΎ сСрвСра Ρ˜Π΅Π΄Π½Ρƒ сСкунду ΠΏΡ€Π΅ ΠΏΠΎΡ‡Π΅Ρ‚ΠΊΠ° ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅. Π‘Π°Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Π΄Π° јС ΠΌΠ΅Ρ‚ΠΎΠ΄ БтартАпплицатион сСрвСр јС Π·Π°ΠΏΡ€Π°Π²ΠΎ ΠΏΠΎΠ·Π²Π°Π½ Ρƒ ΠΏΡ€Π²ΠΎΡ˜ сСкунди. Π’Π°ΠΊΠΎΡ’Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΡ‚ΠΈ Π΄Π° Π΅Ρ…ΠΎ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ ΠΏΠΎΡ‡ΠΈΡšΠ΅ Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ˜ сСкунди ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅, ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ смо Ρ‚Ρ€Π°ΠΆΠΈΠ»ΠΈ Ρƒ скрипти.

Π‘Π°Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π°Ρ‚ΠΈΡ‚ΠΈ Π½Π°ΠΏΡ€Π΅Π΄Π°ΠΊ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅ Π½Π° ΠΏΠΎΠ·ΠΈΠ² БцхСдулСВрансмит Ρƒ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Ρƒ који ΠΏΠΎΠ·ΠΈΠ²Π° Π₯Π°Π½Π΄Π»Π΅Π Π΅Π°Π΄ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½ΠΈ ΠΏΠΎΠ·ΠΈΠ² Π‘Π΅Π½Π΄ Ρƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ Π΅Ρ…ΠΎ сСрвСра. Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° јС ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ»ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° слањС ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΡ€Π΅ΠΊΠΎ Π²Π΅Π·Π΅ ΠΎΠ΄ Ρ‚Π°Ρ‡ΠΊΠ΅ Π΄ΠΎ Ρ‚Π°Ρ‡ΠΊΠ΅ 3,69 милисСкунди. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Π΄Π° Π΅Ρ…ΠΎ сСрвСр Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π° ΠΏΠΎΡ€ΡƒΠΊΡƒ Π΄Π° јС ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚, Π° Π·Π°Ρ‚ΠΈΠΌ, Π½Π°ΠΊΠΎΠ½ кашњСња ΠΊΠ°Π½Π°Π»Π°, Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π΄Π° Π΅Ρ…ΠΎ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ ΠΏΡ€ΠΈΠΌΠ° Π΅Ρ…ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ Ρƒ свом Π₯Π°Π½Π΄Π»Π΅Π Π΅Π°Π΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ.

Π£ овој ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚ΠΎΠ³Π° сС дСшава Π° Π΄Π° Π²ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΡ‚Π΅. Али ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ€Π»ΠΎ Π»Π°ΠΊΠΎ ΠΏΡ€Π°Ρ‚ΠΈΡ‚ΠΈ Ρ†Π΅ΠΎ процСс Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅Ρ‚Π΅ ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ свС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ Ρƒ систСму. ΠŸΠΎΠΊΡƒΡˆΠ°Ρ˜Ρ‚Π΅ Π΄Π° подСситС ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ НБ_Π›ΠžΠ“ Π½Π° слСдСћу врСдност,

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

Π—Π²Π΅Π·Π΄ΠΈΡ†Π° ΠΈΠ·Π½Π°Π΄ јС ΡŸΠΎΠΊΠ΅Ρ€ Π·Π½Π°ΠΊ Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ°. Ово Ρ›Π΅ ΡƒΠΊΡ™ΡƒΡ‡ΠΈΡ‚ΠΈ свС уносС Ρƒ свС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ којС сС користС Ρƒ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜ΠΈ. ОвдС Π½Π΅Ρ›Ρƒ Ρ€Π΅ΠΏΡ€ΠΎΠ΄ΡƒΠΊΠΎΠ²Π°Ρ‚ΠΈ ΠΈΠ·Π»Π°Π· (Ρƒ Π²Ρ€Π΅ΠΌΠ΅ писања ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ 1265 линија ΠΈΠ·Π»Π°Π·Π° Π·Π° јСдан Π΅Ρ…ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚), Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° прСусмСритС ΠΎΠ²Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ‚Π΅ ΠΈΡ… Ρƒ свом ΠΎΠΌΠΈΡ™Π΅Π½ΠΎΠΌ ΡƒΡ€Π΅Ρ’ΠΈΠ²Π°Ρ‡Ρƒ.

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

Ја Π»ΠΈΡ‡Π½ΠΎ користим ΠΎΠ²Ρƒ ΠΈΠ·ΡƒΠ·Π΅Ρ‚Π½ΠΎ ΠΎΠΏΡˆΠΈΡ€Π½Ρƒ Π²Π΅Ρ€Π·ΠΈΡ˜Ρƒ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° ΠΊΠ°Π΄Π° ΠΈΠΌΠ°ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ Π½Π΅ΠΌΠ°ΠΌ појма Π³Π΄Π΅ су ствари пошлС ΠΏΠΎ Π·Π»Ρƒ. ΠœΠΎΠ³Ρƒ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π»Π°ΠΊΠΎ Π΄Π° ΠΏΡ€Π°Ρ‚ΠΈΠΌ ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π°ΡšΠ΅ ΠΊΠΎΠ΄Π° Π±Π΅Π· ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΡšΠ° Ρ‚Π°Ρ‡Π°ΠΊΠ° ΠΏΡ€Π΅ΠΊΠΈΠ΄Π° ΠΈ проласка ΠΊΡ€ΠΎΠ· ΠΊΠΎΠ΄ Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡƒ Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°. ΠœΠΎΠ³Ρƒ само Π΄Π° ΡƒΡ€Π΅Π΄ΠΈΠΌ ΠΈΠ·Π»Π°Π· Ρƒ свом ΠΎΠΌΠΈΡ™Π΅Π½ΠΎΠΌ ΡƒΡ€Π΅Ρ’ΠΈΠ²Π°Ρ‡Ρƒ ΠΈ ΠΏΠΎΡ‚Ρ€Π°ΠΆΠΈΠΌ ΠΎΠ½ΠΎ ΡˆΡ‚ΠΎ ΠΎΡ‡Π΅ΠΊΡƒΡ˜Π΅ΠΌ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ Π΄Π° сС дСшава Π½Π΅ΡˆΡ‚ΠΎ ΡˆΡ‚ΠΎ нисам ΠΎΡ‡Π΅ΠΊΠΈΠ²Π°ΠΎ. Када добијСм ΠΎΠΏΡˆΡ‚Ρƒ прСдставу ΠΎ Ρ‚ΠΎΠΌΠ΅ ΡˆΡ‚Π° нијС Ρƒ Ρ€Π΅Π΄Ρƒ, скочим Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ° Π΄Π° Π±ΠΈΡ… Π΄Π΅Ρ‚Π°Ρ™Π½ΠΈΡ˜Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Ова врста ΠΈΠ·Π»Π°Π·Π° ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ посСбно корисна ΠΊΠ°Π΄Π° ваша скрипта ΡƒΡ€Π°Π΄ΠΈ Π½Π΅ΡˆΡ‚ΠΎ ΠΏΠΎΡ‚ΠΏΡƒΠ½ΠΎ Π½Π΅ΠΎΡ‡Π΅ΠΊΠΈΠ²Π°Π½ΠΎ. Ако користитС само ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Π·Π° ΠΎΡ‚ΠΊΠ»Π°ΡšΠ°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°, ΠΌΠΎΠΆΠ΄Π° Ρ›Π΅Ρ‚Π΅ Ρƒ потпуности пропустити ΠΏΡ€Π΅ΠΎΠΊΡ€Π΅Ρ‚. Π Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° Ρ‡ΠΈΠ½ΠΈ Ρ‚Π°ΠΊΠ²Π΅ ΠΎΠΊΡ€Π΅Ρ‚Π΅ ΡƒΠΎΡ‡Ρ™ΠΈΠ²ΠΈΠΌ.

5.1.3 Π”ΠΎΠ΄Π°Π²Π°ΡšΠ΅ Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π΅ вашСм ΠΊΠΎΠ΄Ρƒ

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ΄Π°Ρ‚ΠΈ Π½ΠΎΠ²Π΅ уносС Ρƒ својС ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅ позивањСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π΄Π½Π΅Π²Π½ΠΈΠΊΠ° ΠΈΠ· вишС ΠΌΠ°ΠΊΡ€ΠΎΠ°. Π£Ρ€Π°Π΄ΠΈΠΌΠΎ Ρ‚ΠΎ Ρƒ скрипти мифирст.Ρ†Ρ†, који ΠΈΠΌΠ°ΠΌΠΎ Ρƒ β€žΡ‡ΠΈΡΡ‚ΠΎΠΌβ€œ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΡƒ. ΠŸΠΎΠ΄ΡΠ΅Ρ‚ΠΈΠΌΠΎ сС Π΄Π° смо дСфинисали ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° Ρƒ ΠΎΠ²ΠΎΠΌ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡ˜Ρƒ:

NS_LOG_COMPONENT_DEFINE ("FirstScriptExample");

БвСсни стС Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ свих ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΈΠ· ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅Ρ‚Π΅ поставити ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ° НБ_Π›ΠžΠ“ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚Π΅ Π½ΠΈΠ²ΠΎΠ΅. Π₯ајдСмо Π½Π°ΠΏΡ€Π΅Π΄ ΠΈ додајмо Π½Π΅ΠΊΠ΅ уносС Ρƒ скрипту. ΠœΠ°ΠΊΡ€ΠΎ који сС користи Π·Π° додавањС ΠΏΠΎΡ€ΡƒΠΊΠ° Π½Π° Π½ΠΈΠ²ΠΎΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° Ρƒ Π΄Π½Π΅Π²Π½ΠΈΠΊ јС НБ_Π›ΠžΠ“_ИНЀО. Π₯ајдС Π΄Π° Π΄ΠΎΠ΄Π°ΠΌΠΎ ΠΏΠΎΡ€ΡƒΠΊΡƒ (нСпосрСдно ΠΏΡ€Π΅ Π½Π΅Π³ΠΎ ΡˆΡ‚ΠΎ ΠΏΠΎΡ‡Π½Π΅ΠΌΠΎ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΠΌΠΎ Ρ‡Π²ΠΎΡ€ΠΎΠ²Π΅) која Π²Π°ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈ Π΄Π° јС скрипта Ρƒ Ρ„Π°Π·ΠΈ β€žΠšΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ˜Π΅β€œ. Ово сС Ρ€Π°Π΄ΠΈ Ρƒ слСдСћСм исСчку ΠΊΠΎΠ΄Π°,
ΠžΡ‚Π²ΠΎΡ€Π΅Π½ΠΎ сцратцх/мифирст.Ρ†Ρ† Ρƒ свом ΠΎΠΌΠΈΡ™Π΅Π½ΠΎΠΌ ΡƒΡ€Π΅Ρ’ΠΈΠ²Π°Ρ‡Ρƒ ΠΈ Π΄ΠΎΠ΄Π°Ρ˜Ρ‚Π΅ Ρ€Π΅Π΄,
NS_LOG_INFO ("Creating Topology");
нСпосрСдно ΠΏΡ€Π΅ Ρ€Π΅Π΄ΠΎΠ²Π°,

NodeContainer nodes;
nodes.Create (2);

Π‘Π°Π΄Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Ρ˜Ρ‚Π΅ скрипту користСћи ВАЀ, ΠΈ ΠΎΠ±Ρ€ΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ НБ_Π›ΠžΠ“ Π΄Π° бистС ΠΎΠ½Π΅ΠΌΠΎΠ³ΡƒΡ›ΠΈΠ»ΠΈ Ρ‚ΠΎΠΊ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° који смо Ρ€Π°Π½ΠΈΡ˜Π΅ ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΠ»ΠΈ:

$ ./waf
$ export NS_LOG=
Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ запуститС скрипт,
$ ./waf --run scratch/myfirst

НСћСтС Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Π½ΠΎΠ²Ρƒ ΠΏΠΎΡ€ΡƒΠΊΡƒ Ρ˜Π΅Ρ€ ΠΏΠΎΠ²Π΅Π·Π°Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ° (ЀирстБцриптЕкамплС) нијС ΠΎΠΌΠΎΠ³ΡƒΡ›Π΅Π½Π°. Π”Π° бистС Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ²ΠΎΡ˜Ρƒ ΠΏΠΎΡ€ΡƒΠΊΡƒ, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ јС Π΄Π° ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ ЀирстБцриптЕкамплС са Π½ΠΈΠ²ΠΎΠΎΠΌ који нијС Π½ΠΈΠΆΠΈ ΠΎΠ΄ НБ_Π›ΠžΠ“_ИНЀО. Ако само ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ овај ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½ΠΈ Π½ΠΈΠ²ΠΎ Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π³Π° ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ ΠΎΠ²Π°ΠΊΠΎ,

$ export NS_LOG=FirstScriptExample=info

Ако сада ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ скрипту, Π²ΠΈΠ΄Π΅Ρ›Π΅Ρ‚Π΅ Π½ΠΎΠ²Ρƒ ΠΏΠΎΡ€ΡƒΠΊΡƒ β€žΠšΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ˜Π΅β€œ,

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

5.2 ΠšΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС

5.2.1 ΠŸΠΎΠ½ΠΈΡˆΡ‚Π°Π²Π°ΡšΠ΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΈΡ… врСдности Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

Π”Ρ€ΡƒΠ³ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ понашањС нс-3 скрипти Π±Π΅Π· ΡƒΡ€Π΅Ρ’ΠΈΠ²Π°ΡšΠ° ΠΈΠ»ΠΈ ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅ јС ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС. ΠŸΡ€ΡƒΠΆΠ°ΠΌΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° Ρ€Π°ΡˆΡ‡Π»Π°ΡšΠΈΠ²Π°ΡšΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС ΠΈ аутоматско ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ… ΠΈ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡ… ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΈΡ… Π½Π° основу Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°.

ΠŸΡ€Π²ΠΈ ΠΊΠΎΡ€Π°ΠΊ Ρƒ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΡƒ систСма Π°Ρ€Π³ΡƒΠΌΠ΅Π½Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС јС Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡΠ°ΡšΠ΅ парсСра ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС. Ово јС ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π»Π°ΠΊΠΎ ΡƒΡ€Π°Π΄ΠΈΡ‚ΠΈ (Ρƒ вашСм Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡƒ), ΠΊΠ°ΠΎ Ρƒ слСдСћСм ΠΊΠΎΠ΄Ρƒ,

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

Овај Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π°Π½ исСчак Ρƒ Π΄Π²Π° Ρ€Π΅Π΄Π° јС Π·Π°ΠΏΡ€Π°Π²ΠΎ Π²Π΅ΠΎΠΌΠ° користан сам ΠΏΠΎ сСби. Π’ΠΎ ΠΎΡ‚Π²Π°Ρ€Π° Π²Ρ€Π°Ρ‚Π° нс-3 Π³Π»ΠΎΠ±Π°Π»Π½ΠΎΠΌ систСму ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΈΡ… ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°. Π₯ајдС Π΄Π° Π΄ΠΎΠ΄Π°ΠΌΠΎ Π΄Π²Π΅ линијС ΠΊΠΎΠ΄Π° Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚Π°ΠΊ Π³Π»Π°Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ скриптС сцратцх/мифирст.Ρ†Ρ†. Настављамо Π΄Π°Ρ™Π΅, ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°ΠΌΠΎ скрипту ΠΈ ΠΏΠΎΠΊΡ€Π΅Ρ›Π΅ΠΌΠΎ јС, ΠΏΡ€ΠΈ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΡƒ постављамо Π·Π°Ρ…Ρ‚Π΅Π² Π·Π° ΠΏΠΎΠΌΠΎΡ› Π½Π° слСдСћи Π½Π°Ρ‡ΠΈΠ½,

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

Ова ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ›Π΅ ΠΏΠΈΡ‚Π°Ρ‚ΠΈ Π’Π°Ρ„ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΈ скрипту сцратцх/мифирст ΠΈ прослСдитС ΠΌΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС β€”ΠŸΡ€ΠΈΠ½Ρ‚Π₯Π΅Π»ΠΏ. Наводници су ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π΄Π° Π½Π°Π·Π½Π°Ρ‡Π΅ Π·Π° који ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ јС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ намСњСн. ΠŸΠ°Ρ€ΡΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС Ρ›Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€”ΠŸΡ€ΠΈΠ½Ρ‚Π₯Π΅Π»ΠΏ ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Ρ›Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€,

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

Π‘Π°Π΄Π° поглСдајмо ΠΎΠΏΡ†ΠΈΡ˜Ρƒ β€”ΠŸΡ€ΠΈΠ½Ρ‚ΠΡ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅Ρ. Π’Π΅Ρ› смо спомСнули систСм Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° нс-3 ΠΊΠ°Π΄Π° смо ΠΏΡ€ΠΎΡƒΡ‡Π°Π²Π°Π»ΠΈ скрипту фирст.Ρ†Ρ†. Π’ΠΈΠ΄Π΅Π»ΠΈ смо слСдСћС линијС ΠΊΠΎΠ΄Π°,

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

ΠΈ Ρ‚ΠΎ су Ρ€Π΅ΠΊΠ»ΠΈ Π‘Ρ€Π·ΠΈΠ½Π° прСноса ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° јС Π·Π°ΠΏΡ€Π°Π²ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠŸΠΎΠΈΠ½Ρ‚Π’ΠΎΠŸΠΎΠΈΠ½Ρ‚ΠΠ΅Ρ‚Π”Π΅Π²ΠΈΡ†Π΅. Π₯ајдС Π΄Π° користимо парсСр Π°Ρ€Π³ΡƒΠΌΠ΅Π½Π°Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ ΠŸΠΎΠΈΠ½Ρ‚Π’ΠΎΠŸΠΎΠΈΠ½Ρ‚ΠΠ΅Ρ‚Π”Π΅Π²ΠΈΡ†Π΅. Листа ΠΏΠΎΠΌΠΎΡ›ΠΈ ΠΊΠ°ΠΆΠ΅ ΡˆΡ‚Π° ΠΌΠΎΡ€Π°ΠΌΠΎ Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΠΌΠΎ ВипСИд. Ово јС Π½Π°Π·ΠΈΠ² класС којој ΠΏΡ€ΠΈΠΏΠ°Π΄Π°Ρ˜Ρƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ ΠΎΠ΄ интСрСса. Π£ нашСм ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ Π±ΠΈΡ›Π΅ нс3::ΠŸΠΎΠΈΠ½Ρ‚Π’ΠΎΠŸΠΎΠΈΠ½Ρ‚ΠΠ΅Ρ‚Π”Π΅Π²ΠΈΡ†Π΅. ИдСмо Π΄Π°Ρ™Π΅, ΡƒΡ’ΠΈ,

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

БистСм Ρ›Π΅ ΠΎΠ΄ΡˆΡ‚Π°ΠΌΠΏΠ°Ρ‚ΠΈ свС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ ΠΎΠ²ΠΎΠ³ Ρ‚ΠΈΠΏΠ° ΠΌΡ€Π΅ΠΆΠ½ΠΎΠ³ ΡƒΡ€Π΅Ρ’Π°Ρ˜Π°. Π’ΠΈΠ΄Π΅Ρ›Π΅Ρ‚Π΅ Π΄Π° су ΠΌΠ΅Ρ’Ρƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΠΌΠ° Π½Π° листи,

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

Ово јС ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Π° врСдност ΠΊΠΎΡ˜Ρƒ Ρ›Π΅ систСм користити ΠΏΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚Π° ΠŸΠΎΠΈΠ½Ρ‚Π’ΠΎΠŸΠΎΠΈΠ½Ρ‚ΠΠ΅Ρ‚Π”Π΅Π²ΠΈΡ†Π΅. Π—Π°ΠΌΠ΅Π½ΠΈΡ›Π΅ΠΌΠΎ ΠΎΠ²Ρƒ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Ρƒ врСдност ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π² ΠŸΠΎΠΈΠ½Ρ‚Π’ΠΎΠŸΠΎΠΈΠ½Ρ‚Π₯Π΅Π»ΠΏΠ΅Ρ€ виши. Π₯ајдС Π΄Π° користимо ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Π΅ врСдности Π·Π° ΡƒΡ€Π΅Ρ’Π°Ρ˜Π΅ ΠΈ ΠΊΠ°Π½Π°Π»Π΅ ΠΎΠ΄ Ρ‚Π°Ρ‡ΠΊΠ΅ Π΄ΠΎ Ρ‚Π°Ρ‡ΠΊΠ΅. Π”Π° бисмо Ρ‚ΠΎ ΡƒΡ€Π°Π΄ΠΈΠ»ΠΈ, избрисаћСмо ΠΏΠΎΠ·ΠΈΠ²Π΅ БСтДСвицСАттрибутС ΠΈ БСтЦханнСлАттрибутС ΠΎΠ΄ мифирст.Ρ†Ρ†, који ΠΈΠΌΠ°ΠΌΠΎ Ρƒ чистом Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΡƒ.

Π’Π°ΡˆΠ° скрипта сада Ρ‚Ρ€Π΅Π±Π° Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ Π΄Π° прогласи ΠŸΠΎΠΈΠ½Ρ‚Π’ΠΎΠŸΠΎΠΈΠ½Ρ‚Π₯Π΅Π»ΠΏΠ΅Ρ€ ΠΈ Π½Π΅ ΠΎΠ±Π°Π²Ρ™Π°Ρ˜Ρ‚Π΅ Π½ΠΈΠΊΠ°ΠΊΠ²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π΅ ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π΅ ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½ΠΎ Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ испод,

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

Π‘Π°ΠΌΠΎ Π½Π°ΠΏΡ€Π΅Π΄ ΠΈ ΠΊΡ€Π΅ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π½ΠΎΠ²Ρƒ скрипту са Π’Π°Ρ„ (./Π²Π°Ρ„) ΠΈ Π²Ρ€Π°Ρ‚ΠΈΠΌΠΎ сС Π½Π°Π·Π°Π΄ ΠΈ ΡƒΠΊΡ™ΡƒΡ‡ΠΈΠΌΠΎ Π½Π΅ΠΊΠΈ унос ΠΈΠ· Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Π£Π”ΠŸ Π΅Ρ…ΠΎ сСрвСра ΠΈ ΡƒΠΊΡ™ΡƒΡ‡ΠΈΠΌΠΎ врСмСнски прСфикс.

$ export 'NS_LOG=UdpEchoServerApplication=level_all|prefix_time'

Ако ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ скрипту, Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ слСдСћи ΠΈΠ·Π»Π°Π·:

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

ΠŸΠΎΠ΄ΡΠ΅Ρ‚ΠΈΠΌΠΎ сС Π΄Π° јС послСдњи ΠΏΡƒΡ‚ ΠΊΠ°Π΄Π° смо ΠΏΠΎΠ³Π»Π΅Π΄Π°Π»ΠΈ Π²Ρ€Π΅ΠΌΠ΅ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅, Ρƒ Ρ‚Ρ€Π΅Π½ΡƒΡ‚ΠΊΡƒ ΠΊΠ°Π΄Π° јС Π΅Ρ…ΠΎ сСрвСр ΠΏΡ€ΠΈΠΌΠΈΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚, Π±ΠΈΠ»ΠΎ 2,00369 сСкунди.

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

Π‘Π°Π΄Π° ΠΏΡ€ΠΈΠΌΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° 2.25732 сСкундС. Π’ΠΎ јС Π·Π°Ρ‚ΠΎ ΡˆΡ‚ΠΎ смо Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ рСсСтовали Π±Ρ€Π·ΠΈΠ½Ρƒ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠŸΠΎΠΈΠ½Ρ‚Π’ΠΎΠŸΠΎΠΈΠ½Ρ‚ΠΠ΅Ρ‚Π”Π΅Π²ΠΈΡ†Π΅ са ΠΏΠ΅Ρ‚ ΠΌΠ΅Π³Π°Π±ΠΈΡ‚Π° Ρƒ сСкунди Π½Π° ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Ρƒ врСдност, која јС 32768 Π±ΠΈΡ‚Π° Ρƒ сСкунди. Ако бисмо Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΈ Π”Π°Ρ‚Π°Π Π°Ρ‚Π΅ користСћи ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρƒ Π»ΠΈΠ½ΠΈΡ˜Ρƒ, ΠΌΠΎΠ³Π»ΠΈ бисмо ΠΏΠΎΠ½ΠΎΠ²ΠΎ Π΄Π° ΡƒΠ±Ρ€Π·Π°ΠΌΠΎ Π½Π°ΡˆΡƒ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Ρƒ. Π’ΠΎ Ρ›Π΅ΠΌΠΎ ΡƒΡ€Π°Π΄ΠΈΡ‚ΠΈ Π½Π° слСдСћи Π½Π°Ρ‡ΠΈΠ½, ΠΏΡ€Π΅ΠΌΠ° Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈ ΠΊΠΎΡ˜Ρƒ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠΌΠΎΡ›ΠΈ:

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

Ово Ρ›Π΅ Π²Ρ€Π°Ρ‚ΠΈΡ‚ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π”Π°Ρ‚Π°Π Π°Ρ‚Π΅ Π½Π° ΡšΠ΅Π³ΠΎΠ²Ρƒ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Ρƒ врСдност ΠΎΠ΄ ΠΏΠ΅Ρ‚ ΠΌΠ΅Π³Π°Π±ΠΈΡ‚Π° Ρƒ сСкунди. Π”Π° Π»ΠΈ стС ΠΈΠ·Π½Π΅Π½Π°Ρ’Π΅Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΠΌ? Π˜ΡΠΏΠΎΡΡ‚Π°Π²ΠΈΠ»ΠΎ сС Π΄Π° Π΄Π° бисмо Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎ понашањС скриптС, Ρ‚Π°ΠΊΠΎΡ’Π΅ ΠΌΠΎΡ€Π°ΠΌΠΎ Π΄Π° подСсимо кашњСњС ΠΊΠ°Π½Π°Π»Π° Ρ‚Π°ΠΊΠΎ Π΄Π° ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° Π±Ρ€Π·ΠΈΠ½ΠΈ свСтлости. МоТСмо Ρ‚Ρ€Π°ΠΆΠΈΡ‚ΠΈ ΠΎΠ΄ систСма ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС Π΄Π° ΠΎΠ΄ΡˆΡ‚Π°ΠΌΠΏΠ° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ ΠΊΠ°Π½Π°Π»Π°, баш ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ смо ΡƒΡ€Π°Π΄ΠΈΠ»ΠΈ Π·Π° ΠΌΡ€Π΅ΠΆΠ½ΠΈ ΡƒΡ€Π΅Ρ’Π°Ρ˜:

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

ΠžΡ‚ΠΊΡ€ΠΈΡ›Π΅ΠΌΠΎ Π΄Π° јС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ кашњСња ΠΊΠ°Π½Π°Π»Π° подСшСн Π½Π° слСдСћи Π½Π°Ρ‡ΠΈΠ½:

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

Π—Π°Ρ‚ΠΈΠΌ ΠΌΠΎΠΆΠ΅ΠΌΠΎ, ΠΏΡ€Π΅ΠΊΠΎ систСма ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС, поставити ΠΎΠ±Π΅ ΠΎΠ²Π΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Π΅ врСдности.

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

Ρƒ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ Π²Ρ€Π°Ρ›Π°ΠΌΠΎ Π²Ρ€Π΅ΠΌΠ΅ којС смо ΠΈΠΌΠ°Π»ΠΈ ΠΊΠ°Π΄Π° смо Сксплицитно поставили Π”Π°Ρ‚Π°Π Π°Ρ‚Π΅ ΠΈ Π”Π΅Π»Π°ΠΈ Ρƒ скрипти:

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

Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° сСрвСр ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΏΡ€ΠΈΠΌΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π°ΠΊΠΎΠ½ 2,00369 сСкунди. На овај Π½Π°Ρ‡ΠΈΠ½ бисмо Π·Π°ΠΏΡ€Π°Π²ΠΎ ΠΌΠΎΠ³Π»ΠΈ поставити Π±ΠΈΠ»ΠΎ који ΠΎΠ΄ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° који сС користС Ρƒ скрипти. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ, ΠΌΠΎΠ³Π»ΠΈ бисмо Π΄Π° поставимо Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ ΠœΠ°ΠΊΠŸΠ°Ρ†ΠΊΠ΅Ρ‚Ρ Π½Π° врСдности којС нису јСдна Π£Π΄ΠΏΠ•Ρ†Ρ…ΠΎΠ¦Π»ΠΈΠ΅Π½Ρ‚.

Како бистС Ρ‚ΠΎ искористили? ΠŸΠΎΠΊΡƒΡˆΠ°Ρ‚ΠΈ. Π—Π°ΠΏΠ°ΠΌΡ‚ΠΈΡ‚Π΅ Π΄Π° ΠΌΠΎΡ€Π°Ρ‚Π΅ Π΄Π° ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡˆΠ΅Ρ‚Π΅ мСсто Π³Π΄Π΅ Π·Π°ΠΌΠ΅ΡšΡƒΡ˜Π΅ΠΌΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Ρƒ врСдност Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΈ Сксплицитно постављамо ΠœΠ°ΠΊΠŸΠ°Ρ†ΠΊΠ΅Ρ‚Ρ Ρƒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡ˜Ρƒ. Π—Π°Ρ‚ΠΈΠΌ ΠΌΠΎΡ€Π°Ρ‚Π΅ ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚ΠΈ скрипту. Π’Π°ΠΊΠΎΡ’Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° користитС ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρƒ Π»ΠΈΠ½ΠΈΡ˜Ρƒ Π΄Π° бистС Π΄ΠΎΠ±ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠΎΡ› Ρƒ синтакси Π·Π° ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ Π½ΠΎΠ²Π΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½Π΅ врСдности Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°. Када ΠΎΠ²ΠΎ схватитС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ контролисати Π±Ρ€ΠΎΡ˜ ΠΏΠ°ΠΊΠ΅Ρ‚Π° који сС ΠΏΡ€ΠΈΠΊΠ°Π·ΡƒΡ˜Ρƒ Π½Π° командној линији. ΠŸΠΎΡˆΡ‚ΠΎ смо ΠΌΠΈ ΠΌΠ°Ρ€Ρ™ΠΈΠ²ΠΈ Ρ™ΡƒΠ΄ΠΈ, наша ΠΊΠΎΠΌΠ°Π½Π΄Π½Π° линија Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΎΡ‚ΠΏΡ€ΠΈΠ»ΠΈΠΊΠ΅ ΠΎΠ²Π°ΠΊΠΎ:

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

ΠŸΡ€ΠΈΡ€ΠΎΠ΄Π½ΠΎ ΠΏΠΈΡ‚Π°ΡšΠ΅ којС сС поставља Ρƒ ΠΎΠ²ΠΎΠΌ Ρ‚Ρ€Π΅Π½ΡƒΡ‚ΠΊΡƒ јС ΠΊΠ°ΠΊΠΎ Π·Π½Π°Ρ‚ΠΈ ΠΎ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°ΡšΡƒ свих ΠΎΠ²ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°. ΠžΠΏΠ΅Ρ‚, систСм ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС ΠΈΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Ρƒ ΠΏΠΎΠΌΠΎΡ›ΠΈ ΠΏΠΎ ΠΎΠ²ΠΎΠΌ ΠΏΠΈΡ‚Π°ΡšΡƒ. Ако Π·Π°Ρ‚Ρ€Π°ΠΆΠΈΠΌΠΎ ΠΏΠΎΠΌΠΎΡ› ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС, Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠΎ:

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

Ако ΠΈΠ·Π°Π±Π΅Ρ€Π΅Ρ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€žΠŸΡ€ΠΈΠ½Ρ‚Π“Ρ€ΠΎΡƒΠΏΡβ€œ, Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ листу свих рСгистрованих Π³Ρ€ΡƒΠΏΠ° ВипСИд. ИмСна Π³Ρ€ΡƒΠΏΠ° су Ρƒ складу са ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΌΠΎΠ΄ΡƒΠ»Π° Ρƒ ΠΈΠ·Π²ΠΎΡ€Π½ΠΎΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΡƒ (ΠΈΠ°ΠΊΠΎ написана Π²Π΅Π»ΠΈΠΊΠΈΠΌ словима). Π¨Ρ‚Π°ΠΌΠΏΠ°ΡšΠ΅ свих ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° одјСдном Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΡ€Π΅Π²ΠΈΡˆΠ΅ ΠΎΠ±ΠΈΠΌΠ½ΠΎ, Ρ‚Π°ΠΊΠΎ Π΄Π° јС доступан Π΄ΠΎΠ΄Π°Ρ‚Π½ΠΈ Ρ„ΠΈΠ»Ρ‚Π΅Ρ€ Π·Π° ΡˆΡ‚Π°ΠΌΠΏΠ°ΡšΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΏΠΎ Π³Ρ€ΡƒΠΏΠ°ΠΌΠ°. Π”Π°ΠΊΠ»Π΅, ΠΏΠΎΠ½ΠΎΠ²ΠΎ сС Ρ„ΠΎΠΊΡƒΡΠΈΡ€Π°Ρ˜ΡƒΡ›ΠΈ Π½Π° ΠΌΠΎΠ΄ΡƒΠ» ΠΎΠ΄ Ρ‚Π°Ρ‡ΠΊΠ΅ Π΄ΠΎ Ρ‚Π°Ρ‡ΠΊΠ΅:

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

ОвдС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ½Π°Ρ›ΠΈ доступна ВипСИд ΠΈΠΌΠ΅Π½Π° Π·Π° Ρ‚Ρ€Π°ΠΆΠ΅ΡšΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρƒ
--PrintAttributes = ns3 :: PointToPointChannelΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС Π³ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½ΠΎ.

Π”Ρ€ΡƒΠ³ΠΈ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сазнатС ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΠΌΠ° јС ΠΏΡ€Π΅ΠΊΠΎ Π”ΠΎΠΊΠΈΠ³Π΅Π½ нс‑3. ΠŸΠΎΡΡ‚ΠΎΡ˜ΠΈ страница која Π½Π°Π²ΠΎΠ΄ΠΈ свС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ рСгистрованС Ρƒ симулатору.

5.2.2 БнимањС сопствСних ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ

Π’Π°ΠΊΠΎΡ’Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ΄Π°Ρ‚ΠΈ сопствСнС ΠΊΡƒΠΊΠ΅ ΠΏΡ€Π΅ΠΊΠΎ систСма ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС. Ово сС Ρ€Π°Π΄ΠΈ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ парсСра ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС Π”ΠΎΠ΄Π°Ρ˜Ρƒ врСдност.
Π₯ајдС Π΄Π° користимо ΠΎΠ²Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Ρƒ Π΄Π° ΠΎΠ΄Ρ€Π΅Π΄ΠΈΠΌΠΎ Π±Ρ€ΠΎΡ˜ ΠΏΠ°ΠΊΠ΅Ρ‚Π° који Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½ΠΈ Π½Π° ΠΏΠΎΡ‚ΠΏΡƒΠ½ΠΎ Π΄Ρ€ΡƒΠ³Π°Ρ‡ΠΈΡ˜ΠΈ Π½Π°Ρ‡ΠΈΠ½. Π₯ајдС Π΄Π° Π΄ΠΎΠ΄Π°ΠΌΠΎ Π»ΠΎΠΊΠ°Π»Π½Ρƒ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ ΠΏΠΎΠ΄ Π½Π°Π·ΠΈΠ²ΠΎΠΌ Π½ΠŸΠ°Ρ†ΠΊΠ΅Ρ‚ΠΈ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Ρƒ Π³Π»Π°Π²Π½ΠΈ. ΠŸΠΎΡΡ‚Π°Π²ΠΈΡ›Π΅ΠΌΠΎ Π³Π° Π½Π° јСдан Π΄Π° ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° нашСм ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎΠΌ ΠΏΠΎΠ½Π°ΡˆΠ°ΡšΡƒ. Π”Π° бисмо Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ парсСру ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΎΠ²Ρƒ врСдност, ΠΌΠΎΡ€Π°ΠΌΠΎ Π΄Π° ΡƒΡ…Π²Π°Ρ‚ΠΈΠΌΠΎ ΠΎΠ²Ρƒ врСдност Ρƒ парсСру. Π’ΠΎ Ρ€Π°Π΄ΠΈΠΌΠΎ додавањСм ΠΏΠΎΠ·ΠΈΠ²Π° Π”ΠΎΠ΄Π°Ρ˜Ρƒ врСдност. Иди ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ скрипту сцратцх/мифирст.Ρ†Ρ† ΠΏΠ° Π΄Π° ΠΏΠΎΡ‡Π½Π΅ΠΌΠΎ са слСдСћим ΠΊΠΎΠ΄ΠΎΠΌ,

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

ΠŸΠΎΠΌΠ΅Ρ€ΠΈΡ‚Π΅ сС Π½Π°Π΄ΠΎΠ»Π΅ Π΄ΠΎ Ρ‚Π°Ρ‡ΠΊΠ΅ Ρƒ скрипти Π³Π΄Π΅ постављамо Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠœΠ°ΠΊΠŸΠ°Ρ†ΠΊΠ΅Ρ‚Ρ ΠΈ мСњамо Π³Π° Ρ‚Π°ΠΊΠΎ Π΄Π° Π±ΡƒΠ΄Π΅ постављСн Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Ρƒ Π½ΠŸΠ°Ρ†ΠΊΠ΅Ρ‚Ρ умСсто Π½Π° константу 1, ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС ΠΏΡ€ΠΈΠΊΠ°Π·Π°Π½ΠΎ испод.

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

Π‘Π°Π΄Π° Π°ΠΊΠΎ ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ скрипту ΠΈ унСсСтС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ -ΠŸΡ€ΠΈΠ½Ρ‚Π₯Π΅Π»ΠΏ, Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΎΠ²ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ корисника. Π½Π°Π²Π΅Π΄Π΅Π½ Π½Π° Π΅ΠΊΡ€Π°Π½Ρƒ ΠΏΠΎΠΌΠΎΡ›ΠΈ. УнСситС,

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

Ако ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π±Ρ€ΠΎΡ˜ ΠΏΡ€Π΅Π½Π΅Ρ‚ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡ‡ΠΈΠ½ΠΈΡ‚ΠΈ Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅Ρ‚Π΅ поставити Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС - -Π½ΠŸΠ°Ρ†ΠΊΠ΅Ρ‚Ρ.

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

Π‘Π°Π΄Π° Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅

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

Π‘Π°Π΄Π° стС послали Π΄Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ, Π·Π°Ρ€ Π½Π΅?
ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Π΄Π° ΠΊΠ°ΠΎ нс-3 корисник ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° користитС систСм Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС Π·Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΡ˜Ρƒ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΠΌ врСдностима ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΠΌΠ°. Ако стС Π°ΡƒΡ‚ΠΎΡ€ ΠΌΠΎΠ΄Π΅Π»Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ΄Π°Ρ‚ΠΈ Π½ΠΎΠ²Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ својим ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈΠΌΠ° ΠΈ ΠΎΠ½ΠΈ Ρ›Π΅ аутоматски Π±ΠΈΡ‚ΠΈ доступни Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Ρƒ вашим корисницима ΠΏΡ€Π΅ΠΊΠΎ систСма ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС. Ако стС Π°ΡƒΡ‚ΠΎΡ€ скриптС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ΄Π°Ρ‚ΠΈ Π½ΠΎΠ²Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ својим скриптама ΠΈ Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Ρ‚Π½ΠΎ ΠΈΡ… ΡƒΠΊΡ™ΡƒΡ‡ΠΈΡ‚ΠΈ Ρƒ систСм ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС.

5.3 ΠšΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ систСма ΠΏΡ€Π°Ρ›Π΅ΡšΠ°

Π¦Π΅Π»ΠΎΠΊΡƒΠΏΠ½Π° ΠΏΠΎΠ΅Π½Ρ‚Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°ΡšΠ° јС Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡˆΠ΅ ΠΈΠ·Π»Π°Π· Π·Π° Π΄Π°Ρ™Π΅ ΠΏΡ€ΠΎΡƒΡ‡Π°Π²Π°ΡšΠ΅, Π° нс-3 систСм ΠΏΡ€Π°Ρ›Π΅ΡšΠ° јС Π³Π»Π°Π²Π½ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° Ρ‚ΠΎ. ΠŸΠΎΡˆΡ‚ΠΎ јС нс-3 Π¦++ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ, ΠΌΠΎΠ³Ρƒ сС користити стандардна срСдства Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡΠ°ΡšΠ΅ ΠΈΠ·Π»Π°Π·Π° ΠΈΠ· Π¦++ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°:

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

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Ρ‡Π°ΠΊ користити ΠΈ ΠΌΠΎΠ΄ΡƒΠ» Π·Π° Π΅Π²ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π΄Π° Π΄ΠΎΠ΄Π°Ρ‚Π΅ ΠΌΠ°Π»ΠΎ структурС свом Ρ€Π΅ΡˆΠ΅ΡšΡƒ. ΠŸΠΎΡΡ‚ΠΎΡ˜ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΡƒΠ·Ρ€ΠΎΠΊΠΎΠ²Π°Π½ΠΈΡ… ΠΎΠ²ΠΈΠΌ приступом, ΠΈ стога смо ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΠ»ΠΈ ΠΎΠΏΡˆΡ‚ΠΈ подсистСм Π·Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅ Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ ΠΎΠ²ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.

Π“Π»Π°Π²Π½ΠΈ Ρ†ΠΈΡ™Π΅Π²ΠΈ нс-3 систСма ΠΏΡ€Π°Ρ›Π΅ΡšΠ° су:

  • Π—Π° основнС Π·Π°Π΄Π°Ρ‚ΠΊΠ΅, систСм ΠΏΡ€Π°Ρ›Π΅ΡšΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈ кориснику Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡˆΠ΅ стандардни Ρ‚Ρ€Π°Π³ Π·Π° ΠΏΠΎΠΏΡƒΠ»Π°Ρ€Π½Π΅ ΠΈΠ·Π²ΠΎΡ€Π΅ ΠΈ ΠΈΠ·Π°Π±Π΅Ρ€Π΅ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚Π΅ који Π³Π΅Π½Π΅Ρ€ΠΈΡˆΡƒ Ρ‚Ρ€Π°Π³;

  • Π‘Ρ€Π΅Π΄ΡšΠΈ корисници Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° Π±ΡƒΠ΄Ρƒ Ρƒ могућности Π΄Π° ΠΏΡ€ΠΎΡˆΠΈΡ€Π΅ систСм ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΊΠ°ΠΊΠΎ Π±ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ гСнСрисани ΠΈΠ·Π»Π°Π·Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΠ»ΠΈ ΡƒΠ±Π°Ρ†ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅ ΠΈΠ·Π²ΠΎΡ€Π΅ ΠΏΡ€Π°Ρ›Π΅ΡšΠ°, Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Ρ˜Π΅Π·Π³Ρ€Π° симулатора;

  • НапрСдни корисници ΠΌΠΎΠ³Ρƒ Π΄Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΡƒΡ˜Ρƒ Ρ˜Π΅Π·Π³Ρ€ΠΎ симулатора Π΄Π° Π΄ΠΎΠ΄Π°Ρ˜Ρƒ Π½ΠΎΠ²Π΅ ΠΈΠ·Π²ΠΎΡ€Π΅ Ρ‚Ρ€Π°Π³ΠΎΠ²Π° ΠΈ ΠΏΠΎΠ½ΠΎΡ€Π΅. БистСм ΠΏΡ€Π°Ρ›Π΅ΡšΠ° нс-3 ΠΈΠ·Π³Ρ€Π°Ρ’Π΅Π½ јС Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠΌΠ° нСзависног ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΈΠ·Π²ΠΎΡ€Π° ΠΈ ΠΏΡ€ΠΈΡ˜Π΅ΠΌΠ½ΠΈΠΊΠ°, ΠΊΠ°ΠΎ ΠΈ објСдињСног ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° повСзивањС ΠΈΠ·Π²ΠΎΡ€Π° са ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡ΠΈΠΌΠ°.

БистСм ΠΏΡ€Π°Ρ›Π΅ΡšΠ° нс-3 ΠΈΠ·Π³Ρ€Π°Ρ’Π΅Π½ јС Π½Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠΌΠ° нСзависног ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΈΠ·Π²ΠΎΡ€Π° ΠΈ ΠΏΡ€ΠΈΡ˜Π΅ΠΌΠ½ΠΈΠΊΠ°, ΠΊΠ°ΠΎ ΠΈ Ρ˜Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½ΠΎΠ³ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° повСзивањС ΠΈΠ·Π²ΠΎΡ€Π° са ΠΏΡ€ΠΈΡ˜Π΅ΠΌΠ½ΠΈΡ†ΠΈΠΌΠ°. Π˜Π·Π²ΠΎΡ€ΠΈ Ρ‚Ρ€Π°Π³ΠΎΠ²Π° су ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ који ΠΌΠΎΠ³Ρƒ сигнализирати Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π΅ који сС Π΄Π΅ΡˆΠ°Π²Π°Ρ˜Ρƒ Ρƒ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜ΠΈ ΠΈ ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ приступ основним ΠΏΠΎΠ΄Π°Ρ†ΠΈΠΌΠ° ΠΎΠ΄ интСрСса. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·Π²ΠΎΡ€ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡƒΠΊΠ°ΠΆΠ΅ ΠΊΠ°Π΄Π° јС ΠΌΡ€Π΅ΠΆΠ½ΠΈ ΡƒΡ€Π΅Ρ’Π°Ρ˜ ΠΏΡ€ΠΈΠΌΠΈΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ ΡƒΡ‡ΠΈΠ½ΠΈ ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜ ΠΏΠ°ΠΊΠ΅Ρ‚Π° доступним заинтСрСсованим ΠΏΡ€ΠΈΠΌΠ°ΠΎΡ†ΠΈΠΌΠ° ΠΏΡ€Π°Ρ›Π΅ΡšΠ°.

Π˜Π·Π²ΠΎΡ€ΠΈ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° сами ΠΏΠΎ сСби су бСскорисни осим Π°ΠΊΠΎ нису "ΡƒΠΏΠ°Ρ€Π΅Π½ΠΈ" са Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π΄Π΅Π»ΠΎΠ²ΠΈΠΌΠ° ΠΊΠΎΠ΄Π° који Π·Π°ΠΏΡ€Π°Π²ΠΎ Ρ€Π°Π΄Π΅ Π½Π΅ΡˆΡ‚ΠΎ корисно са ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π°ΠΌΠ° којС ΠΏΡ€ΡƒΠΆΠ° ΠΏΡ€ΠΈΡ˜Π΅ΠΌΠ½ΠΈΠΊ. Π’Ρ€Π°Π³Π°Ρ‡ΠΈ су ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ°Ρ‡ΠΈ Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° ΠΈ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° Π΄ΠΎΠ±ΠΈΡ˜Π΅Π½ΠΈΡ… ΠΎΠ΄ ΠΈΠ·Π²ΠΎΡ€Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚ΠΈ ΠΏΡ€ΠΈΡ˜Π΅ΠΌΠ½ΠΈΠΊ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° који Ρ›Π΅ (ΠΊΠ°Π΄Π° јС ΠΏΠΎΠ²Π΅Π·Π°Π½ са ΠΈΠ·Π²ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΈΠ· ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎΠ³ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°) ΠΎΠ΄ΡˆΡ‚Π°ΠΌΠΏΠ°Ρ‚ΠΈ Π΄Π΅Π»ΠΎΠ²Π΅ ΠΎΠ΄ интСрСса Ρƒ ΠΏΡ€ΠΈΠΌΡ™Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ.

ΠžΠ±Ρ€Π°Π·Π»ΠΎΠΆΠ΅ΡšΠ΅ Π·Π° ΠΎΠ²ΠΎ Сксплицитно Ρ€Π°Π·Π΄Π²Π°Ρ˜Π°ΡšΠ΅ јС Π΄Π° сС ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈ корисницима Π΄Π° ΠΏΠΎΠ²Π΅ΠΆΡƒ Π½ΠΎΠ²Π΅ Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΏΠΎΠ½ΠΎΡ€Π° са ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅Ρ›ΠΈΠΌ ΠΈΠ·Π²ΠΎΡ€ΠΈΠΌΠ° ΠΏΡ€Π°Ρ›Π΅ΡšΠ° Π±Π΅Π· ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅ Π΄Π° ΡƒΡ€Π΅Ρ’ΡƒΡ˜Ρƒ ΠΈ ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Ρ˜Ρƒ Ρ˜Π΅Π·Π³Ρ€ΠΎ симулатора. Π”Π°ΠΊΠ»Π΅, Ρƒ Π³ΠΎΡ€ΡšΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, корисник ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡˆΠ΅ Π½ΠΎΠ²ΠΈ Ρ‚Ρ€Π°Π³Π°Ρ‡ Ρƒ својој скрипти ΠΈ Π΄Π° Π³Π° ΠΏΠΎΠ²Π΅ΠΆΠ΅ са ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅Ρ›ΠΈΠΌ ΠΈΠ·Π²ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° дСфинисаним Ρƒ Ρ˜Π΅Π·Π³Ρ€Ρƒ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅ само ΡƒΡ€Π΅Ρ’ΠΈΠ²Π°ΡšΠ΅ΠΌ корисничкС скриптС.

Π£ ΠΎΠ²ΠΎΠΌ Π²ΠΎΠ΄ΠΈΡ‡Ρƒ Ρ›Π΅ΠΌΠΎ ΠΏΡ€ΠΎΡ›ΠΈ ΠΊΡ€ΠΎΠ· Π½Π΅ΠΊΠ΅ ΠΎΠ΄ ΡƒΠ½Π°ΠΏΡ€Π΅Π΄ дСфинисаних ΠΈΠ·Π²ΠΎΡ€Π° ΠΈ ΠΏΠΎΠ½ΠΎΡ€Π° ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΠΈ ΠΊΠ°ΠΊΠΎ сС ΠΎΠ½ΠΈ ΠΌΠΎΠ³Ρƒ конфигурисати ΡƒΠ· најмањи Π½Π°ΠΏΠΎΡ€ корисника. ΠŸΠΎΠ³Π»Π΅Π΄Π°Ρ˜Ρ‚Π΅ нс-3 ΠΏΡ€ΠΈΡ€ΡƒΡ‡Π½ΠΈΠΊ ΠΈΠ»ΠΈ ΠΎΠ΄Π΅Ρ™ΠΊΠ΅ са упутствима Π·Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ ΠΎ Π½Π°ΠΏΡ€Π΅Π΄Π½ΠΎΡ˜ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜ΠΈ ΠΏΡ€Π°Ρ›Π΅ΡšΠ°, ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜ΡƒΡ›ΠΈ ΠΏΡ€ΠΎΡˆΠΈΡ€Π΅ΡšΠ΅ имСнског простора ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΈ ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Π½ΠΎΠ²ΠΈΡ… ΠΈΠ·Π²ΠΎΡ€Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ°.

5.3.1 АБЦИИ ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅

нс-3 ΠΏΡ€ΡƒΠΆΠ° ΠΏΠΎΠΌΠΎΡ›Π½Ρƒ функционалност која ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜Π΅ систСм ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ниског Π½ΠΈΠ²ΠΎΠ° који Ρ›Π΅ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ›ΠΈ са Π΄Π΅Ρ‚Π°Ρ™ΠΈΠΌΠ° ΠΏΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΡšΠ° Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΡ… ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Ако ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚Π΅ ΠΎΠ²Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Ρƒ, Π²ΠΈΠ΄Π΅Ρ›Π΅Ρ‚Π΅ ΠΈΠ·Π»Π°Π· Ρƒ АБЦИИ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°ΠΌΠ°. Π—Π° ΠΎΠ½Π΅ који су ΡƒΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ са нс-2 ΠΈΠ·Π»Π°Π·ΠΎΠΌ, овај Ρ‚ΠΈΠΏ Ρ‚Ρ€Π°Π³Π° јС сличан ΠΎΡƒΡ‚.Ρ‚Ρ€, који сС Π³Π΅Π½Π΅Ρ€ΠΈΡˆΠ΅ ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… скрипти.

Π₯ајдС Π΄Π° ΠΏΡ€Π΅Ρ’Π΅ΠΌΠΎ Π½Π° посао ΠΈ Π΄ΠΎΠ΄Π°ΠΌΠΎ Π½Π΅ΠΊΠ΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π΅ АБЦИИ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° нашој сцратцх/мифирст.Ρ†Ρ† скрипти. НСпосрСдно ΠΏΡ€Π΅ ΠΏΠΎΠ·ΠΈΠ²Π° Simulator :: Run (), Π΄ΠΎΠ΄Π°Ρ˜Ρ‚Π΅ слСдСћС линијС ΠΊΠΎΠ΄Π°:
АсцииВрацСΠ₯Π΅Π»ΠΏΠ΅Ρ€ асции;

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

Као ΠΈ ΠΌΠ½ΠΎΠ³ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ нс-3 ΠΈΠ΄ΠΈΠΎΠΌΠΈ, овај ΠΊΠΎΠ΄ користи ΠΏΠΎΠΌΠΎΡ›Π½ΠΈ ΠΎΠ±Ρ˜Π΅ΠΊΠ°Ρ‚ Π·Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ АБЦИИ Ρ‚Ρ€Π°Π³ΠΎΠ²Π°. Π”Ρ€ΡƒΠ³ΠΈ Ρ€Π΅Π΄ садрТи Π΄Π²Π° ΡƒΠ³Π½Π΅ΠΆΡ’Π΅Π½Π° ΠΏΠΎΠ·ΠΈΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. ΠœΠ΅Ρ‚ΠΎΠ΄Π° "ΠΈΠ·Π½ΡƒΡ‚Ρ€Π°". Π¦Ρ€Π΅Π°Ρ‚Π΅Π€ΠΈΠ»Π΅Π‘Ρ‚Ρ€Π΅Π°ΠΌ() користи ΠΈΠ΄ΠΈΠΎΠΌ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚Π° Π·Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚Π° Ρ‚ΠΎΠΊΠ° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π½Π° стСку (Π±Π΅Π· ΠΈΠΌΠ΅Π½Π° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚Π°) ΠΈ ΠΏΡ€ΠΎΡΠ»Π΅Ρ’ΡƒΡ˜Π΅ Π³Π° позваној ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ. Π˜Ρ›ΠΈ Ρ›Π΅ΠΌΠΎ Π΄ΡƒΠ±Ρ™Π΅ Ρƒ ΠΎΠ²ΠΎ Ρƒ будућности, Π°Π»ΠΈ свС ΡˆΡ‚ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π·Π½Π°Ρ‚Π΅ Ρƒ ΠΎΠ²ΠΎΠΌ Ρ‚Ρ€Π΅Π½ΡƒΡ‚ΠΊΡƒ јС Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ ΠΎΠ±Ρ˜Π΅ΠΊΠ°Ρ‚ који прСдставља Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΠ΄ Π½Π°Π·ΠΈΠ²ΠΎΠΌ мифирст.Ρ‚Ρ€ ΠΈ прСнСситС Π³Π° Ρƒ нс-3. ΠŸΠΎΠ²Π΅Ρ€Π°Π²Π°ΠΌΠΎ нс-3 Π΄Π° Π±Ρ€ΠΈΠ½Π΅ ΠΎ ΠΊΡ€Π΅ΠΈΡ€Π°Π½ΠΎΠΌ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚Ρƒ Ρ‚ΠΎΠΊΠΎΠΌ Ρ†Π΅Π»ΠΎΠ³ њСговог ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ³ Π²Π΅ΠΊΠ°, Ρ‚ΠΎΠΊΠΎΠΌ којСг Ρ€Π΅ΡˆΠ°Π²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ΡƒΠ·Ρ€ΠΎΠΊΠΎΠ²Π°Π½Π΅ ΠΌΠ°Π»ΠΎ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈΠΌ (Π½Π°ΠΌΠ΅Ρ€Π½ΠΈΠΌ) ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅ΡšΠ΅ΠΌ ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΈΠΌ са конструкторима ΠΊΠΎΠΏΠΈΡ€Π°ΡšΠ° ΠΎΠ±Ρ˜Π΅ΠΊΠ°Ρ‚Π° Π¦++ Ρ‚ΠΎΠΊΠ°.

ЕкстСрни ΠΏΠΎΠ·ΠΈΠ² ЕнаблСАсцииАлл() ΠΊΠ°ΠΆΠ΅ ΠΏΠΎΠΌΠΎΡ›Π½ΠΈΠΊΡƒ Π΄Π° ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° ΡƒΠΊΡ™ΡƒΡ‡ΠΈΡ‚Π΅ АБЦИИ ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅ Ρƒ ΡΠ²ΠΎΡ˜Ρƒ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Ρƒ Π·Π° свС Π²Π΅Π·Π΅ ΡƒΡ€Π΅Ρ’Π°Ρ˜Π° ΠΎΠ΄ Ρ‚Π°Ρ‡ΠΊΠ΅ Π΄ΠΎ Ρ‚Π°Ρ‡ΠΊΠ΅ ΠΈ Π΄Π° ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° (Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ) ΠΏΡ€ΠΈΡ˜Π΅ΠΌΠ½ΠΈΡ†ΠΈ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΡΠ½ΠΈΠΌΠ°Ρ˜Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ ΠΎ ΠΊΡ€Π΅Ρ‚Π°ΡšΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ρƒ АБЦИИ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ.

Π—Π° ΠΎΠ½Π΅ који су ΡƒΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ са нс-2, ΠΏΡ€Π°Ρ›Π΅Π½ΠΈ Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜ΠΈ су Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΈ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈΠΌ Ρ‚Π°Ρ‡ΠΊΠ°ΠΌΠ° ΠΏΡ€Π°Ρ›Π΅ΡšΠ° којС Π±Π΅Π»Π΅ΠΆΠ΅ Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π΅ "+", "-", "Π΄" ΠΈ "Ρ€".
Π‘Π°Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ скрипту ΠΈ Π΄Π° јС ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ линијС:

$ ./waf --run scratch/myfirst

Као ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚Π° Π΄ΠΎ сада, Π²ΠΈΠ΄Π΅Ρ›Π΅Ρ‚Π΅ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΏΠΎΡ€ΡƒΠΊΠ° ΠΎΠ΄ Π’Π°Ρ„-Π°, Π° Π·Π°Ρ‚ΠΈΠΌ β€žβ€žΠΈΠ·Ρ€Π°Π΄Π°β€œ јС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Ρ€ΡˆΠ΅Π½Π°β€œ са Π½Π΅ΠΊΠΈΠΌ ΠΏΠΎΡ€ΡƒΠΊΠ°ΠΌΠ° ΠΈΠ· ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΎΠ³ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°.

Када сС ΠΏΠΎΠΊΡ€Π΅Π½Π΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ Ρ›Π΅ ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΠ΄ Π½Π°Π·ΠΈΠ²ΠΎΠΌ мифирст.Ρ‚Ρ€. Π—Π±ΠΎΠ³ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ посла Π’Π°Ρ„, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ сС Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π½Π΅ ΠΊΡ€Π΅ΠΈΡ€Π° Ρƒ Π»ΠΎΠΊΠ°Π»Π½ΠΎΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΡƒ, Π²Π΅Ρ› Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΡƒ највишСг Π½ΠΈΠ²ΠΎΠ° ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π°. Ако ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡƒΡ‚Π°ΡšΡƒ Π½Π° којој сС Ρ‡ΡƒΠ²Π°Ρ˜Ρƒ Ρ‚Ρ€Π°Π³ΠΎΠ²ΠΈ, ΠΎΠ½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° користитС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ Π’Π°Ρ„ Π΄Π° Ρ‚ΠΎ ΠΎΠ΄Ρ€Π΅Π΄ΠΈΡ‚Π΅ --cwd. Нисмо ΠΎΠ²ΠΎ ΡƒΡ€Π°Π΄ΠΈΠ»ΠΈ, ΠΏΠ° Π΄Π° бисмо ΠΏΠΎΠ³Π»Π΅Π΄Π°Π»ΠΈ АБЦИИ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° мифирст.Ρ‚Ρ€ Ρƒ вашСм ΠΎΠΌΠΈΡ™Π΅Π½ΠΎΠΌ ΡƒΡ€Π΅Ρ’ΠΈΠ²Π°Ρ‡Ρƒ, ΠΌΠΎΡ€Π°Ρ›Π΅ΠΌΠΎ Π΄Π° ΠΎΠ΄Π΅ΠΌΠΎ Π΄ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ° највишСг Π½ΠΈΠ²ΠΎΠ° нашСг ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π°.

ΠŸΠ°Ρ€ΡΠΈΠ½Π³ АБЦИИ Ρ‚Ρ€Π°Π³ΠΎΠ²Π°

Π’Π°ΠΌΠΎ ΠΈΠΌΠ° доста ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° Ρƒ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ густом ΠΎΠ±Π»ΠΈΠΊΡƒ, Π°Π»ΠΈ ΠΏΡ€Π²Π° ствар ΠΊΠΎΡ˜Ρƒ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ јС Π΄Π° сС Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΡΠ°ΡΡ‚ΠΎΡ˜ΠΈ ΠΎΠ΄ ΠΏΠΎΡ˜Π΅Π΄ΠΈΠ½Π°Ρ‡Π½ΠΈΡ… Ρ€Π΅Π΄ΠΎΠ²Π°. Ово Ρ›Π΅ постати јасно Π²ΠΈΠ΄Ρ™ΠΈΠ²ΠΎ Π°ΠΊΠΎ ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ·ΠΎΡ€ Π·Π° глСдањС.

Π‘Π²Π°ΠΊΠΈ Ρ€Π΅Π΄ Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Ρƒ ΠΏΡ€Π°Ρ›Π΅ΡšΠ°. Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, ΠΏΡ€Π°Ρ‚ΠΈΠΌΠΎ Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π΅ Ρƒ Ρ€Π΅Π΄Ρƒ Π·Π° прСнос који су присутни Ρƒ сваком ΠΌΡ€Π΅ΠΆΠ½ΠΎΠΌ ΡƒΡ€Π΅Ρ’Π°Ρ˜Ρƒ Ρ‚Π°Ρ‡ΠΊΠ°-Ρ‚Π°Ρ‡ΠΊΠ° Ρƒ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜ΠΈ. Π Π΅Π΄ прСноса јС Ρ€Π΅Π΄ ΠΊΡ€ΠΎΠ· који сваки ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΡ€Π° ΠΏΡ€ΠΎΡ›ΠΈ Π·Π° Π²Π΅Π·Ρƒ ΠΎΠ΄ Ρ‚Π°Ρ‡ΠΊΠ΅ Π΄ΠΎ Ρ‚Π°Ρ‡ΠΊΠ΅. Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° сваки Ρ€Π΅Π΄ Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΏΠΎΡ‡ΠΈΡšΠ΅ јСдним Π·Π½Π°ΠΊΠΎΠΌ (ΠΈ ΠΈΠΌΠ° Ρ€Π°Π·ΠΌΠ°ΠΊ ΠΈΠ·Π° њСга). Овај симбол Ρ›Π΅ ΠΈΠΌΠ°Ρ‚ΠΈ слСдСћС Π·Π½Π°Ρ‡Π΅ΡšΠ΅:

+: ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π° Ρ‡Π΅ΠΊΠ°ΡšΠ° сС дСсила Π½Π° Ρ€Π΅Π΄Ρƒ ΡƒΡ€Π΅Ρ’Π°Ρ˜Π°;
-: ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° сС дСсила Ρƒ Ρ€Π΅Π΄Ρƒ ΡƒΡ€Π΅Ρ’Π°Ρ˜Π°;
Π΄: ΠΏΠ°ΠΊΠ΅Ρ‚ јС ΠΎΠ΄Π±Π°Ρ‡Π΅Π½, ΠΎΠ±ΠΈΡ‡Π½ΠΎ Π·Π°Ρ‚ΠΎ ΡˆΡ‚ΠΎ јС Ρ€Π΅Π΄ Π±ΠΈΠΎ ΠΏΡƒΠ½;
Ρ€: ΠœΡ€Π΅ΠΆΠ½ΠΈ ΡƒΡ€Π΅Ρ’Π°Ρ˜ јС ΠΏΡ€ΠΈΠΌΠΈΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚.

Π₯ајдС Π΄Π° Π±Π»ΠΈΠΆΠ΅ ΠΏΠΎΠ³Π»Π΅Π΄Π°ΠΌΠΎ ΠΏΡ€Π²ΠΈ Ρ€Π΅Π΄ Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ ΠΏΡ€Π°Ρ›Π΅ΡšΠ°. ΠŸΠΎΠ΄Π΅Π»ΠΈΡ›Ρƒ Π³Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π΅ (са ΡƒΠ²Π»Π°Ρ‡Π΅ΡšΠ΅ΠΌ Ρ€Π°Π΄ΠΈ Ρ˜Π°ΡΠ½ΠΎΡ›Π΅) ΠΈ Π±Ρ€ΠΎΡ˜Π΅ΠΌ Ρ€Π΅Π΄Π° са Π»Π΅Π²Π΅ странС:

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

ΠŸΡ€Π²ΠΈ Π΄Π΅ΠΎ ΠΎΠ²ΠΎΠ³ ΠΏΡ€ΠΎΡˆΠΈΡ€Π΅Π½ΠΎΠ³ Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ° (Ρ€Π΅Π΄ 0) јС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π°. ОвдС ΠΈΠΌΠ°ΠΌΠΎ симбол +, који ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜ΠΈ Ρ‡Π΅ΠΊΠ°ΡšΠ° Π·Π° прСнос. Π”Ρ€ΡƒΠ³ΠΈ Π΄Π΅ΠΎ (Ρ€Π΅Π΄ 1) јС Π²Ρ€Π΅ΠΌΠ΅ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅, ΠΈΠ·Ρ€Π°ΠΆΠ΅Π½ΠΎ Ρƒ сСкундама. МоТда сС сСћатС ΡˆΡ‚Π° смо ΠΏΠΈΡ‚Π°Π»ΠΈ УдпЕцхоЦлиСнтАпплицатион ΠΏΠΎΡ‡Π½ΠΈΡ‚Π΅ Π΄Π° ΡˆΠ°Ρ™Π΅Ρ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Π·Π° Π΄Π²Π΅ сСкундС. ОвдС Π²ΠΈΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡ‚Π²Ρ€Π΄Ρƒ Π΄Π° сС Ρ‚ΠΎ заиста дСшава.

Π‘Π»Π΅Π΄Π΅Ρ›ΠΈ ΠΎΠ΄Π΅Ρ™Π°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ° (ΠΈΠ· Ρ€Π΅Π΄Π° 2) ΠΏΠΎΠΊΠ°Π·ΡƒΡ˜Π΅ који ΠΈΠ·Π²ΠΎΡ€ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° јС гСнСрисао овај Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜ (ΡƒΠΊΠ°Π·ΡƒΡ˜Π΅ Π½Π° Ρ‚Ρ€Π°Π³ простора ΠΈΠΌΠ΅Π½Π°). ΠœΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠΈΡˆΡ™Π°Ρ‚ΠΈ ΠΎ имСнском простору ΠΏΡ€Π°Ρ›Π΅ΡšΠ° слично ΠΊΠ°ΠΎ ΠΎ имСнском простору систСма Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°. ΠšΠΎΡ€Π΅Π½ имСнског простора јС НодСЛист. Ово ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Ρƒ којим сС ΡƒΠΏΡ€Π°Π²Ρ™Π° Ρƒ Π³Π»Π°Π²Π½ΠΎΠΌ нс-3 ΠΊΠΎΠ΄Ρƒ. Π‘Π°Π΄Ρ€ΠΆΠΈ свС Ρ‡Π²ΠΎΡ€ΠΎΠ²Π΅ који су ΠΊΡ€Π΅ΠΈΡ€Π°Π½ΠΈ Ρƒ скрипти. Π‘Π°Ρˆ ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ систСм Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅ ΠΈΠΌΠ°Ρ‚ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌΠ΅ Ρƒ свом ΠΊΠΎΡ€Π΅Π½Ρƒ, НодСЛист ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΠΈΠΌΠ°Ρ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π²ΠΎΡ€ΠΎΠ²Π°. Π”Π°ΠΊΠ»Π΅, линија /НодСЛист/0 сС односи Π½Π° Π½ΡƒΠ»Ρ‚ΠΈ Ρ‡Π²ΠΎΡ€ Ρƒ Листи Ρ‡Π²ΠΎΡ€ΠΎΠ²Π°, који ΠΎΠ±ΠΈΡ‡Π½ΠΎ сматрамо "Ρ‡Π²ΠΎΡ€ΠΎΠΌ 0". Π‘Π²Π°ΠΊΠΈ Ρ‡Π²ΠΎΡ€ ΠΈΠΌΠ° листу ΡƒΡ€Π΅Ρ’Π°Ρ˜Π° који су инсталирани. Ова листа сС Π½Π°Π»Π°Π·ΠΈ слСдСћС Ρƒ имСнском простору. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Π΄Π° овај Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜ Ρ‚Ρ€Π°Π³Π° ΠΏΠΎΡ‚ΠΈΡ‡Π΅ ΠΈΠ· ДСвицСЛист/0, ΡˆΡ‚ΠΎ јС Π½ΡƒΠ»Ρ‚ΠΈ ΡƒΡ€Π΅Ρ’Π°Ρ˜ инсталиран Ρƒ Ρ‡Π²ΠΎΡ€Ρƒ.

Π‘Π»Π΅Π΄Π΅Ρ›ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠ·, $ ns3 :: PointToPointNetDevice, Π³ΠΎΠ²ΠΎΡ€ΠΈ који ΡƒΡ€Π΅Ρ’Π°Ρ˜ јС Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡ˜ΠΈ Π½ΡƒΠ»Π°: листа ΡƒΡ€Π΅Ρ’Π°Ρ˜Π° Π½ΡƒΠ»Ρ‚Π΅ Ρ‚Π°Ρ‡ΠΊΠ΅. ΠŸΠΎΠ΄ΡΠ΅Ρ‚ΠΈΠΌΠΎ сС Π΄Π° јС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π° + ΠΏΡ€ΠΎΠ½Π°Ρ’Π΅Π½Π° Ρƒ Ρ€Π΅Π΄Ρƒ 0 Π·Π½Π°Ρ‡ΠΈΠ»Π° Π΄Π° јС Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Π΄ΠΎΠ΄Π°Ρ‚ Ρƒ Ρ€Π΅Π΄ Π·Π° прСнос ΡƒΡ€Π΅Ρ’Π°Ρ˜Π°. Ово сС ΠΎΠ³Π»Π΅Π΄Π° Ρƒ послСдњим сСгмСнтима β€žΠΏΡƒΡ‚Π°ΡšΠ° ΡΡ‚Π°Π·Π΅β€œ: Π’ΠΊΠšΡƒΠ΅ΡƒΠ΅/Π•Π½ΠΊΡƒΠ΅ΡƒΠ΅.

ΠŸΡ€Π΅ΠΎΡΡ‚Π°Π»Π΅ ΡΠ΅ΠΊΡ†ΠΈΡ˜Π΅ Ρƒ ΠΏΡ€Π°Ρ›Π΅ΡšΡƒ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΡƒΠ΄Ρƒ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΈ. Π Π΅Π΄ΠΎΠ²ΠΈ 3-4 ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°Ρ˜Ρƒ Π΄Π° јС ΠΏΠ°ΠΊΠ΅Ρ‚ инкапсулиран Ρƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΠ΄ Ρ‚Π°Ρ‡ΠΊΠ΅ Π΄ΠΎ Ρ‚Π°Ρ‡ΠΊΠ΅. Π Π΅Π΄ΠΎΠ²ΠΈ 5-7 ΠΏΠΎΠΊΠ°Π·ΡƒΡ˜Ρƒ Π΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠΌΠ° Π·Π°Π³Π»Π°Π²Ρ™Π΅ ИП4 Π²Π΅Ρ€Π·ΠΈΡ˜Π΅ ΠΈ Π΄Π° ΠΏΠΎΡ‚ΠΈΡ‡Π΅ ΠΈΠ· ИП адрСсС 10.1.1.1 ΠΈ намСњСн Π·Π° 10.1.1.2. Π Π΅Π΄ΠΎΠ²ΠΈ 8-9 ΠΏΠΎΠΊΠ°Π·ΡƒΡ˜Ρƒ Π΄Π° овај ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠΌΠ° Π£Π”ΠŸ Π·Π°Π³Π»Π°Π²Ρ™Π΅ ΠΈ Π½Π° ΠΊΡ€Π°Ρ˜Ρƒ Ρ€Π΅Π΄ 10 ΠΏΠΎΠΊΠ°Π·ΡƒΡ˜Π΅ Π΄Π° јС корисни Ρ‚Π΅Ρ€Π΅Ρ‚ ΠΎΡ‡Π΅ΠΊΠΈΠ²Π°Π½ΠΈΡ… 1024 Π±Π°Ρ˜Ρ‚Π°.

Π‘Π»Π΅Π΄Π΅Ρ›ΠΈ Ρ€Π΅Π΄ Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΏΠΎΠΊΠ°Π·ΡƒΡ˜Π΅ Π΄Π° јС исти ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ·Π²ΡƒΡ‡Π΅Π½ ΠΈΠ· Ρ€Π΅Π΄Π° Π·Π° прСнос Π½Π° истом Ρ‡Π²ΠΎΡ€Ρƒ.

Π’Ρ€Π΅Ρ›ΠΈ Ρ€Π΅Π΄ Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΏΠΎΠΊΠ°Π·ΡƒΡ˜Π΅ Π΄Π° јС ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΠΎ ΠΌΡ€Π΅ΠΆΠ½ΠΈ ΡƒΡ€Π΅Ρ’Π°Ρ˜ Π½Π° хосту Π΅Ρ…ΠΎ сСрвСра. ΠŸΡ€Π΅Π½Π΅ΠΎ сам Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜ Ρƒ наставку.

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

Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° јС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ° сада Ρ€ ΠΈ Π΄Π° јС Π²Ρ€Π΅ΠΌΠ΅ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅ ΠΏΠΎΠ²Π΅Ρ›Π°Π½ΠΎ Π½Π° 2,25732 сСкундС. Ако стС ΠΏΠ°ΠΆΡ™ΠΈΠ²ΠΎ ΠΏΡ€Π°Ρ‚ΠΈΠ»ΠΈ упутство, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈ Π΄Π° стС оставили Π±Ρ€Π·ΠΈΠ½Ρƒ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈ кашњСњС Π²Π΅Π·Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠ½ΠΈΠΌ ΡƒΡ€Π΅Ρ’Π°Ρ˜ΠΈΠΌΠ° Π½Π° ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΈΠΌ врСдностима. Ово Π²Ρ€Π΅ΠΌΠ΅ Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° Π²Π°ΠΌ јС ΠΏΠΎΠ·Π½Π°Ρ‚ΠΎ, ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ стС Π²ΠΈΠ΄Π΅Π»ΠΈ Ρƒ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ΄Π΅Ρ™ΠΊΡƒ.

Унос имСнског простора ΠΈΠ·Π²ΠΎΡ€Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ° (Ρ€Π΅Π΄ 2) јС измСњСн Ρ‚Π°ΠΊΠΎ Π΄Π° ΠΎΠ΄Ρ€Π°ΠΆΠ°Π²Π° Π΄Π° овај Π΄ΠΎΠ³Π°Ρ’Π°Ρ˜ ΠΏΠΎΡ‚ΠΈΡ‡Π΅ ΠΈΠ· Ρ‡Π²ΠΎΡ€Π° 1 (/НодСЛист/1) ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ јС ΠΏΡ€ΠΈΠΌΡ™Π΅Π½ ΠΎΠ΄ странС ΠΈΠ·Π²ΠΎΡ€Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ° (/ΠœΠ°Ρ†Π ΠΊ). Π’Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²Π°ΠΌ Π±ΡƒΠ΄Π΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π»Π°ΠΊΠΎ Π΄Π° ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ ΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΊΡ€ΠΎΠ· Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ˜Ρƒ Π³Π»Π΅Π΄Π°Ρ˜ΡƒΡ›ΠΈ прСосталС Ρ‚Ρ€Π°Π³ΠΎΠ²Π΅ Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ.

5.3.2 ПЦАП Π’Ρ€Π°Ρ†Π΅

нс-3 Π”Π΅Π²ΠΈΡ†Π΅ Π₯СлпСрс сС Ρ‚Π°ΠΊΠΎΡ’Π΅ ΠΌΠΎΠ³Ρƒ користити Π·Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€Π°Ρ›Π΅ΡšΠ° Ρƒ .ΠΏΡ†Π°ΠΏ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ. Акроним ΠΏΡ†Π°ΠΏ (ΠΎΠ±ΠΈΡ‡Π½ΠΎ сС пишС ΠΌΠ°Π»ΠΈΠΌ словима) ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° Ρ…Π²Π°Ρ‚Π°ΡšΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Π·Π°ΠΏΡ€Π°Π²ΠΎ јС АПИ који ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡΠ°ΡšΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ .ΠΏΡ†Π°ΠΏ. ΠΠ°Ρ˜ΠΏΠΎΠΏΡƒΠ»Π°Ρ€Π½ΠΈΡ˜ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ који ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ‡ΠΈΡ‚Π° ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·ΡƒΡ˜Π΅ овај Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ јС ВирСсхарк (Ρ€Π°Π½ΠΈΡ˜Π΅ Π·Π²Π°ΠΎ Π•Ρ‚Ρ…Π΅Ρ€Π΅Π°Π»). ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Ρ‚Ρ€Π°Π³ΠΎΠ²Π° ΡΠ°ΠΎΠ±Ρ€Π°Ρ›Π°Ρ˜Π° који користС овај Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΠΎΠ΄ΡΡ‚ΠΈΡ‡Π΅ΠΌΠΎ корисникС Π΄Π° користС ΠΌΠ½ΠΎΠ³Π΅ доступнС Π°Π»Π°Ρ‚Π΅ Π·Π° Π°Π½Π°Π»ΠΈΠ·Ρƒ ΠΏΡ†Π°ΠΏ Ρ‚Ρ€Π°Π³ΠΎΠ²Π°. Π£ ΠΎΠ²ΠΎΠΌ Π²ΠΎΠ΄ΠΈΡ‡Ρƒ Ρ›Π΅ΠΌΠΎ сС фокусирати Π½Π° глСдањС ΠΏΡ†Π°ΠΏ Ρ‚Ρ€Π°Π³ΠΎΠ²Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ Ρ‚Ρ†ΠΏΠ΄ΡƒΠΌΠΏ.

ΠžΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°ΡšΠ΅ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΏΡ†Π°ΠΏ Π²Ρ€ΡˆΠΈ сС са јСдном линијом ΠΊΠΎΠ΄Π°.

pointToPoint.EnablePcapAll ("myfirst");

НалСпитС овај Ρ€Π΅Π΄ ΠΊΠΎΠ΄Π° послС АБЦИИ ΠΊΠΎΠ΄Π° Π·Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅ који смо ΡƒΠΏΡ€Π°Π²ΠΎ Π΄ΠΎΠ΄Π°Π»ΠΈ сцратцх/мифирст.Ρ†Ρ†. Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° смо прослСдили само стринг "мифирст", Π½Π΅ "мифирст.ΠΏΡ†Π°ΠΏ" ΠΈΠ»ΠΈ Π±ΠΈΠ»ΠΎ ΡˆΡ‚Π° слично. Π’ΠΎ јС Π·Π°Ρ‚ΠΎ ΡˆΡ‚ΠΎ јС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ прСфикс, Π° Π½Π΅ ΠΏΡƒΠ½ΠΎ ΠΈΠΌΠ΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅. Π’ΠΎΠΊΠΎΠΌ ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅, ΠΏΠΎΠΌΠΎΡ›Π½ΠΈΠΊ Ρ›Π΅ Π·Π°ΠΏΡ€Π°Π²ΠΎ ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° Π·Π° сваки ΡƒΡ€Π΅Ρ’Π°Ρ˜ ΠΎΠ΄ Ρ‚Π°Ρ‡ΠΊΠ΅ Π΄ΠΎ Ρ‚Π°Ρ‡ΠΊΠ΅. ИмСна Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Ρ›Π΅ Π±ΠΈΡ‚ΠΈ Π½Π°ΠΏΡ€Π°Π²Ρ™Π΅Π½Π° користСћи прСфикс, Π±Ρ€ΠΎΡ˜ Ρ‡Π²ΠΎΡ€Π°, Π±Ρ€ΠΎΡ˜ ΡƒΡ€Π΅Ρ’Π°Ρ˜Π° ΠΈ суфикс ".ΠΏΡ†Π°ΠΏ'.

Π—Π° наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ скриптС, Π½Π° ΠΊΡ€Π°Ρ˜Ρƒ Ρ›Π΅ΠΌΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ ΠΏΠΎΠ΄ Π½Π°Π·ΠΈΠ²ΠΎΠΌ "мифирст-0-0.ΠΏΡ†Π°ΠΏ"И"мифирст-1-0.ΠΏΡ†Π°ΠΏ", који су ΠΏΡ†Π°ΠΏ Ρ‚Ρ€Π°Π³ΠΎΠ²ΠΈ Π·Π° Ρ‡Π²ΠΎΡ€ 0-ΡƒΡ€Π΅Ρ’Π°Ρ˜ 0 ΠΈ Ρ‡Π²ΠΎΡ€ 1-ΡƒΡ€Π΅Ρ’Π°Ρ˜ 0 рСспСктивно. Када Π΄ΠΎΠ΄Π°Ρ‚Π΅ Π»ΠΈΠ½ΠΈΡ˜Ρƒ ΠΊΠΎΠ΄Π° Π΄Π° бистС ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΠ»ΠΈ ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅ ΠΏΡ†Π°ΠΏ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΈ скрипту Π½Π° ΡƒΠΎΠ±ΠΈΡ‡Π°Ρ˜Π΅Π½ Π½Π°Ρ‡ΠΈΠ½:

$ ./waf --run scratch/myfirst

Ако ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ‚Π΅ Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ највишСг Π½ΠΈΠ²ΠΎΠ° вашС Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π΅, Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π±ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅: АБЦИИ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° мифирст.Ρ‚Ρ€, којС смо ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΎΡƒΡ‡Π°Π²Π°Π»ΠΈ, Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ мифирст-0-0.ΠΏΡ†Π°ΠΏ ΠΈ мифирст-1-0.ΠΏΡ†Π°ΠΏ - Π½ΠΎΠ²Π΅ ΠΏΡ†Π°ΠΏ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ којС смо ΡƒΠΏΡ€Π°Π²ΠΎ гСнСрисали.

Π§ΠΈΡ‚Π°ΡšΠ΅ ΠΈΠ·Π»Π°Π·Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ Ρ‚Ρ†ΠΏΠ΄ΡƒΠΌΠΏ

Π—Π° сада, најлакши Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ†Π°ΠΏ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ јС Π΄Π° користитС Ρ‚Ρ†ΠΏΠ΄ΡƒΠΌΠΏ.

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

На ΡΠΌΠ΅Ρ‚Π»ΠΈΡˆΡ‚Ρƒ мифирст-0-0.ΠΏΡ†Π°ΠΏ (ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΡΠΊΠΈ ΡƒΡ€Π΅Ρ’Π°Ρ˜) ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ Π΄Π° сС Π΅Ρ…ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ ΡˆΠ°Ρ™Π΅ Π½Π°ΠΊΠΎΠ½ 2 сСкундС ΡΠΈΠΌΡƒΠ»Π°Ρ†ΠΈΡ˜Π΅. Ако ΠΏΠΎΠ³Π»Π΅Π΄Π°Ρ‚Π΅ Π΄Ρ€ΡƒΠ³Ρƒ Π΄Π΅ΠΏΠΎΠ½ΠΈΡ˜Ρƒ (мифирст-1-0.ΠΏΡ†Π°ΠΏ), Π²ΠΈΠ΄Π΅Ρ›Π΅Ρ‚Π΅ Π΄Π° јС ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΡ™Π΅Π½ Π½Π° 2,257324 сСкунди. Π’ΠΈΠ΄Π΅Ρ›Π΅Ρ‚Π΅ Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π΄ΡƒΠΌΠΏΡƒ Π΄Π° јС ΠΏΠ°ΠΊΠ΅Ρ‚ Π²Ρ€Π°Ρ›Π΅Π½ Ρƒ 2.257324 сСкунди, ΠΈ ΠΊΠΎΠ½Π°Ρ‡Π½ΠΎ Π΄Π° јС ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΠΎ Π½Π°Π·Π°Π΄ ΠΎΠ΄ странС ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚Π° Ρƒ ΠΏΡ€Π²ΠΎΠΌ Π΄ΡƒΠΌΠΏΡƒ Ρƒ 2.514648 сСкунди.

Π§ΠΈΡ‚Π°ΡšΠ΅ ΠΈΠ·Π»Π°Π·Π° са ВирСсхарком

Ако нистС ΡƒΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ са ВирСсхарк, ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ Π²Π΅Π± Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° са којС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΡƒΠ·Π΅Ρ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Ρƒ: http://www.wireshark.org/. ВирСсхарк јС Π“Π£Π˜ који сС ΠΌΠΎΠΆΠ΅ користити Π·Π° ΠΏΡ€ΠΈΠΊΠ°Π· ΠΎΠ²ΠΈΡ… Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€Π°Ρ›Π΅ΡšΠ°. Ако ΠΈΠΌΠ°Ρ‚Π΅ ВирСсхарк, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚ΠΈ Π±ΠΈΠ»ΠΎ ΠΊΠΎΡ˜Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° ΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Ρ‚ΠΈ ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜ ΠΊΠ°ΠΎ Π΄Π° стС ΡƒΡ…Π²Π°Ρ‚ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠΎΡ›Ρƒ ΡšΡƒΡˆΠΊΠ°Π»Π° Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π΅.

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€