問題タブ [ns2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1272 参照

ns2 - ns-2 でライブ ネットワークをエミュレートする

私は NS2 (および Linux でさえも) の完全な初心者です。私のタスクは、非常に基本的なエミュレーションの例を示して、ns2 を使用してエミュレートできることを示すことです。ここ数週間、簡単なエミュレーション スクリプトを動作させようと試みてきましたが、うまくいきませんでした。これを行うために数行のコードを書くのに、専門家ならほんの数分しかかからないと確信しています。同様の問題について私が読んだほとんどの説明は、NS2 または Linux の観点から理解するにはあまりにも高度です。誰かが学生レベルで私を助けてくれれば、
大歓迎です。

私は Linux マシンを使用しており、これまでのところ allinone ns-2.34 をダウンロードしてインストールしました。また、いくつかの簡単なエミュレーション スクリプトの例をググってみました。

たとえば、私はこれを見つけました:

# Create simulator set ns [new Simulator] $ns use-scheduler RealTime

# Emulator address set me [exec hostname]

# Packet input set bpf0 [new Network/Pcap/Live] $bpf0 set promisc_ true set nd0 [$bpf0 open readonly fxp0] set filt "(not ip host $me)" $bpf0 filter $filt

# Packet output set ipnet [new Network/IP] $ipnet open writeonly

# Input agent set pfa [new Agent/Tap] $pfa network $bpf0

# Output agent set ipa [new Agent/Tap] $ipa network $ipnet

# ICMP ECHO agent set echoagent [new Agent/PingResponder]

set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] $ns simplex-link $n0 $n2 100Mb 1000ms DropTail $ns simplex-link $n2 $n1 100Mb 1000ms DropTail $ns attach-agent $n0 $pfa $ns attach-agent $n1 $ipa $ns attach-agent $n2 $echoagent $ns simplex-connect $pfa $echoagent $ns simplex-connect $ipa $echoagent

# Wait for ping to come in... $ns run

このスクリプトを実行しようとすると、次のようなメッセージが表示されます。

無効なコマンド名 "Network/Pcap/Live" while running "Network/Pcap/Live create o_11 " within within "catch "$className create $o $args" msg" (procedure "new" line 3) "new Network" 内で呼び出される/Pcap/Live" は、"set bpf0 [new Network/Pcap/Live]" (ファイル "./vince/emu1.tcl" 行 12) 内から呼び出されます。

誰でもこの問題を手伝ってもらえますか? 私はまだ ns2 の専門家ではないので、そのコードがどのように機能するかはよくわかりません。pingレスポンダーだと思います。私が必要とするのは、それが機能することを示すための非常に単純なエミュレーションの例だけなので、他の提案やサンプルスクリプトは素晴らしいでしょう!

ありがとう

0 投票する
1 に答える
1291 参照

networking - NS2 の組み込みルーティング アルゴリズムは何ですか?

課題の一環として、NS2 でいくつかの小さなシミュレーションを行っています。私はシミュレーターを自分で選びました。唯一の実際の要件は、2 つのルーティング アルゴリズムを比較することでした。

Marc Greis hereが提供するチュートリアルに従いました

そのため$ns rtproto DV、ルーティング アルゴリズムを「動的ルーティング」に設定していました。

他のアルゴリズムは何ですか?上記のコマンドを使用しない場合のデフォルトはありますか? それらがどのように機能するかについて読むことができる場所はありますか?

ありがとう!

0 投票する
1 に答える
3386 参照

regex - ns2トレースファイルの解析

NS 2.35を使用しており、ルーティングアルゴリズムのエンドツーエンドの遅延を特定しようとしています。

スクリプトの経験が豊富な人なら誰でもこの質問に答えられるはずですが、残念ながらその人は私ではありません。

次のようなトレースファイルがあります。

しかし、これが私がしなければならないことです。

