【実務・中級編】 無線レイヤー2におけるSDAP(Service Data Adaptation Protocol)レイヤーとQoSフローのマッピング – 家庭用ネットワーク・IoT・モバイル通信実践ガイド

5Gの「見えない交通整理」を解剖する:SDAP層が握るQoSフロー制御の深淵

ネットワークエンジニアとして現場を歩いていると、「5Gは速い」という言葉を耳にしますが、私たちエンジニアが本当に知るべきは、その速度の裏側で行われているミリ秒単位の交通整理です。

特に、Web APIやインフラ設計に関わるエンジニアにとって、5GのQoS(Quality of Service)制御は、単なる「ベストエフォート」からの脱却を意味します。今日は、5Gの無線区間における肝、SDAP(Service Data Adaptation Protocol)と、それがどうやってDRB(Data Radio Bearer)と結びついているのか、その「泥臭い」仕組みを紐解いていきましょう。

—

1. なぜSDAPが必要なのか?:IPパケットと無線ベアラの橋渡し

4G(LTE)までの世界では、EPS Bearerという枠組みでトラフィックを管理していました。しかし、5G(5Gコア)は「QoSフロー」という粒度でサービスを区別します。

ここで登場するのがSDAP層です。SDAPは、5Gコアから流れてくるIPパケット(QoSフロー)を、無線区間のパイプラインであるDRBにどう詰め込むかを制御する司令塔です。

  • QoSフロー: 5Gコア側で識別される論理的な通信単位(QFI: QoS Flow Identifierで管理)。
  • DRB: 無線区間で実際にパケットを運ぶ物理的なトンネル。

SDAPは、このQFIをSDAPヘッダーとしてIPパケットの先頭に付与し、どのDRBに流し込むべきかをマッピングします。

—

2. SDAPヘッダーの構造とQFIの役割

SDAPヘッダーは非常にシンプルですが、中身は強力です。標準的なヘッダーフォーマットは以下の要素で構成されます。

  • RQI (Reflective QoS Indication): ダウンリンクのパケットを見て、アップリンク側も同じQoSで送るようUE(端末)に指示するビット。
  • QFI (QoS Flow Identifier): 0〜63の値を持ち、どのフローに属するかを特定するID。

このQFIが、ネットワーク側で定義された5QI(5G QoS Identifier)と紐づくことで、遅延にシビアなVoIPパケットなのか、ただのWebブラウジングなのかを無線レイヤーが瞬時に判断します。

—

3. 実務的な視点:API設計とQoSの意識

WebエンジニアがAPIを設計する際、HTTPヘッダーなどでQoSを直接操作することはできません。しかし、エンドツーエンドの遅延を考慮する際、「このリクエストはどのQFIにマッピングされるべきか」を意識するのは重要です。

例えば、PythonのrequestsライブラリでAPIを叩く際、バックグラウンドではOSのソケットレベルでQoSタグ付けが行われることがあります(実装による)。

import requests

# リアルタイム性の高いAPIリクエストを想定
url = "https://api.example.com/v1/telemetry"
headers = {
    "X-QoS-Priority": "High", # アプリケーション側で優先度を意識した設計
    "Content-Type": "application/json"
}

# 実際の通信では、このパケットが5G網に入った瞬間、
# SDAPによって適切なDRB(高い優先度のベアラ)へマッピングされる
response = requests.post(url, json={"data": "sensor_update"}, headers=headers)

if response.status_code == 200:
    print("優先配送キューを通過しました")

—

4. トラブルシューティング:現場での「DRBマッピング不一致」

現場で最も厄介なのは、「QoSは高いはずなのに、なぜか遅延が発生する」というケースです。これは大抵、SDAPのマッピング定義がネットワーク側と端末側でズレている(またはDRBが枯渇している)ことが原因です。

デバッグを行う際は、Wireshark等で無線区間のキャプチャを取るのが定石ですが、パケットの中身を見るにはSDAPヘッダーのデコード設定が必要です。

curlを用いた疎通確認とヘッダー監視のコツ

インフラ運用中、特定のQoSフローが期待通り流れているかを確認するためには、HTTPヘッダーのレイテンシを時系列で計測します。

# サーバーの応答速度を監視し、QoSが不安定な時間帯を特定するスクリプト
# -w はcurlの統計出力オプション。ネットワークのジッターを可視化する
curl -o /dev/null -s -w \
    "Connect: %{time_connect}s, TTFB: %{time_starttransfer}s, Total: %{time_total}s\n" \
    https://api.example.com/v1/telemetry

もしTTFB(Time to First Byte)が異常に変動する場合、無線区間でのDRBの輻輳か、SDAP層でのパケットバッファリングが疑われます。

—

執筆者からのアドバイス

SDAPとQoSフローの概念は、教科書を読むだけでは抽象的でピンと来ないかもしれません。しかし、「無線区間という狭いパイプラインを、誰が・どんな優先順位で通り抜けるか」を管理しているのがこのレイヤーであると理解すれば、パケットの挙動が手に取るように見えるはずです。

APIの設計時や、インフラのパフォーマンスチューニングを行う際は、ぜひこの「無線レイヤーでの交通整理」に思いを馳せてみてください。トラブルの解決策は、多くの場合、この泥臭いレイヤーの理解から生まれます。

次回の記事では、このQFIと5QIをネットワークコンフィグでどうマッピングするか、実際の機器設定を交えて深掘りします。お楽しみに。

コメント

タイトルとURLをコピーしました