SlideShare a Scribd company logo
NSG:模擬檔案產生軟體

NSG 簡介與安裝

NSG 是一個專為 ns2 所設計的劇本產生器,目前最新的版本為第二版(NSG2),

和前一版(NSG1)比較起來最大的不同在於 NSG2 除了原本支援的無線網路之

外還支援有線網路的劇本 以下列出 NSG2 主要的功能及支援 ns2 的物件種類 ︰
           ,

1.   產生有線網路及無線網路的劇本(目前尚不支援無線及有線混合的劇本)

2.   支援的 Node 種類︰WirelessNode 及 WiredNode

3.   支援 WirelessNode 的移動設定

4.   支援的 Link 種類︰Duplex-link 及 Simplex-link

5.   Agent 支援(TCP、TCP/Tahoe、TCP/Reno、TCP/Newreno、TCP/Vegas、

     TCPSink、UDP 及 NULL)

6.   支援的 Application 種類:CBR 及 FTP

7.   支援的 Routing protocol 種類︰DSDV、DSR、AODV 及 TORA

8.   支援的 Queue 種類︰DropTail、RED、FQ、DRR、SFQ 及 CBQ

9.   無線網路相關設定

10. 802.11 參數設定(NSG 提供一組 802.11b 的預設參數)


由於 NSG2 是以 Java 撰寫,因此可在任何支援 Java 的平台上執行(如 Windows、

                ,另外 NSG2 是以 Java Jar 檔案的形式來發布,所以 NSG2 本
Linux、Mac OS ...)

身並不需要安裝,只要下載 NSG2 並儲存到電腦中便可透過 Java 來啟動。其下

載網址如下︰


NSG2 下載網址︰http://wushoupong.googlepages.com/nsg