で始まる行+は、新しいパケットがネットワークに追加されたときです。で始まる行rは、宛先がパケットを受信したときです。-tの後の二重型の数字は、そのイベントが発生した時刻です。そして最後に、-iの後にパケットのIDがあります。

平均エンドツーエンド遅延を計算するには、-iの後に特定のIDを持つすべての行を見つける必要があります。rそこから、のタイムスタンプからマイナスのタイムスタンプを計算する必要があります。+

したがって、スペースで区切られた正規表現が存在する可能性があると思います。それぞれのセグメントを独自の変数に入れることができます。次に、15日(パケットID)を確認します。

しかし、そこからどこに行くのか、それをどのようにまとめるのかはわかりません。

これを行うためのAWKスクリプトがWeb上にいくつかあることは知っていますが、それらはすべて古く、現在の形式に適合していません(そして、それらを変更する方法がわかりません)。

どんな助けでも大歓迎です。

編集:

これが私が見つけようとしている完全なパケットルートの例です。これらの行の間にたくさんの行を取り出して、単一のパケットイベントを確認できるようにしました。

スクリプトの理想的な出力は、2.134を開始時間として認識し、2.28を終了時間として認識し、0.146秒の遅延を与えます。これはすべてのパケットIDに対して行われ、平均のみを報告します。

ファイルがどのように機能するか、そして私が何を期待しているのかについて少し詳しく説明するように依頼されました。

このファイルには、約10,000パケットの説明がリストされています。各パケットは異なる状態になる可能性があります。重要な状態は+、パケットがルーターでキューに入れられたrことを意味し、パケットが宛先によって受信されたことを意味します。

エンキューされた(つまり+エントリである)パケットが実際に受信されず、代わりにドロップされる可能性があります。+これは、すべてのエントリにエントリがあるとは想定できないことを意味しrます。

私が測定しようとしているのは、エンドツーエンドの平均遅延です。これが意味することは、単一のパケットを見ると、それがキューに入れられた時間と、それが受信された時間を持っているということです。エンドツーエンドの遅延を見つけるために、この計算を行う必要があります。しかし、平均を得るには、他の9,999パケットに対してもそれを行う必要があります。

私はそれについてもっと考えました、そしてここに私がアルゴリズムがどのように機能する必要があると思うかを一般的にここに示します。

  • 重要でないため、+またはで始まらないすべての行を削除します。r
  • すべてのパケットID(つまり、例の1052などの-iの後の番号)を調べて、それらをある種のグループ(おそらく複数の配列)に入れます。
  • これで、各グループに特定のパケットに関するすべての情報が含まれるはずです。
  • グループ内で、+があるかどうかを確認します。理想的には、最初の+が必要です。その時間を記録します。
  • +これ以上の行を探します。彼らの時間を見てください。ログが少し乱雑になっている可能性があります。したがって、+実際にはシミュレーションの早い段階にある行が後で存在する可能性があります。
  • この新しい+行の時刻が早い場合は、時刻変数をそれで更新します。
  • これ以上行がないと仮定して+、行を探しますr
  • 行がない場合r、パケットはドロップされたので、心配しないでください。
  • r見つけたすべての行について、タイムスタンプが最も遅い行を見つけるだけです。
  • 最新のタイムスタンプのr行は、パケットが最終的に受信された場所です。
  • +時間から時間を引くrと、パケットが移動するのにかかった時間がわかります。
  • この値を配列に追加して、後で平均化できるようにします。
  • すべてのパケットIDグループでこのプロセスを繰り返し、最後に作成された遅延の配列を平均します。

それはたくさんのタイピングですが、私が望むものにできる限り明確だと思います。私が正規表現のマスターであったらいいのですが、これをやってのけるのに十分なほどそれを学ぶ時間がありません。

ご協力いただきありがとうございます。ご不明な点がございましたら、お気軽にお問い合わせください。

0 投票する
1 に答える
2516 参照

