本文へ移動

インフラ転職コンパス現場・技術・キャリアをつなぐ専門メディア

メニュー

ポート番号とは?TCPとUDPの違い・番号一覧・プロトコル番号との違い

ポート番号は、TCPまたはUDPで同一ホスト上の通信先プロセスを識別する16ビットの番号です。IPアドレスがホスト、プロトコルとポートが通信先のサービスを絞ります。

本文ではIANAの区分、TCP/UDPの違い、クライアント側の一時ポート、代表的なサービス番号を一覧化し、FW・ACL・疎通確認での読み方を説明します。

この記事でわかること

  • ポート番号とは?
  • TCP・UDPとポート番号はどう関係する?
  • 代表的なポート番号と疎通の確認方法
  • なぜIPアドレスだけでは足りない?

この記事はネットワークエンジニアの仕事内容の各論です。工程の全体像から確認したい場合はそちらへ。

設計構築チャンネル関連動画:プロトコル番号とは?ネットワークエンジニア必須スキル

ポート番号とは?

ポート番号は、1台の端末上で通信を受け渡すアプリケーションやプロセスをTCP・UDPヘッダー内で識別する16bitの番号です。IPアドレスが端末を示し、プロトコルと宛先ポートの組み合わせが接続先サービスを示します。

けんと@設計構築チャンネル
けんと@設計構築チャンネル
ポート番号は用語だけで覚えず、送信元・宛先・ヘッダー項目・受信側の処理を図でつなぎます。パケットキャプチャのどのフィールドで確かめるかまで結び付けると、障害時に使える知識になります。

(出典:Service Name and Transport Protocol Port Number Registry(IANA))

TCP・UDPとポート番号はどう関係する?

TCPとUDPはそれぞれ0~65535のポート空間を持ちます。同じ番号でもTCP/53とUDP/53は別の通信として扱われるため、FWや疎通試験ではIPとポートだけでなくプロトコルも固定します。

なぜIPアドレスだけでは足りない?

IPアドレスだけでは端末までしか識別できず、その端末上のどのアプリケーションへ渡すかを決められません。TCPまたはUDPのポート番号を組み合わせることで、Web、SSH、DNSなど複数の通信を同じ端末で区別します。

ポート番号の重要ポイント
確認軸 実務で押さえる内容
ポイント1 TCPとUDPはそれぞれ0〜65535のポート空間を持つ
ポイント2 IANAはSystem 0〜1023、ユーザー 1024〜49151、動的/プライベート 49152〜65535に区分
ポイント3 サーバーは待受ポート、クライアントは一時ポートを使う
ポイント4 通信は送信元IP・送信元ポート・宛先IP・宛先ポート・プロトコルで識別
ポイント5 同じ番号でもTCPとUDPは別

(出典:Protocol Numbers(IANA))

TCPとUDPでの扱いの違い

同じ番号でも、TCPの53番とUDPの53番はまったく別の通信です。DNSは問い合わせにUDP/53を使い、応答が大きい場合やゾーン転送ではTCP/53を使います。ファイアウォールで「53番を許可」とだけ決めると、どちらか片方しか通らず、名前解決が不安定になります。

待受の確認も分けて行います。Linuxなら ss -lntu で t(TCP)と u(UDP)の両方を表示し、対象の番号がどちらで開いているかを見ます。

(出典:RFC 9293 Transmission Control Protocol (TCP))

送信元ポートと宛先ポート

クライアントは通常、一時的な送信元ポートから、サーバーの待受宛先ポートへ接続します。戻り通信では送信元・宛先が反転するため、FWやキャプチャでは送信元IP、宛先IP、プロトコル、送信元ポート、宛先ポートの5要素を同じ通信として追います。

ポート番号を使った通信確認フロー
  1. STEP 01名前解決で宛先IPを決定
  2. STEP 02アプリがTCPまたはUDPと宛先ポートを選択
  3. STEP 03OSが送信元一時ポートを割り当て
  4. STEP 04FW・ACLが5要素で許可判断
  5. STEP 05サーバーの待受プロセスが受信

Well-known・Registered・動的の範囲

IANAの区分では、System Portsは0〜1023、User Portsは1024〜49151、Dynamic/Private Portsは49152〜65535です。ただし番号だけで安全性や実際の待受を判断せず、OSのソケット状態、設定、FW、通信先を確認します。

けんと@設計構築チャンネル
けんと@設計構築チャンネル
ポート番号の確認では、キャプチャの時刻と通信方向を固定し、正常パケットと比較します。パケットキャプチャのどのフィールドで確かめるかまで結び付けると、障害時に使える知識になります。

