こんにちは!ネットワークやガジェットの裏側にある「見えない仕組み」を紐解くのが大好きなライターの私です。
皆さんは普段、スマホで動画を見たり、オンラインゲームをしたりするとき、どれくらい5Gの恩恵を受けているでしょうか。「速いな〜」となんとなく感じてはいても、その裏側でパケットたちがどんなドラマを繰り広げているか、気になったことはありませんか?
今回は、最新のモバイル通信(5G)の根幹を支える、ちょっとマニアックだけど最高にクールなプロトコル「SCTP(Stream Control Transmission Protocol)」、そしてその中でも「ポート番号38412(NGAP)」と「マルチホーム機能」という、インフラエンジニアのロマンが詰まったテーマを、身近な例えを交えながら優しく紐解いていきたいと思います。
難しい専門用語が出てきても「一歩ずつ理解していきましょう!」ね。それでは、5Gコアネットワークの旅に出発しましょう!
—
そもそも「SCTP」って何? TCPやUDPとの違い
インターネットの世界では、長年データのやり取りといえば「TCP」と「UDP」が王様でした。
- TCP: 確実にデータを届けるけれど、途中で1つでも迷子が出ると「そこから先はストップ!」と全体が止まってしまう真面目だけど融通のきかない優等生。
- UDP: とにかくスピード重視でノーガード。届いたかどうかは気にしない、ライブ配信向きの韋駄天。
ここで登場するのが「SCTP」です。SCTPは、TCPの良いところ(確実性)を受け継ぎつつ、さらに現代のモバイル通信(5G)のスピードとタフさに最適化された、いわば「超高性能な特急便」です。
郵便配達でイメージしてみよう
TCPが「1通の大きなダンボール箱に荷物を詰め込み、受領印をもらうまで次の箱を出さない」配達員だとしたら、SCTPは「複数の独立した引き出し(ストリーム)を持つ、超大型のコンテナトラック」です。
ある引き出しの荷物(例えば、音声データ)が渋滞に巻き込まれても、別の引き出しの荷物(例えば、Webブラウジングのデータ)はスイスイ目的地に届きます。これをネットワークの世界では「マルチストリーミング機能」と呼びます。5Gのように、音声、動画、IoTセンサーのデータなど、性質の異なる大量の通信が同時に飛び交う世界では、この仕組みが絶対に欠かせないのです。
—
5Gの心臓部!ポート番号38412と「NGAP」の正体
さて、本題の「ポート番号38412」と「NGAP」についてです。
5Gの基地局(私たちが街中で見かけるアンテナ)と、通信キャリアの中枢にある頭脳(5Gコアネットワーク:5GC)の間で、「このスマホの通信を繋いであげて」「ハンドオーバー(基地局の切り替え)をするよ」といった重要な指令をやり取りする言葉(プロトコル)を「NGAP(Next Generation Application Protocol)」と呼びます。
そして、このNGAPのメッセージを乗せて、基地局とコアネットワークの間を駆け巡るトランスポート層のプロトコルこそが、先ほど紹介した「SCTP」なのです。IANA(インターネットの番号管理機関)によって、このNGAP専用のSCTPポート番号として「38412」が公式に割り当てられています。
つまり、ネットワークのパケットキャプチャ(Wiresharkなど)を開いたとき、ポート番号 38412 を持つパケットが見えたら、それはまさに「5Gの基地局とコアネットワークが、スマホの命運を握る重要な会話をしている瞬間」というわけです。
—
止まらない通信!「マルチホーム機能」の泥臭い魅力
そして、今回のテーマのもう一つの主役が「マルチホーム(Multi-homing)」です。これが本当にすごいんです。
通常のTCPコネクションは、「送信元のIPアドレス」と「宛先のIPアドレス」が1対1でガッチリ結ばれています。そのため、もし使っている回線(例えばWi-Fi)がプツリと切れたり、ルーターが故障したりすると、コネクションは即座に切断され、TCPは「あぁ、接続が切れました…最初からやり直してください」と泣き寝入りします。
しかし、SCTPのマルチホーム機能を使えば、1つの通信セッションの中に、複数のIPアドレス(複数の通信経路)を同時に登録しておくことができます。
二刀流の配達ルート
イメージしてみてください。あなたの家に荷物を届ける配達員が、なんと「メイン通り(回線A)」と「裏道(回線B)」の2つのルートの鍵を最初から持っています。
もし、メイン通りで事故(回線障害)が起きて通れなくなっても、配達員は「おっと、じゃあ裏道に切り替えるね」と、荷物を落とすことなく(通信を切断することなく)、一瞬でルートを切り替えて配達を続行します。
これが、5Gの超高信頼・低遅延(URLLC)や、絶対に止まってはいけない社会インフラ、自動運転、工場(ローカル5G)などの現場でSCTPのマルチホームが愛される理由です。
—
実務で役立つ設定とパケットの確認方法
ここからは、実際にLinux環境などでSCTPやNGAPを扱うインフラエンジニアや学習者に向けて、実務で役立つ設定や確認コマンドをご紹介します。一歩ずつ見ていきましょう!
1. LinuxカーネルでのSCTPモジュールの有効化
UbuntuやCentOSなどの一般的なLinuxディストリビューションでは、SCTPはデフォルトでカーネルモジュールとして用意されていますが、ロードされていない場合があります。以下のコマンドで確認・有効化を行います。
# 現在ロードされているカーネルモジュールから sctp を探す
lsmod | grep sctp
# もしロードされていなければ、手動でカーネルモジュールをロードする
sudo modprobe sctp
# 再起動後も自動でロードされるように設定ファイルに追記する
echo "sctp" | sudo tee /etc/modules-load.d/sctp.conf
2. システムパラメータ(sysctl)のチューニング
モバイルコアネットワーク(Open5GSやfree5Gcなどのオープンソース環境)を構築する際、SCTPのハートビート(生存確認)間隔などを調整することがあります。/etc/sysctl.conf に以下のような設定を記述します。
# SCTPのハートビート間隔をミリ秒単位で設定(例: 5000ms = 5秒ごとに生死を確認)
net.sctp.hb_interval_ms = 5000
# パケットの再送回数の上限を設定(ネットワークの揺らぎに対する耐性を決める)
net.sctp.association_max_retrans = 4
# マルチホーム環境において、プライマリーパス障害時に切り替えるまでの閾値設定
net.sctp.path_max_retrans = 5
設定を反映させるには、以下のコマンドを実行します。
sudo sysctl -p
3. ポート38412(NGAP)の疎通確認・パケットキャプチャ
実際に5G基地局(Simulator等)とコアネットワークの間で、ポート 38412 を使ったSCTP通信がどのように行われているか、tcpdump を使ってキャプチャしてみましょう。
# 特定のインターフェซで、SCTPポート38412(NGAP)のパケットをキャプチャする
sudo tcpdump -i eth0 -nn -v 'sctp port 38412'
このコマンドを実行すると、SCTP特有のハンドシェイクである INIT、INIT-ACK、COOKIE-ECHO、COOKIE-ACK といったパケットが流れる様子や、マルチホーム環境下で複数のIPアドレスがネゴシエーションされる臨場感をリアルに味わうことができます。
—
まとめ
今回は、モバイル通信の進化を支えるSCTPのポート番号 38412(NGAP)と、驚異の耐障害性を持つ「マルチホーム機能」について解説しました。
- SCTPは、複数の独立した引き出し(ストリーム)を持ち、データの渋滞を防ぐ。
- ポート38412は、5Gの心臓部であるNGAP(基地局とコア間の制御信号)専用の通り道。
- マルチホームは、複数のIPアドレスを束ね、片方の回線が死んでも通信を途切れさせない無敵の耐障害性機能。
教科書を読むだけでは難しく感じるプロトコルも、こうして「郵便配達」や「現実世界のルート選択」に例えてみると、パケットがネットワークを駆け巡る姿が少し身近に感じられたのではないでしょうか?
日々のインフラ構築やトラブルシューティングの現場で、「あ、今この瞬間もポート38412の上をマルチホームなパケットが走っているんだな」と想像してもらえると、エンジニアとしてのワクワクがさらに広がるはずです。
それでは、また次回のネットワーク・ガジェット解説でお会いしましょう!
コメント