Loading [Contrib]/a11y/accessibility-menu.js

2018年11月3日土曜日

[一次専門]TCPヘッダ

作成:2018年11月03日
技術士第一次試験(情報工学)では、通信プロトコルに関する問題もチラホラ出題されます。中でもTCPに関する問題が頻出です。

TCPヘッダのフォーマットは以下のとおりです(RFC793より引用)。

普段からパケット解析をバリバリやってる人はともかく、TCPヘッダの各フィールドの詳細まで覚えるのはしんどいですよね。

技術士一次試験対策の観点では、上記ヘッダフォーマットの横幅が32ビットで、だいたいこんなフィールドがあるんだなぁ程度を理解した上で、「3ウェイハンドシェイク」や「フロー制御」の概要を理解しておけば十分だと思います。

TCPパケットに関する問題は、平成30年度、平成26年度、および平成16年度で出題されています。
年度によっては適切なものを選んだり、不適切なものを選んだりといった違いがありますが、選択肢で問われている内容はほぼ同じです。

そこで、過去3年分の過去問をマージして、一問一答形式にしてみました。

【平成30年度、平成26年度、平成16年度の技術士第一次試験問題を基に作成】

IPv4のTCPパケットに関する次の記述のうち、正しいものは○、間違っているものは×を答えよ。

  1. TCPヘッダにはチェックサムフィールドがない
  2. TCPヘッダにはパケット長やデータ長を表すフィールドが存在する
  3. TCPヘッダのSYNビットは、3ウェイハンドシェイクにおける最初のパケットでは0になっている
  4. TCPヘッダのウィンドウの値を0に設定すると、送信側は送信を中断し、次に0以外の値が返されるまで待機する。
  5. TCPヘッダは送信ポート番号フィールドと受信ポート番号フィールドを含み、それぞれ32ビット長である。
  6. TCPパケットのデータフィールドは、IPパケットのヘッダ内容を含む

上のTCPヘッダフォーマットが頭に入っていれば、1,2,5,6はすぐにわかりますね。
1,2,5,6全て誤りです。

3については、3ウェイハンドシェイクの流れを理解しておく必要があります。
ざっくり書くと

① 通信要求側 → 通信相手: SYN
② 通信相手 → 通信要求側: SYN ACK
③ 通信要求側 → 通信相手: ACK (コネクション成立)

という流れとなります。

通信要求側が最初にSYNパケットを投げる際、SYNパケットであることを示すためTCPヘッダのSYNビットは1となるので、問題文の記述は誤りです。

4について。確認応答(ACK)なしに一度で送信可能な最大のデータ量をウィンドウサイズと言います
ウィンドウサイズの値が0の場合、これ以上受信できないことを表しており、送信側は送信を中断します。
したがって、問題文の記述は正しいです。


解答:
1. ×  2.×  3.×  4.○  5.×  6.×

0 件のコメント:

コメントを投稿