類似用語

TCPとUDPの違い

2019年6月19日

TCPとUDPって何?

TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)は、どちらも通信プロトコルです。

通信プロトコルとは、通信するためのルール(約束事)のことです。なぜ通信にルールが必要かというと、送信側と受信側でルールを決めておかなければ通信が成り立たないからです。

例えば会話する時、日本語と英語では、会話が成り立ちません。複数の言語を話せる場合を除けば、どちらかの言語に統一して会話します。

I will send you
英語はわからない

 

通信も会話と同じで、ルールを決める事で、送信側と受信側で通信が成り立ちます。

TCPで送るね
了解です

スポンサーリンク

TCPとUDPの違いって何?

TCPとUDPの違いは、宅配で例えると宅配物を手渡しで渡し受領印をもらう一般的な方式(相手がいるかきちんと確認する)がTCP。

宅配便です
はい、受け取りました

宅配物をポストに入れる方式(相手がいるかは確認しない)がUDPです。

宅配便はポストに入れておきます
ちゃんと受け取ったかな?

 

TCPとは

TCPは、通信相手の状態を確認しながら通信を行う方式です。受信側はデータを受信すると、受け取った事を送信側に伝えます。そのため、送信側はデータが相手に届いたことが分かるようになっています。

また、相手から一定時間経過しても返信が返ってこない時は、再送する仕組みもあります。

 

ポイント

TCPは信頼性の高い通信

ただし通信相手からの応答を待つため、UDPに比べると通信速度は遅くなる

 

UDPとは

UDPは通信相手の状態を確認せず一方的に送る方式です。TCPとは違い相手からの応答がないため、送信側はデータが本当に届いたのかの確認はできません。とにかく速度を重視した送信プロトロルです。

 

ポイント

UDPは速度を重視した通信プロトコル。

ただしTCPに比べると信頼性の低い通信プロトコルである。

TCPとUDPのデータは具体的にどう違う?

TCPとUDPのデータの違いをもう少し具体的に紹介します。

TCPとUDPはデータにヘッダという情報を付与します。

TCPヘッダ

こちらがTCPヘッダとデータです。TCPは相手と会話するように通信をするため、様々な情報がTCPヘッダに格納されています。

「シーケンス番号」は送信データがどの位置のデータなのかを示す番号で、「確認応答番号」はデータがどこまで受信できたかを表す番号です。

※TCPヘッダの詳細は「TCPとは」をご覧ください。

 

UDPヘッダ

続いてこちらがUDPヘッダとデータです。TCPと違いUDPは送るだけなので、UDPヘッダには最低限の情報しかついていません。

※UDPヘッダの詳細は「TCPとは」をご覧ください。

スポンサーリンク

まとめ

代表的な通信プロトコルであるTCPとUDPの違いについて紹介しました。

TCPは信頼性の高い通信プロトコルであり、様々な所で使用されています。例えばWebのデータを転送するHTTP(hypertext transfer protocol)やファイル転送用のFTP(file transfer protocol)、電子メールの配送に使われるSMTP(simple mail transfer protocol )などはTCPを使って通信しています。

 

UDPは「信頼性は低いが速度が速い」ため、多少のデータを欠落があっても高速性やリアルタイム性を重視する通信で使われています。例えば時刻同期で使うNTP(Network Time Protocol)はTCPが使われている事もありますが、UDPを使って通信しています。

 

このようにTCPとUDPは用途に応じて、様々な所で使用されている通信プロトコルです。

helpful