パソコンとネットワーク|on Note

パソコンやネットワークに関する用語

on Note

ポート番号

ポート番号とは、コンピュータが通信を行う際に通信先のアプリケーションを特定する為の番号をいう。インターネット上の通信において複数の相手と同時に接続を行う為、IPアドレスの下にサブ(補助)アドレスとして設けられている。

TCP/IP通信においてはIPアドレスがあればネットワーク上のコンピュータを一意に識別することができる。しかし、該当コンピュータのどのアプリケーションに通信パケットを届けるかはIPアドレスだけでは決定できない。そこでどのアプリケーションに通信パケットを送るのかを決定する為にポート番号を使用する。

例えばHTTPの場合

例えば、クライアントがHTTPを使って通信(Webブラウザを使用してインターネットを閲覧)する際は、 該当サーバのIPアドレスとポート番号80番を指定してパケットを送る。(80番を指定するのは、HTTPサーバは80番ポートでパケットを待っていることが多い為。) サーバ側では、80番ポートが宛先となっているパケットが届くと、 事前に指定しておいたそのポート宛のパケットを処理するプログラムが働き、 パケットの中身を処理する。

このような仕組みにより、クライアントからのパケットを受け取ったHTTPサーバは、 宛先のポート番号が80番であることからWebサービスを提供すれば良いことが分かり、 適切なプログラムで処理を行うことができるのだ。 また、サーバがクライアント側にパケットを返す際にも、そのクライアント端末のIPアドレスとポート番号を指定して通信を行う。

このように、ネットワーク上でコンピュータ同士が通信を行う際は、 IPアドレスとポート番号をセットで用いて通信を行う。

65535までのポート番号

TCP/IPで通信を行うコンピュータはネットワーク内での住所にあたるIPアドレスを持っているが、複数のコンピュータと同時に通信する為に補助アドレスとして0から65535のポート番号を用いる。IPアドレスとポート番号を組み合わせたネットワークアドレスを「ソケット」と呼び、実際にはデータの送受信はソケット単位で行われる。

住所で例えると、マンションの所在地にあたる「○○市〇〇町4-2-1 コーポ〇〇」がIPアドレスにあたり、部屋番号「305号室」がポート番号にあたる。

アプリケーションが使用しているポート番号を調べる

ポート番号の競合によりプログラムが起動しないという事態が起こることがある。そんな時は、それぞれアプリケーションが使用しているポート番号を調べることになるだろう。

「このプログラムは何番のポートを使っているのか?」「このポートはどのアプリケーションが占有してるのか?」といったことは、コマンドプロンプトからnetstat -anoを実行する。「b」を付けたnetstat -abnoとすることでプロセス名も表示させることができる。

各パラメータとその意味

プロトコル
プロトコル種別(TCPUDPか)
ローカルアドレス
自アドレスとポート番号
外部アドレス
相手アドレスとポート番号
状態
通信状況
PID
アプリケーションのプロセス番号(PID
メニュー