ns 3プログラム運転


休みの三日間、ns 3を振り回した.ピットns 3に入る準備をして、ns 2よりずっと強いような気がします.しかし、資料は少ない.ネット上のいくつかのブログは、ほとんどがns 3 manualの翻訳です. exampleファイルの下に新しいフォルダを作成します.ns 3_test.この書類の下に2つの書類を置きます.ns3_test.cc
#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集約オブジェクトの説明