今回は、「TCP」と「UDP」について調べたのでまとめたいと思います。
■TCP・UDPについて
---
TCP=トランスミッション・コントロール・プロトコル
UDP=ユーザ・データグラム・プロトコル
---
どちらも、インターネット上でデバイスからWebサーバにデータを転送するための、
ネットワークプロトコルを指します。
■TCP
TCPは、UDPよりも信頼性が高いと考えられているため、
インターネット上で最も一般的に使用されているプロトコルです。
TCPのパケットは、「TCPヘッダ」と「TCPペイロード」で構成されます。
---
【仕組み】
・各パケットに識別子とシーケンス番号を割り当てることで、
受信機側はどのパケットを受信したか、
次にどのパケットが到着するのかを識別できる。
↓
・送信機が送信したパケットの受信を受信機が許可すると、
受信機は動機を表す「SYN」と承諾を表す「ACK」が記されたパケットを送信機に送信する。
↓
・受信機からパケットを受け取ったら、
送信機は相手にACKのパケットを送る。
すると送信機はデータを送信することができるようになる。
↓
・パケットが紛失したり、間違った順番で送信されたりする場合は、
受信機は沈黙したままになるため、
同じデータパケットを再送する必要がある。
---
上記より、データは順番に送信されるため、
第三者が送信元を偽って通信する攻撃を防いだり、
エラーを発見して修正したりするのが容易になります。
また、TCPで送信されるデータは、確実に目的地に到着するように確保されます。
欠点としては、
データを交換するのに時間がかかってしまいます。
両者間で3回のやり取りを経て初めでデータ送信できるようになるためです。
■UDP
UDPはTCPと対照的で、識別子やシーケンス番号を必要とせず、
両社の間でやり取りを省いています。
また、UDPにはエラー訂正がほとんどなく、
パケットの紛失も重要視されません。
UDPはエラーが発生しやすいですが、TCPよりもはるかに高速なデータ送信を実現できます。
つまり、UDPは転送速度を重視した通信プロトコルなので、
完全に保護されていないわけではありませんが、
TCPに比べると安全性に欠けてしまいます。
特定のアプリケーションのプロキシを使用したり、
リモートユーザーと社内ネットワーク間のトンネル接続を確立したりすることで、
安全性が確保されます。
■結論
一言でまとめると以下の通りです。
---
【TCP】
・
速度は遅いが
信頼性が高い
・相手が受け取ったことを確認する
---
【UDP】
・
信頼性は低いが
速度が速い
・相手が受け取ったことを確認しない
(一方的に送り付ける)
---
■参考文献
・
「TCPとUDPの違い」
・
「TCPとUDPの違いや仕組みとは?使い分け方を徹底解説」