ネットワーク通信を学ぶうえで、「プロトコル番号」という言葉に出会ったことがある方は多いのではないでしょうか。
しかし、よく耳にする「ポート番号」との違いがわからず、混乱してしまうケースも少なくありません。
この記事では、プロトコル番号とは何かという基本から、ポート番号との違い、TCP・UDP・IPといった主要なプロトコルの番号一覧まで、わかりやすく解説していきます。
ネットワークの仕組みをしっかり理解したい方は、ぜひ最後までご覧ください。
プロトコル番号とは?ネットワーク通信を識別する番号のこと
それではまず、プロトコル番号の基本的な概念について解説していきます。
プロトコル番号とは、IPパケットのヘッダー内に含まれる番号であり、上位レイヤーでどのプロトコルが使われているかを識別するために使用されます。
インターネット通信では、データは「パケット」と呼ばれる単位に分割されて送受信されます。
このパケットの中には、送信元・宛先のIPアドレスといった情報のほかに、「このパケットはどのプロトコルを使っているのか」を示すプロトコル番号が格納されているのです。
プロトコル番号は、IPヘッダーの「Protocol」フィールドに記載される8ビットの数値です。
この番号によって、受信側の機器はパケットをTCPやUDP、ICMPなど、どのプロトコルに渡すべきかを判断できます。
プロトコル番号はIANA(Internet Assigned Numbers Authority)によって管理・割り当てられており、世界共通の番号体系として運用されています。
たとえば、TCPのプロトコル番号は「6」、UDPは「17」、ICMPは「1」と定められており、これらは変わらない固定値として使用されます。
ネットワーク機器やOSは、この番号を参照してパケットの処理方法を決定しているため、通信の根幹を支える重要な仕組みといえるでしょう。
IPヘッダーにおけるプロトコル番号の位置づけ
IPヘッダーは複数のフィールドで構成されており、プロトコル番号はその中の「Protocol」フィールドに格納されます。
IPv4ヘッダーにおいては、このフィールドは8ビット(1バイト)で表現されるため、0〜255の範囲の値を取ることが可能です。
この値を見ることで、受信機器は次に処理すべきプロトコルを即座に判断できます。
IANAによる番号の管理と割り当て
プロトコル番号はIANAが一元管理しており、新しいプロトコルが登場した際には申請を通じて番号が割り当てられます。
これにより、世界中のネットワーク機器が同じ番号体系で動作できる仕組みが整っています。
番号の一部はすでに予約済みや実験用として確保されており、勝手に使用することはできない点にも注意が必要です。
よく使われるプロトコル番号の一覧
以下の表に、代表的なプロトコル番号をまとめました。
| プロトコル番号 | プロトコル名 | 概要 |
|---|---|---|
| 1 | ICMP | ネットワーク診断・エラー通知(ping等) |
| 2 | IGMP | マルチキャストグループ管理 |
| 6 | TCP | 信頼性の高いコネクション型通信 |
| 17 | UDP | 高速なコネクションレス型通信 |
| 41 | IPv6 | IPv4上でのIPv6カプセル化 |
| 47 | GRE | トンネリングプロトコル |
| 50 | ESP | IPsecによる暗号化 |
| 89 | OSPF | ルーティングプロトコル |
この一覧を覚えておくと、ネットワークの設定やトラブルシューティングの場面で非常に役立つでしょう。
プロトコル番号とポート番号の違いを正しく理解しよう
続いては、多くの方が混同しがちな「プロトコル番号」と「ポート番号」の違いを確認していきます。
この2つは似ているようで、まったく異なるレイヤーで使われる番号です。
混同してしまうと、ネットワーク設定やセキュリティの理解に誤りが生じてしまうため、しっかりと区別しておきましょう。
プロトコル番号はIPレイヤー(第3層)で使われ、どのトランスポートプロトコルを使うかを示します。
一方ポート番号はトランスポートレイヤー(第4層)で使われ、どのアプリケーションにデータを届けるかを示します。
つまり、プロトコル番号は「TCPかUDPか」といった通信方式の識別に使われ、ポート番号は「HTTPかFTPか」といったアプリケーションの識別に使われるのです。
ネットワークモデルにおける役割の違いを意識すると、この2つを明確に区別できるようになるでしょう。
OSI参照モデルにおける位置の違い
OSI参照モデルでは、IPは第3層(ネットワーク層)、TCPやUDPは第4層(トランスポート層)に位置します。
プロトコル番号は第3層で使われる概念であり、IPヘッダーに含まれます。
一方、ポート番号はTCPやUDPのヘッダーに含まれる第4層の情報であり、それぞれ独立した役割を担っています。
ファイアウォール設定での違いを理解する
ファイアウォールの設定では、プロトコル番号とポート番号の両方が使われます。
たとえば「TCPの80番ポートを許可する」という設定は、プロトコル番号「6(TCP)」とポート番号「80(HTTP)」を組み合わせた指定になります。
この違いを理解しておくことは、セキュリティポリシーを正確に設計するうえで欠かせない知識といえます。
プロトコル番号とポート番号を比較する表
| 項目 | プロトコル番号 | ポート番号 |
|---|---|---|
| 使用レイヤー | ネットワーク層(第3層) | トランスポート層(第4層) |
| 格納場所 | IPヘッダー | TCP/UDPヘッダー |
| 識別対象 | トランスポートプロトコルの種類 | アプリケーションの種類 |
| 値の範囲 | 0〜255 | 0〜65535 |
| 代表例 | 6(TCP)、17(UDP) | 80(HTTP)、443(HTTPS) |
この表を参考に、それぞれの役割を整理しておきましょう。
TCP・UDP・IPのプロトコル番号と特徴を詳しく解説
続いては、代表的なプロトコルであるTCP・UDP・IPのプロトコル番号とその特徴を確認していきます。
これらは現代のインターネット通信において最も重要なプロトコルであり、それぞれ異なる役割を持っています。
TCP(プロトコル番号6)の特徴
TCPのプロトコル番号は「6」です。
TCP(Transmission Control Protocol)はコネクション型の通信プロトコルであり、データの信頼性を確保することを最優先としています。
送信したデータが相手に届いたかどうかを確認する「確認応答(ACK)」の仕組みを持ち、パケットの欠落があれば自動的に再送します。
TCPの通信イメージ(例)
クライアント → 「データを送ります(SYN)」
サーバー → 「了解しました(SYN-ACK)」
クライアント → 「確認しました(ACK)」 → データ送信開始
このような3ウェイハンドシェイクによって接続が確立されます。
Webブラウジング(HTTP/HTTPS)やメール送受信(SMTP/POP3)など、データの正確性が求められる通信ではTCPが広く使われています。
UDP(プロトコル番号17)の特徴
UDPのプロトコル番号は「17」です。
UDP(User Datagram Protocol)はコネクションレス型のプロトコルであり、データの到達確認を行わないため、TCPよりも高速な通信が可能です。
動画ストリーミングやオンラインゲーム、VoIP(音声通話)など、多少のデータ欠落よりもリアルタイム性が重要な用途に適しています。
信頼性は低いものの、オーバーヘッドが少ない点が大きな強みといえるでしょう。
IPとIPv6でのプロトコル番号の扱い
IP(Internet Protocol)自体はプロトコル番号を「持たれる側」ではなく、「使う側」の存在です。
IPv4においては、ヘッダーの「Protocol」フィールドにTCPやUDPのプロトコル番号が格納されます。
一方、IPv6ではプロトコル番号に相当する概念を「次ヘッダー(Next Header)」と呼び、フィールドの名前が異なりますが、役割は同様です。
また、IPv4上でIPv6をカプセル化する「6in4」という技術では、プロトコル番号「41」が使用されます。
プロトコル番号6・17などよく使う番号を実務で活かすには
続いては、実際の業務やネットワーク設定の場面でプロトコル番号をどのように活かすかを確認していきます。
プロトコル番号の知識は、ルーターやファイアウォールの設定、パケットキャプチャの解析、セキュリティ監査など、さまざまなシーンで活躍します。
Wiresharkでのパケット解析への応用
ネットワーク解析ツールの定番であるWiresharkでは、キャプチャしたパケットのIPヘッダーにプロトコル番号が表示されます。
たとえば「Protocol: TCP (6)」と表示されていれば、そのパケットがTCPを使っていることが一目でわかります。
フィルター機能を使って特定のプロトコル番号だけを表示させることもできるため、障害調査やセキュリティ監査で非常に役立つでしょう。
Wiresharkのフィルター例
ip.proto == 6 (TCPパケットのみ表示)
ip.proto == 17 (UDPパケットのみ表示)
ip.proto == 1 (ICMPパケットのみ表示)
ファイアウォールやACLでのプロトコル番号指定
企業ネットワークでは、ファイアウォールやアクセスコントロールリスト(ACL)の設定において、プロトコル番号を明示的に指定することがあります。
たとえば「プロトコル番号6のみ許可」とすることで、TCPの通信だけを通過させる制御が可能です。
GREを使ったVPN構成(プロトコル番号47)やIPsec(プロトコル番号50)の設定でも、番号の正確な指定が求められます。
セキュリティ監査・侵入検知での活用
セキュリティの観点では、通常使われないプロトコル番号のパケットが流れていた場合、それが不正アクセスや攻撃の兆候である可能性があります。
IDS(侵入検知システム)やIPS(侵入防止システム)は、プロトコル番号を監視して異常なパケットを検知する機能を持っています。
日常的にどのプロトコル番号が使われているかを把握しておくことが、セキュリティ対策の基本といえるでしょう。
まとめ
この記事では、「プロトコル番号とは何か」という基本から、ポート番号との違い、TCP・UDP・IPの番号と特徴、実務での活用方法まで幅広く解説しました。
プロトコル番号はIPヘッダーに格納される8ビットの識別番号であり、受信機器がパケットをどのプロトコルに渡すかを決めるために使われます。
ポート番号と混同されやすいですが、両者は使用されるレイヤーも役割もまったく異なるものです。
TCPのプロトコル番号は「6」、UDPは「17」というように、代表的な番号を覚えておくだけでも、ネットワーク設定やトラブルシューティングの際に大きく役立つでしょう。
プロトコル番号の知識は、Wiresharkでのパケット解析やファイアウォールの設定、セキュリティ監査など、実務の多くの場面で活かせる実践的なスキルです。
ぜひこの記事を参考に、ネットワーク通信の仕組みへの理解を深めてみてください。