見出し画像

【高校情報1・共通テスト】ポート番号について(ネットワーク入門編)

はじめに


メール関連のプロトコル(SMTP,POP,IMAP)を先に説明しようと考えていたのですが、SMTPのところでサブミッションポートについても触れていた方が良さそうなので、先にポート番号についての説明にします。

イメージが出来れば簡単なので、できるだけイメージしやすい形で銀行の窓口に例えています。

◆◆動画解説◆◆

■資料ダウンロード■

情報教育の底上げが目的なので、資料を修正して、
学校・塾(営利目的含む)の授業等で利用して頂いて問題ありません。
私への連絡不要ですが、利用する際には、
YouTubeチャンネル・情報Ⅰ動画教科書・IT用語動画辞典を
紹介してもらえると嬉しいです。
https://toppakou.com/info1/download/99_資料/06_ポート番号.pptx

◆◆文字おこし◆◆

突然ですが問題です。
あなたは、今銀行に来ています。目的は、お金をおろすためです。
何番の窓口にいきますか?

画像1

回答ありがとうございます。
正解は3番です。

仮に、1番、2番、4番に行くと受け付けてもらえませんよね。

インターネットの世界も同じような考えがあります。

画像2


例えば、以前説明したHTTPのプロトコルで接続したい場合の窓口番号は原則80番ということが決まっています。セキュアな通信のHTTPSは443番になります。
この番号をポート番号といいますが、今日はこのポート番号について詳しく説明していきます。

画像3

パソコンには色んなアプリケーションが入っていて
例えばWebブラウザでWebページを見るときには、前回説明したように、WebサーバやDNSサーバと情報をやり取りします。メールを送受信する場合は、メールサーバとやり取りします。
1台のサーバにDNSサーバ、メールサーバ、Webサーバなど複数のサーバ機能を持たせることも可能ですが、大抵の場合1台のサーバは1つの役割というように分けています。

いつクライアントから依頼が来るか分からないので、サーバのアプリケーションは常に依頼が来るのを待ち構えている状態です。
こういった、バックグラウンドで動作しているプログラムを「サービス」や「デーモン」と言います。

HTTPで接続するときに、以前の動画でIPアドレスで接続するといいましたが、正確にはIPアドレスとポート番号によって適切なアプリケーションへ振り分けられます。

画像4

HTTPのサービスは、ポート番号80番で待ち構えています。
先ほど説明したように、
HTTPは80番
HTTPSは443番
メール送信プロトコルのSMTPは25番
メール受信プロトコルのPOP3は110番
DNSは53番の様に決まっています。

もちろん設定によって、窓口番号はサーバ側で変更することは可能ですが、不特定多数のクライアントにその番号を伝えるのは困難なので、アプリケーションサービス毎に特定の番号が決まっています。
これを、ウェルノウンポートと言います。
ポート番号は16ビットの数値です。16ビットなので10進法で0から65535の範囲となります。

画像5

ウェルノウンポートは0~1023までの範囲になります。
ウェルノウンポートの番号は、IANA(アイアナ)という国際的な非営利組織によって割り当てられています。
※IANA は Internet Assined Numbers Authority の略です。

このウェルノウンポートがあるため、Webブラウザに入れられたURLをもとHTTPなら80番、HTTPSなら443番と自動で判断してIPアドレスと共にサーバに送ってくれます。

このポート番号をもとに、アプリケーションにデータを振り分けるプロトコルが、TCPとUDPになりますが、TCPとUDPは奥が深いので詳しくは別動画で説明します。

画像6


ウェルノウンポートは1023番まででしたが
1024番から49151番までを登録済みポート番号と言って特定のアプリケーションなどが使用することになっているポートになります。これも、IANAが登録を受け付け、公開していいます。
49152番~65535番までをダイナミック/プライベートポート番号と言って用途の決まっていないポート番号になります。

画像7

クライアント側にもポート番号が存在します。
クライアント側のポート番号は、通信のたびにランダムでOSで割り振られます。
Windows10の場合はダイナミック/プライベートポート番号がランダムで割り当てられます。
通信を待っている状態のポート番号は窓が開いた状態なので、外部からその番号が知られれば、そこから悪意を持った攻撃者が侵入する可能性があります。
HTTP等の常に相手からの接続を待ち受けるポートは開放したままにせざるを得ないですが、外部からの接続が不要な場合は、不用意にポートを開放しないようにしましょう。

セキュリティの観点で、クライアント側のポート番号はランダムとなりますが、通信する際に、クライアントのIPアドレスと共にポート番号も一緒に送信するので、返答を返すサーバは、送られてきたIPアドレスとポート番号に対して、データを返却します。

この通信状態を確認していきましょう。
コマンドプロンプトを立ちあげnetstat -n と入力しエンターを押しましょう。
netstatは、TCPの通信状態を見るコマンドで、簡単に言えば送信元のポート番号と送信先のIPアドレスとポート番号が確認できます。
ESTABLISHEDは通信が確立している状態になります。

-nを付けない場合、例えば443の場合は、ウェルノウンポートのhttpsであることが分かるのでhttpsと表示されます。

先ほど話した、80番や443番などのウェルノウンポートは、知っていることが前提で試験で問われる場合があるので、今日話した内容を理解して試験問題演習をしてみてください。

今日は以上になります。
ご視聴ありがとうございました。





この記事が気に入ったらサポートをしてみませんか?