ITパスポートや基本情報技術者の資格でよく出てくるワードの一つに「TCP、UDP」があります。
どちらもレイヤー4のプロトコルですが、それぞれ仕組み、用途も正反対です。
この記事では、TCP、UDPの違いについて、初心者の方にもわかりやすく解説します。
TCP、UDPとは?
TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)は、どちらも通信プロトコルです。
通信プロトコルというのは、インターネットの世界の「言語」のようなものです。人間のコミュニケーションにおいて、言語が違うと会話が難しいように、インターネットの世界も言語のような通信のルールを決めないと通信ができません。ただ、このプロトコルは膨大な数があるので、OSI参照モデルという考え方でそれぞれ階層ごとに分類されます。その中で、TCP、UDPは、クライアントとサーバ間での通信チャネルの提供、通信管理を行う、レイヤー 4 のプロトコルです。
ここでいう通信チャネルというのは “ポート” と呼ばれるもので、1 番から 65535 番までの番号が使用できます。一つ下のレイヤー3ではIPアドレスによってルータ等の宛先を指定しますが、このレイヤー4ではどんな種類の通信をするのかをポート番号をもとにやり取りするイメージです。
TCP、UDPの違いとは?
上記でTCP、UDPのそもそもの前提、共通点をお話ししましたが、同じレイヤーのプロトコルであるTCPとUDPは何が違うのでしょうか?
一言で言うと、TCPは「信頼性は高いが速度の遅い通信」で、UDPは「信頼性は低いが速度の速い通信」です。以下でもう少し仕組みを踏まえて詳しく解説していきます。
TCPの特徴は?
①コネクション型
一つ目が、「コネクション型」のプロトコルだということです。
TCPは、通信をする前に通信先に通信していいかを確認します。
クライアント:「今通信していい?」(SYN)
サーバー:「おっけー!」(ACK)
クライアント:「じゃあ送るねー」
といった具合です。3回やり取りが発生することから、この仕組みを「3ウェイハンドシェイク」と呼びます。このプロセスを踏むことで、データが順番に送付されるため、途中でデータが破損してしまったり宛先まで届かないと言ったことがなく、信頼性の高い通信です。
②速度が遅い
二つ目が、速度が遅いことです。①で説明した通り、TCPは通信前に通信していいか確認するので、その分処理に時間がかかり、速度が遅くなります。その分信頼性が高いので、一長一短ですが。
③Web・メール通信、ファイル転送に使われる
三つ目が、Web・メール通信、ファイル転送に使われることです。①、②の特徴から、TCPは安定性が求められる(=きちんと届かなかったら困る)Web閲覧やメール通信、ファイル転送の際に使用されます。
UDPの特徴は?
①コネクションレス型
一つ目が、「コネクションレス型」のプロトコルだということです。
UDPは、TCPと違って、通信相手の状態を確認せず一方的に通信を行います。サーバー側はいつ誰から通信が来るかもわからない状態で待つので、一気に複数の通信が集中して遅延・破損が起きることもあります。
②速度が速い
二つ目が、速度が速いことです。通信前の確認を行わないので、通信上の負荷が少なく、速度は速くなります。
③音声や動画通信に使われる
三つ目が、音声や動画通信に使われることです。①、②の特徴から、質より速さ重視のリアルタイムの音声や動画通信に使用されます。通信前の確認をせず一方的に通信を行うので、通信が集中した状態がよくある映像が固まったり音声が途切れるといった事態が発生します。
TCP/IPと何が違う?
TCPとUDPもよく比較されますが、IT関連の資料でよく「TCP/IP」という単語が出てきますよね?
TCP/IPとは、インターネット上で最も世界標準的に利用されている通信プロトコルのことです。
TCP/UDPはレイヤー4の異なるプロトコルですが、TCP/IPはレイヤー4、レイヤー3のプロトコルの組み合わせです。IPで宛先を指定して、TCPでポートで特定の通信の種類を指定する、というイメージです。
インターネット上の通信の大半はWeb閲覧やメール、ファイル転送なので、このTCP/IPが一般的なプロトコルの組み合わせとして広く使われているのです。
おわりに
いかがだったでしょうか。TCPとUDPの違いは、ITパスポート等の資格の問題でもよく出題されるので、それぞれの特徴をしっかり理解しておきましょう。
コメント