此外,在執行 NSG2 之前必須先確定電腦中裝有 Java Runtime Environment JRE)
                                                (

或 Java SE Development Kit(JDK)
                             ,以 Window 作業系統為例,若要確定電腦中
是否已安裝 Java,可在 DOS 命令列中輸入” java -version” 指令,如果電腦已安

裝過 Java 則螢幕上會顯示出所安裝的 Java 版本(請參考圖 1)。




                      圖 1. 確認電腦中的 Java 版本

如果電腦中尚未安裝過 JRE 或 JDK 也可在昇陽的 Java 網站上下載最新版的 JRE
                    ,

或 JDK,安裝步驟請參考網站的上說明。


昇陽的 JAVA 官方網站︰http://java.sun.com/javase/downloads/index.jsp


要啟動 NSG2 可在 DOS 命令列中切換到 NSG2 程式的存放目錄中(此例中 NSG2

被存放在 C:nsg2目錄中) 輸入”java -jar nsg2.jar”即可(請參考圖 2)
                 ,                                。




                           圖 2. 執行 NSG2


NSG2 的基本概念

利用 NSG2 來產生劇本檔案非常簡單,在設計 NSG2 時便是希望能夠讓使用者以

最自然、最直覺的方式來產生 ns2 劇本檔,因此盡量以「所見即所得」的方式來

設計,也就是說使用者大多能夠直接在畫面上看到 Node 的位置,以及相關的其
他資訊(座標、連線等等...),使用者可在劇本產生後,針對本身的需求自行去

作適當的修改,存檔之後的劇本檔(.tcl)再交由 ns2 去執行即可,因此使用上

非常簡單,如果可以抓住幾個重點,即可輕易的操作 NSG2。


以下將針對幾個 NSG2 的基本概念作簡單的說明,在 NSG2 中,最方便的地方在

於產生無線網路中的 Node 座標,以筆者的經驗來說,撰寫 ns2 的無線網路劇本

檔時必須提供每一個 Node 的座標(包含 x,y,z),為使其產生大量且有規律的

Node,會使劇本檔的撰寫變得相當繁瑣,這也是當初筆者想要自己撰寫一個工

具來協助使用者產生劇本檔的原因,以 NSG2 來產生 Node 的座標是一件相當容

易的事。


使用 NSG2 時,主要分成五個模式,這些模式大多都是依照 ns2 中主要的幾種物

件來設計,各物件之間的關係可參考圖 3。要切換各個模式,只要按下畫面上方

的切換鈕即可,NSG2 中包含以下五種模式:

1.   Hand mode

2.   Node mode

3.   Link mode(只適用於有線網路劇本)

4.   Agent mode

5.   Application mode



                        Application CBR, FTP ...        Application




                          Agent     TCP, UDP ...          Agent




                          Node             Link           Node
                                      Complex, Duplex



                         圖 3. NSG2 中的主要物件關係
Hand mode

在 Hand mode 模式下的功能最為單純,主要是讓使用者可以調整要觀看的範圍。

當建置一個大型的劇本時,可能會包含大量的 Node,畫面可能容納不下所有的

物件,這時可利用 Hand mode 來調整要觀看的範圍,使用時只要按住滑鼠的左

鍵,然後拖曳即可。


Node mode

在 Node mode 模式下,使用者可配置 Node 的位置,如果是有線網路劇本,那麼

Node 的座標並不是很重要,主要是設定其相對的位置罷了,然而 NSG 仍會根據

所設定的 Node 相關位置來配置在 NAM 中 Node 的位置。


在設計無線網路劇本時,Node 的座標就變的非常重要,因為每一個 Node 的座標

將會影響到傳輸範圍、訊號強度以及 Routing protocol 等,所以在建置無線網路

劇本時,NSG2 會在畫面下方顯示出座標的資訊作為參考。並且 NSG 會假設無

線網路 Node 的傳輸距離為 250m(實際模擬時的有效傳輸距離則根據所設定的

無線網路參數來決定),所以當二個 Node 的傳輸距離在 250m 以內時,NSG2 會

在二者之間畫一條連線,使用者可以透過滑鼠點選 Node 並拖曳來調整所要擺放

的 Node 位置。除此之外,在 Node mode 底下還提供一次產生多個 Node 的方式,

其中包含了:Chain 垂直和水平、Grid(n×n)及 Random,使用者只需設定 Node

和 Node 之間的距離,即可輕鬆產生大量且規律的網路拓撲。


Link mode

Link mode 只適用於有線網路的劇本,無線網路中不需要該項設定,在 Link mode

中可用來設定 Node 和 Node 間的鏈路,例如 Simplex-link 或 Duplex-link,並且設

定相關的參數(傳輸速度、佇列的種類等)。使用時先設定屬性,然後用滑鼠選

取要連結的二個 Node 即可,設定好後,也可利用滑鼠右鍵來修改鏈路的參數或

刪除鏈路。
Agent mode

在 Agent mode 中,使用者可設定要附加在 Node 上的通訊協定(在 ns2 中稱為

Agent),目前 NSG2 主要支援 TCP(包含多種變形)和 UDP 通訊協定,其設定

方式很簡單,只要在要附加的 Node 上按一下滑鼠左鍵,然後再點選要擺放 Agent

的位置即可,Agent 的重點在於附加在哪一個 Node 上而不是它的位置,位置的

設定只是為了畫面的顯示罷了,所以使用者可以將位置擺放在清楚容易辨識的位

置即可。


在 Agent mode 除了設定 Agent 所屬的 Node 之外,還可以設定傳送端和接收端的

相關資訊,使用時只要選取二個要配對的 Agent 即可,一般來說在 ns2 中 TCP

Agent 必須要對應到 TCP-Sink Agent,而 UDP Agent 則是對應到 Null Agent,其

中 TCP Agent 和 UDP Agent 便是傳送端,而 TCP-Sink Agent 和 Null Agent 則分別

是 TCP Agent 和 UDP Agent 的接收端。在設定傳送端和接收端時要注意配對的問

題,例如將二個 TCP Agent 配對起來,或是將一個 TCP Agent 和一個 UDP Agent

配對起來都是沒有意義的。


當設定好 Agent 之後,也可以利用滑鼠右鍵來修改修改 Agent 的參數或刪除

Agent,有些細部的參數在產生 Agent 時無法直接設定,必須要先建立好 Agent,

再利用滑鼠右鍵的彈出式選單來設定,例如 TCP 的 congestion window 與 packet

size 等相關設定。


Application mode

在 Application mode 模式底下可以用來設定最上層的應用程式,例如 CBR 與

FTP,設定時只要在要附加的 Agent 上按一下滑鼠左鍵,然後再點選要擺放

Application 的位置即可,同樣的 Application 的重點在於附加的 Agent 而不是在於

其位置,所以位置的設定只要在清楚容易辨識的位置即可。


和設定 Agent 時一樣,當設定好 Application 之後,可以利用滑鼠右鍵來修改
Application 的參數或刪除 Application 有些細部的參數在產生 Application 時無法
                              ,

直接設定,必須要先建立好 Application,再利用滑鼠右鍵的彈出式選單來設定,

例如 CBR 的 Transmission rate 與 packet size 等相關設定。


Parameters

除了上述五種模式之外,另外還有參數設定的功能,在有線網路劇本時,參數的

設定包含模擬時間和 Trace 檔的名稱(包含 NAM 的 Trace 檔)
                                     ,而在建立無線網

路劇本時,則另外多了無線網路(Wireless)及頻道特性(Channel)的相關設定。

比較值得一提的是,在頻道特性的相關設定中,NSG2 提供了一組模擬 802.11b

的參考值,然而在預設的情況下並不會啟用,如果使用者要啟用這些設定,則選

取畫面左邊的方塊即可,當然,也可以根據模擬的需求設定新的值。


當一切都設定完畢之後,按下 TCL 按鈕即可產生 TCL 劇本檔,使用者這時候還

可以自行在劇本檔上作一些調整,調整完畢後便可以將檔案儲存並利用 ns2 去執

行。


最後,有幾點注意的事項:

1.   當設定參數時,若是必要的參數則使用者一定要提供,否則 NSG 會跳出警

     告訊息;若是非必要參數,則可以輸入 -1,若參數設定為 -1 那麼在產生

     TCL 劇本檔時 NSG 將忽略該參數 另外 NSG 也不會去檢查參數的正確性,
                        。  ,

     例如輸入一個佇列的大小為 -50 則 NSG 會「忠實的」將該值寫到劇本檔當

     中。

2.   當刪除物件時,該物件所屬的相關物件也會一併被刪除,例如刪除一個

     Node,則所有連到該 Node 的 Link 及所有附加到該 Node 的 Agent 都會被刪

     除,而當 Agent 被刪除時,所有附加在該 Agent 的 Application 也會一併被

     刪除。

3.   若設定 Agent 時,沒有設定傳送端(或接收端)
                             ,則在產生 TCL 劇本檔時該
Agent 會被忽略,因為就算將該 Agent 的設定加到劇本檔當中模擬時也不會

     有效果。


用 NSG 來產生有線網路劇本

接著筆者將以一個簡單的範例來介紹如何在 NSG 中產生一個有線網路的劇本

檔,模擬的環境如圖 4 所示。

      cbr0   udp0                                                             null2


                    n0                                                   n4
                         2 Mbps, 10 ms                   2 Mbps, 10 ms
                                         1 Mbps, 20 ms
                              n2                              n3

                         2 Mbps, 10 ms                   2 Mbps, 10 ms
                    n1                                                   n5


      cbr1   udp1                                                             null3



                              圖 4. 有線網路拓撲


在這一個模擬環境中共放置六個 Node,條件如下:


1.   n0 和 n4 之間建立一個以 UDP 為通訊協定的 CBR 連線(標示為 cbr0)。


2.   n1 和 n5 之間建立一個以 UDP 為通訊協定的 CBR 連線(標示為 cbr1)。


3.   n0-n2、n1-n2、n3-n4、n3-n5 間的頻寬為 2Mbps,延遲時間設定為 10ms。


4.   n2-n3 間的頻寬則設為 1Mbps,延遲時間設定為 20ms。


5.   所有鏈路皆為 Duplex-link、佇列的管理機制都是採用 DropTail,且佇列長度

     (Queue limit)皆設定為 10 個封包長度。


在應用程式設定方面:


1.   cbr0 的封包大小設定為 1500bytes,並以 1Mbps 的傳送速度來發送資料,在

     模擬時間為 1 秒時開始送資料,在第 4 秒時結束傳送。
2.   cbr1 的封包大小亦設定為 1500bytes,並以 1Mbps 的傳送速度來發送資料,

     並在模擬時間為 2 秒時開始送資料,在第 3 秒時結束傳送。


3.   整個模擬的時間設定為 5 秒。


注意:由於 ns2 的 UDP 通訊協定預設的封包大小為 1000bytes,也就是說,當封

      包大小超過 1000bytes 時 UDP 便會將封包切割為較小的片斷來傳送

      (Segmentation)
                   ,所以在設定時需特別指定 UDP 的封包大小為 1500bytes

      以避免上層的應用程式封包被 UDP 所切割。


在這個實驗中,可以發現二個 cbr 連線都會通過 n2-n3 這條鏈路,且這條鏈路的

頻寬為 1Mbps,然而 cbr0 的傳送速度為 1Mbps,這會讓整個 n2-n3 頻寬都被 cbr0

的封包所占滿,因此當 cbr1 也開始傳輸之後,將會發現 n2-n3 的流量開始變的擁

擠,經過一段時間之後,當 n3 的佇列被塞滿時,就會開始有一些封包在 n3 被丟

棄,這樣的現象一直持續到 cbr1 結束傳送之後。


實際操作


Step1:新增一個有線網路的劇本,使用者可以透過 Scenario→New wired scenario

      來建立(或按下快速鍵 Ctrl+W),建立後如圖 5 所示,在預設的情況下

      NSG 會切換到 Node mode(Node 按鈕會變成灰色)
                                     ,也就是說使用者一開

      始便可建立 Node。
圖 5. 新增一個有線網路的劇本


Step2:開始建立劇本所需要的 Node,利用滑鼠直接點選想要擺放 Node 的位置

    以建立 Node,在此範例中建立的六個 Node 其相對位置如圖 6,可透過調

    整畫面右下方的橫桿顯示不同的比例。
圖 6 : 設定好六個 node 相關位置


Step3:設定 Node 之間的鏈路,首先切換到 Link mode(按下 Link 按鈕或快速鍵

    Ctrl+3),然後依序將下列的參數設定好。

    1.   Link-type:duplex-link

    2.   Queue type:DropTail

    3.   Capacity:2Mbps

    4.   Propagation delay:10ms

    5.   Queue size:10


Step4:以滑鼠點選的方式將 n0-n2、n1-n2、n3-n4 及 n3-n5 之間的鏈路建立起來,

    接著將 Capacity 設定為 1Mbps,Propagation delay 設定為 20ms,然後再建

    立 n2-n3 間的鏈路,建立好後如圖 7 所示,如果建立的過程中有參數沒設

    定好,也可以在鏈路上按下滑鼠右鍵進行修改。
圖 7 : 設定好六個 node 之間的鏈路


Step5:接著切換到 Agent mode(按下 Agent 按鈕或快速鍵 Ctrl+4)來進行通訊

    協定的設定。首先選取 Agent type 為 UDP 並設定封包大小(Packet size)

    為 1500 bytes,並在 n0 與 n1 上各建立一個 Agent,接著選取 Agent type

    為 NULL,並在 n4、n5 上各建立一個 NULL Agent。建立好 Agent 之後還

    要繼續設定 Agent 之間的連線,其設定的方式是用滑鼠選取要建立連線

    的二個 Agent,在此分別在(udp0、null2)和(udp1、null3)之間建立連

    線,建立好之後如圖 8 所示。
圖 8 : 建立 Agents


Step6:切換到 Application mode(按下 Application 按鈕或快速鍵 Ctrl+5)來進行

     上層的應用程式設定,將 Application type 設定為 CBR 並設定啟動時間

     (Start time) 1 秒 結束時間
                 為   ,    (Stop time) 4 秒 封包大小為 1500bytes,
                                     為   ,

     傳輸速度為 1Mbps,然後在 n0 上建立一個 CBR Application,接著將啟動

     時間(Start time)為 2 秒,結束時間(Stop time)為 3 秒,並在 n1 上再

     建立一個 CBR Application,如圖 9。
圖 9 : 建立 Application


Step7:最後,設定模擬的參數(按下 Parameters 鈕即可或快速鍵 Ctrl+6),在這

    個例子中,因為是建立有線網路的劇本,所以參數的部份只需要將模擬

    時間(Simulation time)設定為 5.0,並且指定產生 Trace 檔案名稱即可,

    如圖 10。




                  圖 10: 設定模擬參數


Step8:當一切都設定完畢之後按下 TCL 按鈕(快速鍵 Ctrl+7)即可產生劇本檔
了,每一次產生的劇本檔都會被建立在一個獨立的視窗,使用者這時候

      還可以根據自己的需求去做修正,如圖 11 所示。




                          圖 11. 產生劇本檔


Step9:按下 Save 按鈕(快速鍵 Alt+S)將產生出來的 TCL 檔儲存起來之後,便

      可交由 ns2 開始進行模擬,產生出來的劇本檔如下 。


# This script is created by NSG2 beta1
# <http://wushoupong.googlepages.com/nsg>

#===================================
#    Simulation parameters setup
#===================================
set val(stop) 5.0                      ;# time of simulation end

#===================================
#       Initialization
#===================================
#Create a ns simulator
set ns [new Simulator]

#Open the NS trace file
set tracefile [open out.tr w]
$ns trace-all $tracefile
#Open the NAM trace file
set namfile [open out.nam w]
$ns namtrace-all $namfile

#===================================
#       Nodes Definition
#===================================
#Create 6 nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]

#===================================
#       Links Definition
#===================================
#Createlinks between nodes
$ns duplex-link $n0 $n2 2.0Mb 10ms DropTail
$ns queue-limit $n0 $n2 10
$ns duplex-link $n2 $n1 2.0Mb 10ms DropTail
$ns queue-limit $n2 $n1 10
$ns duplex-link $n4 $n3 2.0Mb 10ms DropTail
$ns queue-limit $n4 $n3 10
$ns duplex-link $n3 $n5 2.0Mb 10ms DropTail
$ns queue-limit $n3 $n5 10
$ns duplex-link $n2 $n3 1.0Mb 20ms DropTail
$ns queue-limit $n2 $n3 10

#Give node position (for NAM)
$ns duplex-link-op $n0 $n2 orient   right-down
$ns duplex-link-op $n2 $n1 orient   left-down
$ns duplex-link-op $n4 $n3 orient   left-down
$ns duplex-link-op $n3 $n5 orient   right-down
$ns duplex-link-op $n2 $n3 orient   right

#===================================
#       Agents Definition
#===================================
#Setup a UDP connection
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
set null2 [new Agent/Null]
$ns attach-agent $n4 $null2
$ns connect $udp0 $null2
$udp0 set packetSize_ 1500

#Setup a UDP connection
set udp1 [new Agent/UDP]
$ns attach-agent $n1 $udp1
set null3 [new Agent/Null]
$ns attach-agent $n5 $null3
$ns connect $udp1 $null3
$udp1 set packetSize_ 1500

#===================================
#       Applications Definition
#===================================
#Setup a CBR Application over UDP connection
set cbr0 [new Application/Traffic/CBR]
$cbr0 attach-agent $udp0
$cbr0 set packetSize_ 1500
$cbr0 set rate_ 1.0Mb
$cbr0 set random_ null
$ns at 1.0 "$cbr0 start"
$ns at 4.0 "$cbr0 stop"

#Setup a CBR Application over UDP connection
set cbr1 [new Application/Traffic/CBR]
$cbr1 attach-agent $udp1
$cbr1 set packetSize_ 1500
$cbr1 set rate_ 1.0Mb
$cbr1 set random_ null
$ns at 2.0 "$cbr1 start"
$ns at 3.0 "$cbr1 stop"

#===================================
#       Termination
#===================================
#Define a 'finish' procedure
proc finish {} {
   global ns tracefile namfile
   $ns flush-trace
   close $tracefile
   close $namfile
   exec nam out.nam &
   exit 0
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "finish"
$ns at $val(stop) "puts "done" ; $ns halt"
$ns run


NSG 所產生出來的劇本檔會自動啟動 NAM 來呈現模擬的過程,如果不想讓

NAM 啟動可在 NSG 中參數設定時,將 NAM File 選項設定為-1,則 NSG 便不會

將啟動 NAM 的指令寫入到劇本檔當中。圖 12 為 NAM 啟動的畫面,可以看出

在模擬時間為 2.1 秒時,n2 因同時湧入太多封包而發生封包被丟棄現象。
圖 12

以下截取出 Trace 檔的部份內容,由 Trace 檔內容也可以觀察到封包被丟棄的現

象(d 代表 drop)。
前略
r 2.12 3 5 cbr 1500 ------- 0 1.0 5.0 2 88
r 2.12 0 2 cbr 1500 ------- 0 0.0 4.0 92 101
+ 2.12 2 3 cbr 1500 ------- 0 0.0 4.0 92 101
d 2.12 2 3 cbr 1500 ------- 0 0.0 4.0 92 101
- 2.12 2 3 cbr 1500 ------- 0 1.0 5.0 4 92
r 2.124 1 2 cbr 1500 ------- 0 1.0 5.0 9 102
+ 2.124 2 3 cbr 1500 ------- 0 1.0 5.0 9 102
r 2.128 2 3 cbr 1500 ------- 0 1.0 5.0 3 90
+ 2.128 3 5 cbr 1500 ------- 0 1.0 5.0 3 90
- 2.128 3 5 cbr 1500 ------- 0 1.0 5.0 3 90
+ 2.128 0 2 cbr 1500 ------- 0 0.0 4.0 94 105
- 2.128 0 2 cbr 1500 ------- 0 0.0 4.0 94 105
+ 2.132 1 2 cbr 1500 ------- 0 1.0 5.0 11 106
- 2.132 1 2 cbr 1500 ------- 0 1.0 5.0 11 106
r 2.132 3 4 cbr 1500 ------- 0 0.0 4.0 86 89
r 2.132 0 2 cbr 1500 ------- 0 0.0 4.0 93 103
+ 2.132 2 3 cbr 1500 ------- 0 0.0 4.0 93 103
d 2.132 2 3 cbr 1500 ------- 0 0.0 4.0 93 103
- 2.132 2 3 cbr 1500 ------- 0 0.0 4.0 88 93
r 2.136 1 2 cbr 1500 ------- 0 1.0 5.0 10 104
+ 2.136 2 3 cbr 1500 ------- 0 1.0 5.0 10 104
略

More Related Content

PPTX
前端本地应用程序网络
PPTX
Cassandra运维之道
PDF
可靠分布式系统基础 Paxos的直观解释
PPTX
Analysis of Adobe's RTMFP Protocol
PPT
Exodus重构和向apollo迁移
PDF
NS2 Projects for Final Year Students, MANET, VANET, Ad-Hoc Networks...
PPTX
Openstack neutron 原理详解
PPT
Bluemix Node-Red Part II
前端本地应用程序网络
Cassandra运维之道
可靠分布式系统基础 Paxos的直观解释
Analysis of Adobe's RTMFP Protocol
Exodus重构和向apollo迁移
NS2 Projects for Final Year Students, MANET, VANET, Ad-Hoc Networks...
Openstack neutron 原理详解
Bluemix Node-Red Part II

Similar to Network Simulator Generator TCL 2.1 (20)

PDF
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
PDF
路由器配置手册
PDF
Corega CG-WLAPGMN Manual
DOC
Mysql proxy+mysql-mmm
PDF
Technotrend
PPT
Tcpip
PPT
8 集群
PDF
Manual
PDF
20170415- 智慧空調通訊系統實務_柯大
PPTX
大鱼架构演进
PPTX
181201_CoAP_coding365
PPT
智慧家庭 簡報
PPT
Ccns 網路基礎概論
PDF
上位机发送FINS UDP命令读写NJ数据.pdf
PDF
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
PPT
网管会 一些基础知识
PDF
云计算 系统实例与研究现状
PDF
使用Javascript及HTML5打造協同運作系統
PPT
Hadoop学习总结
KEY
ZeroMQ简介
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
路由器配置手册
Corega CG-WLAPGMN Manual
Mysql proxy+mysql-mmm
Technotrend
Tcpip
8 集群
Manual
20170415- 智慧空調通訊系統實務_柯大
大鱼架构演进
181201_CoAP_coding365
智慧家庭 簡報
Ccns 網路基礎概論
上位机发送FINS UDP命令读写NJ数据.pdf
Dbabc.net 利用heartbeat + drbd搭建my sql高可用环境
网管会 一些基础知识
云计算 系统实例与研究现状
使用Javascript及HTML5打造協同運作系統
Hadoop学习总结
ZeroMQ简介
Ad

Recently uploaded (20)

PPTX
3分钟读懂诺里奇艺术大学毕业证NUA毕业证学历认证
PPTX
3分钟读懂纽曼大学毕业证Newman毕业证学历认证
PPTX
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
PDF
黑客出手,分数我有!安全可靠的技术支持,让你的GPA瞬间提升,留学之路更加顺畅!【微信:viphuzhao】
PPTX
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
PPTX
3分钟读懂贝尔法斯特女王大学毕业证QUB毕业证学历认证
PPTX
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
PPTX
3分钟读懂伦敦商学院毕业证LBS毕业证学历认证
PPTX
3分钟读懂南安普顿大学毕业证Soton毕业证学历认证
PPTX
3分钟读懂索尔福德大学毕业证Salford毕业证学历认证
PDF
01_Course_Introduction(20210916課後更新).pdf
PPTX
学校原版卡普顿大学毕业证CBU毕业证原版一比一
PPTX
学校原版不列颠哥伦比亚大学毕业证UBC毕业证原版一比一
PPTX
3分钟读懂皇家艺术学院毕业证RCA毕业证学历认证
PPTX
ONU and OLT from Baudcom Jenny training PPT
PDF
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
PPTX
学校原版埃默里大学毕业证Emory毕业证原版一比一
PPTX
模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板
PPTX
3分钟读懂曼彻斯特城市大学毕业证MMU毕业证学历认证
PPTX
学校原版明尼苏达大学毕业证UMN毕业证原版一比一
3分钟读懂诺里奇艺术大学毕业证NUA毕业证学历认证
3分钟读懂纽曼大学毕业证Newman毕业证学历认证
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
黑客出手,分数我有!安全可靠的技术支持,让你的GPA瞬间提升,留学之路更加顺畅!【微信:viphuzhao】
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
3分钟读懂贝尔法斯特女王大学毕业证QUB毕业证学历认证
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
3分钟读懂伦敦商学院毕业证LBS毕业证学历认证
3分钟读懂南安普顿大学毕业证Soton毕业证学历认证
3分钟读懂索尔福德大学毕业证Salford毕业证学历认证
01_Course_Introduction(20210916課後更新).pdf
学校原版卡普顿大学毕业证CBU毕业证原版一比一
学校原版不列颠哥伦比亚大学毕业证UBC毕业证原版一比一
3分钟读懂皇家艺术学院毕业证RCA毕业证学历认证
ONU and OLT from Baudcom Jenny training PPT
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
学校原版埃默里大学毕业证Emory毕业证原版一比一
模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板
3分钟读懂曼彻斯特城市大学毕业证MMU毕业证学历认证
学校原版明尼苏达大学毕业证UMN毕业证原版一比一
Ad

Network Simulator Generator TCL 2.1

  • 1. NSG:模擬檔案產生軟體 NSG 簡介與安裝 NSG 是一個專為 ns2 所設計的劇本產生器,目前最新的版本為第二版(NSG2), 和前一版(NSG1)比較起來最大的不同在於 NSG2 除了原本支援的無線網路之 外還支援有線網路的劇本 以下列出 NSG2 主要的功能及支援 ns2 的物件種類 ︰ , 1. 產生有線網路及無線網路的劇本(目前尚不支援無線及有線混合的劇本) 2. 支援的 Node 種類︰WirelessNode 及 WiredNode 3. 支援 WirelessNode 的移動設定 4. 支援的 Link 種類︰Duplex-link 及 Simplex-link 5. Agent 支援(TCP、TCP/Tahoe、TCP/Reno、TCP/Newreno、TCP/Vegas、 TCPSink、UDP 及 NULL) 6. 支援的 Application 種類:CBR 及 FTP 7. 支援的 Routing protocol 種類︰DSDV、DSR、AODV 及 TORA 8. 支援的 Queue 種類︰DropTail、RED、FQ、DRR、SFQ 及 CBQ 9. 無線網路相關設定 10. 802.11 參數設定(NSG 提供一組 802.11b 的預設參數) 由於 NSG2 是以 Java 撰寫,因此可在任何支援 Java 的平台上執行(如 Windows、 ,另外 NSG2 是以 Java Jar 檔案的形式來發布,所以 NSG2 本 Linux、Mac OS ...) 身並不需要安裝,只要下載 NSG2 並儲存到電腦中便可透過 Java 來啟動。其下 載網址如下︰ NSG2 下載網址︰http://wushoupong.googlepages.com/nsg 此外,在執行 NSG2 之前必須先確定電腦中裝有 Java Runtime Environment JRE) ( 或 Java SE Development Kit(JDK) ,以 Window 作業系統為例,若要確定電腦中
  • 2. 是否已安裝 Java,可在 DOS 命令列中輸入” java -version” 指令,如果電腦已安 裝過 Java 則螢幕上會顯示出所安裝的 Java 版本(請參考圖 1)。 圖 1. 確認電腦中的 Java 版本 如果電腦中尚未安裝過 JRE 或 JDK 也可在昇陽的 Java 網站上下載最新版的 JRE , 或 JDK,安裝步驟請參考網站的上說明。 昇陽的 JAVA 官方網站︰http://java.sun.com/javase/downloads/index.jsp 要啟動 NSG2 可在 DOS 命令列中切換到 NSG2 程式的存放目錄中(此例中 NSG2 被存放在 C:nsg2目錄中) 輸入”java -jar nsg2.jar”即可(請參考圖 2) , 。 圖 2. 執行 NSG2 NSG2 的基本概念 利用 NSG2 來產生劇本檔案非常簡單,在設計 NSG2 時便是希望能夠讓使用者以 最自然、最直覺的方式來產生 ns2 劇本檔,因此盡量以「所見即所得」的方式來 設計,也就是說使用者大多能夠直接在畫面上看到 Node 的位置,以及相關的其
  • 3. 他資訊(座標、連線等等...),使用者可在劇本產生後,針對本身的需求自行去 作適當的修改,存檔之後的劇本檔(.tcl)再交由 ns2 去執行即可,因此使用上 非常簡單,如果可以抓住幾個重點,即可輕易的操作 NSG2。 以下將針對幾個 NSG2 的基本概念作簡單的說明,在 NSG2 中,最方便的地方在 於產生無線網路中的 Node 座標,以筆者的經驗來說,撰寫 ns2 的無線網路劇本 檔時必須提供每一個 Node 的座標(包含 x,y,z),為使其產生大量且有規律的 Node,會使劇本檔的撰寫變得相當繁瑣,這也是當初筆者想要自己撰寫一個工 具來協助使用者產生劇本檔的原因,以 NSG2 來產生 Node 的座標是一件相當容 易的事。 使用 NSG2 時,主要分成五個模式,這些模式大多都是依照 ns2 中主要的幾種物 件來設計,各物件之間的關係可參考圖 3。要切換各個模式,只要按下畫面上方 的切換鈕即可,NSG2 中包含以下五種模式: 1. Hand mode 2. Node mode 3. Link mode(只適用於有線網路劇本) 4. Agent mode 5. Application mode Application CBR, FTP ... Application Agent TCP, UDP ... Agent Node Link Node Complex, Duplex 圖 3. NSG2 中的主要物件關係
  • 4. Hand mode 在 Hand mode 模式下的功能最為單純,主要是讓使用者可以調整要觀看的範圍。 當建置一個大型的劇本時,可能會包含大量的 Node,畫面可能容納不下所有的 物件,這時可利用 Hand mode 來調整要觀看的範圍,使用時只要按住滑鼠的左 鍵,然後拖曳即可。 Node mode 在 Node mode 模式下,使用者可配置 Node 的位置,如果是有線網路劇本,那麼 Node 的座標並不是很重要,主要是設定其相對的位置罷了,然而 NSG 仍會根據 所設定的 Node 相關位置來配置在 NAM 中 Node 的位置。 在設計無線網路劇本時,Node 的座標就變的非常重要,因為每一個 Node 的座標 將會影響到傳輸範圍、訊號強度以及 Routing protocol 等,所以在建置無線網路 劇本時,NSG2 會在畫面下方顯示出座標的資訊作為參考。並且 NSG 會假設無 線網路 Node 的傳輸距離為 250m(實際模擬時的有效傳輸距離則根據所設定的 無線網路參數來決定),所以當二個 Node 的傳輸距離在 250m 以內時,NSG2 會 在二者之間畫一條連線,使用者可以透過滑鼠點選 Node 並拖曳來調整所要擺放 的 Node 位置。除此之外,在 Node mode 底下還提供一次產生多個 Node 的方式, 其中包含了:Chain 垂直和水平、Grid(n×n)及 Random,使用者只需設定 Node 和 Node 之間的距離,即可輕鬆產生大量且規律的網路拓撲。 Link mode Link mode 只適用於有線網路的劇本,無線網路中不需要該項設定,在 Link mode 中可用來設定 Node 和 Node 間的鏈路,例如 Simplex-link 或 Duplex-link,並且設 定相關的參數(傳輸速度、佇列的種類等)。使用時先設定屬性,然後用滑鼠選 取要連結的二個 Node 即可,設定好後,也可利用滑鼠右鍵來修改鏈路的參數或 刪除鏈路。
  • 5. Agent mode 在 Agent mode 中,使用者可設定要附加在 Node 上的通訊協定(在 ns2 中稱為 Agent),目前 NSG2 主要支援 TCP(包含多種變形)和 UDP 通訊協定,其設定 方式很簡單,只要在要附加的 Node 上按一下滑鼠左鍵,然後再點選要擺放 Agent 的位置即可,Agent 的重點在於附加在哪一個 Node 上而不是它的位置,位置的 設定只是為了畫面的顯示罷了,所以使用者可以將位置擺放在清楚容易辨識的位 置即可。 在 Agent mode 除了設定 Agent 所屬的 Node 之外,還可以設定傳送端和接收端的 相關資訊,使用時只要選取二個要配對的 Agent 即可,一般來說在 ns2 中 TCP Agent 必須要對應到 TCP-Sink Agent,而 UDP Agent 則是對應到 Null Agent,其 中 TCP Agent 和 UDP Agent 便是傳送端,而 TCP-Sink Agent 和 Null Agent 則分別 是 TCP Agent 和 UDP Agent 的接收端。在設定傳送端和接收端時要注意配對的問 題,例如將二個 TCP Agent 配對起來,或是將一個 TCP Agent 和一個 UDP Agent 配對起來都是沒有意義的。 當設定好 Agent 之後,也可以利用滑鼠右鍵來修改修改 Agent 的參數或刪除 Agent,有些細部的參數在產生 Agent 時無法直接設定,必須要先建立好 Agent, 再利用滑鼠右鍵的彈出式選單來設定,例如 TCP 的 congestion window 與 packet size 等相關設定。 Application mode 在 Application mode 模式底下可以用來設定最上層的應用程式,例如 CBR 與 FTP,設定時只要在要附加的 Agent 上按一下滑鼠左鍵,然後再點選要擺放 Application 的位置即可,同樣的 Application 的重點在於附加的 Agent 而不是在於 其位置,所以位置的設定只要在清楚容易辨識的位置即可。 和設定 Agent 時一樣,當設定好 Application 之後,可以利用滑鼠右鍵來修改
  • 6. Application 的參數或刪除 Application 有些細部的參數在產生 Application 時無法 , 直接設定,必須要先建立好 Application,再利用滑鼠右鍵的彈出式選單來設定, 例如 CBR 的 Transmission rate 與 packet size 等相關設定。 Parameters 除了上述五種模式之外,另外還有參數設定的功能,在有線網路劇本時,參數的 設定包含模擬時間和 Trace 檔的名稱(包含 NAM 的 Trace 檔) ,而在建立無線網 路劇本時,則另外多了無線網路(Wireless)及頻道特性(Channel)的相關設定。 比較值得一提的是,在頻道特性的相關設定中,NSG2 提供了一組模擬 802.11b 的參考值,然而在預設的情況下並不會啟用,如果使用者要啟用這些設定,則選 取畫面左邊的方塊即可,當然,也可以根據模擬的需求設定新的值。 當一切都設定完畢之後,按下 TCL 按鈕即可產生 TCL 劇本檔,使用者這時候還 可以自行在劇本檔上作一些調整,調整完畢後便可以將檔案儲存並利用 ns2 去執 行。 最後,有幾點注意的事項: 1. 當設定參數時,若是必要的參數則使用者一定要提供,否則 NSG 會跳出警 告訊息;若是非必要參數,則可以輸入 -1,若參數設定為 -1 那麼在產生 TCL 劇本檔時 NSG 將忽略該參數 另外 NSG 也不會去檢查參數的正確性, 。 , 例如輸入一個佇列的大小為 -50 則 NSG 會「忠實的」將該值寫到劇本檔當 中。 2. 當刪除物件時,該物件所屬的相關物件也會一併被刪除,例如刪除一個 Node,則所有連到該 Node 的 Link 及所有附加到該 Node 的 Agent 都會被刪 除,而當 Agent 被刪除時,所有附加在該 Agent 的 Application 也會一併被 刪除。 3. 若設定 Agent 時,沒有設定傳送端(或接收端) ,則在產生 TCL 劇本檔時該
  • 7. Agent 會被忽略,因為就算將該 Agent 的設定加到劇本檔當中模擬時也不會 有效果。 用 NSG 來產生有線網路劇本 接著筆者將以一個簡單的範例來介紹如何在 NSG 中產生一個有線網路的劇本 檔,模擬的環境如圖 4 所示。 cbr0 udp0 null2 n0 n4 2 Mbps, 10 ms 2 Mbps, 10 ms 1 Mbps, 20 ms n2 n3 2 Mbps, 10 ms 2 Mbps, 10 ms n1 n5 cbr1 udp1 null3 圖 4. 有線網路拓撲 在這一個模擬環境中共放置六個 Node,條件如下: 1. n0 和 n4 之間建立一個以 UDP 為通訊協定的 CBR 連線(標示為 cbr0)。 2. n1 和 n5 之間建立一個以 UDP 為通訊協定的 CBR 連線(標示為 cbr1)。 3. n0-n2、n1-n2、n3-n4、n3-n5 間的頻寬為 2Mbps,延遲時間設定為 10ms。 4. n2-n3 間的頻寬則設為 1Mbps,延遲時間設定為 20ms。 5. 所有鏈路皆為 Duplex-link、佇列的管理機制都是採用 DropTail,且佇列長度 (Queue limit)皆設定為 10 個封包長度。 在應用程式設定方面: 1. cbr0 的封包大小設定為 1500bytes,並以 1Mbps 的傳送速度來發送資料,在 模擬時間為 1 秒時開始送資料,在第 4 秒時結束傳送。
  • 8. 2. cbr1 的封包大小亦設定為 1500bytes,並以 1Mbps 的傳送速度來發送資料, 並在模擬時間為 2 秒時開始送資料,在第 3 秒時結束傳送。 3. 整個模擬的時間設定為 5 秒。 注意:由於 ns2 的 UDP 通訊協定預設的封包大小為 1000bytes,也就是說,當封 包大小超過 1000bytes 時 UDP 便會將封包切割為較小的片斷來傳送 (Segmentation) ,所以在設定時需特別指定 UDP 的封包大小為 1500bytes 以避免上層的應用程式封包被 UDP 所切割。 在這個實驗中,可以發現二個 cbr 連線都會通過 n2-n3 這條鏈路,且這條鏈路的 頻寬為 1Mbps,然而 cbr0 的傳送速度為 1Mbps,這會讓整個 n2-n3 頻寬都被 cbr0 的封包所占滿,因此當 cbr1 也開始傳輸之後,將會發現 n2-n3 的流量開始變的擁 擠,經過一段時間之後,當 n3 的佇列被塞滿時,就會開始有一些封包在 n3 被丟 棄,這樣的現象一直持續到 cbr1 結束傳送之後。 實際操作 Step1:新增一個有線網路的劇本,使用者可以透過 Scenario→New wired scenario 來建立(或按下快速鍵 Ctrl+W),建立後如圖 5 所示,在預設的情況下 NSG 會切換到 Node mode(Node 按鈕會變成灰色) ,也就是說使用者一開 始便可建立 Node。
  • 9. 圖 5. 新增一個有線網路的劇本 Step2:開始建立劇本所需要的 Node,利用滑鼠直接點選想要擺放 Node 的位置 以建立 Node,在此範例中建立的六個 Node 其相對位置如圖 6,可透過調 整畫面右下方的橫桿顯示不同的比例。
  • 10. 圖 6 : 設定好六個 node 相關位置 Step3:設定 Node 之間的鏈路,首先切換到 Link mode(按下 Link 按鈕或快速鍵 Ctrl+3),然後依序將下列的參數設定好。 1. Link-type:duplex-link 2. Queue type:DropTail 3. Capacity:2Mbps 4. Propagation delay:10ms 5. Queue size:10 Step4:以滑鼠點選的方式將 n0-n2、n1-n2、n3-n4 及 n3-n5 之間的鏈路建立起來, 接著將 Capacity 設定為 1Mbps,Propagation delay 設定為 20ms,然後再建 立 n2-n3 間的鏈路,建立好後如圖 7 所示,如果建立的過程中有參數沒設 定好,也可以在鏈路上按下滑鼠右鍵進行修改。
  • 11. 圖 7 : 設定好六個 node 之間的鏈路 Step5:接著切換到 Agent mode(按下 Agent 按鈕或快速鍵 Ctrl+4)來進行通訊 協定的設定。首先選取 Agent type 為 UDP 並設定封包大小(Packet size) 為 1500 bytes,並在 n0 與 n1 上各建立一個 Agent,接著選取 Agent type 為 NULL,並在 n4、n5 上各建立一個 NULL Agent。建立好 Agent 之後還 要繼續設定 Agent 之間的連線,其設定的方式是用滑鼠選取要建立連線 的二個 Agent,在此分別在(udp0、null2)和(udp1、null3)之間建立連 線,建立好之後如圖 8 所示。
  • 12. 圖 8 : 建立 Agents Step6:切換到 Application mode(按下 Application 按鈕或快速鍵 Ctrl+5)來進行 上層的應用程式設定,將 Application type 設定為 CBR 並設定啟動時間 (Start time) 1 秒 結束時間 為 , (Stop time) 4 秒 封包大小為 1500bytes, 為 , 傳輸速度為 1Mbps,然後在 n0 上建立一個 CBR Application,接著將啟動 時間(Start time)為 2 秒,結束時間(Stop time)為 3 秒,並在 n1 上再 建立一個 CBR Application,如圖 9。
  • 13. 圖 9 : 建立 Application Step7:最後,設定模擬的參數(按下 Parameters 鈕即可或快速鍵 Ctrl+6),在這 個例子中,因為是建立有線網路的劇本,所以參數的部份只需要將模擬 時間(Simulation time)設定為 5.0,並且指定產生 Trace 檔案名稱即可, 如圖 10。 圖 10: 設定模擬參數 Step8:當一切都設定完畢之後按下 TCL 按鈕(快速鍵 Ctrl+7)即可產生劇本檔
  • 14. 了,每一次產生的劇本檔都會被建立在一個獨立的視窗,使用者這時候 還可以根據自己的需求去做修正,如圖 11 所示。 圖 11. 產生劇本檔 Step9:按下 Save 按鈕(快速鍵 Alt+S)將產生出來的 TCL 檔儲存起來之後,便 可交由 ns2 開始進行模擬,產生出來的劇本檔如下 。 # This script is created by NSG2 beta1 # <http://wushoupong.googlepages.com/nsg> #=================================== # Simulation parameters setup #=================================== set val(stop) 5.0 ;# time of simulation end #=================================== # Initialization #=================================== #Create a ns simulator set ns [new Simulator] #Open the NS trace file set tracefile [open out.tr w] $ns trace-all $tracefile
  • 15. #Open the NAM trace file set namfile [open out.nam w] $ns namtrace-all $namfile #=================================== # Nodes Definition #=================================== #Create 6 nodes set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node] #=================================== # Links Definition #=================================== #Createlinks between nodes $ns duplex-link $n0 $n2 2.0Mb 10ms DropTail $ns queue-limit $n0 $n2 10 $ns duplex-link $n2 $n1 2.0Mb 10ms DropTail $ns queue-limit $n2 $n1 10 $ns duplex-link $n4 $n3 2.0Mb 10ms DropTail $ns queue-limit $n4 $n3 10 $ns duplex-link $n3 $n5 2.0Mb 10ms DropTail $ns queue-limit $n3 $n5 10 $ns duplex-link $n2 $n3 1.0Mb 20ms DropTail $ns queue-limit $n2 $n3 10 #Give node position (for NAM) $ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n2 $n1 orient left-down $ns duplex-link-op $n4 $n3 orient left-down $ns duplex-link-op $n3 $n5 orient right-down $ns duplex-link-op $n2 $n3 orient right #=================================== # Agents Definition #=================================== #Setup a UDP connection set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set null2 [new Agent/Null] $ns attach-agent $n4 $null2 $ns connect $udp0 $null2 $udp0 set packetSize_ 1500 #Setup a UDP connection set udp1 [new Agent/UDP] $ns attach-agent $n1 $udp1 set null3 [new Agent/Null] $ns attach-agent $n5 $null3 $ns connect $udp1 $null3 $udp1 set packetSize_ 1500 #=================================== # Applications Definition #=================================== #Setup a CBR Application over UDP connection
  • 16. set cbr0 [new Application/Traffic/CBR] $cbr0 attach-agent $udp0 $cbr0 set packetSize_ 1500 $cbr0 set rate_ 1.0Mb $cbr0 set random_ null $ns at 1.0 "$cbr0 start" $ns at 4.0 "$cbr0 stop" #Setup a CBR Application over UDP connection set cbr1 [new Application/Traffic/CBR] $cbr1 attach-agent $udp1 $cbr1 set packetSize_ 1500 $cbr1 set rate_ 1.0Mb $cbr1 set random_ null $ns at 2.0 "$cbr1 start" $ns at 3.0 "$cbr1 stop" #=================================== # Termination #=================================== #Define a 'finish' procedure proc finish {} { global ns tracefile namfile $ns flush-trace close $tracefile close $namfile exec nam out.nam & exit 0 } $ns at $val(stop) "$ns nam-end-wireless $val(stop)" $ns at $val(stop) "finish" $ns at $val(stop) "puts "done" ; $ns halt" $ns run NSG 所產生出來的劇本檔會自動啟動 NAM 來呈現模擬的過程,如果不想讓 NAM 啟動可在 NSG 中參數設定時,將 NAM File 選項設定為-1,則 NSG 便不會 將啟動 NAM 的指令寫入到劇本檔當中。圖 12 為 NAM 啟動的畫面,可以看出 在模擬時間為 2.1 秒時,n2 因同時湧入太多封包而發生封包被丟棄現象。
  • 17. 圖 12 以下截取出 Trace 檔的部份內容,由 Trace 檔內容也可以觀察到封包被丟棄的現 象(d 代表 drop)。 前略 r 2.12 3 5 cbr 1500 ------- 0 1.0 5.0 2 88 r 2.12 0 2 cbr 1500 ------- 0 0.0 4.0 92 101 + 2.12 2 3 cbr 1500 ------- 0 0.0 4.0 92 101 d 2.12 2 3 cbr 1500 ------- 0 0.0 4.0 92 101 - 2.12 2 3 cbr 1500 ------- 0 1.0 5.0 4 92 r 2.124 1 2 cbr 1500 ------- 0 1.0 5.0 9 102 + 2.124 2 3 cbr 1500 ------- 0 1.0 5.0 9 102 r 2.128 2 3 cbr 1500 ------- 0 1.0 5.0 3 90 + 2.128 3 5 cbr 1500 ------- 0 1.0 5.0 3 90 - 2.128 3 5 cbr 1500 ------- 0 1.0 5.0 3 90 + 2.128 0 2 cbr 1500 ------- 0 0.0 4.0 94 105 - 2.128 0 2 cbr 1500 ------- 0 0.0 4.0 94 105 + 2.132 1 2 cbr 1500 ------- 0 1.0 5.0 11 106 - 2.132 1 2 cbr 1500 ------- 0 1.0 5.0 11 106 r 2.132 3 4 cbr 1500 ------- 0 0.0 4.0 86 89 r 2.132 0 2 cbr 1500 ------- 0 0.0 4.0 93 103 + 2.132 2 3 cbr 1500 ------- 0 0.0 4.0 93 103 d 2.132 2 3 cbr 1500 ------- 0 0.0 4.0 93 103 - 2.132 2 3 cbr 1500 ------- 0 0.0 4.0 88 93 r 2.136 1 2 cbr 1500 ------- 0 1.0 5.0 10 104 + 2.136 2 3 cbr 1500 ------- 0 1.0 5.0 10 104 略