美文网首页NS3(Network Simulator)
NS3 PacketSink类API说明

NS3 PacketSink类API说明

作者: shawn168 | 来源:发表于2017-06-25 20:32 被阅读699次

    源文件位置:

    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));
    

    相关文章

      网友评论

        本文标题:NS3 PacketSink类API说明

        本文链接:https://www.haomeiwen.com/subject/ttpgnttx.html