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

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

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

  

void Sender::SendPacket (){     Ptr packet = Create(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);//设计中断发送数据包  
          }
}

 

你可能感兴趣的:(NS3)