NS3/NS2怎么创建包和发送包

  在NS3协议设计中,数据包的发送和创建是基础, 熟悉了包的相关操作,进行后续协议就会简单很多。拿 wifi-example-apps应用设计代码中包创建为例。

  1. 调用packet类创建一个给定大小的包:
  2. 打上时间戳,接收机可用时间戳用来进行相关计算(时延,生存时间)
  3. 调用Socket套接字,里面有SendTo函数用来数据包发送。
  4. 如果发送的数据包没有到达设定数目,产生随机中断触发事件发送数据包。

  

void Sender::SendPacket (){     Ptr<Packet> packet = Create<Packet>(m_pktSize);//创建数据包     
TimestampTag timestamp; //时间戳    
 timestamp.SetTimestamp (Simulator::Now ());  
   packet->AddByteTag (timestamp);//给数据包打上时间戳  
  m_socket->SendTo (packet, 0, InetSocketAddress (m_destAddr, m_destPort));//发送数据包,地址和端口   
  m_txTrace (packet); //记录trace  
  if (++m_count < m_numPkts) {   
   m_sendEvent = Simulator::Schedule (Seconds (m_interval->GetValue ()),
   &Sender::SendPacket, this);//设计中断发送数据包  
          }
}

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值