C LANGUAGE TECHNOLOGY

【C/C++/Python/Go言語】QUIC:グーグルが開発したUDPにコネクション指向を追加したトランスポート層の通信プロトコル

悩んでいる人

グーグルが開発した通信プロトコル「QUIC」を教えて!

こういった悩みにお答えします.

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++Solidity/Vyper,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

QUIC:グーグルが開発したUDPにコネクション指向を追加したトランスポート層の通信プロトコル

QUIC(クイック)は,グーグルが開発したUDPにコネクション指向を追加したトランスポート層の通信プロトコルです.

QUICにより,UDPによる低遅延を実現しつつTCPのようなコネクション指向を両立できます.

また,IETFによりHTTP over QUICを「HTTP/3」と呼ぶことになりましたので,HTTPの事実上の標準になると言えます.

QUICの論文は「The QUIC Transport Protocol: Design and Internet-Scale Deployment」として公開されています.

QUICはIETFにより以下のRFCで標準化されています.

QUICの解説動画はこちらです.

QUICのオープンソース

QUICの代表的なオープンソースを紹介します.(一覧はこちらです.)

どのオープンソースがQUICの事実上の標準になるか動向をチェックしましょう!

C++言語:QUICHE(グーグル)

QUICHE(QUIC, Http, Etc.)は,グーグルにより開発されたC++言語による商用利用可能な実装です.

QUICHEには,QUIC,HTTP/2,HTTP/3,および関連するプロトコルとツールがあります.

グーグルのサーバ,Chromium,Envoy,およびその他のプロジェクトで使用されています.

C言語:MsQuic(マイクロソフト)

MsQuicは,マイクロソフトにより開発されたC言語によるQUICの実装です.

MsQuicはクロスプラットフォームで,C言語で書かれており,汎用のQUICライブラリとして設計されています.

また,C++のAPIラッパークラスを持ち,RustとC#の両方の相互運用レイヤーを公開しています.

Python言語:aioquic(aiortc)

aioquicは,aiortcにより開発されたPython言語によるQUICの実装です.

最小限のTLS 1.3の実装,QUICスタック,HTTP/3 スタックを備えています.

Go言語:quic-go(ルーカス・クレメンテ)

quic-goは,グーグルのソフトウェアエンジニアのルーカス・クレメンテにより開発されたGo言語によるQUICの実装です.

quic-goは,Go言語のQUICの実装で代表的なものです.

まとめ

グーグルが開発したUDPにコネクション指向を追加したトランスポート層の通信プロトコル「QUIC」を紹介しました.

QUICは,HTTPの事実上の標準になる予定です!

C言語を独学で習得することは難しいです.

私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.

私のキャパシティもあり,一定数に達したら終了しますので,今すぐ追加しましょう!

友だち追加

独学が難しいあなたは,元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!

-C LANGUAGE, TECHNOLOGY
-, , , , , , , ,