こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ポート番号

こんにちは,

httpプロトコルを使用する際にポート80番を使用すると聞きました.

LANないのPCからポート80番へのパケットを送信した際に
webサーバから帰ってくるポート番号が違うと伺いました.

そう言ってた人に「では,何番でかってくるのでしょうか?」と問い合せたところ
「よくわからないけど,違うポートで帰ってくる」と言われました.

一体何番のポートが帰ってくるのでしょうか?

よろしくおねがいします.

投稿日時 - 2011-04-02 10:46:37

QNo.6638537

すぐに回答ほしいです

質問者が選んだベストアンサー

>webするならお互いに80番と決めた方が管理が容易なきがします。

それでは1つのコネクションしか張れないから…です。

クライアントAがサーバaと通信する為にsocketを生成し送信元ポートとして80番に割り当て、通信を開始しました。
同時にクライアントAがサーバbと通信する為にsocketを生成し規定の80番ポートを送信ポートとして割り当てようとすると……クライアントAの80番ポートは使用中ですので割り当てができません。
HTTPプロトコルならデータの転送が終わるとたいていは切断されますので問題になることはそれほどないでしょうが……
FTPで大きいファイルのやりとりをしている場合、他のデータの送受信までできなくなってしまいます。
ということで、クライアント側のポートを固定するメリットがありません。

社内LANにホストが100台とかあるような状態で、昼休みに各自が気象庁の地震情報のサイトを見ようとしても…一人が見られるだけで、他の人が見られません。
# WAN側の80番ポートが誰かの通信の為に固定されてしまいます。
他の人は「更新」ボタンを押してたまたまタイミングよく自分の接続が通るまで連打します。便利でしょうか?
ルータの処理はHTTPについては1つの通信だけ処理すればよいのですから、負荷は軽いでしょう。
が、そんなのでLAN内部の他の99のホストを使用している人が納得できるか?
と言うことになりかねません。

投稿日時 - 2011-04-04 17:24:26

補足

なるほど!コネクションが1つしか張れないからあて先は80番であっても、
送り主はルータなりOSなりが自動的にわりふるってことでよろしいでしょうか

投稿日時 - 2011-04-04 23:39:45

ANo.4

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.3

> LANないのPCからポート80番へのパケットを送信した際に
> webサーバから帰ってくるポート番号が違うと伺いました.

返ってくるポートというよりも、PC側が何番のポートを使ってWebサーバの80番ポートにつなぎに行ったかで決まるのです
http://win.kororo.jp/archi/tcp_ip/port.php

送信元ポート(ソースポート)は何番を割り振るかはOSによって異なります
WindowsのマシンでもUNIX系のマシンでも、Webブラウザでアクセスしながらnetstatコマンドを叩けば何番のポートを使用しているかが確認できます

http://www.tef-room.net/main/netstat.html
http://www.tef-room.net/picture/netstat-3.jpg
この例だと1032/TCP, 1034/TCPを使っています

投稿日時 - 2011-04-02 18:02:26

補足

送信元ポートをパケットに乗せるのは理解できましたが、

そもそもなぜ、別々のポートにする必要があるのでしょうか?

webするならお互いに80番と決めた方が管理が容易なきがします。

投稿日時 - 2011-04-02 23:16:22

ANo.2

> これは,80番で送ったパケットは80番で帰ってくることもあるし,
> エフェメラルポートという任意のポートで帰ってくるということでよろしいでしょうか?

いいえ、違います。
ポート番号には、「送信元ポート番号」と「宛先ポート番号」があり、
必ずこのペアを設定して送受信します。

httpリクエスト送信時は、
「宛先ポート番号」に80番が入り、
「送信元ポート番号」にエフェメラルポート番号が入ります。

httpリクエストの応答は、
「宛先ポート番号」に、リクエスト送信時の送信元ポート番号と同じものが入り、
「送信元ポート番号」に80番が入ります。

投稿日時 - 2011-04-02 17:42:11

ANo.1

システムに依存する話なので、一概には答えられないかと。

詳しくは、「ephemeral port」で検索:

http://www.google.co.jp/search?hl=ja&lr=lang_ja&tbs=lr%3Alang_1ja&q=ephemeral+port&btnG=%E6%A4%9C%E7%B4%A2&aq=f&aqi=g1&aql=&oq=

投稿日時 - 2011-04-02 11:47:39

補足

>システムに依存する話なので、一概には答えられないかと。

これは,80番で送ったパケットは80番で帰ってくることもあるし,
エフェメラルポートという任意のポートで帰ってくるということでよろしいでしょうか?

そもそも,なぜ別のポートに帰ってくる必要があるのでしょうか?

投稿日時 - 2011-04-02 12:06:57

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-