【独学CCNA】031.TCPその2
ゼロからのCCNA独学講座
本連載では、シスコ技術者認定資格であるCCNA合格を目指して、試験範囲の解説や問題演習などを扱っていきます!
前回はポートについて説明しました。
本記事ではTCPについて説明していきます。
- 3ウェイハンドシェイク
- シーケンス番号
- その他のヘッダ情報
- まとめ
3ウェイハンドシェイク
前回の記事で簡単に3ウェイハンドシェイクについて話しました。TCPではデータのやり取りを始めるときに、必ずコネクションの確立を行います。これを3ウェイハンドシェイクと呼びます。
では実際にどのようなやり取りが行われているのか、ヘッダ情報も含めてその流れを学んでいきましょう。
1.PCAは、SYNパケットと呼ばれるコネクション確立要求のためのパケットを通信相手(PCB)に送ります。
ヘッダは、SYNビット「1」、ACKビット「0」です。
2.PCBは1の通信に対しての応答と、PCBからのコネクション確立要求を同時に行います。
ヘッダは、相手にコネクション確立を求めるためにSYNビット「1」、1で行われたPCAからの要求への応答としてACKビット「1」です。
3.PCAはPCBからのコネクション確立要求に対しての応答を行います。
ヘッダは、SYNビット「0」、ACKビット「1」です。
コネクション確立時の3ウェイハンドシェイクについて話しました。
コネクション確立の際の要求にはSYNビットを使用しましたが、コネクション切断要求にはFINビットを使用します。
シーケンス番号
次に、TCPヘッダ内のシーケンス番号について話していきます。
シーケンス番号は送信するデータの1バイト毎に割り当てた番号になります。データは分割して送られますが、データ全体の中のどの位置のデータをやり取りしているのかを示しています。
シーケンス番号があることによって、データがやり取りの際に抜け落ちたとしてもどのデータを再送すればよいのか判断することができます。
その他のヘッダ情報
残りのまだ説明していないTCPヘッダのフィールドについて簡単に説明していきます。
・ヘッダ長(データオフセット)
これはTCPヘッダ全体の長さを表す値になります。TCPのヘッダ情報にはビット数が可変長のものがあるので、この値が必要となります。TCPのヘッダの長さを32ビット単位で
数えた値が入ります。
・予約
現在はまだ使用されていないフィールドです。将来の使用のために開けてあります。
・コントロールビット
SYNやACKビットなどのフラグのことをまとめてコントロールビットと呼びます。最新のものでは9ビット存在しています。主なものは以下の6つです。
-URG 緊急フラグ
-ACK 応答確認フラグ
-PSH 転送強制フラグ
-RST リセットフラグ
-SYN 接続要求フラグ
-FIN 切断要求フラグ
以上6つのフラグに加えてNS,ECE,CWRの3つのビットが現在では追加されています。
まとめ
・コネクションの確立には3回のパケットのやり取りが行われる(3ウェイハンドシェイク)
・接続要求をする際にはSYNビットをたてる(1にする)
・コネクションの切断ではFINビットを使用する
確認問題
以下の選択肢から正しいものを選んでください。
- 3ウェイハンドシェイク時の接続要求にはFINビットを使用する
- TCPのヘッダ長は毎回同じとは限らない
- 相手からの要求にに応答する際にはSYNビットを使用する
今回はTCPを紹介しました。