PR

ポート番号とは?初心者向けに分かりやすく3分で解説

IT-Skills

ポート番号とは、コンピュータがTCP/IP通信に使用するプログラムを識別するための番号です。

と説明されても、初心者にとっては理解しづらいはずです。

このページでは、そもそも「ポートって何?」「ポートってなんで必要なの?」という素朴な疑問をお持ちのIT初心者の方向けに初歩の初歩から解説します。

このページで学べる内容
  • ポート番号とは?
  • ポート番号の仕組み
    • ウェルノウン(Well Known)ポート番号
    • 登録(REGISTERED PORT)ポート番号
    • ダイナミック/プライベート(DYNAMIC AND/OR PRIVATE PORTS)ポート番号

システムエンジニアやプログラマーであれば知らないと恥ずかしい超・基本知識です。是非最後までご覧ください。

参考 そもそも「ネットワーク」とは?

初心者向けに分かりやすく説明できるよう、詳細や留意事項を一部省略して解説しています。

スポンサーリンク

コンピューター同士が「通信」をするために

普段何気なく利用しているインターネット。この「インターネット」という仕組みは、一言で説明すると世界中のコンピューターとコンピューター(もしくはサーバー)をつなげた仕組みであると言えます。

インターネットとは
図1:インターネットとは?

今、あなたはこのWebページ(ビズドットオンライン)を開いて「ポート番号とは何か?」について調べています。

このページの情報は日本のとある場所に存在するコンピューター(サーバー)上に保存されているのですが、その情報を取得し画面上に閲覧している、というのがあなたの今の状況です。

つまり、あなたのスマートフォン or PCとビズドットオンラインのサーバーが「通信」を行っているとことです。

そこで気になるのが、「どうやってあなたのスマートフォンとビズドットオンラインのサーバーが通信をしているのか?(どうやってお互いのコンピューターを特定しているのか?)」という点です。

どのコンピューターと通信すれば良いか

インターネットに接続されたコンピューターは世界中で何十億台と存在します。これらの中から適切なコンピューターを探し出し通信を行うためには現実世界でいう「住所」のようなものが必要となってきます。

この「住所」にあたるのが、インターネット上における「IPアドレス」と呼ばれるものです。

IPアドレスはインターネットに接続する全てのコンピュータ(スマートフォン)1つ1つに、割り当てられており、コンピューターを一意に特定することができます。

IPアドレス

例えば、googleのサーバーにも「XXX.XXX.XXX.XXX」というIPアドレスが割り当てられています。ブラウザ上に「XXX.XXX.XXX.XXX」というように入力すれば、googleのサーバーに接続することが理論上可能です。

IPアドレスの仕組みをもっと詳しく知りたい方は

「192.168.100.0」などのIPアドレスの数字が表す意味や、IPアドレスが世界でどのように管理されているか?など、以下のページでより詳しく解説しています。

気になった方は、是非ご覧になってみてください。

したがって、このIPアドレスを便りにあなたは今このWebページを参照することができていると言えます。

住所さえ分かっていれば日本全国どこでも手紙を出すことができるように、インターネットの世界でもIPアドレスさえ分かっていれば、相手先のコンピューターとやり取りすることが可能です。

ポート番号とは?

実は、ポート番号もIPアドレスと似たような役割を持っています。ポート番号も、相手先の居場所を示します。

種類現実世界で例えると・・・
IPアドレス住所東京都千代田区永田町1−1−1
ポート番号部屋番号101号室

マンションで言えば、IPアドレスが番地までの住所を示すのに対して、ポート番号は部屋番号を表します。

これだけ説明すると、なぜわざわざIPアドレスとポート番号を別に管理する必要があるのか分かりませんね。

ポート番号=プログラムの識別

ご存知のように1つのコンピューターでできることは実に膨大です。「メールを送受信する」「Webページを閲覧する」「ファイルの編集をする」等々。

で、実はこの「メールを送受信する」というプログラムと「Webページを閲覧する」というプログラムは同じコンピューターでも別の部屋に存在しているのがコンピューターの基本の仕組みです。

つまり、「メールを処理するAさん」は101号室に、「ファイル編集をするB」さんは102号室にいるような仕組みになっているので、ポート番号まで適切に記載していないとやりたいことができないのです。

メールを送りたいのであれば「メールを処理するAさん」に依頼を届けなければなりません。「ファイルを編集するBさん」に依頼しても、Bさんはメールの処理の仕方が分からないので何もしてはくれません。

このAさん・Bさんというのは、具体的にいえばプログラムなので、ポート番号はすなわち「プログラムの識別」をしていると説明できます。

ポート番号のルール

ポート番号は0番~65535番まで存在し、かつポート番号ごとに利用するソフトウェアが定められています。

