一般的なネットワークポートリファレンス:完全ガイド

· 12分で読めます

目次

ネットワークポートとは?

ネットワークポートは、単一のデバイス上で複数のサービスを実行できるようにする仮想通信エンドポイントです。IPアドレスが建物の住所だとすれば、ポートはその建物内の個々の部屋番号のようなものです。データがインターネットを経由して移動する際、特定のIPアドレスとポート番号に向けられ、正しいアプリケーションに確実に到達します。

Webを閲覧したり、メールを送信したり、ファイルを転送したり、ビデオをストリーミングしたりするたびに、デバイスはネットワークポートを使用してこれらの異なる通信を同時に管理しています。Webブラウザがサーバーのポート443と通信している間に、メールクライアントがメールサーバーのポート993と通信することができます。すべて同時に、同じインターネット接続上で行われます。

ポート番号は0から65,535までの範囲です。各番号は特定のサービスまたはアプリケーションに関連付けることができます。一部のポート番号は標準化され、普遍的に認識されています(HTTPのポート80など)が、他のポート番号は必要に応じて動的に割り当てられます。一般的なポート番号を理解することは、ネットワーク、サーバー、またはWebアプリケーションを扱うすべての人にとって基本的な知識です。

クイックヒント:ポートをテレビのチャンネルと考えてください。テレビは1本のケーブルで信号を受信しますが、異なる周波数に合わせることで異なるチャンネルを視聴できます。同様に、コンピュータは1つのネットワークインターフェースでネットワークトラフィックを受信しますが、異なるアプリケーションは異なるポート番号でリッスンします。

ポートはOSIモデルのトランスポート層(レイヤー4)で動作します。アプリケーションがネットワーク経由で通信したい場合、特定のポート番号にバインドします。オペレーティングシステムは、そのポート宛ての着信トラフィックを正しいアプリケーションにルーティングします。この多重化機能により、現代のネットワーキングが可能になります。ポートがなければ、一度に1つのネットワークアプリケーションしか実行できません。

システムで現在使用されているポートは、ポートスキャナーツールで確認できます。これは、開いているポートとそこで実行されているサービスを特定するのに役立ちます。

TCPとUDP:トランスポートプロトコルの理解

特定のポート番号に入る前に、ポートを使用する2つの主要なトランスポートプロトコル、TCPとUDPを理解することが重要です。これらのプロトコルは、デバイス間でデータがどのように送信されるかを決定し、それぞれ異なる特性を持ち、異なるアプリケーションに適しています。

TCP(伝送制御プロトコル)

TCPは信頼性の高い、接続指向のプロトコルです。データを送信する前に接続を確立し(「3ウェイハンドシェイク」)、すべてのパケットが正しい順序で到着することを保証し、失われたデータを再送信します。TCPを電話のようなものと考えてください。接続を確立し、会話をし、両者が通話の終了を認識します。

TCPの主な特徴:

TCPは、速度よりも正確性が重要なアプリケーションに最適です:Webブラウジング(HTTP/HTTPS)、メール(SMTP、IMAP、POP3)、ファイル転送(FTP、SFTP)、リモート管理(SSH、Telnet)。Webページを読み込むとき、すべての画像、スタイルシート、スクリプトが完全かつ正確に到着する必要があります。1バイトでも欠けるとファイルが破損します。

UDP(ユーザーデータグラムプロトコル)

UDPは高速で、コネクションレスのプロトコルです。接続を確立せずにデータを送信し、配信を保証せず、パケットの順序も気にしません。UDPをはがきを送るようなものと考えてください。郵便ポストに投函して到着を願いますが、確認は得られません。

UDPの主な特徴:

UDPは、完璧さよりも速度が重要なリアルタイムアプリケーションに最適です:ビデオストリーミング、オンラインゲーム、VoIP通話(Skype、Zoom)、DNSクエリ、ライブ放送。ライブストリーム中にいくつかのビデオフレームが失われた場合、一時停止して再送信を待つよりも再生を続ける方が良いです。

