【基本情報技術者試験】よく出る問題(3ウェイハンドシェイク編)

 

基本情報技術者試験の午後問題では、3ウェイハンドシェイクに関する問題が出ています。応用情報技術者試験でも出ていたりと情報処理技術者試験では頻出と言える問題であると考えています。

今回はそんな「3ウェイハンドシェイク」について見ていきます。

※どちらかというとネットワークの問題ですが、情報セキュリティの問題としても出題される可能性があるのでは?と思ってます!

 

 

目次

 

 

 

TCPUDPについて

3ウェイハンドシェイクの話をする前に前提知識となる「TCP」や「UDP」について確認していきましょう!

TCPUDPインターネットプロトコルスイートの一部であり、ネットワーク通信を行うためのトランスポート層プロトコルです。

 

TCPは信頼性のあるコネクション指向のプロトコルです。以下はTCPの特徴です。

  1. コネクション指向: TCPは通信の確立と終了の手順を持ち、データの信頼性を確保するための機構が組み込まれています。パケットの順序性や欠損の検出・修復を行うことで、データの完全性を保証します。

  2. ストリーム指向: TCPはデータをストリームとして扱います。データはバイト単位で分割されず、連続したデータストリームとして送受信されます。

  3. 遅延が少ない: TCPはパケット到着の確認を行い、再送制御を行うため、データの到着までに若干の遅延が発生することがあります。

  4. ポート番号を使用: TCPは送信元と宛先のポート番号を使用して、アプリケーション間の通信を識別します。これにより、正しいアプリケーションにデータを配信します。

UDPコネクションレスで信頼性の低いプロトコルです。以下はUDPの特徴です。

  1. コネクションレス: UDPは通信の確立や終了の手順を持たず、データの送受信を即座に行います。データグラムと呼ばれるパケット単位で通信を行います。

  2. ベストエフォートデリバリ: UDPはデータの到着確認や再送制御を行わず、データを送信するだけです。そのため、パケットの順序性や欠損の確認は行われず、信頼性は低いです。

  3. 高速性: UDPは信頼性よりもデータの即時性を重視します。そのため、遅延が少なく、リアルタイム性の要求があるアプリケーションに適しています。

  4. ポート番号を使用: UDPTCP同様にポート番号を使用して通信を識別します。

 

 

3ウェイハンドシェイクとは??

3ウェイハンドシェイク(Three-Way Handshake)は、TCP(Transmission Control Protocol)において、通信を確立するための手順です。3ウェイハンドシェイクは、クライアントとサーバ間で確実な通信の開始を保証するために使用されます。

以下が3ウェイハンドシェイクの手順です。

  1. クライアントからサーバへのリクエスト(SYN): クライアントがサーバに対して通信の開始を要求するため、SYN(Synchronize)パケットを送信します。このパケットには、ランダムなシーケンス番号(Sequence Number)が含まれます。これにより、クライアントが通信を識別できます。
  2. サーバからクライアントへの応答(SYN+ACK): サーバはクライアントからのリクエストを受信し、通信の確立を受け入れるために応答します。サーバはSYN+ACK(Synchronize-Acknowledge)パケットをクライアントに送信します。このパケットには、サーバからのシーケンス番号と、クライアントからのシーケンス番号に1を加えた値が含まれます。
  3. クライアントからサーバへの確認(ACK): クライアントはサーバからの応答を受信し、通信の確立を確認するためにACK(Acknowledge)パケットをサーバに送信します。このパケットには、サーバからのシーケンス番号に1を加えた値が含まれます。

 

 

これにより、クライアントとサーバの間で通信が確立され、データの送受信が開始されます。この3ウェイハンドシェイクにより、通信の信頼性と整合性が確保されます。また、通信開始前にお互いのシーケンス番号を交換することで、パケットの順序や重複を検出するための手段も提供されます。

3ウェイハンドシェイクは、TCPプロトコルにおいて重要な役割を果たしており、信頼性のあるデータ通信の確立に不可欠な手順です。

 

 

まとめ

基本的には3ウェイハンドシェイクはどんなものか、通信を確立する手順等を押さえておけば問題ないと考えています。

また、3ウェイハンドシェイクに関する問題が出るとは限りません。特にネットワークの問題と思われるなので、参考程度に出てくるかもしれませんがメインの問題としては出題されないものと考えています。(科目Aでは出てくるとは思います。)

ただ、どんなものか知っておくだけで解答のスピードは格段に上がり、他の問題に費やせる時間が出てくると思います。

無駄とは思わず、旧基本情報技術者試験(午後問題)の過去問を一度見返してみてはいかがでしょうか。