@network Cisco・アライド実機で学ぶ > CCENT(ICND1)実機で学ぶ > TCP・UDPヘッダの構造

 Rakuten
@network Cisco・アライド実機で学ぶ
◆TCP・UDPヘッダの構造

※動作確認は、Cisco2500、Cisco1710、Cisco1720、Cisco1721、Cisco2611、Cisco2650、Cisco3620シリーズのルータ、Catalyst2900、Catalyst2950シリーズのスイッチなどで確認しています。コマンド、出力結果、動作は、機種、IOSのバージョンで異なる場合があります。
 資格取得が就職、転職、派遣に有利なのは確かですが、「資格=即戦力」とは言えません。実機を操作して資格取得と同時に就職・転職・派遣後に求められるエンジニア(仕事・ジョブ・ワークの達人)としての即戦力を養いましょう。


◆TCP・UDPヘッダの構造

ここでは、TCPとUDPのヘッダ構造について、図を使って説明してゆきます。

◆TCPヘッダの構造

 TCPによる通信を理解するには、TCPヘッダにどんな内容が含まれるか理解しておく必要があります。TCPでは、通信に先立ってコネクションの確立を行ったり、確認応答やフロー制御を行うため、TCPのヘッダ構造は、UDPパケットの構造と比べると、非常に複雑なものになっています。通常は、TCPヘッダは、20バイトの大きさになります。

ここでは、TCPヘッダに含まれる項目を紹介してゆきます。

0 15 16 31
送信元ポート番号
(16ビット)
宛先ポート番号
(16ビット)
シーケンス番号
(32ビット)
確認応答番号
(32ビット)
ヘッダ長
(4ビット)
予約済み
(6ビット)
コードビット
(各1ビット)
ウィンドウサイズ
(16ビット)
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
チェックサム
(16ビット)
緊急ポインタ
(16ビット)
(オプション)


データ


←―― 32ビット ――→

簡単に各フィールドを説明してゆきます。

フィールド 説明
送信元ポート番号
(16ビット)
送信元のアプリケーションを識別するための番号
TCPは、UDPの場合と違い、送信元ポート番号を0にできない。
1〜65535まで利用できる。
宛先ポート番号
(16ビット)
宛先のアプリケーションを識別するための番号
1〜65535まで利用できる。
※0は予約済み
シーケンス番号
(32ビット)
送信するデータに、順序を付けるための番号。
送信するデータ1バイトごとにシーケンス番号を1つずつ増やす。
232を超えるとまた同じ番号を繰り返す。
確認応答番号
(32ビット)
受信したデータに対して、どこまで受信できたのかをバイト位置で表すフィールド。
受信が完了したデータ位置のシーケンス番号+1を返す。
ACKフラグがONの場合にのみ、ACK番号フィールドを有効とする。
ヘッダ長
(4ビット)
TCPデータが始まる位置を表すフィールド。TCPヘッダの直後にデータ部が続くため、TCPヘッダのサイズと考えてもよい。
URG
(1ビット)
URG ・・・ urgent:緊急
緊急データが含まれていることを示すフラグ。
デフォルト値は0、1でONになる。
あまり使用されることはない。
ACK
(1ビット)
ACK ・・・ acknowledge
有効なACK番号がTCPヘッダに含まれていることを示すフラグ。
TCPの3ウェイハンドシェイク時の一番最初を除き、他の全てのTCPパケットは、ACKのフラグがONになっている。
PSH
(1ビット)
PSH ・・・ push
受信したデータをすぐにアプリケーションに引き渡すように要求するためのフラグ。
バッファリングを行うと応答性が損なわれてしまう可能性があるので、Telnetでは、このフラグをONにしている。
RST
(1ビット)
RST ・・・ reset
TCP接続を中断、拒否したい場合にセットされるフラグ。
RSTフラグをONにしたTCPパケットを送信することで、現在のTCP接続を強制終了することができる。
SYN
(1ビット)
SYN ・・・ synchronize
TCPの3ウェイハンドシェイク時のオープン処理の開始に双方のそれぞれがSYNフラグがONにして、ACK番号を同期させる。以降のパケットにはセットされない。
FIN
(1ビット)
FIN ・・・ finis
TCP接続を終了させるためセットされるフラグ。
双方からFINが送られるとTCP接続が終了する。
ウィンドウサイズ
(16ビット)
受信側のウィンドウサイズを相手に伝えるために利用されるフィールド。
単位はバイトで、最大65535バイトになる。
0は、データを受信することができないことを表す。
チェックサム
(16ビット)
TCPパケットの整合性を検査するための検査用データが入るフィールド。
緊急ポインタ
(16ビット)
URGフラグが1の場合のみ有効。
緊急データの場所を表す。
オプション TCP接続の特性を設定するために利用される可変長のフィールド。
MSSのやり取りなどに利用される。
32ビットの倍数になるように、必要に応じて最後にパディング(0)が埋められる。
データ TCPのデータ部。
TCP接続がタイムアウトして切断されないようにデータを含まないTCPヘッダだけのパケットを送る場合もある。


◆UDPヘッダの構造

 UDPでは、リアルタイム性を損なう確認応答や再送、輻輳制御がないため、TCPよりもリアルタイム性が高いという利点があります。UDPヘッダは、TCPヘッダと比べると、とてもシンプルです。8バイトしかありません。

0 15 16 31
送信元ポート番号
(16ビット)
宛先ポート番号
(16ビット)
長さ
(16ビット)
チェックサム
(16ビット)


データ


←―― 32ビット ――→

簡単に各フィールドを説明してゆきます。

フィールド 説明
送信元ポート番号
(16ビット)
送信元のアプリケーションを識別するための番号
返信を要求しないUDPパケットの場合は、送信元ポート番号を0にする。
0〜65535まで利用できる。
宛先ポート番号
(16ビット)
宛先のアプリケーションを識別するための番号
0〜65535まで利用できる。
ヘッダ長
(4ビット)
UDPパケットの長さを表すフィールド。
UDPで送信するデータ部分の長さを加えたバイト数を格納する。
チェックサム
(16ビット)
UDPパケットの整合性を検査するための検査用データが入るフィールド。
チェックサム計算のでは、UDP擬似ヘッダ(12bytes)、UDPヘッダ(8bytes)、UDPペイロードの3つを使用する。
※UDP擬似ヘッダは、チェックサムの計算時にだけに使われる仮想的なヘッダ。
データ UDPのデータ部。

広義のTCP/IPと狭義のTCP/IP」 ← 前項 | 次項 → 「コネクション型通信





<ネットワーク資格の練習問題に挑戦>
CCNA練習問題に挑戦!(650問)
Network+練習問題に挑戦!(393問)
テクニカルエンジニア(ネットワーク)試験
◆Cisco実機で学ぶ(CCNAルータ編)

ルータの概要・基本操作・設定1 (17項目)
ルータの概要・基本操作・設定3 (22項目)
IGRP・EIGRPの設定 (18項目)
アクセスリスト・ACLの設定 (14項目)
NAT・DHCPの設定 (8項目)
ルータの概要・基本操作・設定2 (17項目)
RIPv1・RIPv2の設定 (14項目)
OSPFの設定・デフォルトルートの伝播(16項目)
WANの設定 (10項目)
ARP・RARP・Proxy ARP(12項目)
◆Cisco実機で学ぶ(CCNAスイッチ編)

スイッチの基本操作・設定 (14項目)
VTP・スパニングツリーの設定 (12項目)
MACアドレスの管理・VLANの設定 (12項目)

◆アライドテレシス実機で学ぶ

基本操作・設定 (11項目)
OSPFの設定 (9項目)
ポリシールーティング・VRRPなど (12項目)
VLAN・マルチホーミング・RIPの設定 (10項目)
STP・ポートトランキングなど (14項目)

<関連メニュー>
CCNA実機で学ぶ
CCNP実機で学ぶ
CCENT(ICND1)実機で学ぶ
SDMで設定する(Cisco実機で学ぶ)
CCENT・CCNA無線実機で学ぶ
アライドテレシス実機で学ぶ
TCP/IP入門・無料ネットワークツール
PLCでホームネットワーク構築

Copyright(c)2006- @network Cisco・アライド実機で学ぶ All rights reserved.