pulpul 日本の試験

システムアーキテクト 概念書 · ネットワーク

TCP・UDPとDNS・HTTPの基礎

TCPとUDPは、IPネットワーク上でアプリケーション同士のデータを運ぶトランスポート層のプロトコルである。TCPは接続を確立して信頼性を保証し、UDPは接続を張らずに軽量に送るという対比がこの単元の土台になる。DNSは名前とIPアドレスを対応付ける仕組み、HTTPはWebで要求と応答をやり取りする仕組みであり、それぞれの役割と代表的なポート番号や状態コードを層の違いとともに整理しておく必要がある。

TCPとUDPの仕組み

TCPは通信の前に接続を確立し、到達確認と再送によってデータの欠落を防ぐ。そのため、順序や完全性が求められる通信に適している。一方UDPは到達確認を行わず、制御情報が少ないぶん処理が軽い。多少の欠落よりも速さや即時性が重視される場面で用いられる。時刻を同期するNTPは通常UDPの123番ポートを使う。POP3はTCPの110番ポート、TELNETはTCPの23番ポートを使う。

PCがWebサーバへ接続しているとき、PC側で使われているTCPポート番号はnetstatで一覧表示して確認できる。ipconfigはIPアドレスなどの設定情報を表示するコマンドであり、接続中のポートは示さない。tracertは経路を調べるコマンドであり、ポート番号の確認には用いない。

DNSとHTTPの動作

DNSは問い合わせに応じて、ホスト名とIPアドレスを相互に対応付ける仕組みである。DNSサーバへ問い合わせるソフトウェアはリゾルバと呼ばれる。IPアドレスから対応するホスト名を調べる処理は逆引きといい、PTRレコードなどを用いる。ホスト名の別名はCNAME、メールの配送先はMX、ドメインを管理するネームサーバはNSで表される。

DNSキャッシュポイズニングは、偽の応答をDNSサーバのキャッシュに登録させる攻撃である。対策として、問い合わせごとにDNSヘッダのIDを予測されないようランダムに変えることが有効である。IDを変えても送信元ポート番号を53番に固定すると、応答の照合に使われる値が予測しやすくなり、対策として不十分になる。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む