簡體   English   中英

在 omnet++ 中計算延遲的正確方法是什么?

[英]What is the proper way to calculate latency in omnet++?

我寫了一個模擬模塊。 為了測量延遲,我使用了這個:

simTime().dbl() - tempLinkLayerFrame->getCreationTime().dbl();

這是正確的方法嗎? 如果沒有,請建議我或示例代碼將非常有幫助。

另外, simTime()延遲是否是我可以在研究論文中寫的以微秒為單位的實際延遲? 還是我需要擴大規模?

此外,我發現通道數據速率和通道延遲對鏈路延遲沒有影響,相反,如果我改變觸發持續時間,延遲會發生變化。 例如

timer = new cMessage("SelfTimer");
scheduleAt(simTime() + 0.000000000249, timer);

如果這不是遞歸觸發簡單模塊的正確方法,那么請提出一個建議。

假設simTimegetCreationTime使用 OMNeT++ 類來表示時間,您可以直接對它們進行操作,因為該類重載了相關的運算符。 按照手冊的說明,我建議使用信號進行測量(例如, emit(latencySignal, simTime() - tempLinkLayerFrame->getCreationTime()); )。

simTime()以秒為單位,而不是微秒。

關於您的最后一個問題,如果您將此代碼用於所有節點,並且您在模擬中同時啟動所有這些節點,則會出現問題。 在這種情況下,您將擁有所有節點的完美同步,這意味着您只會在第一次傳輸中看到沖突。 因此,在模擬開始時為每條新安排的消息添加隨機抖動可能是個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM