源文件位置:
src/applications/model/bulk-send-application.h
bulk-send-application.cc
描述:
发送尽可能多的流量,尝试填充带宽。
这种流量发生器仅仅作为快速发送数据尽可能最多MaxBytes或直到应用被停止(如果MaxBytes为零)。一旦下层发送缓冲区被填满,它等待空间免费送更多的数据,基本上是保持恒定的数据流。 仅支持SOCK_STREAM和SOCK_SEQPACKET套接字。 例如,可以使用TCP套接字,但不能使用UDP套接字。
属性设置:
"/NodeList/[i]/ApplicationList/[i]/$ns3::BulkSendApplication"
属性:
SendSize: 每次发送的数据量。
Remote: 目的地址
MaxBytes: 要发送的总字节数。 一旦发送这些字节,就不会再次发送数据。 值为零表示没有限制。
Protocol: 要使用的协议类型。(根据描述部分,仅支持TCP协议类型)
StartTime: 应用程序启动的时间
StopTime: 应用程序结束的时间
跟踪源:
Tx: 创建并发送新数据包
公共方法:
BulkSendApplication ()
virtual ~BulkSendApplication ()
Ptr< Socket > GetSocket (void) const
获取此应用程序连接到的套接字。
void SetMaxBytes (uint64_t maxBytes)
设置要发送的总字节数的上限。一旦达到这个界限,就不再发送应用字节。 如果应用程序在模拟期间停止并重新启动,则不会复位发送的字节总数; 然而,maxBytes绑定仍然有效,应用程序将继续发送高达maxBytes。 maxBytes的值零意味着没有上限; 即发送数据,直到应用或模拟停止。
static TypeId GetTypeId (void)
virtual void DoDispose (void)
私有方法:
void ConnectionFailed (Ptr< Socket > socket)
连接失败(由Socket通过回调调用)
void ConnectionSucceeded (Ptr< Socket > socket)
连接成功(由Socket通过回调调用)
void DataSend (Ptr< Socket >, uint32_t)
传送一些数据后立即发送更多数据。
void SendData ()
发送数据,直到L4传输缓冲区已满。
virtual void StartApplication (void)
virtual void StopApplication (void)
源文件位置:
src/applications/helper/bulk-send-helper.h
bulk-send-helper.cc
描述:
一个帮助器,使其更容易在一组节点上实例化ns3 :: BulkSendApplication。
公共方法:
BulkSendHelper (std::string protocol, Address address)
创建一个BulkSendHelper,使其更容易使用BulkSendApplications。
ApplicationContainer Install (NodeContainer c) const
在配置了使用SetAttribute设置的所有属性的输入容器的每个节点上安装ns3 :: BulkSendApplication。
ApplicationContainer Install (Ptr< Node > node) const
在配置了使用SetAttribute设置的所有属性的节点上安装ns3 :: BulkSendApplication。
ApplicationContainer Install (std::string nodeName) const
在配置了使用SetAttribute设置的所有属性的节点上安装ns3 :: BulkSendApplication。
void SetAttribute (std::string name, const AttributeValue &value)
辅助函数用于设置底层应用程序属性,而不是套接字属性。
私有方法:
Ptr< Application > InstallPriv (Ptr< Node > node) const
在配置了使用SetAttribute设置的所有属性的节点上安装ns3 :: BulkSendApplication。
用法:
BulkSendHelper source ("ns3::TcpSocketFactory",
InetSocketAddress (i.GetAddress (1), port));
// Set the amount of data to send in bytes. Zero is unlimited.
source.SetAttribute ("MaxBytes", UintegerValue (maxBytes));
ApplicationContainer sourceApps = source.Install (nodes.Get (0));
sourceApps.Start (Seconds (0.0));
sourceApps.Stop (Seconds (10.0));