ホーム » スタッフ » 斉藤徹 » 講義録 » 情報ネットワーク基礎 » ポート番号とソケット

ポート番号とソケット

ポート番号とソケット

サーバとなるコンピュータでは、1台のコンピュータで様々なサービスを提供することから、サービスを区別する必要がある。このためにポート番号が使われる。1台毎のコンピュータに割り当てられたIPアドレスを電話番号に例えるなら、ポート番号は内線電話番号に例えることができる。

サーバと通信する場合、サービスを提供するプログラムに応じて標準的なポート番号が決められている。サーバに届いたパケットは、ポート番号に応じてサービスプログラムを起動する。以下の表によく使われるポート番号の一例をあげる。

ポート番号 プロトコル 概要
20 ftp ファイル転送(データ)
21 ftp ファイル転送(命令)
22 ssh リモート接続(暗号対策あり)
23 telnet リモート接続(暗号化なし)
25 smtp 電子メール送信
465 smtps 電子メール送信(暗号化)
53 DNS ドメインネームサービス
80 http Web
443 https Web(暗号化)
110 pop3 メールダウンロード
995 pop3s メールダウンロード(暗号化)
143 imap メール閲覧
993 imaps メール閲覧(暗号化)
137,138,139 netbios Windows のファイル共有

 

通信パケットには、送信元IPアドレス送信元ポート番号送信先IPアドレス送信先ポート番号の情報がある。
パソコンがサーバと通信する場合は、(1)自分のIPアドレスを送信元IPアドレス、(2)その時に使われていないポート番号をランダムに選び、送信元ポート番号とする。(3)通信相手のIPアドレスと、(4)通信先のサービスのポート番号をセットして、パケットを送付する。サーバは、サービスを要求してきたクライアントの送信先ポート番号をみて、対応するサーバのプログラムが動作する。プログラムの結果を送り返す時は、送信元と送信先のIPアドレス、ポート番号を入替えてパケットを送信する。

このような、IPアドレスとポート番号でお互いにデータを送りあうデータ通信の末端という意味でソケットと呼ぶ。サーバ側は、誰からでもデータを受け入れるということでソケットを開いて待機している。クライアントは開かれたソケットに接続して情報をやり取りする。

1024未満のポート番号(ウェルノウンポート番号)は、サービスを受けとるために用途が決められているので、通常の通信プログラムでは使われない。これ以外のポート番号は、通信の送信元のポート番号として使われ、エフェメラルポート番号と呼ばれる。