qdisc・とは?初心者が知るネットワークの渋滞対策入門共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
qdisc・とは?初心者が知るネットワークの渋滞対策入門共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


qdisc・とは?ネットワークの待ち行列を整理する仕組み

私たちがオンラインで動画を見たりゲームをしたりする時、情報は小さなデータの塊として送られます。データをどの順番で送るかを決めるのが qdisc です。qdisc は queueing discipline の略で、Linux の tc というネットワーク制御ツールの中にある待ち行列のルールのことを指します。

qdisc はデータを運ぶ箱のような役割を持ちます。箱には順番待ちのデータが入り、どういう順番で出口へ出すかを決めるのがこの箱のルールです。これにより、ネットワークの混雑時にも遅延を抑え、データの送信を安定させることができます。

なぜ qdisc が大切か

インターネットを使っていると、動画が途中で止まったり、ゲームでラグが出たりします。これは待ち行列が長くなってしまうせいです。ここで qdisc が働くと、混雑をコントロールして重要なデータを優先したり、待ち時間を平準化したりします。

代表的な qdisc のタイプ

以下はよく使われるタイプの一部です。用途に合わせて選ぶと体感の遅延を減らせます。

pfifo_fast:デフォルトで最もシンプルな箱。順番を守って送るだけの仕組みです。小さな家庭用ルータにもよく使われますが、混雑時には遅延が増えることがあります。

fq_codel:公平性と遅延の抑制を目指す箱です。データの流れを均一にして、バースト時の遅延を減らすのが得意です。

cake:現代の家庭用・小規模事業向けに設計された使いやすく強力なタイプ。複数機能をまとめて実装しており、遅延の削減と公平性のバランスが取りやすいです。

tbf(Token Bucket Filter)やその他のタイプもあります。初心者はまず fq_codel か cake から試してみると良いでしょう。

実務での使い方のイメージ

実務では tc コマンドを使って qdisc を設定します。以下は基本的な流れの例です。なお実際の環境に合わせてデバイス名やタイプ名を調整してください。

1) ネットワークデバイスを特定する例: eth0 を使います。この部分は環境に合わせて変更します。

2) 現在の qdisc を確認: tc qdisc show dev eth0

3) 新しい qdisc を追加: tc qdisc add dev eth0 root fq_codel

4) 状態を確認: <code>tc qdisc show dev eth0

5) もし設定を元に戻したい場合は削除: tc qdisc del dev eth0 root

受信側の制御には ingress qdisc を追加します。tc qdisc add dev eth0 ingress とします。

実務での注意点とコツ

・root か ingress か、対象のデバイスと方向を正しく選ぶことが大切です。間違えると意図した効果が出ません。

・複数の qdisc を組み合わせる場合は、上位の階層と下位の階層の関係を把握しましょう。今ある設定をそのまま置き換えず、段階的にテストするのがコツです。

代表的な比較表

タイプ用途・特徴長所短所
pfifo_fastデフォルトの簡易キュー速い、シンプル混雑時の遅延が増えることがある
fq_codel公平性と遅延削減遅延の平滑化、ラグ低減設定次第でCPU負荷が増える場合がある
cake現代的な複雑さと公平性使いやすく遅延減設定がやや難しい場合がある

まとめ

qdisc はネットワークの待ち行列のルールを決め、遅延を抑え公平性を保つための重要な仕組みです。初心者は fq_codel や cake から始め、実機で試しながら tc コマンドの使い方を覚えると良いでしょう。適切な qdisc の選択と設定は、日常のネット利用の安定性に大きく影響します。


qdiscの同意語

Queueing Discipline
Linuxの tc(トラフィックコントロール)で使われる、パケットの待ち行列と送出の挙動を決定するルールの集合。
キューイングディシプリン
tcの機能群で、パケットをどの順序で待機させ、どのように送出するかを決定するルールのこと。
Qdisc
Queueing Discipline の略称。公式ドキュメントや実装で頻繁に使われる名称。
キュー規律
Queueing Discipline の日本語訳の一つ。待ち行列の管理ルールを指す表現です。
待ち行列制御
パケットの待ち行列(キュー)をどう扱うかを定める制御の総称。qdisc の概念と深く関係します。
パケット待機ルール
パケットが待機する際の挙動を定めるルール。qdisc が決定する一部の仕様を指す説明表現。
送出スケジューリングルール
パケットをいつ、どの順序で送出するかを決定するルール。qdisc の重要な機能の一つです。

qdiscの対義語・反対語

noqueue(待機列なし)
tcのqdiscの一つで、キューを作らず、パケットを待機させずにその場で送出する動作・設計を指す。qdiscの対義語的存在として使われる実装例。
待機列なし(No queue)
パケットを待機させるキューを一切持たず、即時送出を意する概念。
キューなし(No queuing)
待機列を使わないことを示す一般的な表現。qdiscの反対概念として用いられることがある。
直接送出(Direct transmission)
キューを経由せず、パケットを直接送出する送信方式を指す表現。対義語的な考え方として使われることがある。

qdiscの共起語

