NS3(Network Simulator)

NS3 PacketSink类API说明

2017-06-25  本文已影响699人  shawn168

源文件位置:

src/applications/model/packet-sink.h
packet-sink.cc

描述:

接收和消耗生成到IP地址和端口的流量。

此应用程序是为了补充OnOffApplication而编写的,但它是更通用的,因此选择了一个PacketSink名称。 在功能上,重要的是在多播情况下使用,使得接收感兴趣的第2层多播帧被启用,但是它对于单播也是有用的,作为如何在应用层上写简单地接收分组的示例。 此外,如果IP堆栈生成ICMP端口不可达错误,将需要接收应用程序。

构造函数指定要使用的地址(IP地址和端口)和传输协议。 虚拟Receive()方法作为回调安装在接收套接字上。 默认情况下,当启用日志记录时,它打印出包的大小及其地址。 还提供了一个Receive()的跟踪源。

属性路径:

"/NodeList/[i]/ApplicationList/[i]/$ns3::PacketSink" 

属性:

Local: 绑定rx套接字的地址。
Protocol: 用于rx套接字的协议的类型id。

StartTime: Time at which the application will start
StopTime: Time at which the application will stop

跟踪源:

Rx: 已接收到数据包

公共方法:

PacketSink ()
virtual     ~PacketSink ()
std::list< Ptr< Socket > >  GetAcceptedSockets (void) const
        接受的套接字的指针列表
Ptr< Socket >   GetListeningSocket (void) const
        指向侦听套接字的指针
uint64_t    GetTotalRx () const 
        在此sink应用程序中接收的总字节数
static TypeId   GetTypeId (void)
virtual void    DoDispose (void)

私有方法:

void    HandleAccept (Ptr< Socket > socket, const Address &from)
    处理传入连接。
void    HandlePeerClose (Ptr< Socket > socket)
    处理连接关闭。
void    HandlePeerError (Ptr< Socket > socket)
    处理连接错误。
void    HandleRead (Ptr< Socket > socket)
    处理应用程序接收的数据包。
virtual void    StartApplication (void)
virtual void    StopApplication (void)


PacketSinkHelper 源文件位置:

src/applications/helper/packet-sink-helper.h
packet-sink-helper.cc

描述:

一个帮助器,使其更容易在一组节点上实例化ns3 :: PacketSinkApplication。

公共方法:

PacketSinkHelper (std::string protocol, Address address)
    创建PacketSinkHelper以使其更容易使用PacketSinkApplications。
ApplicationContainer    Install (NodeContainer c) const
    在配置了使用SetAttribute设置的所有属性的输入容器的每个节点上安装ns3 :: PacketSinkApplication。
ApplicationContainer    Install (Ptr< Node > node) const
    在配置了使用SetAttribute设置的所有属性的输入容器的每个节点上安装ns3 :: PacketSinkApplication。
ApplicationContainer    Install (std::string nodeName) const
    在配置了使用SetAttribute设置的所有属性的输入容器的每个节点上安装ns3 :: PacketSinkApplication。
void    SetAttribute (std::string name, const AttributeValue &value)
    辅助函数用于设置底层应用程序属性。

私有方法:

Ptr< Application >  InstallPriv (Ptr< Node > node) const 
    在配置了使用SetAttribute设置的所有属性的节点上安装ns3 :: PacketSink。

用法:

  PacketSinkHelper sink ("ns3::TcpSocketFactory",
                         InetSocketAddress (Ipv4Address::GetAny (), port));
  ApplicationContainer sinkApps = sink.Install (nodes.Get (1));
  sinkApps.Start (Seconds (0.0));
  sinkApps.Stop (Seconds (10.0));
上一篇下一篇

猜你喜欢

热点阅读