質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

9回答

16655閲覧

ポートの概念がわかりません。

Komugiko

総合スコア15

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

1クリップ

投稿2016/07/26 00:53

ポートの概念がわかりません。

調べたところ、
IPアドレスが住所だとしたら
ポートは部屋番号らしいです。
全く意味がわかりません。

具体的に私の現在の状況をお伝えします。

sakuraのサーバを使っています。
もともと a というサーバを使っておりました。
開発言語や、apache、nginx別のもので開発をしてしまい、
aのサーバが途中で止まっては困るということで、
bというサーバを新たに契約し、
sakuraで二つ(a, b)サーバを契約しました。

サイバーダック(FTPソフト)でポート番号が必要ということで、
bのポート番号って???と思っていたところ、
aのサーバで使っていたポート番号で接続ができ、
操作ができそうな画面になりました。

なぜ、ポート番号が別の契約サーバ、別のIPアドレスで同じもので接続できたのか?
謎です。

まるで、知恵袋みたいな質問で申し訳御座いません。
ど初心者でもわかる形で教えていただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答9

0

Well-knownポートといって、RFCが作られるようなメジャーなサービスについては、標準的に使うポート番号が決まっています。

たとえば、https://teratail.com/としてアクセスを行う場合、HTTPSは「443番ポート」として標準化されているので、特に何も指定しなくても443番ポートにアクセスを行います(ほぼ意味はありませんが、https://teratail.com:443/のように、明示的な指定もできます)。

それ以外にも、HTTPは80番、SSHは22番、FTPは20番・21番というように標準設定が決まっています(もっとも、SSHは一般公開しない場合に、攻撃を避けるためわざと違うポート番号に置くこともあります)。

投稿2016/07/26 01:02

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ポートが部屋番号というのは何だか…?
厳密にはかなり異なりますが、すごいザックリした説明をします。

例えば、192.168.1.0 ~ 192.168.10.150 の展示場があります。

展示場に行くには、まず受付で認証を受ける必要があります。
この受付はデフォルトゲートウェイと呼ばれ、とりあえず一旦は皆ここで受付します。

192.168.4.??? や 192.168.5.??? など、各展示室へは3つ目から道が分岐しています。
ですが、施工主が好き勝手工事したので、とても分かりづらい分かれ道になってしまっていました。
これらを迷わないように案内してくれるのがルーターです。
それにDNSさんという展示室毎に付けられた名前を知っている人もいたりします。

192.168.6.10 という展示室に辿り着きました。
貴方はこの展示室に作品を飾ったのですが、困ったことに名前や作品名を表示できませんでした。
ですが、そこには 192.168.6.10:880 で[880]という番号が割り振られていました。
これを伝えることで展示室内の自分の作品の場所を相手に伝えることができます。
これがポート番号です。

ちなみに、展示会という展示会に大抵出展している超有名人がいます。
FTPさんという名前です。
FTPさんは大体いつも同じ 21 に展示しています。

たまに大きな企業が複数の展示室をとっていることもあります。
(サーバー、複数のネットワークカードを挿しているPCや仮想等)

みたいな感じでどうでしょう。

投稿2016/07/26 02:21

Kyass

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

IPアドレスはサーバを特定するもの、ポートは機能毎に付いた番号と考えるのも有りかと。(自動応答と同じですね)
クライアントから要求伝文を、webで有れば80を指定して送ると、そのサーバのapacheに届きます。apacheサーバは80ポートを開けて待っています。
同じ様にftpサーバは、21番でログイン情報を受取り承認後、20番でデータの送受信を行う様に設定されています(デフォルト)。これに対して多くのクライアントは決まっていた方が都合が良いからではないでしょうか。 決まっている事により、リスクも高くなりますが。

投稿2016/07/26 01:30

A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

内線番号、その例え方もできますね。

うーん、こういう例えならどうでしょう。
サポートセンターに電話すると自動応答が出て「新規契約の方は1を、使い方の説明は2を、ご契約の確認は3を、」
なんて聞かれて数字を打ち込むようなシステムがあります。
IPアドレスがサポートセンターの電話番号なら、この1,2,3がポート番号です。

投稿2016/07/26 01:03

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

IPアドレスが住所だとしたら

ポートは部屋番号らしいです。
全く意味がわかりません。

空港で例えるならば

IPアドレスが空港
ポートは搭乗口(ゲート)
データが乗客

となると思います。本来どの旅客機がどのゲートを使っても乗客は乗り降りできますが、取り決めがあって、国際線はこのゲートとこのゲートを使う、国内線はこのゲートとこのゲートを使う、と割り当てられています。そのルールに従って旅客機が各空港で発着しています。インターネットで言うと、国際線や国内線(もっと具体的には行き先ですかね)に相当するのがHTTPやFTPなどのプロトコルと考えてみてください。

