ns 3プログラム運転
5134 ワード
休みの三日間、ns 3を振り回した.ピットns 3に入る準備をして、ns 2よりずっと強いような気がします.しかし、資料は少ない.ネット上のいくつかのブログは、ほとんどがns 3 manualの翻訳です. exampleファイルの下に新しいフォルダを作成します.ns 3_test.この書類の下に2つの書類を置きます.ns3_test.cc
wscript
コマンドを実行します./waf.を選択してもアクセスできます.waf –run ns3_test、プログラムを実行します.プログラム出力結果:
主に[1]を参考にしました.このプログラムはInternetStackHelperに自動的にインストールされたオブジェクトクラスを印刷します.ここ数日ソースコードを読むと、ノードオブジェクトにはプロトコルスタックオブジェクトが配置され、対応するクラスとObjectのm_を共有していることがわかります.Aggregatesポインタ.この印刷プログラム、私は主に接続のためで、結局ノードオブジェクトの中で、いつname=ns 3::UdpSocketFactoryオブジェクトをインストールしました.[1]NS 3 Node集約オブジェクトの説明
#include"ns3/network-module.h"
#include"ns3/core-module.h"
#include "ns3/internet-stack-helper.h"
#include
using namespace std;
using namespace ns3;
int main()
{
NodeContainer n;
n.Create (2);
InternetStackHelper internet;
internet.Install (n);
Ptr node=n.Get(1);
/**
* Node install() ,
*
*/
Node::AggregateIterator iterator = node->GetAggregateIterator();
while(iterator.HasNext()){
Ptr<const Object> obj = iterator.Next();
std::cout<<"InternetStackHelper::Install name="<GetInstanceTypeId().GetName()<<std::endl;
}
}
wscript
def build(bld):
obj = bld.create_ns3_program('ns3_test', ['csma', 'internet', 'applications'])
obj.source = 'ns3_test.cc'
コマンドを実行します./waf.を選択してもアクセスできます.waf –run ns3_test、プログラムを実行します.プログラム出力結果:
InternetStackHelper::Install name=ns3::Ipv4L3Protocol
InternetStackHelper::Install name=ns3::Ipv6L3Protocol
InternetStackHelper::Install name=ns3::Node
InternetStackHelper::Install name=ns3::ArpL3Protocol
InternetStackHelper::Install name=ns3::Icmpv4L4Protocol
InternetStackHelper::Install name=ns3::Ipv4RawSocketFactory
InternetStackHelper::Install name=ns3::GlobalRouter
InternetStackHelper::Install name=ns3::Icmpv6L4Protocol
InternetStackHelper::Install name=ns3::Ipv6RawSocketFactory
InternetStackHelper::Install name=ns3::Ipv6ExtensionRoutingDemux
InternetStackHelper::Install name=ns3::Ipv6ExtensionDemux
InternetStackHelper::Install name=ns3::Ipv6OptionDemux
InternetStackHelper::Install name=ns3::TrafficControlLayer
InternetStackHelper::Install name=ns3::UdpL4Protocol
InternetStackHelper::Install name=ns3::UdpSocketFactory
InternetStackHelper::Install name=ns3::TcpL4Protocol
InternetStackHelper::Install name=ns3::TcpSocketFactory
InternetStackHelper::Install name=ns3::PacketSocketFactory
主に[1]を参考にしました.このプログラムはInternetStackHelperに自動的にインストールされたオブジェクトクラスを印刷します.ここ数日ソースコードを読むと、ノードオブジェクトにはプロトコルスタックオブジェクトが配置され、対応するクラスとObjectのm_を共有していることがわかります.Aggregatesポインタ.この印刷プログラム、私は主に接続のためで、結局ノードオブジェクトの中で、いつname=ns 3::UdpSocketFactoryオブジェクトをインストールしました.[1]NS 3 Node集約オブジェクトの説明