ポートって何?
ポートとはパソコンにある、パソコンとインターネットをつなぐ出入口です。
パソコンがインターネットにつながるのはケーブルでつながっているからですね(最近はwifiが多いですが…)。インターネットの情報がケーブルを伝ってパソコンに入ってきます。ケーブルを指すところもポートと呼ばれます。イメージは似ているのですが、ポート番号とかポート開放とかのポートはこれとはまた別のものです。
ポートは役所の受付のようなものです。住民票は住民課、年金は年金課の受付に行くように、インターネットから来た情報もメールならメールのポート、ウェブサイトならwebのポートに行きます。
受付には人が待機しているように、ポートにはプログラム(プロセス)が待機しています。このプロセスが他のプログラムと連携して処理していきます。
ポート番号と呼ばれるものは、複数あるポートを識別するために割り振られた番号のことです。
なぜ複数の入り口(ポート)を用意するのでしょうか?
一つは一部の受付を閉鎖することができます。1ポート1サービスとすることでそのサービスだけを閉鎖することができます。
例えばwebページのデータは80番ポート、メールは25番を使います。この2つのポートだけしか使っていない時「webページの閲覧はしないからメールだけ」とするには80番ポートを閉じればメールだけ受け付けることが可能です。
また、セキリュティ上の利点もあります。基本的に使っていないポートは閉じます。閉じておかないとそこを突いてサイバー攻撃をうけたりするからです。
ポート番号で識別
よく聞くポート番号ってありませんか?
例えば80、443です。
80番ポートはウェブサイトの表示などhttp通信に使われるポートです。ポート番号には決まった番号と自由に使用できる番号があります。決まったポートはウェルノーウンポートといって0~1023番までのポートを指します。実際はhttpでも別のポート番号を使っても良いのですが、80番を使うという前提になっているので不都合が生じる可能性があります。
こちらがウェブブラウザでアクセスする時も基本的にwebサーバーのポート80や443にアクセスしに行きます。これが別のポート番号を使っていると「あれ?つながらないぞ?」ってなってしまいます。
メールやssh, ftpなどもウェルノーウンポートを使用します。
アドレス変換(NAT、NAPT)でも活用
ネットワークは様々なPCと接続しています。アルゼンチンの人のPCから日本の私のPCにメールを送ることができるのは、私のPCのインターネットの住所というべきIPアドレスを知っているからです。ちなみに世界でひとつのアドレスをグローバルIPアドレスといいます。
グローバルIPアドレスは世界でネットワーク機器が増えすぎたせいで足りなくなっています。そのためできるだけ節約しなければなりません。
自宅でインターネット使用の契約をして複数の機器につなぐことができていますがグローバルIPは一つしか割り当てられていないと思います。しかし、IPアドレスを使わなくても識別する方法があります。それがポートを使う方法です。この技術はNAPTとかIPマスカレードなどと呼ばれています。
機器に接続する前にルーターがインターネットからの通信の窓口をします。このルータにも任意のポート番号が付けられたポートがあります。そのポートとPCを紐づけることでグローバルIPが一つしかなくても識別できます。
GはグローバルIP、PはプライベートIPです。プライベートIPは自分が好きに設定できるIPアドレスですが、グローバルIPは世界でかぶらないように設定されています。グローバルIP203.0.113.2のポート番号2020への通信は左のPC(プライベートIP192.168.0.7)に接続するように設定できます。
ポート開放って何?
ポート開放とはポートを使える状態にすることです。
ポートは0~65535番まであります。ものすごい数ですが、このポートを全て接続可能な状態、開いた状態にしておくとセキリュティ的に問題があります。そこで、基本的な考え方として使用していないポートは閉じた状態にしておきます。しかし、あるアプリケーションでとあるポートを使いたいという場合にそのポートが閉じられた状態ではそのアプリケーションは使用できません。そんなとき、該当のポートを使えるようにする→ポート開放をします。