• 沒有找到結果。

當一個參數是經常需要改變,或修改中的程式正處於測試階段,可以直接在 設定檔中添加新的參數。基於不同的需求,GloMoSim 提供四種不同的資料型 態(Integer、Double、String、Time)等,並提供相對的函式去擷取這些參數值。

附錄 C(Flooding 模組設定)

1. 應用層(Application layer)

在應用層我們必須決定起始傳輸節點的產生方式,GloMoSim 在應用層提供 五種可用的起始傳輸節點的產生方式,分別為 FTP、FTP/GENERIC、

TELNET、CBR、HTTP,我們選用其中的 CBR(Constant Bit Rate)。CBR 是 一種固定傳輸速率的傳送方式,可在任何時間保證提供一定的頻寬,適合需 要即時的連線應用。CBR 的設定需包含以下欄位的參數:

I、 src:來源節點。

II、 dest:目的節點,但因為 Flooding 的做法是使用廣播,故此欄位無作 用。

III、 items to send:設定 src 在網路運作過程中,會做幾次的發送。如果此 欄位值設為 0,CBR 會作用到整個模擬程式執行結束或 end time 到達 為止。

IV、 item size:每次發送的封包大小。

V、 interval:每個封包發送的間隔時間。

VI、 start time:第一個封包的發送起始時間。

VII、 end time:若 end time 值為 0,CBR 將會執行到所有的 items to send 傳送完畢或整個模擬程式執行結束。

如果 items to send 及 end time 都有值,則 CBR 會執行到其中任何一方完成 或整個模擬程式結束。例如設定值為 CBR 0 1 10 1460 1S 0S 600S 時,表示 由節點 0 傳送封包到節點 1,共傳送 10 次,每次的封包大小為 1460bytes,

每個封包傳送的間隔為 1 秒,從第 0 秒開始傳送,最長的運作時間不得超過

600 秒。

2. 網路層(Network Layer)

我們在網路層加入此 Flooding 模組,並依 GloMoSim 的作法產生以下標準 應用程式界面,分述如下:

VIII、 RFRF (RoutingFloodRouterFunction)

在 GloMoSim 的每個層級中,都會有一支程式具負責做為對上下層溝 通的單一窗口,該程式在網路層稱為 nwip。而網路層的每一個協定在 初始化時都須向 nwip 註冊這一隻程式,做為起始傳播的執行程式。

IX、 RFI (RoutingFloodInit)

在 GloMoSim 中,Glomo 這個實體負責呼叫各個層級進行初始化,各 個層級再往下呼叫目前使用的模組所提供的初始程式,進行該模組所 需的初始化工作。所以 Glomo 在呼叫網路層的 nwip 後,nwip 會再呼 叫此程式對 Flooding 做初始化的工作。

X、 RFF (RoutingFloodFinalize)

程序類似 RFI,唯它進行的是執行結果的統計與輸出。記憶體的分配 與釋放由實體 Glomo 完成,不在此處進行。

XI、 RFHPE (RoutingFloodHandleProtocolEvent)

RFHPE 負責處理各項維護模擬運作所需的事件,當一個事件到來,

nwip 會藉由各協定提供的標準界面,將事件轉送到各協定做後續處 理。

XII、 RFHPP (RoutingFloodHandleProtocolPacket)

RFHPP 負責每個傳送到 Flooding 的封包處理工作,例如檢查此封包 是否為第一次收到,若是則予以轉送,否則不予理會。另外在此函式 裏我們也加入一個延遲的機制,延遲的範圍由設定檔指定,延遲時間 點則在延遲的時間範圍內亂數產生。

相關文件