TCPは死なず、ただ去るのみ
TCPは死なず、ただ去るのみ
TCPは、インターネット上で最も広く使用されているトランスポート層プロトコルの1つであり、長年にわたって信頼性の高いデータ転送を実現してきました。
しかし、TCPにはいくつかの課題があります。
まず、TCPはパケットロスに弱いです。パケットがロスすると、TCPは再送を要求しますが、再送してもパケットが届かないこともあります。
また、TCPは輻輳制御が複雑です。輻輳制御とは、ネットワークの混雑を抑制する技術です。TCPの輻輳制御は複雑なため、ネットワークの混雑を完全に抑制することはできません。
最後に忘れていけないのはHead of Line Blocking(HOLブロッキング)問題です。
HOLブロッキング問題が発生する原因は、TCPがデータの送受信を順番に行っていることです。
例えば、AからBにデータ1、2、3を送信する場合、通常TCPはデータ1を送信し、データ1が受信されたことを確認してから、データ2を送信しますし、データ2が受信されたことを確認してから、データ3を送信します。
もしここで、データ1が受信されなかった場合、TCPはデータ1を再送します。データ1が再送されても受信されなかった場合、TCPはデータ2を送信できません。そのため、データ2とデータ3の送信が遅延したり、失敗したりすることがあります。
HOLブロッキング問題を解決するには、TCPの送受信を並行化する必要があります。
例えば、AからBにデータ1、2、3を送信する場合、TCPはデータ1、2、3を同時に送信します。
データ1、2、3のいずれかが受信されなくても、他のデータの送信を継続することができます。
一方、QUIC(Quick UDP Internet Connections)は、Googleによって開発されたプロトコルで、UDPを基盤としているため、TCPとは異なるアプローチをとっています。
まず、QUICはUDPをベースにしています。UDPはTCPよりもパケットロスに強いプロトコルです。
QUICは、Webサイトのロード時間を短縮するために開発されたプロトコルであり、多くの場合、TCPよりも高速であり、HOLブロッキング問題などの問題を解決しています。
また、QUICは、セキュリティ面でも優れており、TLSを組み込んでいるため、データの暗号化とセキュリティ認証を同時に行うことができます。
上記のような特徴から今後、QUICがインターネットの標準的なトランスポートプロトコルになる可能性があります。
しかし、TCPはすぐになくなるわけではありません。QUICは、まだ発展途上の技術であり、TCPほど広く普及していません。
また、QUICはTCPよりも複雑なプロトコルであるため、TCPよりも実装が難しいです。
そのため、TCPはしばらくの間、インターネットの基盤となるトランスポートプロトコルとして使われ続けるでしょう。
しかし、QUICはTCPの課題を解決する可能性を秘めており、今後、QUICがインターネットの標準的なトランスポートプロトコルになる可能性があります。