返信

> この5000番は,Webの80番と同じように,相手側は知っている...

TCPを直接たたいてプログラミングするとき,
クライアント側は,サーバ側で待ち受けているポート番号を指定して,
接続動作を行うようプログラミングしますから,
サーバ側のポート番号を知らないとサーバに接続できません。
なので,クライアント側がポート番号を知っているはず,
ということになりますね。

そのため,広く世間で使われるアプリケーションについては,
皆がポート番号を分かる状態にするため,ポート番号は公開されています。
下記を見ればそれが分かります。

http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml

社内アプリケーションなどの場合は,広く世間に公開する必要は無いので,
身内の人に分かるようにしておけばよいでしょう。

いずれにしても,TCPプロトコルが作られた頃は,
サーバ側とクライアント側の両者がサーバ側のポート番号を知っているはず,
という前提が設けられたんだと思います。
というか,そんなに深く考えていなかったのかもしれません。
今と違って,インターネットは研究者の仲間内のネットワークでしたから。

ただ,後になって,
ポート番号を自動的に調べる仕組みが出てきましたから,
そういった仕組みを使う場合は,
クライアント側はポート番号を知らなくてもかまいません。
まあ,その辺はTCPの話から外れて,
ネットワークプログラミングの話題になっちゃいますね。

<code>Only

  • 使用できるHTMLタグ: <code>
  • 文字で図を描く場合に<code>と</code>で囲んでください
画像認証
機械的なスパムメッセージ送信を防止するために画像認証を設けています。ご協力ください。
Image CAPTCHA
Enter the characters shown in the image.