TCP/UDP
通信するときの お約束事だよ
ワンセットで表現しているけど、実際には「TCP」と「UDP」の2つだよ
どちらもトランスポート層のお約束だよ
簡単に書くよ
TCP/UDP(読:ティーシーピーユーディーピー)とは
安全性重視で通信するときに使うお約束事「TCP」とスピード重視で通信するときに使うお約束事「UDP」を一緒くたにした表現
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・OSI参照モデル
・トランスポート層
・通信プロトコル(プロトコル)
・TCP
・UDP
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
OSI参照モデルは、大雑把に言えば「通信機能を ふんわりと定義したもの」です。
通信するときは送り手と受け手で同じルールを共有する必要があります。
片方が日本語で話しかけたのに、もう一方が英語で お返事したのでは、コミュニケーションが成立しませんよね。
それと同じです。
ところがどっこい、以前はメーカーごとに好き勝手なルールを作って、好き勝手に通信をしていました。
あるメーカーさんが作った機器は日本語でやり取りしていましたし、別のメーカーさんが作った機器は英語でやり取りしていたわけです。
これでは、別のメーカーさんが作った機器とやり取りしようとしても言葉が通じません。
「他のメーカーの製品とは通信できない」残念な状況だったのです。
これは不便ですよね?
そんな状況を見た賢い人が「共通ルールを作ってしまえば、メーカーが違っても通信できるんじゃないかな?」と考えました。
なるほど、確かにそうです。
そこで国際標準化機構という団体さんが「データ通信機能は こんな感じにしてね!」なルール(モデル)を作りました。
このルール(モデル)を満たしている製品は、異なるメーカーでも通信できます。
人種が違っても同じ言語を話せばコミュニケーションは取れますよね。
それと同じです。
この異なるメーカーの製品でも通信できるようにするために作られたルール(モデル)がOSI参照モデルです。
OSI参照モデルではネットワークを7つの階層に分けて定義しています。
なんで分けて考えるかというと、まとめて考えると頭が痛くなるからです。
あっちも こっちも一度に考えるより、部分ごとに1つずつ考えた方が分かりやすいだろうと判断したのでしょう。
トランスポート層は「OSI参照モデルにおける7つの階層の第4層」です。
詳細が気になる方は別のところで情報を補完してください。
通信プロトコル(プロトコル)は「通信するときに使う お約束事」です。
通信するときは足並みを揃える必要があります。
片方が日本語で話しかけたのに、もう一方が英語で お返事したのでは、コミュニケーションが成立しませんよね。
それと同じです。
そこで「○○通信をするときは ××というお約束事に従って やり取りしようね」と事前に決まっています。
言い方を変えると
通信するときは、お約束事が必要
なのです。
この「通信するときに使う お約束事」を「通信プロトコル(プロトコル)」と言います。
TCPは「安全性重視で やり取りしよう」な通信プロトコルです。
TCPは
送ったデータが相手に届いたか、その都度 確認しながら通信する やり方
です。
相手の言ったことを復唱しながら罵り合うイメージです。
ちゃんと届いたか確認しながら やり取りするので
1.漏れなく伝わる可能性は高い
2.スピードは遅くなる
といった特徴があります。
UDPは「スピード重視で やり取りしよう」な通信プロトコルです。
UDPは
送ったデータが相手に届いたか確認しないで通信する やり方
です。
相手の反応を気にしないでマシンガントークでガンガン悪口を言うイメージです。
ちゃんと届いたか確認しないでやり取りをするので
1.データの一部が行方不明になる可能性がある
2.スピードが速い
といった特徴があります。
一般的には、信頼性が大事な通信で使われるのはTCPです。
速度重視の通信ではUDPが使われます。
以上を踏まえて
「TCPとUDPだよ!」を意図する表現
が「TCP/UDP」です。
TCP/UDPの「/」は「アンド(and)」を意図しています。
TCPとUDPは別物です。
本来は分けて考えます。
とはいえ、どちらもトランスポート層のプロトコルであり、対比される関係にあります。
そのため、一緒くたにして表現したのだと思います。
一言でまとめるよ
まぁ「TCP/UDP」って単語が出てきたら「『TCP
(通信する上でのお約束事のひとつで、安全性重視で やり取りする やり方)』と『UDP
(通信する上でのお約束事のひとつで、スピード重視で やり取りする やり方)』なんだな~」と お考えください。
おまけ
■訳してみるよ
「TCP」は「Transmission Control Protocol(トランスミッション・コントロール・プロトコル)」の略です。
「transmission(トランスミッション)」の意味は「伝達」とか「伝送」とかです。
「control(コントロール)」の意味は「統制する」とか「操作する」とか「制御する」とかです。
「protocol(プロトコル)」の意味は「(外交上の)儀礼」とか「議定書」とかですが、今回は「お約束事」と解釈してください。
「UDP」は「User Datagram Protocol(ユーザ・データグラム・プロトコル)」の略です。
「user(ユーザ)」の意味は「使用者」とか「利用者」とかです。
「datagram(データグラム)」の意味は……ちゃんと説明すると大変なことになるので「とある通信」ということにします。
何となく くっつけると
「伝送を制御する お約束事」/「使用者が、とある通信で使う お約束事」
となります。
■検索してみる?






