reference
修改OnOffApplication 按照泊松分布发包
好的applicatio类的总结
简单的application类修改教程
BulkerSender
- reference
- 试图以最大的速度发包(会尽量抢占带宽 )
- 有点像ftp服务,但是这单单不是ftp服务的特性
- 仅支持SOCK_STREAM和SOCK_SEQPACKET套接字。 例如,可以使用TCP套接字,但不能使用UDP套接字。
- 他只有属性Tx,你懂了吧…
- 属性设置
"/NodeList/[i]/ApplicationList/[i]/$ns3::BulkSendApplication"
OnoffSender
- reference
- 这些状态中的每一个的持续时间由onTime和offTime随机变量确定。在“关闭”状态下,不会产生流量。在“开”状态下,生成cbr流量。该cbr流量的特征在于指定的“数据速率”和“分组大小” 【cbr: constant bit rate】
- 为单个目的地生成流量
- 配置地址
"/NodeList/[i]/ApplicationList/[i]/$ns3::OnOffApplication"
OnOffHelper source ("ns3::TcpSocketFactory", Address(InetSocketAddress (Ipv4Address ("10.1.1.1"), 10)));
source.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]"));
source.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]"));
source.SetAttribute ("DataRate",StringValue ("2Mbps"));
source.SetAttribute ("PacketSize",UintegerValue(1280));
- 属性
SendSize: 每次发送的数据量。
Remote: 目的地址
MaxBytes: 要发送的总字节数。 一旦发送这些字节,就不会再次发送数据。 值为零表示没有限制。
Protocol: 要使用的协议类型。(根据描述部分,仅支持TCP协议类型)
StartTime: 应用程序启动的时间
StopTime: 应用程序结束的时间
- trace
TxWithAddresses
Tx
PacketSink
- reference
- 这个ref读了以后明白了。原来这些个application类的receive都是虚拟函数,作为回调安装在接收套接字上的。
- 它的跟踪源只有Rx,你懂了吧…他不是用来发包的,是用来监听的,用于接收和消耗生成到IP地址和端口的流量
- 属性设置
"/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
UdpEcho
- reference
- UdpEcho是最简单的,和执行ping命令有点类似,不同点在于该应用使用的是UDP协议并且携带了数据(但数据内容是系统自动填充的,没有实际意义)。该应用可以设置发送数据包的数量、发送数据包的时间间隔以及发送的数据包的大小。这个应用基本上应该适用于大多数情况下的仿真。