簡體   English   中英

ns3中queue和queue discipline有什么區別?

[英]What is the difference between queue and queue discipline in ns3?

我發現NS3里面有兩個關於隊列的類

第一個是https://github.com/nsnam/ns-3-dev-git/blob/master/src.network/utils/queue.h ,名為queue,基於實現了一個落尾隊列這個。

另一個是https://github.com/nsnam/ns-3-dev-git/blob/master/src/traffic-control/model/queue-disc.h ,命名為queue discipline,實現了很多queue

我現在想知道這兩種表示法有什么區別?

首先,我想鼓勵您閱讀ns-3教程 您會在那里找到許多問題的答案。

Queue 和 QueueDisc 不僅僅是符號,它們是服務於不同目的的不同對象。 根據ns-3教程

在架構上,ns-3 將設備層與 IP 層或 Inte.net 主機的流量控制層分開。 自從最近發布的 ns-3 以來,傳出數據包在到達通道 object 之前要經過兩個隊列層。遇到的第一個隊列層是 ns-3 中所謂的“流量控制層”; 在這里,主動隊列管理 (RFC7567) 和基於服務質量 (QoS) 的優先級排序是通過使用隊列規則以獨立於設備的方式進行的。 第二個隊列層通常位於 NetDevice 對象中。 不同的設備(例如 LTE、Wi-Fi)對這些隊列有不同的實現。

因此,隊列是實際存儲數據包的最低級別對象。 QueueDisc 是一個抽象的 class,它提供類似隊列的接口,但它實際上實現了主動隊列管理(AQM)。 有關 QueueDisc 的更多信息,請參閱 QueueDisc API 文檔的“詳細說明”部分。

ns-3的具體實現細節:QueueDisc 實際上封裝了一個 Queue。 這是有道理的,因為 QueueDisc 仍然需要存儲它收到的數據包。

你會發現許多ns-3的接口試圖鏡像 Linux 的 .network 子系統。

暫無
暫無

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

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