現実の空港だと、空港によってゲートの数なども違ってきますが、インターネットではすべての空港が同じ数のゲートを持っていることになっています。

空港を利用する乗客も、出発するゲート、到着するゲートをが決まっていると、お見送りやお出迎えするのに迷わずに済みます。HTTPやFTPなどのプロトコルは決まったゲートへ乗客を送り出したり、迎えに行ったりするようにデータをやり取りする、と考えると理解しやすいのではないでしょうか?

もし余計ややこしくなってしまったらスミマセン。

投稿2016/07/26 13:51

KoichiSugiyama

総合スコア3041

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私は、IPアドレスが電話番号だとするとポート番号は、内線番号だと思ってます。

同じ電話番号にかけても(サーバーに接続しても)内線番号によって
いろいろなところ(サービス)に接続できますよね。

投稿2016/07/29 15:33

Mr_Roboto

総合スコア2208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

一つのハードウェア上で複数のネットワークソフトウェアが同時に動作することはザラにありえます。このとき、どのソフトウェアに届けるパケットであるかを区別するためポート番号が使用されます。この他、NATの仕組みでも使用されます。これはグローバルIPを共有する複数のPCにおいて、プライベートIPとの紐づけに使用されます。

投稿2016/07/29 15:28

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ご自分でTCPのソケット通信のプログラムを書かれると、サーバー側とクライアント側の立場としてのポートの利用がわかっていいかもしれないですね。
他の皆さんが仰っているように、ポート番号は、同一サーバー上に複数のサービスプログラムを立ち上げたときに、IPアドレスだけでは、そのサーバー上のどのサービスを対象にクライアントが接続要求を送っていいかが判らないので、IPアドレス以外の区別をする情報としてポート番号を用いているためです。
そのため、2台のサーバーがあり、どちらにも HTTP サービスを提供するプログラム(apache、nginx)が動作しているのであれば、どちらのサーバーマシン上でもポート80番が利用されています。
デフォルトではという条件付ですが。

投稿2016/07/26 01:42

kenics

総合スコア179

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

なぜ、ポート番号が別の契約サーバ、別のIPアドレスで同じもので接続できたのか?

どちらの契約サーバも同じ設定がされているから、というのが回答になります。


それだけでは不親切なので。。

https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7#.E3.83.9D.E3.83.BC.E3.83.88.E7.95.AA.E5.8F.B7.E3.81.AE.E7.A8.AE.E9.A1.9E

ポート番号はIPアドレスに対する枝番号のようなものです。

IPv4 の場合、1つのIPアドレスに対し TCP のポートが065535 、UDP のポートが065535 それぞれ 65536個のポートがあります。

TCP/IPでの通信は、

  • 通信プロトコル(TCP/UDP/ICMP)
  • IPアドレス
  • ポート番号

を指定することで通信を行います。

「この通信では、IPアドレス xxx.xxx.xxx.xxx のポート番号 n のポートに対してTCPでデータを送る」といった指定をしています。

このポートには、それぞれ通信の受け取り手となるプログラムを紐づけています。
例えば一般的にHTTP(Webのプロトコル)は TCP/80番ポートが使われますが、この80番ポートには httpd(apache)を関連付けており、そのポート宛の通信はhttpdが受け取る、というように設定しています。

maisumakunさんの回答にある Well-knownポート はこの「一般的にこのポート番号ではこのサービスを提供する」という一覧です。
多くのプログラムのデフォルト設定ではこのWell-knownポートを使う設定となっています。

ただし、Well-knownポート以外を使ってはいけないというわけではなく、Well-knownポート以外の場合、通信の双方でその情報を共有しないといけなくなる、ということです。

ブラウザでURLを指定する際

http://www.example.com/

といった指定をしますが、これは、

  • http というプロトコル(TCP)で
  • www.example.com (のIPアドレス)の
  • 80番ポートに対して

通信を行う、という指定を意味しています。
どこにも出てこないのに80なのは、Well-knownポートでhttpは80番となっているので、デフォルト(特に指定しない場合)は80番となっているからです。

httpd の設定を変え、8080番ポートでサービスを提供することにした場合、

http://www.example.com:8080/

といったURLの指定となり、

  • http というプロトコル(TCP)で
  • www.example.com (のIPアドレス)の
  • 8080番ポートに対して

通信を行うことを意味します。

投稿2016/07/26 01:28

kaz.Suenaga

総合スコア2037

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問