目次
ポート番号とは
ポート番号とは、TCP/IPのアプリケーションを識別するための識別番号で、TCPまたはUDPヘッダに記述されています。ポート番号によって、PC/サーバなどに届いたデータがどのアプリケーションのデータであるかを識別して、適切なアプリケーションへデータを振り分けます。
ポート番号の範囲
ポート番号は16ビットの数値なので、取りうる範囲は0~65535です。そして、以下のように範囲で意味が決められています。
名称 | ポート番号の範囲 | 意味 |
---|---|---|
ウェルノウンポート | 0~1023 | サーバアプリケーション用に予約されているポート番号 |
登録済みポート | 1024~49151 | よく利用されるアプリケーションのサーバ側のポート番号 |
ダイナミック/プライベートポート | 49152~65535 | クライアントアプリケーション用のポート番号 |
ウェルノウンポート番号
特に重要なのがウェルノウンポート番号です。ウェルノウンポート番号は、あらかじめ決められています。サーバアプリケーションを起動すると、ウェルノウンポート番号でクライアントアプリケーションからの要求を待ち受けます。たとえば、Webサーバアプリケーションはアプリケーションプロトコルとして、HTTPを利用します。HTTPのウェルノウンポート番号は80なので、Webサーバアプリケーションはポート番号80でWebブラウザからの要求を待ち受けることになります。
主なアプリケーションプロトコルのウェルノウンポート番号は、次の表のようになります。
プロトコル | TCP | UDP |
---|---|---|
HTTP | 80 | – |
HTTPS | 443 | – |
SMTP | 25 | – |
POP3 | 110 | – |
IMAP4 | 143 | – |
DNS | 53 | 53 |
FTP | 20/21 | – |
DHCP | – | 67/68 |
SSH | 22 | |
Telnet | 23 | – |
登録済みポート
登録済みポートは、ウェルノウンポート番号以外でよく利用されるサーバアプリケーションを識別するためのポート番号です。登録済みポートもあらかじめ決められています。たとえば、リモートからPCなどの操作を行うリモートデスクトップは、ポート番号3389を利用します。
ダイナミック/プライベートポート
ダイナミック/プライベートポートは、クライアントアプリケーションを識別するためのポート番号です。ウェルノウンポートや登録済みポートと異なり、あらかじめ決められているわけではありません。クライアントアプリケーションが通信するときに、ダイナミックに割り当てられます。また、Webブラウザならブラウザのタブ/ウィンドウごとに異なるポート番号が自動的に割り当てられます。これにより、Webブラウザのタブ/ウィンドウを識別できるようにしています。
フローはIPアドレスとポート番号の組み合わせで識別できる
アプリケーションの一連のデータのまとまりであるフローはIPアドレスとポート番号の組み合わせで識別できます。IPヘッダにあるIPアドレスでアプリケーションが動作しているPC/サーバなどがわかります。そして、TCP/UDPヘッダのポート番号でPC/サーバ上のアプリケーションがわかります。IPアドレスとポート番号の組み合わせを表記するときには、「10.0.0.1:80」のように」「:」で区切ります。
ルータやレイヤ2スイッチで、ただ単にアプリケーションのデータを転送するときには、ポート番号まで意識する必要はありません。セキュリティを確保するために、パケットフィルタリングを設定するときや、特定のアプリケーションの通信を優先するQoS(Quality of Service)の制御をするときにはポート番号まできちんと考えなくてはいけません。
ポート番号の確認(Windows)
Windows PCでコマンドプロンプトから「netstat」コマンドでTCPの通信状態をみて、PCがどんなアプリケーションの通信をしているかを確認できます。以下は、Windows PCのnetstatコマンドの出力例です。
C:\Users\gene>netstat -n アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 127.0.0.1:5354 127.0.0.1:49669 ESTABLISHED TCP 127.0.0.1:5354 127.0.0.1:49670 ESTABLISHED TCP 127.0.0.1:9977 127.0.0.1:49955 ESTABLISHED TCP 127.0.0.1:27015 127.0.0.1:49823 ESTABLISHED TCP 127.0.0.1:49669 127.0.0.1:5354 ESTABLISHED TCP 127.0.0.1:49670 127.0.0.1:5354 ESTABLISHED TCP 127.0.0.1:49779 127.0.0.1:54418 ESTABLISHED TCP 127.0.0.1:49823 127.0.0.1:27015 ESTABLISHED TCP 127.0.0.1:49955 127.0.0.1:9977 ESTABLISHED TCP 127.0.0.1:50041 127.0.0.1:58385 ESTABLISHED TCP 127.0.0.1:54285 127.0.0.1:65001 ESTABLISHED TCP 127.0.0.1:54418 127.0.0.1:49779 ESTABLISHED TCP 127.0.0.1:58385 127.0.0.1:50041 ESTABLISHED TCP 127.0.0.1:58611 127.0.0.1:443 SYN_SENT TCP 127.0.0.1:65001 127.0.0.1:54285 ESTABLISHED TCP 192.168.1.169:54284 192.168.1.154:8009 ESTABLISHED TCP 192.168.1.169:54309 192.168.1.152:8009 ESTABLISHED TCP 192.168.1.169:54310 192.168.1.153:8009 ESTABLISHED TCP 192.168.1.169:54458 40.119.211.203:443 ESTABLISHED TCP 192.168.1.169:54460 77.79.249.197:443 ESTABLISHED TCP 192.168.1.169:54473 77.79.249.197:443 ESTABLISHED TCP 192.168.1.169:54481 77.79.249.197:443 ESTABLISHED TCP 192.168.1.169:54550 172.217.24.138:443 ESTABLISHED TCP 192.168.1.169:57493 40.119.211.203:443 ESTABLISHED TCP 192.168.1.169:57549 54.240.253.21:443 ESTABLISHED TCP 192.168.1.169:57620 151.101.2.49:443 ESTABLISHED TCP 192.168.1.169:57840 172.217.161.77:443 CLOSE_WAIT TCP 192.168.1.169:57924 157.7.107.52:443 ESTABLISHED TCP 192.168.1.169:58376 172.217.161.42:443 CLOSE_WAIT ~省略~
「ローカルアドレス」がPC自身の情報で、「外部アドレス」が宛先の情報です。IPアドレス:ポート番号というフォーマットで、TCPで通信を行っているIPアドレスとポート番号の組み合わせがわかります。
TCP/IP
- TCP/IPの階層
- IP(Internet Protocol) ~データを送り届ける~
- ICMP ~きちんとIPで転送できますか?~
- Ping ~きちんとデータは届きますか?~
- Windows OSのPingコマンド
- トレースルート ~データはどのルータを通っていますか?~
- tracertコマンド(Windows OS)
- ICMPリダイレクト
- トラブルはどこ? ~Pingとトレースルート~
- ARP ~IPアドレスとMACアドレスを対応付け~
- ARPフォーマット
- Gratuitous ARP(GARP)
- ポート番号 ~どのアプリケーションのデータなの?
- TCPの概要
- TCPの動作
- UDPの概要
- アプリケーションのデータが届くまでのまとめ
- DNS ~宛先IPアドレスを求める~
- nslookupコマンド ~DNSの名前解決の確認~
- DHCP ~IPアドレスを自動割り当て~
- Cisco IOS DHCPサーバの設定と確認コマンド
- Ciscoルータ DHCPサーバの設定例
- DHCPリレーエージェント
- DHCPリレーエージェントの設定例[Cisco]
- DHCPサーバ配置のまとめ
- TCP/IPの設定のまとめ
- ipconfigコマンド ~Windows OSのTCP/IP設定を確認~
- Linux(Ubuntu)でのTCP/IP設定の確認コマンド
- Webサイト
- HTMLとCSS ~Webページを作る~
- URL ~Webサイト(Webページ)のアドレス~
- HTTP ~HTMLファイルを転送する~
- Webアプリケーション ~Webブラウザだけあればいい~
- HTTP Cookie
- Webアプリケーションのセッション管理
- Webプロキシサーバ ~Webアクセスを代わりに~
- Webアクセスのまとめ
- 電子メール
- SMTP ~電子メール送信用プロトコル~
- POP3 ~メール受信用プロトコル~
- IMAP4 ~メールサーバ上でメールを管理~
- 電子メールのまとめ
- FTP ~代表的なファイル転送プロトコル~
- TFTP ~簡易的なファイル転送プロトコル~
- Windows10/11のTFTPクライアント
- ネットワークのトラブルの切り分け手順