TCP/IPとは？

|layer|contents|
|---|---|
|アプリケーション層|HTTP, DHCP, FTP|
|トランスポート層|TCP, UDP|
|インターネット層|IP, ARP, ICMP|
|リンク層|イーサネット, PPP|

### [TCP](https://www.techtarget.com/searchnetworking/definition/TCP)とは
TCP: Transmission Control Protocol
送ったデータが相手に届いたか、その都度確認しながら通信するやり方
OSI参照モデルのトランスポート層にあたるプロトコル
**信頼性は高いが転送速度が低い**

初めに送信側と受信側でTCPセグメントを用いてコネクションを確立した後にデータを含んだTCPセグメントを送信する。[オーバーヘッド](https://wa3.i-3-i.info/word12471.html)が大きい。

[TCPで用いられる3ウェイハンドシェイクとは？？？]()

### [UDP](https://www.geeksforgeeks.org/user-datagram-protocol-udp/)とは？
UDP: User Datagram Protocol
同じくトランスポート層
TCPとは対象にスピード重視で行う通信
**転送速度は高いが信頼性が低い**

データを含んだUDPセグメントを一方的に送信する。TCPで行われるコネクションの確立は行わない。

IPが現れるときにはTCPが現れることが多いためTCP/IPと書かれる。/はANDの意味

## まとめ

TCP：安全性重視、確認を取りながら送る
UDP：スピード重視、確認を取らないで送る

---

## TCP vs UDP

[source](https://www.geeksforgeeks.org/user-datagram-protocol-udp/)

| **基準**                         | **Transmission Control Protocol(TCP)**                                                                                                            | **User Datagram Protocol(UDP)**                                                                                                      |
|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| **サービスの種類**              | TCPは接続指向のプロトコルです。接続指向とは、通信デバイスがデータ送信前に接続を確立し、データ送信後に接続を終了することを意味します。                 | UDPはデータグラム指向のプロトコルです。これは、接続の開始、維持、または終了にオーバーヘッドがないためです。UDPはネットワーク伝送のブロードキャストやマルチキャストに効率的です。 |
| **信頼性**                      | TCPは、データが宛先ルーターに確実に届くことを保証するため、信頼性があります。                                                           | UDPでは、宛先へのデータの配信が保証されません。                                                                                             |
| **エラーチェック機構**           | TCPは広範なエラーチェック機構を提供します。これは、フロー制御とデータの確認応答を提供するためです。                                     | UDPはチェックサムを使用した基本的なエラーチェック機構のみを持っています。                                                                  |
| **確認応答**                    | 確認応答セグメントが存在します。                                                                                                        | 確認応答セグメントは存在しません。                                                                                                         |
| **シーケンス**                  | TCPの特徴であるデータのシーケンス処理により、パケットは受信側で順番通りに到着します。                                                     | UDPにはデータのシーケンス処理がありません。順序が必要な場合は、アプリケーション層で管理する必要があります。                                |
| **速度**                        | TCPはUDPに比べて速度が遅いです。                                                                                                        | UDPはTCPよりも速く、シンプルで効率的です。                                                                                                |
| **再送**                        | TCPでは失われたパケットの再送が可能ですが、UDPでは不可能です。                                                                          | UDPでは失われたパケットの再送はありません。                                                                                               |
| **ヘッダーの長さ**               | TCPは(20-60)バイトの可変長ヘッダーを持っています。                                                                                       | UDPは8バイトの固定長ヘッダーを持っています。                                                                                              |
| **重量**                        | TCPはヘビーウェイトです。                                                                                                               | UDPはライトウェイトです。                                                                                                                  |
| **ハンドシェイク技術**          | SYN、ACK、SYN-ACKなどのハンドシェイクを使用します。                                                                                       | 接続指向ではないプロトコルで、ハンドシェイクはありません。                                                                                 |
| **ブロードキャスト**            | TCPはブロードキャストをサポートしていません。                                                                                           | UDPはブロードキャストをサポートしています。                                                                                               |
| **プロトコル**                  | TCPはHTTP、HTTPs、FTP、SMTP、およびTelnetで使用されます。                                                                                | UDPはDNS、DHCP、TFTP、SNMP、RIP、およびVoIPで使用されます。                                                                                |
| **ストリームの種類**            | TCP接続はバイトストリームです。                                                                                                         | UDP接続はメッセージストリームです。                                                                                                        |
| **オーバーヘッド**              | 低いですが、UDPよりは高いです。                                                                                                          | 非常に低いです。                                                                                                                            |
| **アプリケーション**            | このプロトコルは、安全で信頼性のある通信手順が必要な場合に主に利用され、電子メール、ウェブサーフィン、軍事サービスなどで使用されます。         | このプロトコルは、VoIP、ゲームストリーミング、ビデオ、音楽ストリーミングなど、信頼性がそれほど重要でない迅速な通信が必要な場合に使用されます。   |

---

## 参考文献

- [『TCP』,「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典](https://wa3.i-3-i.info/word19.html)
- [『TCP/IP』,「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典](https://wa3.i-3-i.info/word1540.html)