ã€ã³ã¿ãŒãããã®æŽå²ã«ãããæ°ãããã€ã«ã¹ããŒã³ã¯ããŸãã«ç®ã®åããå§ãŸããŸããHTTP/ 3ããã§ã«çºè¡šãããŠãããšæ³å®ã§ããŸãã 10ææ«ã«ãIETFã®ããŒã¯ãããã£ã³ã¬ã ã¯ã2015幎以éIETFãæ§ç¯ããŠããæ°ãããããã³ã«ã®
ååã
æ¢ã«æ±ºå®ããããšãææ¡ããŸãã ã ãã®ãããQUICã®ãããªååã®ä»£ããã«ãéšã
ããHTTP / 3ãç»å ŽããŸããã æ¬§ç±³ã®åºçç©ã¯ãã§ã«
ãã®ããšã«ã€ã㊠äœåºŠã æžããŠããŸãã QUICã®æŽå²ã¯2012幎ã«Good Corporationã®è
žã§å§ãŸããŸããããã以æ¥ãGoogleã®ãµãŒããŒã®ã¿ãHTTP-over-QUICæ¥ç¶ããµããŒãããŠããŸããããæéãçµã¡ãFacebookã¯ãã§ã«ãã®ãã¯ãããžãŒã®å®è£
ãéå§ããŸããïŒ11æ7æ¥ã
Facebookãš
LiteSpeedã¯HTTP / 3 ïŒ; çŸåšãQUICããµããŒãããŠãããµã€ãã®å²åã¯1.2ïŒ
ã§ãã æåŸã«ãWebRTCã¯ãŒãã³ã°ã°ã«ãŒã
ãQUIC ïŒããã³
QUIC APIãåç
§ïŒã«
ç®ãåããŠãããããè¿ãå°æ¥ããªã¢ã«ã¿ã€ã ã®ãããª/ãªãŒãã£ãªã¯RTP / RTCPã§ã¯ãªãQUICãçµç±ããããã«ãªããŸãã ãããã£ãŠãIETF QUICã®è©³çްãæããã«ããããšã¯çŽ æŽãããããšã§ãããšå€æããŸãããç¹ã«Habrã«ã€ããŠã¯ããã³ã°ãããã£ã³ã°iã®ç¿»èš³ãæºåããŸããã ãæ¥œãã¿ãã ããïŒ
QUICïŒQuick UDP Internet ConnectionsïŒã¯ãæå·åãããæ°ããããã©ã«ãã®ãã©ã³ã¹ããŒãã¬ã€ã€ãŒãããã³ã«ã§ãããå€ãã®HTTPæ¡åŒµæ©èœãåããŠããŸãããã©ãã£ãã¯ãé«éåããã»ãã¥ãªãã£ã匷åããŸãã QUICã«ã¯é·æçãªç®æšããããŸããæçµçã«ã¯TCPãšTLSã眮ãæããããšã§ãã ãã®èšäºã§ã¯ãäž»èŠãªQUICããããšãWebããããã®æ©æµãåããçç±ã®äž¡æ¹ãšããã®å®å
šã«æ°ãããããã³ã«ããµããŒãããåé¡ã«ã€ããŠèª¬æããŸãã
å®éãåãååã®2ã€ã®ãããã³ã«ããããŸããGoogleQUICïŒgQUICïŒã¯ãæ°å¹Žåã«Googleã®ãšã³ãžãã¢ãéçºãããªãªãžãã«ã®ãããã³ã«ã§ãäžé£ã®å®éšã®åŸãæšæºåã®ããã«Internet Engineering Task ForceïŒIETFïŒã«ãã£ãŠæ¡çšãããŸããã
IETF QUICïŒä»¥éãåã«QUICïŒã¯ãgQUICãšã®éã«éåžžã«å€§ããªéãããããããå¥åã®ãããã³ã«ãšèŠãªãããšãã§ããŸãã ããã±ãŒãžåœ¢åŒãããã³ãã·ã§ã€ã¯ããã³HTTPãããã³ã°ã«è³ããŸã§ãQUICã¯ãã€ã³ã¿ãŒãããã®é«éåãšå®å
šæ§ã®åäžãšããå
±éã®ç®æšãæã€å€ãã®çµç¹ãéçºè
ãšååããŠãå
ã®gQUICã¢ãŒããã¯ãã£ãæ¹åããŸããã
ããã§ã¯ãQUICã¯ã©ã®ãããªæ¹åãæäŸããŸããïŒ
çµ±åã»ãã¥ãªãã£ïŒããã³ããã©ãŒãã³ã¹ïŒ
QUICãšç±ç·ããTCPã®æãæ³šç®ã«å€ããéãã®1ã€ã¯
ããã©ã«ãã§
å®å
šã§ãã茞éãããã³ã«ã§ãããšããæåã«è¿°ã¹ãããç®æš
ã§ã ã QUICã¯ãèªèšŒãšæå·åã䜿çšããŠãããè¡ããŸããããã¯éåžžããã©ã³ã¹ããŒããããã³ã«èªäœã§ã¯ãªããããé«ãã¬ãã«ïŒTLSãªã©ïŒã§è¡ãããŸãã
å
ã®QUICãã³ãã·ã§ã€ã¯ã¯ãTCPãä»ããéåžžã®3è
ééä¿¡ãšTLS 1.3ãã³ãã·ã§ã€ã¯ãçµã¿åãããåå è
ã®èªèšŒãšæå·åãã©ã¡ãŒã¿ãŒã®èª¿æŽãæäŸããŸãã TLSã«ç²ŸéããŠããå ŽåïŒQUICã¯TLSèšé²ã¬ãã«ãç¬èªã®ãã¬ãŒã 圢åŒã«çœ®ãæããŸãããåæã«TLSãã³ãã·ã§ã€ã¯ã䜿çšããŸãã
ããã«ãããæ¥ç¶ãåžžã«æå·åããã³èªèšŒãããã ãã§ãªããåææ¥ç¶ãããé«éã«è¡ãããšãã§ããŸããéåžžã®QUICãã³ãã·ã§ã€ã¯ã¯ã1åã®ãã¹ã§ã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®äº€æãè¡ããTCP + TLS 1.3ã¯2åã®ãã¹ãè¡ããŸãã
ãã ããQUICã¯ããã«é²ãã§ããµãŒãããŒãã£ã«ãã£ãŠç°¡åã«äŸµå®³ãããå¯èœæ§ãããæ¥ç¶ã¡ã¿ããŒã¿ãæå·åããŸãã ããšãã°ãæ»æè
ã¯ãã±ããçªå·ã䜿çšããŠãæ¥ç¶ç§»è¡ã䜿çšãããŠãããšãã«è€æ°ã®ãããã¯ãŒã¯ãã¹ã«ãŠãŒã¶ãŒãèªå°ã§ããŸãïŒä»¥äžãåç
§ïŒã QUICã¯ãã±ããçªå·ãæå·åãããããæ¥ç¶ã®å®éã®åå è
以å€ã¯ä¿®æ£ã§ããŸããã
æå·åã¯ããåæ»ãã«å¯ŸããŠã广çã§ããããã¯ãå®è£
ã®èª€ã£ãä»®å®ã®ããã«ãããã³ã«ã®æè»æ§ãå®éã«äœ¿çšã§ããªãçŸè±¡ã§ãïŒéªšå
-TLS 1.3ã
é·ãéã¬ã€ã¢ãŠããããçç±ã§ããæ°ããTLSãªããžã§ã³ã®äžèŠãªãããã¯ãé²ããŸãïŒã
ãã¥ãŒã®å
é ããããã¯ããïŒè¡é ããããã³ã°ïŒ
HTTP / 2ã«ãã£ãŠããããããäž»ãªæ¹åç¹ã®1ã€ã¯ã1ã€ã®TCPæ¥ç¶ã§ç°ãªãHTTPèŠæ±ãçµåã§ããããšã§ãã ããã«ãããHTTP / 2ã¢ããªã±ãŒã·ã§ã³ã¯ãªã¯ãšã¹ãã䞊è¡ããŠåŠçãããããã¯ãŒã¯ãã£ãã«ãããæå¹ã«æŽ»çšã§ããŸãã
ãã¡ãããããã¯å€§ããªåé²ã§ããã 以åã®ã¢ããªã±ãŒã·ã§ã³ã¯ãè€æ°ã®HTTPèŠæ±ãåæã«åŠçããå ŽåïŒããšãã°ããã©ãŠã¶ãŒãããŒãžãã¬ã³ããªã³ã°ããããã«CSSãšJavaScriptã®äž¡æ¹ãåä¿¡ããå¿
èŠãããå ŽåïŒãå€ãã®TCP + TLSæ¥ç¶ãéå§ããå¿
èŠããã£ãããã§ãã æ°ããæ¥ç¶ãäœæããã«ã¯ããªãŒããŒããŒããŠã£ã³ããŠãåæåããã ãã§ãªããè€æ°ã®ãã³ãã·ã§ã€ã¯ãå¿
èŠã§ããã€ãŸããããŒãžã®ã¬ã³ããªã³ã°ãé
ããªããŸãã çµã¿åãããHTTPãªã¯ãšã¹ãã¯ãããåé¿ããŸãã
ãã ããæ¬ ç¹ããããŸããè€æ°ã®èŠæ±/å¿çãåãTCPæ¥ç¶ãä»ããŠéä¿¡ãããããã倱ãããããŒã¿ã1ã€ã®èŠæ±ã®ã¿ã«é¢ä¿ããå Žåã§ãããããã¯ãã¹ãŠãã±ããæå€±ã«çããäŸåããŸãã ããã¯ããã¥ãŒã®å
é ããããã¯ããããšåŒã°ããŸãã
QUICã¯ããã«æ·±ããªããèŠæ±ãçµåããããã®ãã¡ãŒã¹ãã¯ã©ã¹ã®ãµããŒããæäŸããŸããããšãã°ãç°ãªãHTTPèŠæ±ã¯ç°ãªããã©ã³ã¹ããŒãQUICèŠæ±ãšèŠãªãããšãã§ããŸãããåæã«åãQUICæ¥ç¶ã䜿çšããŸã-ã€ãŸãã远å ã®ãã³ãã·ã§ã€ã¯ã¯äžèŠã§ãã茻茳ã¹ããŒã¿ã¹ãQUICèŠæ±ã¯ç¬ç«ããŠé
ä¿¡ãããŸãããã®çµæãã»ãšãã©ã®å Žåããã±ããæå€±ã¯1ã€ã®èŠæ±ã®ã¿ã«åœ±é¿ããŸãã
ãããã£ãŠãããšãã°ããã±ããæå€±ã倧ããéè² è·ã®ãããã¯ãŒã¯ã®å Žåã¯ç¹ã«ãWebããŒãžïŒCSSãJavaScriptãç»åãããã³ãã®ä»ã®ãªãœãŒã¹ïŒã®å®å
šãªã¬ã³ããªã³ã°ã®æéã倧å¹
ã«ççž®ã§ããŸãã
ãšãŠãç°¡åã§ãã
ãã®çŽæãæããããã«ãQUICãããã³ã«ã¯ãå€ãã®ãããã¯ãŒã¯ã¢ããªã±ãŒã·ã§ã³ãåœããåãšèããŠããããã€ãã®åæãå
æããå¿
èŠããããŸãã ããã«ãããQUICã®å®è£
ãšå®è£
ãè€éã«ãªãå ŽåããããŸãã
QUICã¯ãéçºãä¿é²ããäžæãªãããã³ã«ã®ãã±ããããããããããããã¯ãŒã¯ããã€ã¹ã®åé¡ãåé¿ããããã«ãUDPããŒã¿ã°ã©ã ãä»ããŠé
ä¿¡ãããããã«èšèšãããŠããŸãïŒã»ãšãã©ã®ããã€ã¹ãUDPããµããŒãããŠããããïŒã ãŸããQUICããŠãŒã¶ãŒç©ºéã«é
眮ã§ãããããããšãã°ããã©ãŠã¶ãŒã¯OSã®æŽæ°ãåŸ
ããã«ãæ°ãããããã³ã«æ©èœãå®è£
ããŠãšã³ããŠãŒã¶ãŒã«äŒããããšãã§ããŸãã
ãã ãããããã¯ãŒã¯ã®åé¡ãæžãããšããç®æšã¯ããã±ãããä¿è·ããŠé©åã«ã«ãŒãã£ã³ã°ããããšãããå°é£ã«ããŸãã
1ã€ã®NATã§ãã¹ãŠãéããŠã1ã€ã®é»ãæå¿ã§å£çµããŸã
éåžžãNATã«ãŒã¿ãŒã¯ã4ã€ã®å€ã®ã¿ãã«ïŒéä¿¡å
IPãšããŒãã«å ããŠIPãšå®å
ããŒãïŒã䜿çšããTCPæ¥ç¶ãšããããã¯ãŒã¯ãä»ããŠéä¿¡ãããTCP SYNãACKãããã³FINãã±ãããç£èŠããŸãã ã«ãŒã¿ãŒã¯ãæ°ããæ¥ç¶ããã€ç¢ºç«ããããã€çµäºãããã倿ã§ããŸãã ãããã£ãŠãNATãã€ã³ãã£ã³ã°ïŒå
éšããã³å€éšIPãšããŒãéã®æ¥ç¶ïŒã®æ£ç¢ºãªç®¡çãå¯èœã§ãã
QUICã®å Žåãããã¯ãŸã äžå¯èœã§ãã çŸä»£ã®NATã«ãŒã¿ãŒã¯QUICããŸã èªèããŠããªããããéåžžã¯ããã©ã«ãã®ããŠã³ã°ã¬ãŒãã§ç²ŸåºŠã®äœãUDPåŠçã«ããŠã³ã°ã¬ãŒãããŸããããã¯ãé·æéã®æ¥ç¶ã«åœ±é¿ããå¯èœæ§ã
ããä»»æã®ïŒå Žåã«ãã£ãŠã¯çãïŒæéã®ã¿ã€ã ã¢ãŠããæå³ã
ãŸãåãã€ã³ããçºçãããšïŒã¿ã€ã ã¢ãŠããªã©ïŒãNATå¢çã®å€åŽã®ããã€ã¹ã¯å¥ã®ãœãŒã¹ãããã±ããã®åä¿¡ãéå§ãã4ã€ã®å€ã®ã¿ãã«ã®ã¿ã䜿çšããŠæ¥ç¶ãç¶æã§ããªããªããŸãã
ãããŠãããã¯åãªãNATã§ã¯ãããŸããïŒ QUICæ©èœã®1ã€ã¯æ¥ç¶ç§»è¡ãšåŒã°ããããã€ã¹ãèªç±ã«æ¥ç¶ãä»ã®IPã¢ãã¬ã¹/ãã¹ã«è»¢éã§ããããã«ããŸãã ããšãã°ãã¢ãã€ã«ã¯ã©ã€ã¢ã³ãã¯ãQUICæ¥ç¶ãã¢ãã€ã«ãããã¯ãŒã¯ããæ¢ç¥ã®WiFiãããã¯ãŒã¯ã«è»¢éã§ããŸãïŒãŠãŒã¶ãŒã¯ãæ°ã«å
¥ãã®ã³ãŒããŒã·ã§ãããªã©ã«ã¢ã¯ã»ã¹ããŸããïŒã
QUICã¯ãæ¥ç¶IDã®æŠå¿µã䜿çšããŠãã®åé¡ã解決ããããšããŸããæ¥ç¶IDã¯ãQUICãã±ããã§éä¿¡ãããæ¥ç¶ãèå¥ã§ããä»»æã®é·ãã®æ
å ±ã§ãã ãšã³ããã€ã³ãããã€ã¹ã¯ãã®IDã䜿çšããŠãã¿ãã«ãšèª¿æŽããã«æ¥ç¶ã远跡ã§ããŸãã å®éã«ã¯ãããšãã°ãæ¥ç¶ã®ç§»è¡æã«ç°ãªããã¹ãæ¥ç¶ãããã®ãé¿ããããã«ãåãæ¥ç¶ãæãå€ãã®IDãå¿
èŠã§ããããã¯ãããã»ã¹å
šäœãããã«ããã¯ã¹ã§ã¯ãªããšã³ãããã€ã¹ã«ãã£ãŠã®ã¿å¶åŸ¡ãããããã§ãã
ãã ãã1ã€ã®IPã§æ°çŸãŸãã¯æ°åã®ãµãŒããŒãèå¥ã§ããå¯èœæ§ãããããšããŒãã£ã¹ããšECMPã«ãŒãã£ã³ã°ã䜿çšããéä¿¡äºæ¥è
ã«ã¯åé¡ãããå¯èœæ§ããããŸãã ãããã®ãããã¯ãŒã¯ã®å¢çã«ãŒã¿ãŒã¯ãŸã QUICãã©ãã£ãã¯ã®åŠçæ¹æ³ãç¥ããªããããåãQUICæ¥ç¶ããã®UDPãã±ãããç°ãªãã¿ãã«ã§ç°ãªããµãŒããŒã«éä¿¡ãããããšããããŸããããã¯åæãæå³ããŸãã
ãããåé¿ããããã«ããªãã¬ãŒã¿ãŒã¯ããã¹ããŒããªã¬ãã«ãã©ã³ãµãŒãå®è£
ããå¿
èŠããããŸãã ããã¯ãå¢çã«ãŒã¿ãŒèªäœã«åœ±é¿ãäžããããšãªããããã°ã©ã ã§å®çŸã§ããŸãïŒããšãã°ãFacebookã®
Katranãããžã§ã¯ããåç
§ïŒã
Qpack
HTTP / 2ã®ãã1ã€ã®äŸ¿å©ãªæ©èœã¯ã
ããããŒå§çž®ïŒHPACKïŒã§ãã ãããã«ããããšã³ããã€ã³ãããã€ã¹ã¯ãäžèŠãªèŠæ±ãšå¿çãç Žæ£ããããšã«ãããéä¿¡ãããããŒã¿ã®ãµã€ãºãåæžã§ããŸãã
ç¹ã«ãä»ã®ææ³ã®äžã§ãç¹ã«ãHPACKã¯ã以åã®HTTPèŠæ±/å¿çããæ¢ã«éåä¿¡ãããããããŒãæã€åçããŒãã«ã䜿çšããŸããããã«ãããããã€ã¹ã¯ãæ°ããèŠæ±/å¿çã§ä»¥åã«ééããããããŒãåç
§ããããšãã§ããŸãïŒããããå床éä¿¡ããã®ã§ã¯ãªãïŒ ã
HPACKããŒãã«ã¯ããšã³ã³ãŒããŒïŒèŠæ±/å¿çãéä¿¡ããåŽïŒãšãã³ãŒããŒïŒåä¿¡åŽïŒã®éã§åæããå¿
èŠããããŸããããããªããšããã³ãŒããŒã¯åä¿¡ãããã®ãåã«ãã³ãŒãã§ããŸããã
TCPäžã®HTTP / 2ã®å Žåããã©ã³ã¹ããŒãå±€ïŒTCPïŒã¯éä¿¡ãããã®ãšåãé åºã§èŠæ±/å¿çãé
ä¿¡ããããããã®åæã¯ééçã§ãã ã€ãŸããåçŽãªèŠæ±/å¿çã§ããŒãã«ãæŽæ°ããããã®ãã³ãŒããŒåœä»€ãéä¿¡ã§ããŸãã ããããQUICã䜿çšãããšãäºæ
ã¯ã¯ããã«è€éã«ãªããŸãã
QUICã¯è€æ°ã®HTTPãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ãç°ãªãæ¹åã«åæã«é
ä¿¡ã§ããŸããã€ãŸããQUICã¯1æ¹åã®é
ä¿¡é åºãä¿èšŒããŸãããè€æ°ã®æ¹åã®å Žåã¯ãã®ãããªä¿èšŒã¯ãããŸããã
ããšãã°ãã¯ã©ã€ã¢ã³ããQUICã¹ããªãŒã Aã§HTTPãªã¯ãšã¹ãAãéä¿¡ããã¹ããªãŒã Bã§ãªã¯ãšã¹ãBãéä¿¡ããå Žåããã±ããã®äžŠã¹æ¿ããŸãã¯ãããã¯ãŒã¯æå€±ã®ããããµãŒããŒã¯ãªã¯ãšã¹ãAã®åã«ãªã¯ãšã¹ãBãåä¿¡ããŸãããªã¯ãšã¹ãAã®ããããŒã«ç€ºãããŠããå ŽåããµãŒããŒã¯ãªã¯ãšã¹ãBããŸã ãã³ãŒãã§ããªãããããªã¯ãšã¹ãAããŸã èŠãŠããŸããã
gQUICãããã³ã«ã¯ãåäžã®gQUICã¹ããªãŒã å
ã§HTTPãªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ã®ãã¹ãŠã®ããããŒïŒããã£ã§ã¯ãªãïŒã
é£ç¶ãããããšã§ãã®åé¡ã解決ããŸããã ããã«ãããäœãèµ·ãã£ãŠãããã¹ãŠã®ããããŒãæ£ããé åºã§äžŠã¹ãããŸãã ããã¯éåžžã«åçŽãªã¹ããŒã ã§ãããæ¢åã®ãœãªã¥ãŒã·ã§ã³ã䜿çšãããšãHTTP / 2ã®ã³ãŒããåŒãç¶ã䜿çšã§ããŸãã äžæ¹ãããã«ããããã¥ãŒã®å
é ããããã¯ãããå¯èœæ§ãé«ããªããŸããQUICã¯ãããåæžããããã«èšèšãããŠããŸãã ãã®ãããIETF QUICã¯ãŒãã³ã°ã°ã«ãŒãã¯ãHTTPãšQUICã®éã®æ°ãããããã³ã°ïŒHTTP / QUICïŒãšãæ°ããããããŒå§çž®åçã§ããQPACKãéçºããŸããã
HTTP / QUICããã³QPACK仿§ã®æçµãã©ããã§ã¯ãåHTTPèŠæ±/å¿ç亀æã¯ç¬èªã®åæ¹åQUICãããŒã䜿çšããããããã¥ãŒã®éå§ã®ãããã¯ã¯çºçããŸããã ãŸããQPACKããµããŒãããããã«ãååå è
ã¯2ã€ã®è¿œå ã®åæ¹åQUICã¹ããªãŒã ãäœæããŸãã1ã€ã¯ããŒãã«ã®æŽæ°ãéä¿¡ãããã1ã€ã¯åä¿¡ã確èªããŸãã ãããã£ãŠãQPACKãšã³ã³ãŒããŒã¯ããã³ãŒããŒãåä¿¡ã確èªããåŸã«ã®ã¿åçããŒãã«ãžã®ãªã³ã¯ã䜿çšã§ããŸãã
屿åå°
UDPããŒã¹ã®ãããã³ã«ã®äžè¬çãªåé¡ã¯ãæ»æè
ããµãŒããŒã«å€§éã®ããŒã¿ã被害è
ã«éä¿¡ããããã«åŒ·å¶ããå Žåã®ããªãã¬ã¯ã·ã§ã³æ»æã«å¯Ÿããè匱æ§ã§ãã æ»æè
ã¯èªåã®IPãåœè£
ããŠããµãŒããŒãããŒã¿èŠæ±ã被害è
ã®ã¢ãã¬ã¹ããæ¥ããšå€æããããã«ããŸãã
ãã®çš®ã®æ»æã¯ããµãŒããŒã®å¿çãèŠæ±ãããããªã倧ããå Žåã«éåžžã«å¹æçã§ãã ãã®å Žåã圌ãã¯ãå©åŸãã«ã€ããŠè©±ããŸãã
TCPã¯éåžžããã®ãããªæ»æã«ã¯äœ¿çšãããŸãããå
ã®ãã³ãã·ã§ã€ã¯ïŒSYNãSYN + ACKãªã©ïŒã®ãã±ããã¯åãé·ãã§ããããããå¢å¹
ãã®å¯èœæ§ããªãããã§ãã
äžæ¹ãQUICãã³ãã·ã§ã€ã¯ã¯éåžžã«é察称ã§ãïŒTLSã®å Žåãæåã«QUICãµãŒããŒã¯èšŒææžãã§ãŒã³ãéä¿¡ããŸãããã¯ã©ã€ã¢ã³ãã¯æ°ãã€ãã®ã¿ãéä¿¡ããå¿
èŠãããã«ãããããããClientHello TLSã¯ã©ã€ã¢ã³ãããã®ã¡ãã»ãŒãžã¯QUICããã±ãŒãžã«çµã¿èŸŒãŸããŸãïŒ ãã®ãããããã±ãŒãžã®å
容ãã¯ããã«å°ããå Žåã§ããå
ã®QUICããã±ãŒãžãç¹å®ã®æå°é·ã«å¢ããå¿
èŠããããŸãã éåžžããµãŒããŒã®å¿çã«ã¯è€æ°ã®ãã±ãããå«ãŸããŠããããããã®æ¹æ³ã¯ããŸã广çã§ã¯ãããŸããããããã£ãŠãã¯ã©ã€ã¢ã³ãããã±ãŒãžã®å¢å 以äžã®å¯èœæ§ããããŸãã
QUICãããã³ã«ã¯ãæç€ºçãªãœãŒã¹æ€èšŒã¡ã«ããºã ãå®çŸ©ããŸãããµãŒããŒã¯ã倧ããªå¿çãæäŸãã代ããã«ãäžæã®ããŒã¯ã³ãæã€å詊è¡ãã±ããã®ã¿ãéä¿¡ããã¯ã©ã€ã¢ã³ãã¯ãããæ°ãããã±ããã§ãµãŒããŒã«éä¿¡ããŸãã ãããã£ãŠããµãŒããŒã«ã¯ãã¯ã©ã€ã¢ã³ãã«ä»£æ¿IPã¢ãã¬ã¹ããªããšããèªä¿¡ãããããã³ãã·ã§ã€ã¯ãçµäºã§ããŸãã æ±ºå®ã®ãã€ãã¹-ãã³ãã·ã§ã€ã¯ã®æéãå¢å ããŸãã1ãã¹ã§ã¯ãªãã2ãã¹ãæ¢ã«å¿
èŠã§ãã
å¥ã®è§£æ±ºçã¯ããµãŒããŒã®å¿çãããªãã¬ã¯ã·ã§ã³æ»æã®å¹æãäœäžãããµã€ãºã«æžããããšã§ããããšãã°ã
ECDSAèšŒææžã䜿çšã
ãŸã ïŒéåžžã¯RSAãããã¯ããã«å°ããïŒã ãŸããzlibãbrotliãªã©ã®æ¢è£œã®å§çž®ã¢ã«ãŽãªãºã ã䜿çšãã
TLSèšŒææžå§çž®ã¡ã«ããºã ã詊ããŸããã ããã¯gQUICã§æåã«ç»å Žããæ©èœã§ãããçŸåšTLSã§ã¯ãµããŒããããŠããŸããã
UDPããã©ãŒãã³ã¹
QUICã®äžå€ã®åé¡ã®1ã€ã¯ãQUICã§åäœã§ããªãæ¢åã®ããŒããŠã§ã¢ãšãœãããŠã§ã¢ã§ãã QUICãã«ãŒã¿ãŒã®ãããªãããã¯ãŒã¯ããã«ããã¯ã¹ãã©ã®ããã«æ±ãããæ¢ã«æ€èšããŸããããå¥ã®æœåšçã«åé¡ã®ããé åã¯ãUDPãä»ããQUICããã€ã¹éã§ã®ããŒã¿ã®éåä¿¡ã®ããã©ãŒãã³ã¹ã§ãã é·å¹Žã«ãããããœãããŠã§ã¢ïŒãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãªã©ïŒããã³ããŒããŠã§ã¢ïŒãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ïŒã«çµã¿èŸŒãŸãããªãããŒãæ©èœãªã©ãTCPå®è£
ãå¯èœãªéãæé©åããåªåããªãããŠããŸããããããã¯UDPã«é¢ä¿ããŸããã
ãã ããQUICå®è£
ããããã®æ¹åãšå©ç¹ãäžåãã®ã¯æéã®åé¡ã§ãã
Linuxã§
UDPãªãããŒããå®è£
ããæè¿ã®åãçµã¿ãèŠãŠãã ãããããã«ãããã¢ããªã±ãŒã·ã§ã³ã¯ããŠãŒã¶ãŒç©ºéãšã«ãŒãã«ç©ºéã®ãããã¯ãŒã¯ã¹ã¿ãã¯éã§è€æ°ã®UDPã»ã°ã¡ã³ããçŽ1ã»ã°ã¡ã³ãã®ã³ã¹ãã§çµåããã³éä¿¡ã§ããŸãã ãã1ã€ã®äŸã¯
ãLinuxäžã®ãœã±ããã®ãŒãã³ããŒãµããŒã
ã§ããããã«ãããã¢ããªã±ãŒã·ã§ã³ã¯ããŠãŒã¶ãŒã¹ããŒã¹ã¡ã¢ãªãã«ãŒãã«ã¹ããŒã¹ã«ã³ããŒããã³ã¹ããåé¿ã§ããŸãã
ãããã«
HTTP / 2ãTLS 1.3ãšåæ§ã«ãQUICãããã³ã«ã«ã¯ãWebãµã€ããšã€ã³ã¿ãŒãããã€ã³ãã©ã¹ãã©ã¯ãã£ã®ä»ã®åå è
ã®äž¡æ¹ã®ããã©ãŒãã³ã¹ãšã»ãã¥ãªãã£ãåäžããã倿°ã®æ°æ©èœãå¿
èŠã§ãã IETFã¯ãŒãã³ã°ã°ã«ãŒãã¯ãä»å¹Žã®çµãããŸã§ã«QUIC仿§ã®æåã®ããŒãžã§ã³ãå±éããäºå®ã§ãããã®ãããQUICã®å©ç¹ãæå€§éã«æŽ»çšããæ¹æ³ã«ã€ããŠèããŸãã