FTPツールやメールソフトの詳細設定で,ポート番号を設定する欄がありますが,このポート番号とは何ですか。またどのように設定したらいいのでしょうか。
インターネットでは,IPアドレスで接続相手(ホスト)や接続元を区別します。IPアドレスは,インターネットにおける電話番号のようなものと考えればいいでしょう。例えば,202.232.2.51というIPアドレスはftp.iij.ad.jpに割り当てられていて,ftp.iij.ad.jpに接続したいなら,先のIPアドレス宛に接続のリクエストを行えばいいのです(ユーザーは普通ホスト名.ドメイン名で接続するのでIPアドレスを使っているという意識はないでしょうが,ホスト名.ドメイン名はコンピュータの内部でIPアドレスに変換されています)。
とはいえ,自分が接続したいコンピュータの「何に」接続したいのかまではIPアドレスでは表現できません。接続先のコンピュータではFTPサーバーのほかに,TelnetのサーバーやWebサーバーも動いているかもしれません。例えばFTPツールが特定のFTPサーバーを選んで接続するといったときに,ポート番号が使われます。
ポート番号はトランスポート層のTCPおよびUDPのヘッダ(先頭にある情報)部分にある16ビットの数値で,0〜65535までの値が利用できます。例えば,FTPサーバーは一般にTCPのポート21番を監視しています。FTPクライアントは接続先のTCPポート21番に接続リクエストを送り,FTPサーバーを選択して接続するわけです。
IPアドレスを電話番号にたとえるなら,ポート番号は内線番号に相当すると考えればいいでしょう。○×株式会社の内線21番の☆△さんに連絡をとるといったときに,電話番号にプラスして内線21番を指定するというのとよく似ています。
ところで,内線で相手を指定するには内線番号表が必要です。同じように,ネットワークでは接続したいサーバーがどのポートを監視しているかという情報が必要になります。
インターネットではTCP,UDPともに1023番以下のポート番号については定められたアプリケーションが標準で使用することになっています。例えば,FTPはTCP/21番,TelnetはTCP/23番,SMTP(メールサーバー)はTCP/25番という具合です。これらを「Well Known Port」と呼びます。
一方,1024以上のポート番号は任意に使用でき,主にインターネット非標準のアプリケーションが使います。こういったもので最も簡単なのは,サーバー/クライアントが互いにどのポートを使うか事前に取り決めておく方法です。そのほかに,RPC(Remote Procedure Call)では,空いているポートを自動で割り当てて相互に使用する,「ポートマッパー」というシステムが使われています。
Well Known Portや,そのコンピュータで固定して使用するポート番号は,WindowsならばWindows\SERVICESというテキストファイルに記述されていますから,エディタなどで閲覧してみてください。
さて,質問の「どのように設定するか」ですが,よく知られたアプリケーションならば,特別な理由がない限り設定を変える必要はありません。Well Known Portを使うからです。
しかし,例えば接続相手がなんらかの事情でWell Known Port以外のポート番号にサーバーを割り当てている場合はクライアント側のポート番号を相手に合わせなければなりません。また,ファイアウォールでFTPの代理サーバー(プロキシ)をTCP/2121番で運用しているという組織内では,FTPクライアントのポート番号をTCP/2121番に設定しなければ使用できません。組織内でポート番号を特別に設定しなければならないかどうかは,ネットワーク管理者に問い合わせてください。
(米田 聡)