TCPとUDPの違い
TCP/IPプロトコル体系では、トランスポート層のプロトコルとして、TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)という2つのプロトコルが存在します。
TCPは、コネクション型のプロトコルで、信頼度優先で高度な制御を行い、UDPは、コネクションレス型のプロトコルで処理速度優先で制御を行います。
プロトコル | UDP | TCP |
---|---|---|
通信 | コネクションレス型 | コネクション型 |
転送速度 | 高速 | 低速 |
信頼性 | 低い | 高い |
対応/上位プロトコル | DNS、DHCP、SNMPなど | HTTP、POP、FTPなど |
実用例 | 音声通話、動画視聴など | ウェブサイト閲覧、メール受送信など |
メリット・特徴 | 1、オーバーヘッドが少ない | 1、オーバーヘッドが大きい |
2、パケットロスによる低い信頼性 | 2、高信頼性:データ欠落が発生しない | |
3、高速なデータ転送 | 3、低速だが安定したデータ転送 |
TCP
TCPでは、プロセスにサービスを提供するにあたって、信頼性のあるサービスを提供しています。
TCPに基づくデータ通信を実行する前に、 受送信両側間のコネクション成立が必須となる 。そのコネクションの確立を実現した手順は「3ウェイハンドシェイク」と呼ばれる。
- SYNパケット(Synchronize Packet) :コネクション確立の前に、クライアントからサーバーに送られるパケットで、最初の接続の申し入れである。
- ACK番号(ACKnowledgement) :確認応答番号で、宛先に応答を返すために送る信号パケットである。
①確実にデータを配送する
データを相手に確実に配送するために、可能な限り面倒を見るようになっています。もし、どうしてもうまくいかない場合、プロセス側に通知します。
②エラーに対処する
データが相手に届かなかったり、途中で壊れると、それを検出してデータを再送する仕組みを持っています。
→ パケットロスなどによりデータ再送が発生するとトラフィック増加 ( ISPに不利 )
③データの順番を制御する
IPによる通信では、ネットワークの途中の状況によって、送信したデータが相手に順番どおりに到着することは保証されません。TCPでは、それを元通りの順番に組み立て直す仕組みを持っています。
④重複を排除する
データが1つであることを保証します。何らかの理由でデータが複数配送された場合、TCPは、それを除去する仕組みを持っています。
⑤フロー制御・輻輳制御を行う
各ホストの処理速度に応じて流量制御を行ったり、ネットワークの輻輳状態による転送速度制御を制御します。
→ 瞬間的な高トラフィックの発生をフロー制御によって事前に抑制 ( ISPに有利 )
UDP
TCPでは、複雑な制御手順を行いますが、コネクションレス型サービスを提供するUDPは非常にシンプルな制御を行います。
データがちゃんと相手に届いたかどうかを確認する仕組みなどは、ありません。UDPが行うことは、データが破損していないかどうかを確認するだけです。データが破損しているかどうかは、チェックサムを見て確認します。
複雑な制御がないので、オーバーヘッドが生じないようになっています。
制御方法との親和性から、 主に動画配信や音声通話など、リアルタイムにデータを送る必要のある通信に利用 されています。
ウェルノウンポート
ウェルノウンポートとは、TCP/IPによる通信で利用されるTCPやUDPのポート番号のうち、著名なサービスやプロトコルが利用するために予約されている0番から1023番のことです。