networking - NS2シミュレーションでリンクの遅延を変更するにはどうすればよいですか?

実行時にリンクの遅延が変化するNS2シミュレーションを実行する必要があり、tclスクリプトで次の手順を使用します。

$node3と$node4の間のリンクの遅延を変更します。
ただし、シミュレーションが開始する前に設定されている場合にのみ機能します。
特定の時間の遅延を変更したい場合、例えば

それは機能しません。では、実行時にリンクの遅延を変更するにはどうすればよいですか?

助けてくれてありがとう。

0 投票する
1 に答える
1230 参照

ns2 - ns2 グローバル変数

そのようなループを使用して変数を作成しました:

何らかの手順で n($i) 変数を呼び出す方法は? 私はそれを

しかし、私はエラーが発生しました:

ns: レコード: 不正な変数名 "n(0)": upvar は、実行中に配列要素のように見えるスカラー変数を作成しません

0 投票する
1 に答える
285 参照

network-programming - Tcl ファイルの出力を評価するにはどうすればよいですか?

単一の OSPF エリアに対して NS を使用してシミュレーションを行い、いくつかの基準に従って各結果を評価するように依頼されました。

  1. トラフィックの制御
  2. CPU 処理時間
  3. 収束時間

シミュレーションの部分を実行しました。出力ファイルの 1 つを次に示します: http://www.2shared.com/document/sDcr5Wmo/Single20.html

ここに貼り付けることができませんでした。かなり長いです:S

私の質問は:

前の基準についてこの出力を評価するにはどうすればよいですか? たとえば、CPU処理時間のように、別のターミナルウィンドウを開いて使用しようとしました

ns が実行されたときに CPU 使用率を追跡し続けるために、これが正しいかどうかはわかりませんが :D

ここで答えが見つかることを願っています..

ありがとう

0 投票する
1 に答える
1805 参照

c++ - C++ 変数を TCL スクリプト プログラムに挿入する方法は?

NS2 で、C++ 変数を TCL スクリプトに埋め込む方法はありますか? たとえば、TCL では、このようにルーティング プロトコルを設定すると、次のようなset opt(rt) XXX XXXC++ プログラムで定義された変数になる可能性があります。

0 投票する
0 に答える
1353 参照

c++ - NS2-プロトコルの変更

実行時に NS2 のノードから送信されるパケットの数をカウントしたいと考えています。そのため、C++ を使用して AODV プロトコルを変更したいと考えています。誰かが私をどのように進めるかを手伝ってもらえますか?

0 投票する
1 に答える
4217 参照

c++ - NS2-プロトコルの変更 - AODV

実行時に NS2 のノードから送信されるパケットの数をカウントしたいと考えています。そのため、C++ を使用して AODV プロトコルを変更したいと考えています。誰かが私をどのように進めるかを手伝ってもらえますか?

受信パケット数をカウントする recv() 関数と、送信パケット数をカウントする aodv.cc の forward() 関数を編集してみました。パケットがどのノードから来て、どのノードに転送されているかを特定できません。各ノードの信頼値を計算するためのカウントを知り、悪意のあるものを見つけたい。取得方法と続行方法を教えてください。AODV でプロミスキャス モードを使用する場合はどうでしょうか。私はこれらすべてに非常に慣れていません。前もって感謝します。

0 投票する
1 に答える
1107 参照

ubuntu - Ubuntu 11.10 への ns-allinone-2.29.3 のインストール

Ubuntu 11.10 に Network Simulator allinone パッケージ (ns-allinone-2.29) をインストールしようとしています。私は実際に、ns 用の UCBT 拡張機能を使用して bluetooth をシミュレートすることに興味があります。http://www.cs.uc.edu/~cdmc/ucbt/

Plese install ucbt-0.9.9.2.tgz on the top of ns-allinone-2.29.3

次のエラーが表示されます-

このエラーの原因は何ですか? また、Network Simulator で作業するのに推奨される OS を教えてください。