例えば、Webサーバとの通信ではHTTPSがポート443を使用し、メールの送受信にはSMTPがポート25 / POP3がポート110といったように具体的なポート番号が決まっています。

ポート番号は世界共通の仕組みなので、各人が適当に番号を付けていると不都合な部分も出てきてします。

また同時に、自由に使えるようなポート番号もあります。

ここでは、以下の3種類にわけてポート番号を分類して解説していきたいと思います。

ポート番号の種類
  • ウェルノウン(Well Known)ポート番号
  • 登録(REGISTERED PORT)ポート番号
  • ダイナミック/プライベート(DYNAMIC AND/OR PRIVATE PORTS)ポート番号

ウェルノウン(Well Known)ポート番号:0番~1023番

IANA(Internet Assigned Numbers Authority)という団体によって、あらかじめ用途が決められているポート番号です。0番~1023番がそれに該当します。

メール送信を行う「smtp」という処理を呼び出したいときはポート番号は「25」にしましょう、ファイル転送を行う「ftp」をしたいときは「20」にしましょう、と決められており、これらはWell Knownポート番号と呼ばれます。

ここでは、「へえ、そんなのがあるんだなあ」という程度の理解でOKです。

ポート番号サービス名説明
20ftp-dataFile Transfer [Default Data]
21ftpFile Transfer [Default Data]
22sshSSH Remote Login Protocol
23telnetTelnet
25smtpSimple Mail Transfer
53domainDomain Name Server
67bootpsBootstrap Protocol Server
68bootpcBootstrap Protocol Client
70gopherGopher
79fingerFinger
80www-httpWorld Wide Web HTTP
110pop3Post Office Protocol - Version 3
119nntpNetwork News Transfer Protocol
123ntpNetwork Time Protocol
137netbios-nsNETBIOS Name Service
138netbios-dgmNETBIOS Datagram Service
139netbios-ssnNETBIOS Session Service
161snmpSNMP
162snmptrapSNMPTRAP
179bgpBorder Gateway Protocol
443httpshttp protocol over TLS/SSL
445microsoft-dsMicrosoft-DS
636ldapsldap protocol over TLS/SSL
代表的なウェルノウン(Well Known)ポート番号:0番~1023番
Q
なぜWell Knownポート番号が必要なのか?
A

Well Knownポート番号があることで、特定のサービスやアプリケーションがどのポート番号を使用するのかが共通認識となります。これにより、ユーザーやシステムが特定のサービスを利用する際に、そのサービスがどのポート番号で動作するのかをあらかじめ知ることができ、通信がスムーズに行われます。

登録(REGISTERED PORT)ポート番号:1024番~49151番

1024から49151までのポート番号の範囲に割り当てられています。この範囲のポート番号は、公式には予約されていないものの、一般的には特定のアプリケーションやサービスが利用することが多くあります。

Q
なぜ登録ポート番号が必要なのか?
A

今後、どんどんサービスが増えていく未来に備えて。→ウェルノウン(Well Known)ポート番号と同様にちゃんと管理していきましょうというのが登録ポート番号の役割。

参考 登録ポート番号の例

  • MySQL(データベース): ポート3306
  • PostgreSQL(データベース): ポート5432
  • Microsoft SQL Server(データベース): ポート1433

これらはあくまで一例であり、多くの他のアプリケーションやサービスもこの範囲のポート番号を使用しています。

ダイナミック/プライベート(DYNAMIC AND/OR PRIVATE PORTS)ポート番号:49152番~65535番

IANAによる制約がないポート番号です。世界中の誰でも自由に設定することができる範囲です。

自作のWebアプリなどでは、よくポート50000番などが利用されたりしますが、それは50000がIANAの制約がないためです。

<br>

さらに、IPアドレスやポート番号など、実践レベルまでスキルを身につけたい!という方は以下の書籍で学習してみましょう!

blank
ネットワーク技術のハンズオン教材。AWSも一緒に学べるお得な1冊。アプリ開発者に大人気!インフラ構築の第1歩に最適。

まとめ ポート番号とは

インターネット上でコンピュータ同士がお互いに話すときの「お約束ごと」のようなもの。これがあるおかげで、例えばWebサイトを見るための情報と、メールを送るための情報が、ちゃんとそれぞれ適切な場所に届きます。

ざっくり言えば、ポート番号はインターネットの「住所の部屋番号」のようなものと考えていいでしょう。

ネットワーク学習の決定版(ネットワークエンジニアを目指すなら必見!)

blank
インターネットのプロトコルTCP/IP入門書の決定版!

↑ページ数が多く誰でも手軽に読める内容ではありませんが、ネットワークエンジニアであれば、ほぼ全員が一度は読んだことがある超・有料書籍。是非一度読破しておきたい1冊のご紹介です。

読者特典> 0から学ぶネットワーク入門

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
IT-SkillsNetwork
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました