ssh
や telnet
など) や小さなブロックのデータだけを取り扱うサービスに関連するパケットに高い優先順位を付けることが可能です。
tc
コマンド (iproute パッケージの提供する) を使って設定します。このコマンドはインターフェイスがかなり複雑なので、高レベルツールを使うことをおすすめします。
wondershaper
(同名のパッケージに含まれる) の主目的はネットワーク負荷とは無関係に待ち時間を最小化することです。このコマンドを使うことで、全トラフィックがある値に制限されます。この値には帯域を飽和させるよりほんの少しだけ小さな値を設定します。
wondershaper interface download_rate upload_rate
を実行することでトラフィックが制限されます。インターフェイスは例えば eth0
または ppp0
などで、各制限値はキロビット毎秒単位です。特定のインターフェイスで実施されているトラフィック制限を無効化するには wondershaper remove interface
コマンドを使います。
/etc/network/interfaces
ファイルに up
と down
指示文を追加して、それぞれインターフェイスが開始された後と停止される前に実行するコマンドを宣言します。例えば:
例10.9 /etc/network/interfaces
ファイルの修正
iface eth0 inet dhcp up /sbin/wondershaper eth0 500 100 down /sbin/wondershaper remove eth0
/etc/ppp/ip-up.d/
内に wondershaper
を呼び出すスクリプトを作成することで、接続が開始された後可能な限り早い時期にトラフィック制御を行うように設定できます。
pfifo_fast
キュースケジューラを使います。これは興味深い機能を提供します。各 IP パケットの優先度はパケットの ToS フィールド (Type of Service) によって決まります; スケジューリング機能を活用するには、このフィールドを修正するだけで十分です。ToS フィールドの取り得る値は 5 種類です:
iptables -t mangle -A PREROUTING -p tcp --sport ssh -j TOS --set-tos Minimize-Delay iptables -t mangle -A PREROUTING -p tcp --dport ssh -j TOS --set-tos Minimize-Delay