Page 61 - 2577
P. 61

•$ns namtrace-all $nf – цей рядок оповіщає об’єкт-симулятор, що вся інформація, яка
            є результатом компіляції-трасування буде записана в створений файл.
                   Кінцева процедура, яка закриває файл після запису і запускає NAM визначається так:
                   proc finish {} {
                           global ns nf
                           $ns flush-trace
                           close $nf                   – закриття файлу
                           exec nam lab1 &             – запуск NAM
                           exit 0
                   }
                   $ns at 4.0 "finish"   -  це  рядок,  який  запускає  процедуру  finish  після  здійснення
            симуляції впродовж 5 секунд,
                   $ns run – запуск симуляції
                   set n0 [$ns node] – створення вузла, наприклад n0,
                   $ns  duplex-link  $n0  $n1  1Mb  10ms  DropTail  –  створення  дуплексного  режиму
            зв’язку, наприклад між вузлами n0 та n1 на швидкості 1 Мбіт з затримкою 10мс.
                   Як відправний пункт для даних в NS2 виступає UDP-агент або TCP-агент. Різниця
            між  ними  полягає  в  тому,  що  UDP-агент  використовується  при  відправлені  даних  або
            пакетів з постійною швидкістю, а TCP-агент – із зміною швидкістю.
                   Ініціалізуються ці агенти так:
                   UDP-агент:
                   set udp1 [new Agent/UDP]
                   $ns attach-agent $n1 $udp1 – тут n1 – вузол, до якого прикріплюється агент, udp1 –
            назва агента.
                   TCP-агент:
                   set tcp1 [new Agent/TCP]
                   $ns attach-agent $n0 $tcp1 – тут n0 –вузол, до якого прикріплюється агент, tcp1 –
            назва агента.
                   Як приймач, можна використовувати TCPSink-агента, або Null-агента. Різниця між
            ними полягає в тому, що Null -агент, просто отримує пакети повідомлення, а TCPSink-агент
            крім того відправляє назад до джерела ACK-повідомлення, про прийняття TCPSink-агентом
            відправленого пакету. Null-агент використовується як приймач пакетів від UDP-агенту, а
            TCPSink-агент – як приймач пакетів від TCP-агента. Ініціалізовуються ці агенти так:
                   Null-агент:
                   set null1 [new Agent/Null]
                   $ns attach-agent $n3 $null1 - тут n3 – вузол, до якого прикріплюється агент, null1 –
            назва агента.
                   $ns connect $udp1 $null1 – цей рядок потрібен для встановлення зв’язку між UDP-
            агентом та Null-агентом.
                   TCPSink-агент:
                   set TCPSink1 [new Agent/TCPSink]
                   $ns attach-agent $n4 $TCPSink1 – тут n4 – вузол, до якого прикріплюється агент,
            TCPSink1 – назва агента.
                   $ns connect $tcp1 $TCPSink1  –  цей  рядок  потрібен  для  встановлення  зв’язку  між
            TCP-агентом та TCPSink-агентом.
                          Для  відтворення  потоку  даних,  необхідно  створити  джерело,  яке  генерує
            пакети даних. Це можуть бути генератори трафіка CBR або FTP. CBR-генератор (Constant
            Bitrate) створює потік пакетів із постійним розміром і постійною швидкістю. FTP-генератор
            формує  потік  даних  випадковим  чином  і  з  певним  обмеженням  розміру  пакетів,  за
            замовчанням розмір пакетів – 1 Кбайт. Ініціалізовуються ці джерел так:
                          CBR-генератор:
                          set cbr0 [new Application/Traffic/CBR]

                                                           58
   56   57   58   59   60   61   62   63   64   65   66