TCP/IP用語の1つにポートというものがあります。
ポートを開くだのIPとの違いだの訳の分からない部分が沢山ある用語に感じるかも知れませんね。
さて今回は、ポートとは何か?初心者向けに解説していこうと思います。
ポートってどういう意味?
ポートとはつまり「住所」の事。
IPアドレスという似た概念がありますが、あちらとの違いは、
・どこのルーター(家・施設)に情報を届けるか?
・そのルーターに接続された”誰”に情報を届けるか?
の、差になります。
ポートに関する覚書「IPと何が違うの?」
宛名と宛先の差だと思えば大体合ってます。
実社会にあるもので例えると、手紙が近いです。
例えば、以下のような手紙の宛先&宛名をイメージしてみましょう。
「●●県〇〇市○○町○○番 鈴木太郎様」
「××県◆◆市▽▽町○○-○○番 山田一郎様」
IPは住所。
「●●県〇〇市○○町○○番」や「××県◆◆市▽▽町○○-○○番」の部分を指します。
ポートは名前・宛名部分。
「鈴木太郎」や「山田一郎」の部分を指します。
手紙に宛先と宛名があるように、IPにも「IP」(宛先)と「ポート」(宛名)があるという訳です。
サーバー(サービスを提供する側)のポート事情
さて、何かのサービスを提供しようと思えばポートは常に開いていないといけないという事になります。
となれば、ポート番号を固定化していつでもだれでも入れるようにしないといけません。
なので、慣例として
・「http通信」の場合なら80番
・「https通信」の場合なら、443番
が、宛がわれます。
あなたが今、Qiitaに繋いでこの記事を見ているという事は、
・Qiitaが443番のポートを開けている
・あなたが443番のポートに繋いでいる。
という事です。
クライアント(サービスを受ける側)のポート事情
サービスは発信する側があれば、受け取る側が存在しているものです。
受け取る側の方でのポート番号は***「OS側が決めた49152~65535番のうちいずれか」***となります。
なぜ"いずれか"で"●番"という形にならないか?と言えば、固定化するとセキュリティ上の問題になる可能性があるからです。
ポートは常に切り替わる事により、長く見ても数秒程度しか同じポートで繋ぎませんので、外部からの不正な侵入を防ぐ事が出来るという訳なのです。
具体的なクライアントとサーバー側のポート動き
上記の説明をふまえ、下記にて実際にポートがどのように変遷するのか書いてみます。
例:Qiitaに繋ぐ時
1、クライアント側「51234番ポート」を開く。
2、Qiitaに、443番ポートでアクセス。
3、Qiitaに通信が届く。51234番に返信を返す。
4、クライアント側の画面にQiitaの投稿が映る。この時点で51234番を閉じる。
5、クライアント側で別ページをリクエスト、今度は「55555番ポート」を開く。
6、Qiitaに443番ポートでアクセス。(最初と同じで、サーバーサイドは常に443番を開ける。)
7、Qiitaに通信が届く。55555番に返信を返す。
8、クライアント側にQiitaの通信内容が届く「55555番ポート」が閉じる