宛先はそろった。次は「運び方」

宛先はそろった。次は「運び方」

前回のC-08では、ルーター・NAT・ファイアウォールという、ネットワークの出入口で働く装置を見ました。これまでのカテゴリCで、IPアドレスという住所、ポート番号という部屋番号、ドメイン名という名前と、宛先の決め方が一通りそろっています。今回扱うのは、その宛先へデータを「どう運ぶか」という運び方そのものです。運び方には、確実さを重んじる流儀と、速さを重んじる流儀の2つがあります。

このスライドのポイント

  • 前回C-08: ルーター・NAT・ファイアウォールという出入口の装置を見た
  • ここまでで宛先の決め方(住所・部屋番号・名前)が一通りそろった
  • 今回のテーマは、その宛先へデータを「どう運ぶか」

TCPとUDPの定義

TCPとUDPの定義

TCPとUDPは、どちらもデータの運び方を決めるプロトコル、つまり通信の規則です。TCPは、データが届いたかを確認し、順序を保証しながら運ぶ方式です。途中で抜けや入れ替わりがあれば、送り直します。確実ですが、その確認のぶん手間がかかります。一方のUDPは、確認や順序の保証を省いて、とにかく速く送り続ける方式です。多少の欠けを許す代わりに、遅れが小さくなります。

このスライドのポイント

  • TCP・UDPはどちらもデータの運び方を決めるプロトコル(通信の規則)
  • TCP: 届いたかを確認し、順序を保証して運ぶ。抜け・入れ替わりは送り直す
  • UDP: 確認や順序保証を省き、とにかく速く送り続ける。多少の欠けは許す

なぜこの違いを知る必要があるか

なぜこの違いを知る必要があるか

この違いを知らないと、「Webの表示が遅い」と「ビデオ通話が途切れる」を同じ問題として扱ってしまいます。実際には、アプリの種類によって重視すべき性質が違います。何を失ってはいけないのかで、向いている運び方が変わるのです。これは、後のカテゴリで扱う技術選定の入口になる観点です。どちらが優れているかではなく、目的に合うのはどちらかを考える習慣を、ここで持ちましょう。

このスライドのポイント

  • 知らないと「Webの表示が遅い」と「ビデオ通話が途切れる」を同じ問題にしてしまう
  • アプリの種類によって重視すべき性質が違う
  • 何を失ってはいけないかで、向いている運び方が変わる

5つの観点で並べて比べる

5つの観点で並べて比べる

TCPとUDPを、5つの観点で並べて比べます。到達確認、順序保証、速さ、欠けたときの扱い、そして向いている用途です。TCPは到達確認と順序保証があり、そのぶん少し遅くなります。欠けがあれば送り直すので、文書やWeb、保存が絡むものに向きます。UDPは確認も順序保証も省くので速く、多少欠けても止まりません。ですから、通話や配信、ゲームのように「今」が大事なものに向きます。

何を失えないかで決まる

何を失えないかで決まる

身近な例で考えます。経費データの送信で1件でも欠けたら、業務が壊れてしまいます。ここでは確実さが最優先なので、TCP的な運び方が合います。一方、ビデオ会議では、0.1秒ぶんの映像が欠けても会話は続けられます。ここでは速さが優先なので、UDP的な運び方が合います。つまり、何を失えないかによって、運び方が自然と決まっているのです。

このスライドのポイント

  • 経費データの送信: 1件欠けたら業務が壊れる → 確実さ優先(TCP的)
  • ビデオ会議: 0.1秒の映像が欠けても会話は続く → 速さ優先(UDP的)
  • 何を失えないかで、運び方が自然に決まっている

技術サンプル: TCPとUDPの運び方

技術サンプル: TCPとUDPの運び方

運び方の違いを図で見ます。TCPは、送って、届いたかを確認し、確認できてから次を送ります。確実で順序どおりですが、少し遅くなります。UDPは、確認を待たずに送り続けます。速く、欠けても止まりません。用途は、文書やWeb、決済はTCP、通話や配信はUDPが基本です。なお、Webアプリの通信は、基本的にTCPの上に成り立ちます。その詳しい中身は、次のカテゴリDで扱います。

このスライドのポイント

  • 種別: diagram
  • 目的: TCPとUDPの運び方と、用途との対応を1枚で確認する
  • サンプル本体:

「確実な方式が常に良い」は誤り

「確実な方式が常に良い」は誤り

よくある思い込みが、「確実な方式が常に良い」というものです。TCPはUDPの上位互換ではありません。リアルタイム性が命の用途では、届いたかを確かめるやり取りそのものが、かえって害になります。確認している間に、次の瞬間の映像や音声は古くなってしまうからです。逆に、保存が絡むデータでは、速さより取りこぼしのなさが大切になります。優劣で選ぶのではなく、用途で選ぶ。これが正しい理解です。

このスライドのポイント

  • 思い込み: 確実な方式が常に良い
  • 正しくは: 用途で選ぶ。TCPはUDPの上位互換ではない
  • リアルタイム性が命の用途では、確認の手間そのものが害になる

バイブコーディングでの確認点

バイブコーディングでの確認点

バイブコーディングでの確認点です。通話・通知・配信など、リアルタイム性が絡む機能をAIに作らせるときは、設計思想を確認しましょう。AIへの質問例です。「この機能は、確実さと速さのどちらを優先する設計ですか。その理由も教えてください」。運び方の前提がずれたまま作り進めると、後から直しにくくなります。作り始める前に、何を優先するのかをはっきりさせておきます。

このスライドのポイント

  • 通話・通知・配信などリアルタイム性が絡む機能は、設計思想を確認する
  • 運び方の前提がずれたまま作り進めると、後から直しにくい
  • AIへの質問例: 「この機能は、確実さと速さのどちら優先の設計ですか。理由も教えてください」

まとめと次回

まとめと次回

最後に一問一答です。1件も欠けてはいけない決済データに向くのは、TCPとUDPのどちらでしょうか。……答えはTCPです。到達確認と順序保証があるため、欠けや入れ替わりを防げます。30秒まとめです。運び方には、確実さのTCPと速さのUDPがあり、何を失えないかで使い分けます。次回はカテゴリC最終回、「速い・遅い」を3つの物差しで測る話へ進みます。関連資料は「API連携ワード100」「非エンジニアのための開発会話集」です。

このスライドのポイント

  • 一問一答: 1件も欠けてはいけない決済データに向くのは?
  • 答: TCP(到達確認と順序保証があるため)
  • 30秒まとめ: 運び方はTCP(確実)とUDP(速さ)。何を失えないかで使い分ける
  • 次回: カテゴリC最終回、「速い・遅い」を3つの物差しで測る話へ