NS-3中的OnOffApplicaion作爲協議仿真的CBR源

參考:http://blog.sina.com.cn/s/articlelist_2126687030_1_1.html
作爲抽象類Application的屬性:

 - StartTime(0ns)
 - StopTime(0ns);

NS-3中的應用層協議,常用Application的子類有:
1、UdpEcho
2、OnOffApplication
3、PacketSink

在示例代碼first.cc中,點對點通信,應用層協議使用了UdpEcho來發送應用層Udp包。2個節點分別爲UdpEchoClient和UdpEchoServer,
UdpEchoClient的屬性:
- MaxPackets(初值=100):應用層發送包的最大個數
- interval(1s):包與包之間的間隔時間
- RemotePort(0):包的目的端口
- PacketSize(100):包的大小
UdpEchoServer的屬性:
Port(9):偵聽包的端口
echoClient.SetAttribute ("MaxPackets", UintegerValue (1)); //指定最大的發包數、發包間隔、大小
echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));
echoClient.SetAttribute ("PacketSize", UintegerValue (1024));

最後用ApplicationContainer來分別定義StartTime和StopTime;

  ApplicationContainer serverApps = echoServer.Install (nodes.Get (1));  //使用Install方法將Application安裝在#1的Node上
  serverApps.Start (Seconds (1.0));
  serverApps.Stop (Seconds (10.0));  //Application在第1秒開始運行,在第10秒停止
   ApplicationContainer clientApps = echoClient.Install (nodes.Get (0));   //使用Install方法在節點0創建echoClient
  clientApps.Start (Seconds (2.0));  //第2秒開始,第10秒結束
  clientApps.Stop (Seconds (10.0));

接着分析,常用OnOffApplication:
簡單說就是,按照OnOff模式,向一個節點發送流量;詳細的解釋,在腳本中調用Application::StartApplication之後,“On”和“Off”各自定義的隨機值,交替切換。也即是,在“Off”模式時。沒有流量產生,在“On”狀態下,產生cbr流量(恆定比特率 Constants Bit Rate)即固定碼率
這就是仿真使用的cbr流量源,cbr流量源被“data rate”和“packet size”定義,定義節點以data rate的恆定速率發送大小爲packet size的IP包。
網絡協議仿真中,研究MAC協議性能,應用層的時間要不要考慮?還是隻考慮包從隊列發出,到接收 這段時間的延遲情況,我個人認爲是後者。
當應用程序開始運行後,第一個包將會在一個delay=packet/size之後發送;(這一段時間,我沒搞懂,也認爲對仿真MAC協議不重要,故省去,詳細看官網API)
OnOffApplication屬性:
- DataRate(500000bps):在On狀態的data rate;
- PacketSize(512):在On狀態的發包大小;
- Remote:目的地址
- OnTime(Constant=1.0):在On狀態的隨機值
- OffTime(Constant=1.0):在Off狀態的隨機值;
- MaxBytes(0):總共要發送的字節總數目,一旦這些字節被髮送完,即使 在On狀態,也不會有包被髮送,初值爲0意味着沒有限制;
- Protocol(ns3::UdpSocketFactory):使用的協議
- 通過OnOffHelper來設置屬性值
原本以爲PacketSink也是很重要的應用,仔細看了API才知道,該應用,接收且開始產生流量到一個固定的IP地址和端口。屬性值有Local(綁定rx socket的地址)以及Protocol(用於rx socket使用的協議,UDP),MAC協議仿真中主要使用OnOffApplication發產生CBR源,這是最重要的發現。
此外,負載的概念就是應用層的datarate,通過實驗,觀察,在負載>2Mbps時候,,物理層速率爲11Mbps,接收到的包有丟失,所以2Mbps負載,可以當做是指標點了。

發佈了47 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章