1_TCP及びUDPとは?
TCP(Transmission Contorol Protocol)とUDP(User Datagram Protocol)は、トランスポート層と呼ばれるはアプリケーション間のデータ転送を担う階層のプロトコル(約束事)を指します。簡単に言ってしまうと、通信が相手方に届くまでの順序制御や信頼性に関するルールだと思ってください。

毎度よくわからなくなるんですけど、IPアドレスの役割とは違うのですか?

IPアドレスは、機器同士が通信を取る際に相手方にたどり着くまでに必要な情報になります。TCPやUDPに代表されるトランスポート層のプロトコルは、どのようにして相手方までたどり着くかを決めたルールになります。間違いなく相手方が本人(通信先)かを確認する信頼性を重視するのか、送るスピードを優先するのかといった感じです。郵便で例えると、本人限定郵便とするのか速達とするのかといった感じです。
2_TCP(Transmission Contorol Protocol)
信頼性及び順序制御を重視したルールになります。
特徴としては、データ本体の送信前に「接続」ための通信を行い、相手が接続の準備が整っているか確認します。そして問題なければ、相手の送るデータを順番に分けて番号を付けた上で送信し、受け取った側は届いた番号を確認して「返事(ACK)」を返し、届かなければ再送します。
ウェブ閲覧やメールなど、正確さが重要な場面で使われます。

2-1_TCP通信の流れについて(3ウェイハンドシェイク)
TCPは信頼性及び順序制御を重視しているため、まず3ウェイハンドシェイクと呼ばれる通信を始めるためのやり取りを実施します。
まず送る側が「①SYN」という合図を送って接続を要求します。受け取った側は「②SYN+ACK」で受け取りと準備完了を伝えます。最後に送る側が「③ACK」で受け取りを確認すると接続が確立し、データの送受信が始まります。これにより相手が通信可能か確認でき、安全で順序あるやり取りができます。

3_UDP(User Datagram Protocol)
スピード(リアルタイム性)を重視したルールになります。
速さを重視する「送りっぱなし」の通信の仕組みです。TCPと異なり、相手が接続の準備が整っているかの通信を実施せず、データを小さな塊で送ります。順番や到達確認を行わないため、届かなくても再送しません。その代わり遅延が少なくリアルタイム性が重要な音声通話、動画配信、オンラインゲーム、DNS問い合わせなどでよく使われます。

3-1_UDP通信の流れについて
UDPは、TCPと異なりスピード(リアルタイム性)を重視しているため、3ウェイハンドシェイクのような前置き通信は実施しません。イメージとしては、一方からデータがどんどん送られる感じです。

4_まとめ(比較表)
| 項目 | TCP | UDP |
|---|---|---|
| 通信のイメージ | 宅配便(手渡し・受取確認あり) | ポスト投函(送りっぱなし) |
| 接続の有無 | 接続あり(3ウェイハンドシェイク) | 接続なし(即送信) |
| 信頼性 | 高い(順番・到達確認・再送あり) | 低い(順番保証なし・再送なし) |
| スピード | やや遅い(確認処理が多い) | 速い(処理が少ない) |
| データ順序 | 保証される | 保証されない |
| 主な用途 | Web閲覧、メール、ファイル転送など | 動画配信、音声通話、ゲーム、DNS |

