ipfw 的頻寬管理

dummynet 這一支系統工具可以藉由頻寬管理及佇列大小
達到不同的排程與佇列管理規則和模擬延遲
控制經過許多種網路介面的流量。

他起初只是一支測試工具,由 Luigi Rizzo 所寫成
在 ACM Computer Communication Review, Jan.97 發表

隨後被改寫成適用於 IP 層與橋接,並與 ipfw 整合
而且延伸成支援 multiple queueing(多重佇列) 與 scheduling policies(排程規則)。


在使用前,必須先確定 kernel 有包含這些編譯選項:

  • IPFIREWALL #enable ipfirewall (required for dummynet)
  • IPFIREWALL_VERBOSE #enable firewall output
  • IPFIREWALL_VERBOSE_LIMIT #limit firewall output
  • DUMMYNET #enable dummynet operation
  • NMBCLUSTERS #set the amount of network packet buffers
  • HZ #set the timer granularity
  • 當然,以下項目是不可或缺的:

    options IPFIREWALL
    options DUMMYNET
    options HZ=1000 # strongly recommended

    此外,我們也許會根據 “頻寬-延遲積” (bandwidth-delay products) 與 “佇列大小” (queue sizes) 來增加 NMBCLUSTERS 的值

    *參考資料
    FreeBSD Handbook
    Man Page:dummynet(4)、ipfw(8)

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *