9.1. キューおよびキューイング規則の説明

キューイングを用いると、データをどのように「送る」かを決定できます。 大切なのは、我々が変更できるのは送信データだけ、という認識です。

インターネットの動作原理からして、 他の人が送ってくる内容を直接制御することはできません。 これはあなたの自宅の (物理的な!) 郵便箱にちょっと似ています。 世の中を変更して、送られてくる郵便物の量に影響を与えることはできません (全員に連絡を取れば別ですが)。

しかしながら、Internet の大部分は TCP/IP で動作しているので、 このいくつかの機能が利用できます。 TCP/IP は 2 つのホスト間のネットワークの容量を知る方法を持たないので、 単に開始時にデータをだんだん速く送ろうとし ('slow start')、 送信できる限界を越えてパケットがロストし始めたときに、減速します。 実際はこの説明よりもう少し賢いのですが、それらについてはまた後ほど触れます。

これはつまり、到着する郵便の半分を読まずに捨て、 それ以上送ってこないよう祈るのと同じです。 インターネットではうまくいく、というところが違いますが :-)

自分のネットワークのあるホストに対して、 あまり高速にダウンロードできないようにしたい場合を考えましょう (そのネットワークのルータもあるとします)。 この場合はルータの「内側」のインターフェース、 すなわちコンピュータにデータを送るところ、 で帯域制限を行います。

接続のボトルネックの部分で制御を行うようにすることも重要です。 NIC が 100Mbit で、ルータの接続が 256kbit だったら、 ルータが処理できる以上のデータは送らないようにしなければなりません。 さもないと、接続を制御しバンド幅を絞るのはそのルータ、 ということになります。 我々は、言うなれば「自前のキュー」が必要なわけで、 それは連鎖のなかで最も遅い回線に存在しなければいけません。 ありがたいことに、これは簡単に可能となります。