tc
Linuxのトラフィック制御(traffic control)の総称。qdiscやclass、filterを組み合わせて帯域や遅延を制御する仕組みです。
qdisc
Queueing Disciplineの略。パケットのキュー管理と処理の基本単位です。
dev
制御対象のネットワークデバイス名(例: eth0、ens33)。
root
階層の最上位に置くqdiscの指定。全体の入口となる設定です。
clsact
クラス分類のアクションだけを提供する特殊なqdisc。分類と連携して動作します。
handle
識別子。1: のように数値とコロンでqdiscやクラスを区別します。
parent
親のqdiscまたはクラスを指す識別子。階層構造の関係を示します。
classid
クラスの識別子。帯域割り当て先を定義します。
class
帯域を細かく分ける区分。HTBやHFSCなどで利用されます。
rate
割り当てる帯域の上限。例: rate 1mbit。
ceil
上限の上乗せ最大値。HTBなどで rate とセットで使われます。
burst
一時的な帯域ピークを許容するバースト容量。
limit
キューに蓄えられる最大パケット数(またはバイト)。
netem
遅延・欠落・ジッターなどを再現するテスト用のqdisc。
delay
遅延時間の設定(例: delay 100ms)。
loss
パケット損失率の設定(例: loss 1%)。
jitter
遅延のばらつき。実ネットワークの揺れを模擬します。
latency
遅延の総称。ネットワークの反応時間を示します。
pfifo_fast
デフォルトの3バンド式の高速キュー。小さくて軽量な実装です。
pfifo
単純なFIFOキューの一種。
fq_codel
公平性と遅延削減を両立するキュー。CoDelと公平性を組み合わせたqdisc。
fq
Fair Queuing。複数のフローを公平に処理します。
red
Random Early Detection。混雑が始まる前にパケットを確率的に捨てて混雑を緩和します。
codel
CoDelの原理に基づく遅延削減アルゴリズム
cake
CAKE。使いやすさと公平性を両立する総合的なqdisc。
htb
Hierarchical Token Bucket。階層的な帯域制御の代表的qdisc。
hfsc
Hierarchical Fair Service Curve。階層的公正サービス曲線に基づくスケジューリング。
tbf
Token Bucket Filter。帯域制御の古典的手法。
police
policeアクション。超過帯域を検出するとパケットを落とす、または形状を制限します。
filters
パケットを分類してどのクラスへ渡すかを決める仕組み。
netlink
カーネルとユーザー空間を結ぶAPI。tc操作にも使われます。
iptables
Iptablesなどのルールと連携して分類を行う場合の手段。
prio
PRIOキュー。優先度の高いパケットを先に処理します。
drop_tail
Tail Drop。キューがいっぱいになると末尾のパケットを捨てます。
bandwidth
帯域幅。全体の容量のことです。
ecn
Explicit Congestion Notification。混雑を知らせる仕組み

qdiscの関連用語

qdisc
キューイング・ディシプリンの略。Linuxのトラフィック制御の基本機能で、ネットワークインターフェースから出ていくパケットの順序と送信レートを決定する仕組み。
tc
Traffic Control の略。Linux 上の qdisc/クラス/フィルタを設定・管理するコマンド群。
netem
ネットワークの遅延・ジッタ・損失・順序変更を模擬する qdisc。テスト用のエミュレーションに使う。
pfifo_fast
3つの優先度バンドを持つデフォルト寄りの qdisc。高・中・低の3つの帯域を使い分け、遅延と公平性のバランスを狙う。
pfifo
単純な FIFO だけの qdisc。順序どおりにパケットを出力する基本形。
SFQ
Stochastic Fairness Queueing の略。流れ間の公平性を保つためにパケットを公平に分配するアルゴリズム
fq
Fair Queuing の略。フロー間の公平性を意識してキューを処理する基盤となる機構。
fq_codel
FQ(公平キュー)と CoDel の組み合わせ。公平性を保ちつつ遅延を抑える設計の qdisc。
CoDel
Controlled Delay の略。キューの遅延を自動的に抑制する AQM アルゴリズム。
FQ_CODEL
FQ と CoDel を組み合わせた総称。 fq_codel と同じアイデアの別表記。
HTB
Hierarchical Token Bucket の略。階層的な帯域配分とシャーピングを実現する qdisc。
TBF
Token Bucket Filter の略。トークン・バケットを使って一定レートで送信を制限するシンプルな形状。
CBQ
Class Based Queueing の略。クラスごとに帯域を割り当てる古典的な設計。
HFSC
Hierarchical Fair Service Curve の略。階層的なサービス曲線で遅延と公平性を両立する高度なスケジューラ。
CAKE
Common Applications Kept Advanced の略。家庭用ネット向けに設計された統合 qdisc。公平性と遅延抑制をひとつにまとめる
ingress
受信方向のトラフィックに対して適用する qdisc。通常は policing やフィルタで制御する形になる。
clsact
Classless Action の略。インターフェースの ingress および egress の両方へフィルタを適用できる特殊な qdisc。
filter
パケットをどのクラスや qdisc に振り分けるかを決める条件(マッチ)を定義する設定。tc filter でよく使う。
class
qdisc 内の階層的な配分単位。各クラスに帯域や優先度を割り当てる。
root qdisc
インターフェースに対して最上位に取り付く qdisc。ここにクラスやフィルタがぶら下がる。
police
パケットの速度を制限するアクション。上限を超えたトラフィックを捨てたりリマップしたりする。
bufferbloat
キューの過剰蓄積により遅延が膨らむ現象。AQM や CODEL/CAKE で低減を狙う。
AQM
Active Queue Management の略。キュー遅延を抑制するための動的管理手法の総称。
ECN
Explicit Congestion Notification の略。経路上の混雑をパケットに通知する仕組み。
Latency
遅延。パケットが送信元から到着するまでの時間の指標。
Jitter
遅延のばらつき。リアルタイム性に影響を与える要因。
Bandwidth shaping
帯域を意図的に制御・配分すること。

インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14226viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2374viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1054viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
928viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
899viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
882viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
783viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
774viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
761viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
733viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
679viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
647viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
545viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
538viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
537viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
528viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
497viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
469viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
424viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
422viws

新着記事

インターネット・コンピュータの関連記事