• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    西西首頁 常用軟件 軟件下載 安卓軟件 游戲下載 安卓游戲 MAC應用 驅動下載 安卓電視
    系統工具網絡工具媒體工具圖形圖像聊天工具應用軟件編程開發手機軟件安卓應用電腦安全字體素材

    DTN仿真工具one

    v1.5.0 免費版
    • DTN仿真工具onev1.5.0 免費版
    • 軟件大小:1007KB
    • 更新時間:2013-06-19 17:43
    • 軟件語言:中文
    • 軟件廠商:
    • 軟件類別:國產軟件 / 免費軟件 / 行業軟件
    • 軟件等級:4級
    • 應用平臺:WinAll, WinXP
    • 官方網站:暫無
    好評:50%
    壞評:50%

    軟件介紹

    DTN仿真工具,one_1.5.0-RC1版本。芬蘭人開發的一個專門用于DTN網絡仿真的軟件,用Java語言寫的.里面有一個README.txt,很有用,不僅介紹了the ONE的一些性能,還有具體的安裝以及示例。

    什么叫dtn網絡?

    DTN(delay-tolerant network)是從ad hoc,WSN(wireless sensor network)等自組織無線網絡中抽象出來的一種網絡模型.其典型特征是節點之間的鏈路間歇性中斷且中斷持續時間較長,以至于在任意時刻源節點和目的節點間可能不存在路徑.

    the one的結構

    1 .report包:用來指定導出哪些類型的報表,具體可查閱readme.txt文檔。

    上圖為這些類的繼承關系,可在配置文件settings中配置,然后反射注入四類訂閱者(由圖可知為ConnectionListener,UpdateListener,MessageListener,ContactTimesReport四種接口的集合,定義在core包中)里面,然后在不同的事件發生后,對四個訂閱者隊列進行遍歷(四個隊列存放在類core.SimScenario中)

    2 .routing包:用來指定消息的路由策略,按組指定。

    上圖為該包的繼承關系,如果是研究算法 的同學,注重點就應該就是這個包了,如:DirectDeliveryRouter--只是簡單地向最后接收者傳遞,不會傳給別的結點中轉,EpidemicRouter--洪范傳輸,還有1.3中新添的EnergyAwareRouter,就具有能源這個概念了,因為從現在DTN網絡的利用來考慮,能源的消耗很關鍵。還有一些實現了現今比較流行的dtn路由算法的類

    使用 :只需繼承MessageRouter,覆蓋對應的方法,然后加入自己的實現,再在settings配置文件中配置則可。

    3 .movement包:用來指定結點的移動策略,亦為按組指定。

    該包的繼承關系,其中,大部分的移動策略(繼承MapBaseMovement)都是基于給定的地圖文件移動(還可以分為不同的路線類型,如人行道,汽車道等),也有部分為隨機移動(RandomWaypoint和RandomWalk)和事件驅動(ExternalMovement和ExtendedMovementModel)

    4 .input包:分為兩個類型,一類為繼承ExternalEvent的消息實體類,基本為每個消息對應一個實體

    上圖為各類消息實體類的繼承關系

    第二類為實現EventQueue接口的外部事件

    其中DTN2Events為與DTNSim2的事件與The One事件的對接

    5 .core包:包括一些核心的類和核心的接口等

    具體執行流程應該是這樣的:

    a.讀取配置文件。

    b.初始化模擬環境,把report,routing等都配置好,并把host生成。

    c.初始化模擬時間

    d.檢驗當前時間是否小于模擬時間:是,則跳到e,否,則跳到f

    e.模擬環境update,回到d

    f.end

    其中主要的流程在world.update方法里面,包括:觸發事件(消息傳輸,丟包等),移動host等。

    發現的問題

    舉個例子:如EpidemicRouter(即洪范路由算法),覆蓋了父類的update方法

    public void update() {

    //super.update做了三件事:傳輸完成的終止傳輸,連接斷開的終端傳輸,ttl小于零的丟包處理
    super.update();

    //檢查
    if (isTransferring() || !canStartTransfer()) {
    return; // transferring, don't try other connections yet
    }
    //檢查
    // Try first the messages that can be delivered to final recipient
    if (exchangeDeliverableMessages() != null) {
    return; // started a transfer, don't try others (yet)
    }
    //問題在此
    // then try any/all message to any/all connection
    this.tryAllMessagesToAllConnections();
    }

    protected Connection tryAllMessagesToAllConnections(){

    //檢查
    List<Connection> connections = getConnections();
    if (connections.size() == 0 || this.getNrofMessages() == 0) {
    return null;
    }
    //消息按優先級排序
    List<Message> messages =
    new ArrayList<Message>(this.getMessageCollection());
    this.sortByQueueMode(messages);
    //問題在此
    return tryMessagesToConnections(messages, connections);
    }

    protected Connection tryMessagesToConnections(List<Message> messages,
    List<Connection> connections) {
    for (int i=0, n=connections.size(); i<n; i++) {
    Connection con = connections.get(i);

    //如果可以傳輸,就傳輸該消息,并返回傳輸的消息。
    Message started = tryAllMessages(con, messages);

    //如果傳輸了,則返回了
    if (started != null) {
    return con;
    }
    }

    return null;
    }

    由上面的代碼可看出,每次傳輸,只會向一個連接傳輸,但大家都知道,無線網絡結點與結點的數據傳輸,應該是廣播的(只是說應該),導師也是這樣說的,但從代碼可以看出,該軟件是特意這樣做的。所以就有矛盾了,所以也就懷疑其自己的結論了,但自己只是學軟件的,對dtn網絡只是有一點了解,所以也無從下手,只能是從代碼角度去推斷了。

    軟件標簽: 仿真

    軟件截圖

    DTN仿真工具one v1.5.0 免費版

      其他版本下載

      熱門評論

      最新評論

      發表評論 查看所有評論(0)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)

      下載幫助下載幫助西西破解版軟件均來自互聯網, 如有侵犯您的版權, 請與我們聯系。

      TOP
      軟件下載
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>