TCPとUDPの主な特徴6つ|代表的なポート番号や使い分ける方法も紹介

TCPとUDPの主な特徴6つ|代表的なポート番号や使い分ける方法も紹介のアイキャッチイメージ

TCPとは?


TCPとはトランスポート層の伝送を制御する通信プロトコルです。

「Transmission Control Protocol」を略した言葉で、「Transmission」には「伝達」や「伝送」といった意味があり、プロトコルはインターネット上での通信を行う際に双方で取り決める約束事のことです。

TCPは相手にデータが届いているかその都度確認しながら通信を行うもので、信頼性のある1対1の通信です。

UDPとは?


UDPとはTCPよりも速度を重視したトランスポート層の通信プロトコルです。

「User Datagram Protocol」を略した言葉で、セキュリティよりもスピード重視で、UDPはTCPとよく比較されますが、TCPのようにその都度相手にデータが届いているかどうかを確認することはありません。

また1対多の通信も可能ですが、UDPは相手にデータが届いているかどうかよりも速度を重視する場合に採用されます。

TCPの主な特徴4つ


TCPにはどのような特徴があるのでしょうか。

同じ通信プロトコルとして比較されることも多いTCPとUDPですが、両者にはさまざまな違いとそれぞれの特徴について詳しく知ることにより、より違いについて理解を深めることができるでしょう。

ここではTCPの主な特徴4つをご紹介しますので、どのような違いがあるのか比較してみてはいかがでしょうか。

TCPの主な特徴1:コネクション型プロトコルである

TCPはコネクション型プロトコルという特徴があります。

TPCで通信を行う場合、まずは通信相手とのコネクションを確立させることで相手に通信が届いていることを確認させ、コネクションを確立させることは、TPCは全二重通信であるために必要な要素となっています。

また、TCPにおいて使用されるコネクションの確立のことを3ウェイハンドシェイクと呼びます。

TCPの主な特徴2:信頼性がある

TCPは信頼性が高いという特徴があります。

TCPでデータ通信を行う場合は前述のとおり事前にコネクションを確立し、双方で送受信ができていることをその都度確認するため、データ伝送プロトコルとしては非常に信頼性の高いと言えます。

また、通信データに付与されているヘッダにはシーケンス番号や確認応答番号、セグメント量のフィールドなど、セキュリティ能力の高い十分な機能が用意されています。

TCPの主な特徴3:制御機能を備えている

TCPは制御機能を備えているという特徴があります。

TCPはセキュリティが高く信頼性の高い通信プロトコルですが、データ通信を行う場合、ネットワークの状況によっては正しくデータが伝送されないケースもあります。

そのため、TCPにはウィンドウ制御やセグメントの再送制御、送信するセグメントの量の制御といったさまざまな制御機能が用意されています。

TCPの主な特徴4:重複を排除する仕組みがある

TCPは重複を排除する仕組みがあるという特徴があります。

TCPでは重複を排除することで、データが1つであることを保障しています。たとえば何らかの理由でデータが複数伝送された場合でも、TCPでは複数送信されたデータを除去する仕組みを持っています。

UDPの主な特徴2つ


UDPの主な特徴をご紹介します。

前述のとおり、UDPはTCPと比較してスピードを重視した通信プロトコルですが、それではどのような仕組みや特徴によってUDPでは高速なデータ送信を実現しているのでしょうか。

ここではUDPの主な特徴2つをご紹介しますので、ぜひ参考にしてみてください。

UDPの主な特徴1:処理が速い

UDPは処理が速いという特徴があります。

UDPでは遅延を少なくするために、処理をできるだけ簡単にしており、TCPのように送受信の確認を行わずデータを送信しても相手に届いたかどうかをチェックしないため、遅延するということがほとんどありません。

そのため、遅延が少なく早い処理が可能となっています。

UDPの主な特徴2:コネクションレス型プロトコルである

UDPはコネクションレス型プロトコルという特徴があります。

TCPはデータを伝送するために毎回コネクションを確立するコネクション型プロトコルですが、UDPはスピードを重視するため、TCPのように確認作業を行うことはありません。

このように、確認機能などを排除してデータ伝送のみを目的としたプロトコルはコネクションレス型プロトコルと呼ばれています。

代表的なサーバのポート番号3つ


代表的なサーバのポート番号をご紹介します。

TCPやUDPはクライアントとサーバの間でポートの提供や通信管理を行うトランスポート層のプロトコルで、ポートは1番から65535番までの番号が利用できます。

それでは、サーバのポート番号にはどのようなものがあるのでしょうか。ここでは代表的なサーバのポート番号3つをご紹介しますので、ぜひ参考にしてみてください。

代表的なサーバのポート番号1:HTTPサービスを動作する場合

HTTPサービスを動作する場合、TCP:80番ポート(Apache/TCP port 80)が一般的なポート番号です。

クライアントからIPアドレスのTCP:80番ポートへ接続することにより、HTTPサービスが提供されます。一般的に使用されるポート番号はWell-Known-Portと呼ばれており、IANAが割り振っています。

代表的なサーバのポート番号2:DNSサービスを動作する場合

DNSサービスを動作する場合、UDP:53番ポート(Bind/UDP port 53)が一般的なポート番号です。

クライアントからIPアドレスのUDP:53番ポートへ接続することでDNSサービスが提供されます。HTTPサービスと同じようにIANAが割り振っています。

代表的なサーバのポート番号3:SMTPサービスを動作する場合

SMTPサービスを動作する場合、TCP:25番ポート(Postfix/TCP port 25)が一般的なポート番号です。

クライアントからIPアドレスのTCP:25番ポートへ接続することでSMTPサービスが提供されます。HTTPサービスやDNSサービスと同じように、IANAが割り振っています。

TCPとUDPを使い分ける方法


TCPとUDPを使い分ける方法をご紹介します。

ここまでご紹介したとおり、TCPはセキュリティを重視した通信プロトコルで、UDPは通信スピードを重視した通信プロトコルであり、いずれもOSI参照モデルのトランスポート層の通信プロトコルとなっています。

それではTCPとUDPはどのように使い分ければよいのか、ここでは最後にTCPとUDPを使い分ける方法をご紹介しますので、ぜひ参考にしてみてください。

TCPを使う場合

TCPはファイル転送などの信頼性が求められる通信に使うのがおすすめです。

TCPは通信を行う前に通信相手とのコネクションを確立し、データ通信を行うたびに送信先にデータが届いたことを確認するプロトコルです。

また、1対1の通信で使うプロトコルとなっているため、Web通信やメール通信、ファイル転送など、欠けて困るようなデータや必ず相手に届かなければいけないデータを送信するために利用されます。

UDPを使う場合

UDPはリアルタイムアプリケーションや簡易な通信に使うのがおすすめです。

UDPはTCPに比べて負荷が軽いですが、通信のセキュリティや信頼性などを提供する機能は省かれ、通信は双方向ではなく一方的なものとなっており、TCPと違って1対多の通信でも使えます。

そのため、音声や動画といったリアルタイムアプリケーションや、DNS、NTP、SNMP、TFTPなどの簡易な通信に向いています。

TCPとUDPについて理解しよう


TCPとUDPは異なる特徴を持っていることから、それぞれ用途に合わせ、適した使い方があります。

TCPとUDPは同じトランスポート層の通信プロトコルですが、セキュリティやスピードに大きな違いがあります。

ぜひこの記事でご紹介したTCPやUDPの概要やTCPとUDPの主な特徴、代表的なサーバのポート番号、TCPとUDPを使い分ける方法などを参考に、TCPとUDPについて理解を深めてみてはいかがでしょうか。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。