【ネスペ9問】TCPとUDP(ネットワークスペシャリスト)
このNoteには、R06~H21からTCP/UDPの問題を集めました。
TCPのUDPの片方と、IPを組み合わせると通信データの中核ができます。
上層プロトコルはアプリで決まり、下層はイーサネットや回線で決まります。全てのプロトコルはTCP/UDPとIPを使っていると言って良いでしょう。さすが「TCP/IP」と云われるわけです。
ネスペの問題を分類すると、ざっくり5つに分類できました。9問は多いので、ご自分のペースで段階的に学習していってくださいね。目次の副題を見て2テーマずつ進めると良いと思います。
私のNoteは全て、学生時代の独学合格体験、大学・IT専門学校での授業経験に基づいています。少しでも信用して頂けたら嬉しいです。
それでは始めましょう!
\私の3ヶ月の学習記録/
ウィンドウ ~ネスペからの用語~
正答はウ。ウかエで迷えば良しです。
ウィンドウは、現在送る対象にしているデータを指す「枠」。アの「輻輳」とは回線が混みあって、各利用者の通信速度が低下してしまう現象です。回線の交通渋滞です。
アとイは消せます。
ア:「ウィンドウサイズが固定」が誤り。回線状態によって変えたいです。
イ:「誤り訂正」なので、「再送」要求ではなく、受信側で訂正します。
エ:データグラム方式とはコネクションレス通信のこと。覚えなくて良いかな。
正答はイ。スライディングウィンドウと云います(テキストにも載っているのを確認してください)。
ウィンドウは、現在送る対象にしているデータを指す枠。
TCPは3WAYハンドシェイクのように確認をするプロトコル。1回データを送ったら、受信側から届いたか・誤りがなかったかなどの確認通信が返答されます。1回1回確認を待っていては、なかなか高速化が難しいですね。
そこでウィンドウサイズを、1回の伝送(セグメント)で送れる量の5倍などに設定して、5回分を一気に送信して、5回分の返答から再送が必要かを判断します。
確認が返答され再送不要だと判断できれば、ウィンドウをずらして、次のデータをどんどん送っていきます。1個ずつ送信・確認をするよりも速くしたい工夫です。
輻輳アルゴリズム ~ネスペからの用語~
正答はア。ウとエは
ア:BBRは、google社が開発したアルゴリズム。google社つながりでHTTPヘッダ「HSTS」も出題されます。>【セキスペ】HSTSのNote
イ:HMAC、メッセージ認証コード(MAC)の1つ。ハッシュ関数と共通鍵で作ります。公開鍵と秘密鍵を使うディジタル署名と似ています。
>【Iパス】デジタル署名のNote
>【ネスペ】デジタル署名のNote(準備中*)ウ:RSAは、公開鍵暗号アルゴリズムの代表格。素因数分解の困難さを利用。楕円曲線暗号も代表格でしたね。共通鍵のRC4, DES, AESも大丈夫ですね。FEレベル。
エ:SFP(Shortest Path First)はルーティングプロトコルとのこと(過去問道場さん)。覚えるべきルーティングプロトコルは、>【ネスペ】ルーティングプロトコルのNote
またSPF(Sender Policy Framework)は、受信したメールの正当性を相手DNSサーバに確認する仕組みでもありますね。同じ略称で混乱するので、私はSPFはメール絡みとしてだけ覚えます。
TCPとUDP ~簡単な問題~
正答はア。知らなくて消去法でOK。
TCPは信頼性重視、UDPは信頼性を損なってでもリアルタイム重視でしたよね。FEレベル。
イ~エを考えると、全て信頼性がないと困りますよね。FTP(ファイル転送)、HTTP(Web閲覧)、SMTP(メール)。よってア。全てポート番号まで覚えてますよね。>【FE】プロトコル10個のNote
過去問道場さんでは、DHCPはIPアドレスが割り当てられる前で、相手が決まっていないのでTCPコネクションのしようがない、と説明しています。
正答はエ。TCPとUDPはトランスポート層のプロトコルなので、ポート番号に反応します。
アのIPアドレスはIPヘッダに書かれます。イのMACアドレスはMACヘッダに書かれます。
ウの「TTL」はパケットの寿命。「TTL値に関係なく」だと、ゴールに行けなかったパケットがいつまでもネットワーク内を徘徊するので大変です。IPヘッダに書かれます。
>ヘッダ・データ構造のNote(準備中*) でも扱う問題を持ってきました。
正答はイ。詳しい解説は過去問道場さんの図が分かり易いです。
私からは、初見で知らなくても粘る解き方を。屁理屈かもですが。
まず、TCPとUDPのイメージは以下のような感じですよね。
TCP:信頼性。だから「3wayハンドシェイク」などする
UDP:リアルタイム性(信頼性よりも重視)。
IP:TCPでもUDPでも使う下位プロトコル。
では選択肢をあれやこれと考えてます。
ア:TCPのチェックサムがオプション(必須ではない)なんて、信頼性に欠けるので×。
イ:知らないのが多い。UDPにチェックサムあるんかも分からない。保留。
ウ:IPのチェックサムがオプションだったら、TCPで高めた信頼性が崩れます。せっかくプチプチで梱包したのに、コワレモノ発送しないようなもの。
エ:TCPのチェックサムがヘッダ部分だけの検証で、データの伝送誤りを検証できないなんて、信頼性に欠けます。
以上より、イを選びます。IPのチェックサムがヘッダのみとか、UDPもチェックサムがあるとかは新たな学びとして受け入れます。
3ウェイハンドシェイク ~FEに追加する知識~
正答はア。SYN・SYN+ACK・ACKはFEレベル。
「通信していい?」「通信ね。分かった。」「分かった。送るね」と3回連絡して接続しているので、3WAYハンドシェイク。WAYは方法や回数、ハンドシェイクは握手。
セキスペなら、SYN Flood攻撃を学びましたね。>SYN FloodのNote
正答はウ。仕様だから仕方ないです。
エを選んで間違えますよね。それはOK。いいセンス。シーケンス番号はいかにも送る側の連番っぽいですし、応答番号は相手のどの通信に対する応答かを示すようですもんね。
確認応答番号は次に送って欲しいデータ。
手順3ACKでシーケンス番号11112を送っているので、手順2の確認応答番号で11112が要請されたと考えます。
手順3ACKの確認応答番号で22223を要請しているので、前届いたデータは22222と考えます。
なお、+1しているのは、SYN・SYN+ACK・SYNは1オクテット(8ビット)と数えるから。もしデータがあれば、加える数はもっと大きくなります。次の問題でやります。今すぐ知りたい方は、過去問道場さんへ。
シーケンス番号と確認応答番号 ~ネスペからの知識~
正答はア。ギリギリ捨てても良いかな。
TCPの確認応答番号は、次送って欲しいデータ(シーケンス番号)。よって「前送ってもらったデータ」の「シーケンス番号」+「届いたデータ量」。
例えば、相手から(シーケンス番号:100, 確認応答番号:200で、10オクテットのデータ)が送られてきたとき、(シーケンス番号:210, 確認応答番号:110)を返答。すると相手は(シーケンス番号:120, 確認応答番号:220)を返答します。
まとめ
お疲れ様でした!
最後のシーケンス番号と確認応答番号がややこしかったですが、捨てても良いかなと。ひとまずはFEまでの知識をベースに、ウィンドウ、TCPとUDPのデータ構造の違い、輻輳アルゴリズムを追加することから始めれば良いかなと。
仕様をどこまで覚えるべきかの判断が難しいですが、私が過去問分析をし合格経験を踏まえて今後も提案していけたらなぁと考えています。
以上になります。でわでわ。
\私の3ヶ月の学習記録/