TCPヘッダ その1

TCPヘッダフォーマット

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」というポート番号が有名ですね。

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA