TCPヘッダ その1
| フォーマット TCP/IPプロトコルスタックのトランスポート層に含まれるTCP(Transmission Control Protocl)は、とても重要なプロトコルです。そのTCPヘッダのフォーマットは次の図の通りです。 ![]() TCPヘッダは20バイトです。ここにオプションが追加されることがありますが、オプションが追加されても必ず4バイト単位になるように調整されます。 |
| 送信元ポート番号、送信先ポート番号 では、順番にヘッダの内容について見ていきましょう。 まず「送信元ポート番号」と「送信先ポート番号」を一緒に。IPアドレスでは通信するホスト(コンピュータ)は特定できます。でも、ホストはネットワークを利用するアプリケーションを1つしか使っていないか?というとそうではありませんね。メールを受信しつつ、ブラウザでホームページを見たりしています。このとき、もちろんメールはメーラーに届いてくれなければ困りますし、HTMLのデータはブラウザに届いてくれなければ困ります。 ![]() これをポート番号によって判断します。OSIをしっかりと理解している人は、セッション層の機能と同じだなと気がつくと思います。TCP/IPプロトコルスタックのトランスポート層はOSI参照モデルのセッション層の機能も一部含んでいます。 そして、ポート番号は「ウェルノウンポート番号」「ランダムポート番号」に分類されます。 「ウェルノウンポート番号」は、0〜1023の間でサーバアプリケーションのポート番号です。こちらはあらかじめ決められた値です。主なウェルノウンポート番号は次の通りです
: そして「ランダムポート番号」は1024以上のポート番号でクライアントアプリケーションのポート番号です。サーバからの応答のアプリケーションを識別するためにランダムポート番号を使用します。 実際にブラウザからWEBサーバに対して何かのアクセスをするときにTCPヘッダのポート番号は次のようになります。 ![]() あと実は、「レジスターポート番号」と呼ばれるものもあります。これは正式には登録されていないけど、一般的によく使われるアプリケーションに対するポート番号です。プロキシーの「8080」というポート番号が有名ですね。 以前にルータのときにお話したパケットフィルタリングは、このポート番号を利用して、アプリケーションごとのフィルタリングを行うことができます。また、ファイアウォールもこのポート番号によるフィルタリングの設定を行います。 |
(C) Copyright 2000-2001 Gene All Right Reserved