こんにちは!ネットワークの世界へようこそ。インフラアーキテクトの私です。
日頃、私たちが何気なく使っているインターネットや社内ネットワーク。YouTubeの動画がサクサク再生されたり、大切なWeb会議の音声が途切れずに聞こえたりするのは、実はネットワーク機器たちが裏側で必死に「お仕事の交通整理」をしてくれているからなんです。
もし、すべてのデータが平等に、来た順番だけで処理されたらどうなるでしょうか?
あなたが必死に話しているWeb会議の音声パケットのすぐ後ろに、誰かがダウンロードした巨大なゲームのデータがピタリと張り付いていたら……。「声がロボットのように途切れる」「画面がフリーズする」という悲劇が起きてしまいますよね。
そこで今回は、レイヤ2(データリンク層)の世界でこの交通整理を一手に引き受けている主役、「IEEE 802.1p CoS(Class of Service)」と、その心臓部である「PCPフィールド」について、身近な例えを交えながら一歩ずつ優しく紐解いていきましょう!
—
1. 郵便配達で例える「イーサネットの交通整理」
ネットワークの世界を、私たちの身近な「郵便配達」に例えてみましょう。
イーサネットのフレームは、いわば「宛先が書かれた封筒」です。スイッチングハブやL2スイッチという郵便局の仕分けスタッフたちは、この封筒の宛先(MACアドレス)を見て、次の宛先へとどんどん仕分けして送り出していきます。
通常、郵便局のスタッフは「届いた順」に封筒を処理します。しかし、ここで問題が発生します。
「ダイレクトメールの束(大容量データ)」の山の中に、「一刻を争う救急病院からの診断書(リアルタイム音声・映像)」が紛れ込んでいたらどうでしょう?ダイレクトメールの仕分けに手間取っているうちに、大切な診断書の到着が遅れてしまいます。
これを防ぐためにどうすればいいでしょうか? そう、「封筒の表に特別なスタンプを押しておく」のです。
- 「この赤いスタンプが押してある封筒は、何よりも最優先で配達してね!」
- 「この青いスタンプの封筒は、急ぎじゃないから後回しでOKだよ!」
この「優先度を示すスタンプ」の役割をするのが、今回主役となるIEEE 802.1pの「PCP(Priority Code Point)」という仕組みなんです。
—
2. 802.1QとPCPの正体:3つのビットが持つパワー
「スタンプの仕組みは分かったけど、具体的にどうやって封筒に印をつけるの?」という疑問が湧いてきますよね。
実は、企業などで使われるイーサネットフレームには、普通の封筒(通常のイーサネットフレーム)に、ちょっとした「付箋(VLANタグ)」がペタッと貼り付けられることがあります。これを IEEE 802.1Q(Dot1Q)タグ と呼びます。
このVLANタグは全体で4バイト(32ビット)の大きさを持っているのですが、その中の一部分に、今回の主役である PCP(Priority Code Point) のための 3つのビット(部屋) が用意されています。
3ビットで何段階を表せるの?
コンピュータの世界で「3ビット」とは、0と1の組み合わせが何通り作れるかというと、 $2^3 = 8$ 通りです。
つまり、PCPフィールドを使うことで、トラフィックの優先度を 0から7までの「8段階」 に分けて分類(Class of Service)できるというわけです!
一歩ずつ整理してみましょう。
- PCP =
7: ネットワーク制御用(ルーティングプロトコルなど、止まったら困る最重要データ) - PCP =
6: 音声(VoIPなど、遅延が許されないリアルタイム通話) - PCP =
5: 映像(ビデオ会議など、カクつかせたくないストリーミング) - PCP =
4〜1: 一般的なデータ(ファイル転送、Web閲覧、メールなど) - PCP =
0: ベストエフォート(特に優先度を指定しない通常のデータ。デフォルト値)
数字が大きければ大きいほど、「お先にどうぞ!」と優先的に処理される仕組みになっています。これがレイヤ2におけるCoSの正体です。
—
3. 現場でどう動く?スイッチの設定とパケットの動き
では、このPCPが実際のネットワーク機器(L2/L3スイッチ)の中でどのように設定され、どう動いているのか、具体的な設定例を見てみましょう。
Cisco Systemsのスイッチなどを例に取ると、端末から送られてきたフレームにマーク(マーキング)を付けたり、そのマークを読み取ってキュー(待機列)に振り分けたりする設定を行います。
実務で使われる設定サンプル(Cisco IOSの例)
! 1. 信頼境界(Trust Boundary)の設定
! 接続されたIP電話機などがマークしたPCP/CoS値を信用するようにスイッチに指示します
interface GigabitEthernet0/1
description 接続されたIP電話機とPC
mls qos trust cos
!
! 2. CoS値(PCP)から内部のキューへのマッピング設定
! 受信したPCP値(0〜7)を、スイッチ内部のどの優先キューに割り当てるかを定義します
mls qos map cos-dscp 0 8 16 24 32 40 48 56
!
! 3. キューイングの設定(優先度の高いキューを先に処理するよう指示)
priority-queue out
この設定が入っているスイッチに、IP電話機から「音声パケット(PCP = 6)」が届いたとしましょう。
スイッチの内部では、以下のようなドラマが瞬時に繰り広げられています。
1. 受信: スイッチがポートでフレームを受け取り、VLANタグの中にあるPCPフィールド(値: 6)をチラッと読み取ります。
2. 分類(Classification): 「おっ、これはPCP 6だから、一番大事な『音声クラス』のレーンに入れないと!」と判断します。
3. キューイング(Queueing): スイッチ内部にある複数の「順番待ちレーン(キュー)」のうち、最優先レーンの列にこのフレームを並べます。
4. 送信(Scheduling): 他のレーン(一般データのキュー)にどれだけ大量のデータが溜まっていきていても、優先レーンにあるパケットは割り込んで真っ先に次のルーターや宛先へと送り出されます。
この一連の動きを「QoS(Quality of Service)」と呼び、そのレイヤ2部分を支えているのがIEEE 802.1p(PCP)なのです。
—
4. 注意点:L2の先にある「L3(DSCP)」との違い
ここで、ネットワークの学習を進める上でとても重要なポイントに触れておきます。
今回紹介したPCPは、あくまで 「レイヤ2(同じネットワークセグメント内)」 でしか通用しません。
郵便配達で言えば、「同じ市内の郵便局の中だけで通用する特急スタンプ」のようなものです。
もし、パケットがルーターを超えてインターネットの向こう側(別のネットワーク)へ旅立つとき、途中のルーターはL2のタグ(VLANタグ)を一度剥がして新しく貼り替えてしまいます。そのため、PCPのスタンプは途中で消えてしまうのです。
そこで、ルーターを超えて目的地まで優先度を維持したいときは、IPヘッダーの中にある DSCP(Differentiated Services Code Point) という レイヤ3のスタンプ を使います。
実務の世界では、次のような連携プレイが行われます。
1. IP電話機から出たときは、L2の PCP(例: 6) とL3の DSCP(例: EF = Expedited Forwarding) の両方にマークがつけられる。
2. スイッチを通過するときは主にお手軽なL2の PCP を見て素早く仕分けする。
3. ルーターをまたぐときはL3の DSCP を見て、ネットワーク全体で一貫した優先制御を行う。
この「L2とL3の連携」を意識できるようになると、ネットワークエンジニアとしての視座がグッと高まりますよ!
—
まとめ
今回は、IEEE 802.1p CoSとPCPフィールドの仕組みについて、郵便配達の例えを交えながら解説しました。
- PCPとは: VLANタグ(IEEE 802.1Q)の中にある3ビットのフィールド。
- 何ができるの: 0〜7の8段階でトラフィックの優先度(CoS)をL2レベルで分類できる。
- 実務での役割: 音声や映像などのリアルタイムデータを優先し、ネットワークの遅延や途切れを防ぐ。
「たった3ビットの小さな部屋」ですが、現代の私たちの快適なデジタルライフを裏から支えている、なくてはならない大切な仕組みなんですね。
難解に思えるプロトコルや規格も、一歩ずつ構造を分解して身近なものに置き換えていけば、必ずスッと頭に入ってきます。これからも一緒に、奥深いネットワークの世界を楽しんでいきましょう!
コメント