TCPは信頼性があり、UDPは信頼性がないと以前お話したことを覚えていますか?

なぜTCPは信頼性があるのでしょうか、その秘密はTCPの仕組みにあります。

TCPは相手へパケットを転送する前に、SYNパケットを自動的に送信します。
そのSYNパケットに対し、相手はSYN ACKパケットを返却します。SYN ACKパケットを受け取った時、今度はACKパケットを送信して、初めてパケットを転送するのです。

つまり、相手との接続が確実にうまくいくか、事前に確認しているのです。
ちなみにTCPは転送したパケットの順番もきちんと守ります。

これらの処理はTCPが行うものであり、プログラマが意識する必要はありません。
プログラマは、TCPを使う場合もUDPを使う場合もほとんど同じ書式のコードを記述します。
よって、確実に届いて欲しい時にはTCPを、多少パケットをロスしてもいいから速く届いて欲しい時にはUDPを用いればよいのです。どちらを使うにしても、コーディングの難易度は変わりません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
お疲れ様でした。これにてネットワーク概論の講義は終了です。
これで通信プログラムを書くための知識は一通り身に付きました。
座学はこの辺にして、実際にプログラムを書きまくって下さい。
通信系のプログラムは、初めて書いた時は9割方動かないので覚悟して下さい。