1.プロトコルとは
プロトコルは、コンピュータ同士が通信する際のルールです。
プロトコルという概念がない昔は異なるコンピュータ同士での通信をするためには、それ専用に変換装置やプログラムを作る必要がありました。
プロトコルは、IETFの団体がIPやTCP、UDPなどのインターネットプロトコルの仕様を定め、RFC(Request For Comments)として公開しています。
例 | プロトコル | RFC |
---|---|---|
Web通信 | HTTP | 91141 |
信頼性のある通信 | TCP | 793 |
宛先指定と配送 | IP | 791 |
高速で単純な通信 | UDP | 768 |
メール送信 | SMTP | 821 5321(最新版) |
ファイル転送 | FTP | 959 |
2.ポート番号とは
ポート番号は、1つのコンピュータ(IPアドレス)上で動く複数の通信サービスを区別するための番号。0〜65535 まで存在し、特によく使われるものは「ウェルノウンポート(0〜1023)」と呼ばれます。
例えると「同じ住所にある家の部屋番号」のような役割を持ちます。
3.プロトコルとポート番号の関係
あるプロトコルは、通信を行うために「標準のポート番号(デフォルト)」が割り当てられています。代表例を挙げると。
プロトコル | 用途 | ポート番号 |
---|---|---|
HTTP | Web通信 | 80 |
HTTPS | 暗号化されたWeb通信 | 443 |
FTP | ファイル転送 | 20(データ転送), 21(制御) |
SMTP | メール送信 | 25 |
POP3 | メール受信 | 110 |
IMAP | メール受信 | 143 |
DNS | 名前解決 | 53 |
SSH | 安全なリモート接続 | 22 |
なぜポート番号が重要なのか
サービスを識別するため
コンピュータ1台には多数のアプリケーションやサービスが動いています。
ポート番号がなければ「このデータはWebサーバに渡すのか?それともメールサーバに渡すのか?」を区別できません。
セキュリティ制御のため
ファイアウォールやルーターは「特定のポートを許可/遮断」することでセキュリティを守ります。例えば、会社のネットワークでは、Web(80/443番)は許可するが、FTP(20/21番)は禁止する。もしポート番号がなければ、どの通信をブロックすべきか判断できません。
通信のトラブルシュート
ネットワーク障害が起きたとき、どのポートで止まっているかを確認することで原因を特定できます。
-
ping
で届く → IPレベルではつながっている -
telnet example.com 25
でつながらない → メール用ポートが閉じている
補足
ポート番号は情報提供側において、設定できる。つまり、固定ではない。
例えばHTTP
は通常80番ですが、管理者が設定すれば8080など別の番号でも動作可能。
ただし、標準ポート番号を使う方が一般的で、クライアントも自動でその番号を参照する仕組みがあります。
-
HTTP/1.0 RFC 1945:初期の標準
HTTP/1.1 RFC 2068 / RFC 2616:広く普及した仕様
HTTP/1.1 (改訂) RFC 7230〜7235:モジュール化して再定義
HTTP/2 RFC 7540, RFC 7541:高速化(多重化・圧縮)
HTTP/3 RFC 9114:QUICベース ↩