TCPとUDP — 書留で送るか、ポストに投げ込むか
大事な契約書は書留で送ります——受け取りの確認が返ってきて、届かなければ再送してもらえる。代わりに手間と時間がかかります。チラシならポストに投函——確認はしない、でも速い。
データの世界にも同じ2つの送り方があります。書留がTCP、投函がUDP。「Web会議の音声はなぜUDPか」が分かれば、この論点は取れます。
動画やオンライン会議がTCPではなくUDPを使うのはなぜでしょうか。
確認して送り直すか、投げっぱなしで速さを取るかです
TCPはコネクション型——通信に先立ち相手との接続(コネクション)を確立し、確認応答を受け取り、届かなければ再送します。信頼性は高いが、その分遅い。UDPはコネクションレス型——接続も確認もせず投げっぱなし(ベストエフォート)。信頼性は低いが、速い。
動画やWeb会議は、1コマ欠けても人間は気づきませんが、再送を待つ遅延には敏感です。だから欠けを許して速さを取るUDPが向いています。
プロトコルの帰属——「欠けたら困るか、遅れたら困るか」で決まっています
上位プロトコルの使い分けは、この性格の延長です。TCPを使うのは1バイトの欠けも許されない通信——Web閲覧(HTTP)・メール送信(SMTP)・ファイル転送(FTP)。UDPを使うのは速さ・軽さ優先の通信——名前解決(DNS)・IPアドレスの自動割当(DHCP)・動画ストリーミングや音声通話です。
DNSがUDPなのは、「www.example.comのIPアドレスは?」という一問一答の短い通信だから——毎回接続を確立するコストの方が高くつくのです(大きな応答などではTCPも用いられます)。
「DNSはTCP」と「UDPは再送で信頼性確保」が定番の誤りです
定番の誤り肢は「DNSの名前解決はTCPを使う」——基本はUDPです。一問一答の短さがヒント。もう1つが「UDPは再送制御により信頼性を確保する」——再送するのはTCPで、UDPは投げっぱなしです。
特性の対(コネクション型/レス型・確認応答の有無・速い/遅い)を片方だけ入れ替えるのが手口——「TCPはコネクションレス型で信頼性が高い」のような肢は、対のどちらかが必ず崩れています。3点セットで固定してください。
顧問先から「Web会議の音声が途切れる」と相談されたら、UDPの性質が説明の土台になります——音声は欠けても再送しない設計なので、回線が細いと欠けがそのまま聞こえる。対策は帯域の確保(有線接続・回線増強)側にあり、「アプリの設定」をいじっても直らないことが多い、と切り分けられます。ECサイトの決済が「遅くても確実」なのはTCP側の世界です。
冒頭の問いに答えます。動画やWeb会議は、データが多少欠けるより再送待ちの遅延の方が致命的なので、確認も再送もしない代わりに速いUDPを使います(TCP=コネクション型・確認応答・再送で確実、HTTP・SMTP・FTP/UDP=コネクションレス・ベストエフォートで高速、DNS・DHCP・動画)。次は宛先そのもの——IPアドレスの枯渇と解決策へ。