TCPヘッダ その1

フォーマット

TCP/IPプロトコルスタックのトランスポート層に含まれるTCP(Transmission Control Protocl)は、とても重要なプロトコルです。そのTCPヘッダのフォーマットは次の図の通りです。




TCPヘッダは20バイトです。ここにオプションが追加されることがありますが、オプションが追加されても必ず4バイト単位になるように調整されます。



送信元ポート番号、送信先ポート番号

では、順番にヘッダの内容について見ていきましょう。

まず
「送信元ポート番号」「送信先ポート番号」を一緒に。IPアドレスでは通信するホスト(コンピュータ)は特定できます。でも、ホストはネットワークを利用するアプリケーションを1つしか使っていないか?というとそうではありませんね。メールを受信しつつ、ブラウザでホームページを見たりしています。このとき、もちろんメールはメーラーに届いてくれなければ困りますし、HTMLのデータはブラウザに届いてくれなければ困ります。




これをポート番号によって判断します。OSIをしっかりと理解している人は、セッション層の機能と同じだなと気がつくと思います。
TCP/IPプロトコルスタックのトランスポート層はOSI参照モデルのセッション層の機能も一部含んでいます。

そして、ポート番号は
「ウェルノウンポート番号」「ランダムポート番号」に分類されます。
「ウェルノウンポート番号」は、0〜1023の間でサーバアプリケーションのポート番号です。こちらはあらかじめ決められた値です。主なウェルノウンポート番号は次の通りです

HTTP 80
FTP 20,21
SMTP 25
POP3 110
TELNET 23
:
:
そして
「ランダムポート番号」は1024以上のポート番号でクライアントアプリケーションのポート番号です。サーバからの応答のアプリケーションを識別するためにランダムポート番号を使用します。

実際にブラウザからWEBサーバに対して何かのアクセスをするときにTCPヘッダのポート番号は次のようになります。




あと実は、
「レジスターポート番号」と呼ばれるものもあります。これは正式には登録されていないけど、一般的によく使われるアプリケーションに対するポート番号です。プロキシーの「8080」というポート番号が有名ですね。

以前にルータのときにお話したパケットフィルタリングは、このポート番号を利用して、アプリケーションごとのフィルタリングを行うことができます。また、ファイアウォールもこのポート番号によるフィルタリングの設定を行います。








(C) Copyright 2000-2001 Gene All Right Reserved