ポートの概念がわかりません。
調べたところ、
IPアドレスが住所だとしたら
ポートは部屋番号らしいです。
全く意味がわかりません。
具体的に私の現在の状況をお伝えします。
sakuraのサーバを使っています。
もともと a というサーバを使っておりました。
開発言語や、apache、nginx別のもので開発をしてしまい、
aのサーバが途中で止まっては困るということで、
bというサーバを新たに契約し、
sakuraで二つ(a, b)サーバを契約しました。
サイバーダック(FTPソフト)でポート番号が必要ということで、
bのポート番号って???と思っていたところ、
aのサーバで使っていたポート番号で接続ができ、
操作ができそうな画面になりました。
なぜ、ポート番号が別の契約サーバ、別のIPアドレスで同じもので接続できたのか?
謎です。
まるで、知恵袋みたいな質問で申し訳御座いません。
ど初心者でもわかる形で教えていただけると嬉しいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答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
総合スコア145184
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
総合スコア17
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
IPアドレスはサーバを特定するもの、ポートは機能毎に付いた番号と考えるのも有りかと。(自動応答と同じですね)
クライアントから要求伝文を、webで有れば80を指定して送ると、そのサーバのapacheに届きます。apacheサーバは80ポートを開けて待っています。
同じ様にftpサーバは、21番でログイン情報を受取り承認後、20番でデータの送受信を行う様に設定されています(デフォルト)。これに対して多くのクライアントは決まっていた方が都合が良いからではないでしょうか。 決まっている事により、リスクも高くなりますが。
投稿2016/07/26 01:30
総合スコア4070
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
IPアドレスが住所だとしたら
ポートは部屋番号らしいです。
全く意味がわかりません。
空港で例えるならば
IPアドレスが空港
ポートは搭乗口(ゲート)
データが乗客
となると思います。本来どの旅客機がどのゲートを使っても乗客は乗り降りできますが、取り決めがあって、国際線はこのゲートとこのゲートを使う、国内線はこのゲートとこのゲートを使う、と割り当てられています。そのルールに従って旅客機が各空港で発着しています。インターネットで言うと、国際線や国内線(もっと具体的には行き先ですかね)に相当するのがHTTPやFTPなどのプロトコルと考えてみてください。
現実の空港だと、空港によってゲートの数なども違ってきますが、インターネットではすべての空港が同じ数のゲートを持っていることになっています。
空港を利用する乗客も、出発するゲート、到着するゲートをが決まっていると、お見送りやお出迎えするのに迷わずに済みます。HTTPやFTPなどのプロトコルは決まったゲートへ乗客を送り出したり、迎えに行ったりするようにデータをやり取りする、と考えると理解しやすいのではないでしょうか?
もし余計ややこしくなってしまったらスミマセン。
投稿2016/07/26 13:51
総合スコア3041
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
一つのハードウェア上で複数のネットワークソフトウェアが同時に動作することはザラにありえます。このとき、どのソフトウェアに届けるパケットであるかを区別するためポート番号が使用されます。この他、NATの仕組みでも使用されます。これはグローバルIPを共有する複数のPCにおいて、プライベートIPとの紐づけに使用されます。
投稿2016/07/29 15:28
総合スコア4830
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ご自分でTCPのソケット通信のプログラムを書かれると、サーバー側とクライアント側の立場としてのポートの利用がわかっていいかもしれないですね。
他の皆さんが仰っているように、ポート番号は、同一サーバー上に複数のサービスプログラムを立ち上げたときに、IPアドレスだけでは、そのサーバー上のどのサービスを対象にクライアントが接続要求を送っていいかが判らないので、IPアドレス以外の区別をする情報としてポート番号を用いているためです。
そのため、2台のサーバーがあり、どちらにも HTTP サービスを提供するプログラム(apache、nginx)が動作しているのであれば、どちらのサーバーマシン上でもポート80番が利用されています。
デフォルトではという条件付ですが。
投稿2016/07/26 01:42
総合スコア179
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
なぜ、ポート番号が別の契約サーバ、別のIPアドレスで同じもので接続できたのか?
どちらの契約サーバも同じ設定がされているから、というのが回答になります。
それだけでは不親切なので。。
ポート番号は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
総合スコア2037
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。