代表的なポート番号

代表例はSSHのTCP/22、DNSのUDP・TCP/53、HTTPのTCP/80、HTTPSのTCP/443です。同じ53番でもUDPとTCPは別の通信で、製品が標準以外のポートを使う場合もあるため、実際の待受と通信要件を確認します。

プロトコル番号とは何が違う?

プロトコル番号はIPヘッダーにある8ビットの番号で、そのIPパケットが何を運んでいるかを示します。TCPなら6、UDPなら17、ICMPなら1です。ポート番号はその一段上、TCPヘッダーやUDPヘッダーにある16ビットの番号で、届いた先のどのプロセスへ渡すかを示します。

項目 プロトコル番号 ポート番号
位置 IPヘッダー TCP/UDPヘッダー
長さ 8ビット(0〜255) 16ビット(0〜65535)
示すもの 中身がTCPかUDPかICMPか どのプロセスへ渡すか
代表例 TCP=6/UDP=17/ICMP=1 HTTPS=443/SSH=22/DNS=53

読む順番が違います。ルーターやファイアウォールは、まずIPヘッダーのプロトコル番号を見て、中身がTCPなのかUDPなのかICMPなのかを判定します。TCPかUDPだと分かって初めて、その中のポート番号を読めます。ICMPにポート番号が存在しないのはこのためで、Pingは通るのにHTTPSが通らない、という状況が起きるのもこの2つが別の層の識別子だからです。

ACLを書くときにも効いてきます。permit tcp any host 192.0.2.10 eq 443tcp がプロトコル番号6にあたり、eq 443 がポート番号です。permit ip と書くとプロトコルを問わず通すので、ポート番号での絞り込みはできません。

代表的なポート番号と疎通の確認方法

DNSの53、HTTPの80、HTTPSの443、SSHの22などは代表的な割り当てですが、実際の待受はサーバー設定で変わります。ss -lntupなどで待受、nccurldigで実通信を確認します。

ファイアウォール・ACLでの使われ方

FW・拡張ACLでは、送信元・宛先IP、IPプロトコル、送信元・宛先ポート、方向を照合します。『443を許可』だけでは条件が不足するため、どの送信元からどの宛先へ、TCP/443をどちら向きに許可するかを通信要件表へ記載します。

ポートが開いているとはどういう意味?

ポートが開いているとは、対象のプロセスがlisten状態で、経路とFWを通過した接続要求へ応答できる状態です。listenしているだけでは外部からの疎通を証明できません。

Windowsから疎通を確認するなら Test-NetConnection 192.0.2.10 -Port 443 です。TcpTestSucceeded が True なら、送信元IP・送信元ポート・宛先IP・宛先ポート・プロトコルの5要素がファイアウォールを通過して、待受プロセスまで届いたことになります。

確認するときの注意点

番号だけでサービスを断定せず、TCPかUDPか、実際に待受しているプロセス、送信元・宛先ポート、FWの方向を確認します。標準ポート以外を使う製品もあるため、通信要件とOSのソケット状態を照合してください。

けんと@設計構築チャンネル
けんと@設計構築チャンネル
ポート番号の障害切り分けは一つの層で決めず、L2・L3・L4の観測結果を順に照合します。パケットキャプチャのどのフィールドで確かめるかまで結び付けると、障害時に使える知識になります。

関連する記事

  • TCPの3ウェイハンドシェイクとは?SYN・ACKを図解
  • ネットワークのポリシーテストとは?FW・ACLの試験手順
  • CiscoのミラーポートとWiresharkで通信障害を切り分ける方法

観測点を一か所に絞らず区間で切り分ける

ポート番号を確認するときは、観測点を一か所に絞りません。番号の区分、代表的なポート番号、プロトコル番号との違いを並べ、どの区間まで正常かを切り分けます。

関連動画はIPヘッダーのプロトコル番号を扱う内容です。本記事ではその違いを明示した上で、TCP・UDPのポート番号へ範囲を広げ、現場で混同しやすい二つの番号を整理します。

案件では、正常時の情報がなければ障害時の差分を判断できません。作業前に netstat -ano と Get-NetTCPConnection を取得し、変更後も同じ条件で比較します。ポート確認を入口に層を分けます。

この内容は、設計構築チャンネルの動画でも解説しています。

知っておくべきポート番号一覧

まとめ

ポート番号はTCP/UDP上の通信先プロセスを識別します。番号一覧は起点として使い、実務ではプロトコル、実際の待受、経路、FW、アプリケーション応答まで確認します。

最近の記事
ピックアップ