プロのヒント:一部のアプリケーションは、同じポート番号でTCPとUDPの両方を使用します。たとえば、DNSは主にUDPポート53を迅速なクエリに使用しますが、UDPのパケットサイズ制限を超える大きな応答にはTCPポート53にフォールバックします。ファイアウォールを設定する際は、サービスがどのプロトコルを必要とするか常に確認してください。

ポート番号の範囲と分類

Internet Assigned Numbers Authority(IANA)は、利用可能な65,536のポート番号を3つの異なる範囲に分割しており、それぞれがネットワーク通信において異なる目的を果たしています。

範囲 ポート番号 説明 一般的な用途
ウェルノウンポート 0-1023 システムサービスと一般的なプロトコル用に予約 HTTP、HTTPS、FTP、SSH、SMTP、DNS
登録済みポート 1024-49151 要求に応じてIANAによって特定のサービスに割り当て データベースサーバー、カスタムアプリケーション、エンタープライズソフトウェア
動的/プライベートポート 49152-65535 一時的またはプライベート使用に利用可能 クライアント接続用のエフェメラルポート、テスト、開発

ウェルノウンポート(0-1023)

これらのポートは、Unix系システムでバインドするためにrootまたは管理者権限が必要です。インターネット全体で標準化されており、ポート80は常にHTTPを意味し、ポート443は常にHTTPSを意味します。この一貫性により、クライアントとサーバーは設定なしで通信できます。

オペレーティングシステムは、悪意のあるアプリケーションが重要なサービスになりすますのを防ぐために、これらのポートを保護しています。Linuxでは、rootとして実行されているプロセスのみが1024未満のポートでリッスンできます。このセキュリティ対策により、ポート22に接続するときに、不正なアプリケーションではなく、実際にSSHデーモンに到達していることが保証されます。

登録済みポート(1024-49151)

ソフトウェアベンダーや組織は、特定のアプリケーション用にこの範囲のポートをIANAに登録できます。ウェルノウンポートほど厳密に施行されていませんが、これらの割り当ては競合を防ぐのに役立ちます。たとえば、Microsoft SQL Serverは伝統的にポート1433を使用し、MySQLはポート3306を使用します。

これらのポートは使用するために特別な権限を必要としないため、ユーザーレベルのアプリケーションやサービスに最適です。ただし、登録は紳士協定のようなものです。技術的には、登録済みポートで別のサービスを実行することを妨げるものは何もありません。

動的/プライベートポート(49152-65535)

これらのエフェメラルポートは、アプリケーションがアウトバウンド接続を開始するときに、オペレーティングシステムによって自動的に割り当てられます。ブラウザがWebサーバーに接続するとき、サーバーのポート443に接続しながら、ソースポートとしてポート54321を使用する場合があります。サーバーの応答はポート54321に返され、OSが正しいブラウザタブにルーティングできるようになります。

これらのポートは迅速にリサイクルされます。接続が閉じると、ポートは再利用可能になります。これらのポートを手動で設定することはありません。TCP/IPスタックによって完全に管理されます。

すべての管理者が知っておくべき必須ポート

特定のポートは、インターネット運用の基本であり、すべてのシステム管理者、開発者、IT専門家が暗記しておくべきものです。これらのポートは、現代のネットワーキングを可能にする中核サービスを処理します。

ポート プロトコル サービス 説明
20/21 TCP FTP ファイル転送プロトコル(データ/制御)
22 TCP SSH リモート管理用のセキュアシェル
23 TCP Telnet 暗号化されていないリモートアクセス(非推奨)
25 TCP SMTP シンプルメール転送プロトコル
53 TCP/UDP DNS ドメインネームシステム
80 TCP HTTP ハイパーテキスト転送プロトコル
110 TCP POP3 ポストオフィスプロトコルv3
143 TCP IMAP インターネットメッセージアクセスプロトコル
443 TCP HTTPS HTTPセキュア(暗号化)
3389 TCP