アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして
宜しくお願いいたします。
以下ご質問させてください。

TCPコネクションについて

クライアント⇔サーバ間通信において、
ポート21からポート80(HTTP)に対してTCPコネクションをオープン
することはできるのでしょうか?
(クライアントポート21からサーバポート80に対してアクセスする
ことってできるのでしょうか?)
自分の認識では・・・
TCPクライアントはダイナミック(OSが割り当てたランダムなポート。しばしば1024から4000の間)にポートを選択すると認識しているので
が。

最初にFTP通信をおこなっており、その継続セッションでHTTP通信をおこなうといった場合にそういった使い方をするのでしょうか?

以上 宜しくおねがいいたします。

A 回答 (4件)

1つめ:


できるできない回答は、「できる」が正解です。
但し、ものすごく【変な方法】なので、
巷で見かけることは滅多にありません。

一般世間に出回っているソフトウエアは、
【変な方法】ではなく、普通の方法を利用するので、
質問者が「自分の認識では・・・」と思うのも、当然かと。

2つめ:
普通の方法と【変な方法】の違いについて
TCPコネクションを作成する時、
 [普通]ゼロを指定すると、OSがランダムな値を割り当ててくれます。
 [変な方法]数字を入力すると、特定のポート番号を利用できます。
それだけです。

3つめ:
なぜ【変な方法】は嫌われものなのか?
TCPコネクションを作成するとき、他のプログラムが使用中のポート番号と被るとエラーになります。エラーになったら、番号が被らないように、番号を変えてやり直す必要があります。
番号を変えて、何回もやり直すのは面倒くさいです。

同時に沢山のサーバと通信を行うとき、
沢山ポート番号を決めなきゃいけないのは、面倒くさいです。

普通の方法だと、ゼロ入れるだけで、
OSが勝手に空いているポート番号を決めてくれるので楽チンです。

面倒くさい方法はみんな嫌いです。楽チンな方法は大好きです。
    • good
    • 0

クライアント側のポートを指定することも可能ですが、学習用などのTCP接続テストソフトぐらいしか、私はあまり聞いたことがありません。


私の知っている範囲では、多くのソフトのクライアント側のポートは、OSが割り当てたポートを使います。

>最初にFTP通信をおこなっており、その継続セッションでHTTP通信をおこなうといった場合にそういった使い方をするのでしょうか?
どういったことを聞きたいのかよくわかりませんが、どちらかのIPやポートが変えようとすればセッション?は切れませんか?
    • good
    • 0

21/tcpがFTP-controlのlistenポート,80/tcpがHTTPのlistenポート,というのは,そういう原則が世界的共通了解になっている,というだけで,他のポート番号でFTP接続やHTTP接続を待ちたいのなら,何番のポートを使ったってFTPやHTTPの動作は変わりません。


(不特定多数にはアクセスして欲しくない,そのポート番号を知らせた人だけアクセスして欲しい,という意図で,わざわざ各種サーバの既定のポート番号を変えて運営している例があります)

各種のTCP/IPクライアントソフトがwell-knownポート番号を避けて,クライアント側TCPポートを割り当てているのはその通りですが,
自作のTCP/IPプログラムだったり,使用ポートの変更が可能なソフトであるなら,21/tcpをHTTPクライアントが使うことだってできます。

>TCPクライアントはダイナミック(OSが割り当てたランダムなポート。
>しばしば1024から4000の間)にポートを選択すると認識しているので

ちなみに,いま私は Windows Vista 上で各種Webブラウザを起動しているのですが,いずれも50000番台のTCPポートを使用しています。
    • good
    • 0

>(クライアントポート21からサーバポート80に対してアクセスすることってできるのでしょうか?)



普通はやりませんが、クライアント側のTCP仕様がソースポート番号21を使う仕様であれば可能です。「普通はやらない」という理由としては21番はFTPコントロールに割り当てられているため、これを使っている間は、FTPコントロールセションを受け付けられなくなってしまうためです。
もちろん、FTPサーバ機能を持っていなければ問題は無いでしょうが、FTPサーバソフトをインプリメントした時点で問題となってきますから、わざわざウェルノウン・ポートを使うことは問題にこそなれ、利点はありません。

>最初にFTP通信をおこなっており、その継続セッションでHTTP通信をおこなうといった場合にそういった使い方をするのでしょうか?

ポート番号はあくまでポート番号ですから、そんなことはありません。
そもそもFTPは21番だけを使う訳ではありません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!