ALTQ

ALTQ（代替キューイング："ALTernate Queueing"）は、BSD系UNIXのネットワークインタフェースでのキュー制御に関連するパケットスケジューラのためのフレームワークである。ALTQはキューイングによる制御と、リソースの共有とサービスの質の向上を実現するのに必要なQoS関連のコンポーネンツを提供する。ほとんどのBSD系のルーターに実装されている。ALTQは、ベースディストリビューションに含まれているFreeBSD・NetBSD・DragonFly BSDのベースとするディストリビューションに含まれており、OpenBSDのパケットフィルタであるPFにも統合されている。
仕組み.
キューイング.
通信プロトコルには、HTTPやSSHのようなアクセスの遅延に敏感に対処せざるを得ないものとFTPのように多少時間がかかってもQoSにさほど問題にならないものがある。
例えば、SSHクライアントで鍵がタイプされた場合には、直ちに反応することが期待されるが、ルーターがSSH接続の処理の前にFTP接続からの大量のパケットの塊を処理しようとした場合、SSH接続のパケットはキューに取り残されるので、SSH の接続は遅延し、動きが悪くなったように見えるかも知れない。あるいは、ルーターがすべてのパケットを保持するのに十分大きなキューがない場合には、 このようなパケットは廃棄されてしまうかも知れない。そこで、 使用されているキューイングの戦略を変更することが出来れば、異なるアプリケーション・ユーザ・コンピュータの間でネットワークの帯域幅を適正に共有することができるようになる。
スケジューラ.
ALTQのスケジューラは、処理すべきキューとその中の順序を決定する。原則として、処理はFIFO（先入れ先出し）とする。もし、キューが一杯になると、 新しく到着したパケットは廃棄される(テイルドロップ)。
設計されるまでの経緯.
BSD系オペレーティングシステム (OS) 上にIPv6を中心としたインターネット技術の標準コードを実装することを目的としたKAMEプロジェクトの一員であった長 健二朗によってQoSを実現するトラフィック管理技術として設計・実装した。