12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

エフェメラルポート

Last updated at Posted at 2013-03-30

詳細な説明は Wikipedia を参照の事.
ネットワークでは,IPアドレスはよく話に登りますが,意外とポートについては話に登らない場合があります.

TCP/IPは,基本的には[IPアドレス:ポート番号]が一つの通信端点です.この通信端点で通信を行います.

TCP/IP受信側,概ねサーバとして動き,クライアントからの通信を待ち受ける場合は,ポート番号を事前に仕様として決めて使う場合が殆どですが,他方,クライアント側は,ポート番号はOSの自動割り当てを使う場合が多いです.この様な場合で,二台以上の機器が互いにサーバを持っており互いに通信しあうケースでは,サーバとして待ち受けるポート番号がエフェメラルポートに被っていると,OSの自動割り当てと被るケースがあります.

Linux のエフェメラルポートは,IANAが提言する範囲からズレています./proc/sys/net/ipv4/ip_local_port_range を見て確認したほうが良いでしょう.「ここは空いているはず...」と思ったポート番号でも,エフェメラルポートの範囲内に入っていると,「あれ? bind に失敗する...」と言うトラブルにハマる可能性があるので,空いていると思ったポート番号の bind に失敗して,他の(関係無さそうな)プロセスがそのポート番号を使用していたら,エフェメラルポートに被っているかを確認すると良いでしょう.

サーバソフトウェアで,独自にポート番号を定義する必要がある場合は,Wikipedia の情報に照らすと,5001〜32767の範囲で定義すれば,少なくともエフェメラルポートとは被らなさそうです.

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?