TCPの動作とポート
TCP(Transmission Control Protocol)はIPの上位層であるトランスポート層に位置するコネクション型のプロトコルで、信頼性の高い通信機能を上位アプリケーションに提供する。TCPは、IPネットワーク内で自ホストから相手ホストまでのコネクションを確立し、コネクションの両端の間でデータを確実に送受信する。このとき、1つのホストが同時に複数の相手と通信を行なうことがあるため、TCPではコネクションの終端を「ポート」という抽象概念で識別する。ポートはアプリケーションに結合され、1つのアプリケーションが複数ポートを使用することもある(図2)。
ポートはホスト内で正の整数(1~65536)で管理され識別される。この整数(識別子)を「ポート番号」と呼ぶ。TCPの上位アプリケーションがデータを送信するときは、宛先ホストのIPアドレスと宛先ポート番号を指定して要求するだけでよい。そのあとの、コネクションを確立し、複数のパケットに分割して宛先ホストまで送り届け、パケットを元のデータに復元するといった複雑な処理はTCPが行なう。
よく知られたポート
ポート番号の管理は、通常、ホスト上のOSが行なっている。TCPを利用するアプリケーションは、クライアント/サーバ型のものが多いので、「クライアントはどのようにしてサーバ側のポート番号を知るか」という問題がある。
この問題を解決するため、サーバにはあらかじめ固定的なポート番号を決めておき、それをクライアントに教えておくという方法が使われる。この固定的な番号を持つポートのことを「ウェルノウンポート(Well-Known port)」と呼ぶ。たとえば、Telnet(遠隔ログイン)には23、HTTP(WWW)なら80といった具合だ。他のアプリケーションはこれらのポートを使用してはならない約束である。
(次ページ、「TCPのエラー訂正の仕組み」に続く)
この連載の記事
-
第8回
ネットワーク
HTTP、FTP、SMTP、SIPはどう動くの? -
第7回
ネットワーク
帯域を効率的に利用するTCPの仕組みとは? -
第6回
ネットワーク
TCPのコネクションとはなんですか? -
第4回
ネットワーク
ルータの向こうに広がるネットワーク -
第3回
ネットワーク
特別なIPアドレスって知っていますか? -
第2回
ネットワーク
TCP/IPはどのように普及していったの? -
第1回
ネットワーク
TCP/IPの基礎の基礎を理解していますか? -
ネットワーク
TCP/IPまるわかり - この連載の一覧へ