QUIC ãããã³ã«ã¯èŠãã®ãéåžžã«èå³æ·±ãã®ã§ãç§ãã¡ã¯ããã«ã€ããŠæžãã®ã倧奜ãã§ãã ããããQUIC ã«é¢ãããããŸã§ã®åºçç©ãæŽå² (ã奜ã¿ã§ããã°ãå°åã®æŽå²) ã®æ§è³ªãšããŒããŠã§ã¢ã«é¢ãããã®ã§ãã£ããšããããä»æ¥ã¯åãã§å¥ã®çš®é¡ã®ç¿»èš³ãåºçããŸãã2019 幎ã®ãããã³ã«ã®å®éã®å¿çšã«ã€ããŠã話ããŸãã ããã«ãç§ãã¡ã¯ããããã¬ã¬ãŒãžãæ ç¹ãšããå°èŠæš¡ãªã€ã³ãã©ã¹ãã©ã¯ãã£ãŒã«ã€ããŠè©±ããŠããã®ã§ã¯ãªããã»ãŒäžçäžã§äºæ¥ãå±éããŠãã Uber ã«ã€ããŠè©±ããŠããŸãã å瀟ã®ãšã³ãžãã¢ãã©ã®ããã«ã㊠QUIC ãæ¬çªç°å¢ã§äœ¿çšãã決å®ã«è³ã£ãã®ãããã¹ããã©ã®ããã«å®è¡ããã®ãããããŠæ¬çªç°å¢ã§ QUIC ãå±éããåŸã«èŠããã®ã以äžã«ç€ºããŸãã
åçã¯ã¯ãªãã¯å¯èœã§ãã èªæžã楜ããïŒ
Uber ã¯äžççãªèŠæš¡ãã€ãŸã 600 éœåžã§å±éããŠãããåéœåžã§ã¢ããªã±ãŒã·ã§ã³ã¯ 4500 以äžã®æºåž¯é»è©±äŒç€Ÿã®ç¡ç·ã€ã³ã¿ãŒãããã«å®å
šã«äŸåããŠããŸãã ãŠãŒã¶ãŒã¯ãã¢ããªãéãã ãã§ãªããªã¢ã«ã¿ã€ã ã§ããããšãæåŸ
ããŠããŸãããããå®çŸããã«ã¯ãUber ã¢ããªã«ã¯äœé
延ãšéåžžã«ä¿¡é Œæ§ã®é«ãæ¥ç¶ãå¿
èŠã§ãã ãããã§ãã¹ã¿ãã¯ã¯
ãã®åé¡ã解決ããããã«ãç§ãã¡ã¯ç³è«ããŸãã
åºç¯ãªãã¹ãã®çµæãã¢ããªã±ãŒã·ã§ã³ã« QUIC ãå®è£ ãããšãTCP ãšæ¯èŒããŠããŒã« ã¬ã€ãã³ã·ãäœäžãããšããçµè«ã«éããŸããã é転æããã³å©æåžã¢ããªã±ãŒã·ã§ã³ã® HTTPS ãã©ãã£ãã¯ã 10 ïœ 30% ã®ç¯å²ã§æžå°ããããšã芳å¯ãããŸããã QUIC ã«ããããŠãŒã¶ãŒ ããã±ãŒãžããšã³ãããŒãšã³ãã§å¶åŸ¡ã§ããããã«ãªããŸããã
ãã®èšäºã§ã¯ãQUIC ããµããŒãããã¹ã¿ãã¯ã䜿çšã㊠Uber ã¢ããªã±ãŒã·ã§ã³ã® TCP ãæé©åããçµéšãå ±æããŸãã
ææ°ãã¯ãããžãŒïŒTCP
çŸåšãTCP ã¯ãã€ã³ã¿ãŒãããäžã§ HTTPS ãã©ãã£ãã¯ãé ä¿¡ããããã«æããã䜿çšãããŠãããã©ã³ã¹ããŒã ãããã³ã«ã§ãã TCP ã¯ä¿¡é Œæ§ã®é«ããã€ã ã¹ããªãŒã ãæäŸããããããããã¯ãŒã¯ã®èŒ»èŒ³ããªã³ã¯å±€ã®æ倱ã«å¯ŸåŠã§ããŸãã HTTPS ãã©ãã£ãã¯ã« TCP ãåºã䜿çšãããŠããã®ã¯ãåè ã®éåšæ§ (ã»ãŒãã¹ãŠã® OS ã« TCP ãå«ãŸããŠãã)ãã»ãšãã©ã®ã€ã³ãã©ã¹ãã©ã¯ã㣠(ããŒã ãã©ã³ãµãŒãHTTPS ãããã·ãCDN ãªã©) ã§ã®å¯çšæ§ãããã³ããã«äœ¿çšã§ããæ©èœã«ãããã®ã§ããã»ãŒã»ãšãã©ã®ãã©ãããã©ãŒã ãšãããã¯ãŒã¯äžã§åäœããŸãã
ã»ãšãã©ã®ãŠãŒã¶ãŒã¯å€åºå ã§åœç€Ÿã®ã¢ããªã䜿çšããŠãããTCP ããŒã«ã®é 延ã¯ãªã¢ã«ã¿ã€ã ã® HTTPS ãã©ãã£ãã¯ã®èŠæ±ã«ã¯é ãåã°ãŸããã§ããã ç°¡åã«èšããšãäžçäžã®ãŠãŒã¶ãŒããããçµéšããŠããŸããå³ 1 ã¯äž»èŠéœåžã§ã®é 延ã瀺ããŠããŸãã
å³ 1: ããŒã« ã¬ã€ãã³ã·ã¯ãUber ã®äž»èŠéœåžã«ãã£ãŠç°ãªããŸãã
ã€ã³ããšãã©ãžã«ã®ãããã¯ãŒã¯ã®é 延ã¯ç±³åœãè±åœãããé«ãã£ããã®ã®ãããŒã«é 延ã¯å¹³åé 延ãããå€§å¹ ã«é«ãã£ãã ãããŠããã¯ç±³åœãè±åœã«ãåœãŠã¯ãŸããŸãã
TCP over the air ããã©ãŒãã³ã¹
TCP ã¯æ¬¡ã®ããã«äœæãããŸããã æç· ã€ãŸããäºæž¬å¯èœæ§ã®é«ããªã³ã¯ã«éç¹ã眮ãããããã¯ãŒã¯ã§ãã ãããã ç¡ç· ãããã¯ãŒã¯ã«ã¯ããããç¬èªã®ç¹åŸŽãšå°é£ããããŸãã ãŸããã¯ã€ã€ã¬ã¹ ãããã¯ãŒã¯ã¯å¹²æžãä¿¡å·ã®æžè¡°ã«ããæ倱ãåãããããªããŸãã ããšãã°ãWi-Fi ãããã¯ãŒã¯ã¯ãã€ã¯ãæ³¢ãBluetoothããã®ä»ã®é»æ³¢ã®åœ±é¿ãåãããããªã£ãŠããŸãã æºåž¯é»è©±ãããã¯ãŒã¯ã§ã¯ä¿¡å·æ倱ãçºçããŸã (
垯åå¹
ã®å€åãæ倱ã«å¯ŸåŠããããã«ãã»ã«ã©ãŒ ãããã¯ãŒã¯ã¯éåžžããã©ãã£ã㯠ããŒã¹ãçšã«å€§ããªãããã¡ã䜿çšããŸãã ããã«ããéå°ãªãã¥ãŒãçºçããé
延ãé·ããªãå¯èœæ§ããããŸãã éåžžã«å€ãã®å ŽåãTCP ã¯ã¿ã€ã ã¢ãŠãã®å»¶é·ã«ãããã®ãã¥ãŒãç¡é§ãªãã®ãšããŠæ±ããããTCP ã¯äžç¶ãè¡ã£ãŠãããã¡ãåããåŸåããããŸãã ãã®åé¡ã¯æ¬¡ã®ããã«ç¥ãããŠããŸã
æåŸã«ãæºåž¯é»è©±ãããã¯ãŒã¯ã®ããã©ãŒãã³ã¹ã¯éä¿¡äºæ¥è ãå°åãæéã«ãã£ãŠç°ãªããŸãã å³ 2 ã§ã¯ã2 ããã¡ãŒãã«ã®ç¯å²å ã®ã»ã«ã«ããã HTTPS ãã©ãã£ãã¯ã®é 延ã®äžå€®å€ãåéããŸããã ã€ã³ãã®ããªãŒã«ãã 3 ã€ã®å€§ææºåž¯é»è©±äºæ¥è ããåéãããããŒã¿ã ã芧ã®ãšãããããã©ãŒãã³ã¹ã¯ã»ã«ããšã«ç°ãªããŸãã ãŸãããããªãã¬ãŒã¿ãŒã®çç£æ§ã¯ããã XNUMX 人ã®ãªãã¬ãŒã¿ãŒã®çç£æ§ãšã¯ç°ãªããŸãã ããã¯ãæéãšå ŽæããŠãŒã¶ãŒã®ã¢ããªãã£ãèæ ®ãããããã¯ãŒã¯ ãšã³ã㪠ãã¿ãŒã³ãã¿ã¯ãŒã®å¯åºŠããããã¯ãŒã¯ ã¿ã€ã (LTEãXNUMXG ãªã©) ã®æ¯çãèæ ®ãããããã¯ãŒã¯ ã€ã³ãã©ã¹ãã©ã¯ãã£ãªã©ã®èŠå ã«ãã£ãŠåœ±é¿ãããŸãã
å³ 2. äŸãšããŠååŸ 2 km ã䜿çšããé
延ã ããªãŒãã€ã³ãã
ãŸããæºåž¯é»è©±ãããã¯ãŒã¯ã®ããã©ãŒãã³ã¹ã¯æéã®çµéãšãšãã«å€åããŸãã å³ 3 ã¯ãææ¥ããšã®åŸ ã¡æéã®äžå€®å€ã瀺ããŠããŸãã ãŸããXNUMX æ¥ããã³ XNUMX æé以å ã®ãããå°èŠæš¡ãªéãã芳å¯ããŸããã
å³ 3. ããŒã«é
延ã¯ãåããªãã¬ãŒã¿ãŒã§ãæ¥ã«ãã£ãŠå€§ããç°ãªãå ŽåããããŸãã
äžèšã®ãã¹ãŠã«ãããã¯ã€ã€ã¬ã¹ ãããã¯ãŒã¯ã§ã® TCP ããã©ãŒãã³ã¹ãäœäžããŸãã ãã ããTCP ã®ä»£æ¿æ段ãæ¢ãåã«ã次ã®ç¹ã«ã€ããŠæ£ç¢ºã«ç解ããå¿ èŠããããŸããã
- ã¢ããªã±ãŒã·ã§ã³ã®ããŒã« ã¬ã€ãã³ã·ãŒã®äž»ãªåå 㯠TCP ã§ãã?
- ææ°ã®ãããã¯ãŒã¯ã«ã¯ãå€§å¹ ãã€å€æ§ãªã©ãŠã³ãããªããé 延 (RTT) ããããŸãã?
- RTT ãšæ倱ã TCP ããã©ãŒãã³ã¹ã«äžãã圱é¿ã¯äœã§ãã?
TCP ããã©ãŒãã³ã¹åæ
TCP ããã©ãŒãã³ã¹ãã©ã®ããã«åæããããç解ããããã«ãTCP ãéä¿¡è
ããåä¿¡è
ã«ããŒã¿ãã©ã®ããã«è»¢éããããç°¡åã«èŠãŠã¿ãŸãããã ãŸããéä¿¡è
㯠TCP æ¥ç¶ã確ç«ããXNUMX æ¹åã®éä¿¡ãå®è¡ããŸãã
ãã±ãããŸã㯠ACK ã倱ãããå Žåãéä¿¡è
ã¯ã¿ã€ã ã¢ãŠã (RTOã
å³ 4. TCP/TLS ãä»ãããã±ãã亀æã«ã¯åéä¿¡ã¡ã«ããºã ãå«ãŸããŠããŸãã
ã¢ããªã±ãŒã·ã§ã³ã§ TCP ãã©ã®ããã«å®è¡ãããããå€æããããã«ã次ã䜿çšã㊠TCP ãã±ãããç£èŠããŸããã
äž¡æ¹ã®å®éšã®çµæã¯äºãã«äžèŽããŠããŸããã RTT ã¬ã€ãã³ã·ãé«ãã£ãããšãããããŸããã ããŒã«å€ã¯äžå€®å€ã®ã»ãŒ 6 åã§ããã é
延ã®ç®è¡å¹³å㯠1 ç§ãè¶
ããŸãã å€ãã®æ¥ç¶ã«æ倱ãçºçããTCP ãå
šãã±ããã® 3,5% ãåéä¿¡ããŸããã 空枯ãé§
ãªã©ã®æ··éãããšãªã¢ã§ã¯ã7% ã®æ倱ãçºçããŸããã ãããã®çµæã¯ãæºåž¯é»è©±ãããã¯ãŒã¯ã§äœ¿çšãããŠãããšããåŸæ¥ã®é念ã«çåãæããããŸãã
ãããã¯ãŒã¯ã¡ããªã¯ã¹
å€
RTTãããªç§ [50%ã75%ã95%ã99%]
[350ã425ã725ã2300]
RTT çºæ£ãç§
å¹³åçŽ 1,2 ç§
äžå®å®ãªæ¥ç¶ã§ã®ãã±ããæ倱
å¹³å ~3.5% (éè² è·é åã§ã¯ 7%)
ãããã®æ¥ç¶ã®ã»ãŒåæ°ã§å°ãªããšã 1 ã€ã®ãã±ããæ倱ãããããã®ã»ãšãã©ã SYN ããã³ SYN-ACK ãã±ããã§ããã ã»ãšãã©ã® TCP å®è£ ã§ã¯ãSYN ãã±ããã«å¯Ÿã㊠XNUMX ç§ã® RTO å€ã䜿çšãããŸãããããã¯åŸç¶ã®æ倱ã«å¯ŸããŠææ°é¢æ°çã«å¢å ããŸãã TCP ã§ã¯æ¥ç¶ã®ç¢ºç«ã«æéãããããããã¢ããªã±ãŒã·ã§ã³ã®èªã¿èŸŒã¿æéãé·ããªãå¯èœæ§ããããŸãã
ããŒã¿ ãã±ããã®å ŽåãRTO å€ãé«ããšãã¯ã€ã€ã¬ã¹ ãããã¯ãŒã¯ã«äžæçãªæ倱ãååšããå Žåããããã¯ãŒã¯ã®æå¹å©çšãå€§å¹ ã«æžå°ããŸãã å¹³ååéä¿¡æéã¯çŽ 1 ç§ã§ãããŒã«é 延ã¯ã»ãŒ 30 ç§ã§ããããšãããããŸããã TCP ã¬ãã«ã§ã®ãã®ãããªé·ãé 延ã«ãããHTTPS ã¿ã€ã ã¢ãŠããšåèŠæ±ãçºçãããããã¯ãŒã¯ã®é 延ãšéå¹çãããã«å¢å ãââãŸããã
枬å®ããã RTT ã® 75 ããŒã»ã³ã¿ã€ã«ã¯çŽ 425 ããªç§ã§ããããTCP ã® 75 ããŒã»ã³ã¿ã€ã«ã¯ã»ãŒ 3 ç§ã§ããã ããã¯ãæ倱ã«ãããTCP ãããŒã¿ãæ£åžžã«éä¿¡ããããã« 7 ïœ 10 åã®ãã¹ãå¿
èŠã«ãªã£ãããšã瀺åããŠããŸãã ããã¯ãéå¹çç㪠RTO èšç®ãTCP ãæ倱ã«è¿
éã«å¯Ÿå¿ã§ããªãããšã®çµæã§ããå¯èœæ§ããããŸãã
TCP ãã±ããæ倱統èš
å€
å°ãªããšã 1 ã€ã®ãã±ããæ倱ãçºçããæ¥ç¶ã®å²å
èŠèŽè
ã®ïŒïŒ%ã
æ¥ç¶ã»ããã¢ããäžã«æ倱ãçºçããæ¥ç¶ã®å²å
èŠèŽè
ã®ïŒïŒ%ã
ããŒã¿äº€æäžã«æ倱ãçºçããæ¥ç¶ã®å²å
èŠèŽè
ã®ïŒïŒ%ã
åéä¿¡é 延ã®ååžãç§ [50%ã75%ã95%ã99%] [1ã2.8ã15ã28]
XNUMXãã±ãããŸãã¯TCPã»ã°ã¡ã³ãã®åéåæ°ã®ååž
ã1,3,6,7]
QUICã®å¿çš
ããšããš Google ã«ãã£ãŠéçºããã QUIC ã¯ãUDP äžã§å®è¡ããããã«ãã¹ã¬ããã®ææ°ã®ãã©ã³ã¹ããŒã ãããã³ã«ã§ãã çŸåšQUICã¯
å³ 5: QUIC ã¯ã以å HTTP/3 ã§å®è¡ãããŠãã TLS ã«ä»£ãã£ãŠãHTTP/2 ã§å®è¡ãããŸãã
TCP å¢å¹ ã« QUIC ã䜿çšããããšã確信ããçç±ã¯æ¬¡ã®ãšããã§ãã
- 0-RTT æ¥ç¶ã®ç¢ºç«ã QUIC ã䜿çšãããšã以åã®æ¥ç¶ããã®æ¿èªãåå©çšã§ãããããã»ãã¥ãªã㣠ãã³ãã·ã§ã€ã¯ã®æ°ãåæžãããŸãã å°æ¥ã¯
TLS1.3 㯠0-RTT ããµããŒãããŸãããåŒãç¶ã XNUMX ãŠã§ã€ TCP ãã³ãã·ã§ã€ã¯ãå¿ èŠã§ãã - HoL ããããã³ã°ãå æããŸãã HTTP/2 ã¯ããã©ãŒãã³ã¹ãåäžãããããã«ã¯ã©ã€ã¢ã³ãããšã« XNUMX ã€ã® TCP æ¥ç¶ã䜿çšããŸãããããã«ãã HoL (ããããªãã©ã€ã³) ããããã³ã°ãçºçããå¯èœæ§ããããŸãã QUIC ã¯å€éåãç°¡çŽ åãããªã¯ãšã¹ããã¢ããªã±ãŒã·ã§ã³ã«ç¬ç«ããŠé ä¿¡ããŸãã
- 茻茳å¶åŸ¡ã QUIC ã¯ã¢ããªã±ãŒã·ã§ã³å±€ã«ååšãããããã¯ãŒã¯ ãã©ã¡ãŒã¿ (æ倱æ°ãŸã㯠RTT) ã«åºã¥ããŠéä¿¡ãå¶åŸ¡ããã¡ã€ã³ã®ãã©ã³ã¹ããŒã ã¢ã«ãŽãªãºã ãç°¡åã«æŽæ°ã§ããŸãã ã»ãšãã©ã® TCP å®è£
ã§ã¯ã次ã®ã¢ã«ãŽãªãºã ã䜿çšãããŸãã
ãã¥ãŒãã㯠ããã¯ãé 延ã®åœ±é¿ãåãããããã©ãã£ãã¯ã«ã¯æé©ã§ã¯ãããŸããã æè¿éçºããã次ã®ãããªã¢ã«ãŽãªãºãBBR ããããã¯ãŒã¯ãããæ£ç¢ºã«ã¢ãã«åããé 延ãæé©åããŸãã QUIC ã䜿çšãããšãBBR ã䜿çšãã䜿çšã«å¿ããŠãã®ã¢ã«ãŽãªãºã ãæŽæ°ã§ããŸããæ¹å . - æ倱ã®è£å
ã QUIC 㯠XNUMX ã€ã® TLP ãåŒã³åºããŸã (
ããŒã«ãã¹ãããŒã ) RTO ãããªã¬ãŒãããå - æ倱ãéåžžã«é¡èãªå Žåã§ãã ãã㯠TCP å®è£ ãšã¯ç°ãªããŸãã TLP ã¯äž»ã«æåŸã®ãã±ãã (ãŸãã¯ãååšããå Žåã¯æ°ãããã±ãã) ãåéä¿¡ããŠãé«éè£å ãããªã¬ãŒããŸãã ããŒã«é 延ã®åŠçã¯ãUber ã®ãããã¯ãŒã¯éçšæ¹æ³ãã€ãŸããçæéãæ£çºçãé 延ã®åœ±é¿ãåããããããŒã¿è»¢éã®å Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã - æé©åãããACKã åãã±ããã«ã¯åºæã®ã·ãŒã±ã³ã¹çªå·ãããã®ã§åé¡ãããŸãã
åºå¥ ãã±ãããåéä¿¡ããããšãã ACK ãã±ããã«ã¯ããã±ãããåŠçããŠã¯ã©ã€ã¢ã³ãåŽã§ ACK ãçæããæéãå«ãŸããŠããŸãã ãããã®æ©èœã«ãããQUIC 㯠RTT ãããæ£ç¢ºã«èšç®ã§ããŸãã QUIC ã® ACK ã¯æ倧 256 ãã³ãããµããŒãããŸããã㯠ããã«ãããéä¿¡åŽã®ãã±ãã ã·ã£ããã«ã«å¯Ÿããèæ§ãåäžããããã»ã¹ã§äœ¿çšãããã€ãæ°ãæžããŸãã éžæçACK (è¢ TCP ã® ) ã§ã¯ããã¹ãŠã®å Žåã«ãã®åé¡ã解決ãããããã§ã¯ãããŸããã - æ¥ç¶ã®ç§»è¡ã QUIC æ¥ç¶ã¯ 64 ããã ID ã«ãã£ãŠèå¥ããããããã¯ã©ã€ã¢ã³ãã IP ã¢ãã¬ã¹ãå€æŽããå Žåã§ããå€ãæ¥ç¶ ID ã¯äžæããããšãªãæ°ãã IP ã¢ãã¬ã¹ã§åŒãç¶ã䜿çšã§ããŸãã ããã¯ããŠãŒã¶ãŒã Wi-Fi æ¥ç¶ãšã»ã«ã©ãŒæ¥ç¶ãåãæ¿ããã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ã§ã¯éåžžã«äžè¬çãªæ¹æ³ã§ãã
QUICã®ä»£æ¿æ段
QUIC ãéžæããåã«ãåé¡ã解決ããããã®ä»£æ¿ã¢ãããŒããæ€èšããŸããã
ç§ãã¡ãæåã«è©Šã¿ãã®ã¯ãTPC PoP (Points of Presence) ãå±éããŠããŠãŒã¶ãŒã®è¿ã㧠TCP æ¥ç¶ãçµäºããããšã§ããã åºæ¬çã«ãPoP ã¯ã»ã«ã©ãŒ ãããã¯ãŒã¯ã«è¿ãã¢ãã€ã« ããã€ã¹ãšã® TCP æ¥ç¶ãçµäºãããã©ãã£ãã¯ããããã·ããŠå ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã«æ»ããŸãã TCP ãããè¿ãã§çµäºããããšã§ãRTT ãåæžã§ããå¯èœæ§ããããåçãªã¯ã€ã€ã¬ã¹ç°å¢ã«å¯Ÿãã TCP ã®å¿çæ§ãåäžããŸãã ãã ããç§ãã¡ã®å®éšã§ã¯ãRTT ãšæ倱ã®ã»ãšãã©ã¯ã»ã«ã©ãŒ ãããã¯ãŒã¯ããçºçããŠãããPoP ã®äœ¿çšã§ã¯å€§å¹ ãªããã©ãŒãã³ã¹ã®åäžãåŸãããªãããšãããããŸããã
TCP ãã©ã¡ãŒã¿ã®èª¿æŽã«ã€ããŠãæ€èšããŸããã TCP 㯠OS ããŒãžã§ã³ããšã«å®è£ ãç°ãªããããç°çš®ãšããž ãµãŒããŒã« TCP ã¹ã¿ãã¯ãã»ããã¢ããããã®ã¯å°é£ã§ããã ãããå®è£ ããŠããŸããŸãªãããã¯ãŒã¯æ§æããã¹ãããã®ã¯å°é£ã§ããã æš©éããªããããã¢ãã€ã« ããã€ã¹ã§ TCP ãçŽæ¥æ§æã§ããŸããã§ããã ããã«éèŠãªã®ã¯ã0-RTT æ¥ç¶ãæ¹åããã RTT äºæž¬ãªã©ã®æ©èœã¯ãããã³ã«ã®ã¢ãŒããã¯ãã£ã«ãšã£ãŠéèŠã§ãããããTCP ã ãã調æŽããã ãã§ã¯å€§ããªå©ç¹ãéæããããšã¯äžå¯èœã§ãã
æåŸã«ããã㪠ã¹ããªãŒãã³ã°ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãè¡ãããã€ãã® UDP ããŒã¹ã®ãããã³ã«ãè©äŸ¡ããŸããããããã®ãããã³ã«ãä»åã®ã±ãŒã¹ã§åœ¹ç«ã€ãã©ããã確èªãããã£ãã®ã§ãã æ®å¿µãªãããå€ãã®ã»ãã¥ãªãã£èšå®ãå€§å¹ ã«æ¬ åŠããŠãããã¡ã¿ããŒã¿ãšå¶åŸ¡æ å ±ã®ããã«è¿œå ã® TCP æ¥ç¶ãå¿ èŠã§ããã
ç§ãã¡ã®èª¿æ»ã«ãããšãã»ãã¥ãªãã£ãšããã©ãŒãã³ã¹ã®äž¡æ¹ãèæ ®ããªãããã€ã³ã¿ãŒããã ãã©ãã£ãã¯ã®åé¡ã解決ã§ããå¯äžã®ãããã³ã«ã¯ QUIC ã§ããå¯èœæ§ããããŸãã
QUICã®ãã©ãããã©ãŒã ãžã®çµ±å
QUIC ãããŸãåã蟌ã¿ãæ¥ç¶ç¶æ
ãæªãç°å¢ã§ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããããã«ãå€ãã¹ã¿ã㯠(TLS/TCP äžã® HTTP/2) ã QUIC ãããã³ã«ã«çœ®ãæããŸããã ãããã¯ãŒã¯ã©ã€ãã©ãªãå©çšããŸãã
ãŸããQUIC ã®ãµããŒããè¿œå ããããã« Cronet ã Android ã¢ããªã«çµ±åããŸããã çµ±åã¯ã移è¡ã³ã¹ããå¯èœãªéãåæžããæ¹æ³ã§å®è¡ãããŸããã ã©ã€ãã©ãªã䜿çšããŠããå€ããããã¯ãŒã¯ ã¹ã¿ãã¯ãå®å
šã«çœ®ãæããã®ã§ã¯ãªãã
Android ããã€ã¹ã®ã¢ãããŒããšåæ§ã«ãiOS äžã® Uber ã¢ããªã« Cronet ãå®è£
ãããããã¯ãŒã¯ããã® HTTP ãã©ãã£ãã¯ãååããŸããã
Google Cloud Balancer 㧠QUIC ãå®äºãã
ããã¯ãšã³ãåŽã§ã¯ãQUIC å®äºã¯ Google Cloud è² è·åæ£ã€ã³ãã©ã¹ãã©ã¯ãã£ã«ãã£ãŠæäŸãããŸãã
ããã©ãŒãã³ã¹: çµæ
ããè¯ããããã³ã«ãæ¢ãäž»ãªçç±ã¯ãåºåããã©ãŒãã³ã¹ã§ãã ãŸãã¯ã¹ã¿ã³ããäœããŸãã
å®éš1
å®éšçšã®èšåïŒ
- OkHttp ã¹ã¿ãã¯ãš Cronet ã¹ã¿ãã¯ã䜿çšã㊠Android ããã€ã¹ããã¹ããããããã TCP ããã³ QUIC çµç±ã® HTTPS ãã©ãã£ãã¯ãèš±å¯ãããŠããããšã確èªããŸãã
- Java ããŒã¹ã®ãšãã¥ã¬ãŒã·ã§ã³ ãµãŒããŒã¯ãå¿çã§åãã¿ã€ãã® HTTPS ããããŒãéä¿¡ããã¯ã©ã€ã¢ã³ã ããã€ã¹ãããŒãããŠã¯ã©ã€ã¢ã³ãããã®ãªã¯ãšã¹ããåä¿¡ããŸãã
- TCP ããã³ QUIC æ¥ç¶ãçµäºããããã«ã€ã³ãã®è¿ãã«ç©ççã«é
眮ãããã¯ã©ãŠã ãããã·ã TCP çµç«¯ã«ã¯ãªããŒã¹ ãããã·ã䜿çšããŸãããã
nginxã® ãQUIC çšã®ãªãŒãã³ãœãŒã¹ ãªããŒã¹ ãããã·ãèŠã€ããã®ã¯å°é£ã§ããã ç§ãã¡ã¯ãChromium ã®åºæ¬ç㪠QUIC ã¹ã¿ãã¯ã䜿çšããŠãQUIC çšã®ãªããŒã¹ ãããã·ãèªåãã¡ã§æ§ç¯ããŸãããå ¬é ããããªãŒãã³ãœãŒã¹ãšã㊠Chrome ã«çµã¿èŸŒã¿ãŸãã
å³ 6. TCP ãš QUIC ã®ããŒã ãã¹ã ã¹ã€ãŒãã¯ãOkHttp ãš Cronet ãåãã Android ããã€ã¹ãæ¥ç¶ãçµäºããã¯ã©ãŠã ãããã·ãããã³ãšãã¥ã¬ãŒã·ã§ã³ ãµãŒããŒã§æ§æãããŠããŸããã
å®éš2
Google ã QUIC ãå©çšã§ããããã«ãããšã
å³ 7. XNUMX çªç®ã®å®éšã§ã¯ãGoogle Cloud ã䜿çšããå Žåãšã¯ã©ãŠã ãããã·ã䜿çšããå Žåã§ãTCP ãš QUIC ã®å®äºã¬ã€ãã³ã·ãæ¯èŒããããšèããŸããã
ãã®çµæãããã€ãã®äºå®ãç§ãã¡ãåŸ ã£ãŠããŸããã
- PoP çµç±ã®çµç«¯ã«ãããTCP ããã©ãŒãã³ã¹ãåäžããŸããã ãã©ã³ãµãŒã¯ãŠãŒã¶ãŒã®è¿ã㧠TCP æ¥ç¶ãçµäºããé«åºŠã«æé©åãããŠãããããRTT ãäœäžããTCP ããã©ãŒãã³ã¹ãåäžããŸãã ãŸããQUIC ã¯ããã»ã©åœ±é¿ãåããŸããã§ããããããŒã« ã¬ã€ãã³ã·ãŒã®ççž® (10 ïœ 30%) ãšããç¹ã§ã¯ TCP ãããåªããããã©ãŒãã³ã¹ã瀺ããŸããã
- å°Ÿã圱é¿ãåãã
ãããã¯ãŒã¯ããã . åœç€Ÿã® QUIC ãããã·ã¯ãGoogle ã®ããŒã ãã©ã³ãµãããããã€ã¹ããé¢ããŠããŸããã (ã¬ã€ãã³ã·ãçŽ 50 ããªç§é«ãã£ã)ãåæ§ã®ããã©ãŒãã³ã¹ãå®çŸããŸããã15 ããŒã»ã³ã¿ã€ã«ã§ã® TCP ã® 20% åæžã«å¯ŸããŠãTCP ã§ã¯ 99% ã®ã¬ã€ãã³ã·åæžã§ããã ããã¯ãã©ã¹ã ãã€ã«ã®ç§»è¡ããããã¯ãŒã¯ã®ããã«ããã¯ã§ããããšã瀺åããŠããŸãã
å³ 8: XNUMX ã€ã®å®éšã®çµæã¯ãQUIC ã TCP ããã倧å¹
ã«åªããŠããããšã瀺ããŠããŸãã
æŠé亀é
å®éšããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŠãAndroid ããã³ iOS ã¢ããªã±ãŒã·ã§ã³ã« QUIC ãµããŒããå®è£ ããŸããã Uber ãäºæ¥ãå±éããŠããéœåžã§ QUIC ã®åœ±é¿ãå€æããããã« A/B ãã¹ããå®æœããŸããã äžè¬ã«ãäž¡æ¹ã®å°åãéä¿¡äºæ¥è ããããã¯ãŒã¯ã®çš®é¡ã«ããã£ãŠããŒã«é 延ãå€§å¹ ã«æžå°ããŠããããšãããããŸããã
以äžã®ã°ã©ãã¯ããã¯ãé åããã³ããŸããŸãªãããã¯ãŒã¯ ã¿ã€ã (LTEã95Gã99G) ããšã®ããŒã« (3 ããã³ 2 ããŒã»ã³ã¿ã€ã«) ã®æ¹åçã瀺ããŠããŸãã
å³ 9. å®æŠãã¹ãã§ã¯ãQUIC ã¯é
延ã®ç¹ã§ TCP ãäžåããŸããã
転éã®ã¿
ããããããã¯ã»ãã®å§ãŸãã«ãããŸãããQUIC ã®éçšç°å¢ãžã®ãªãªãŒã¹ã«ãããå®å®ãããããã¯ãŒã¯ãšäžå®å®ãªãããã¯ãŒã¯ã®äž¡æ¹ã§ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããçŽ æŽãããæ©äŒãæäŸãããŸããã
é©çšç¯å²ã®æ¡å€§
å®éã®ãã©ãã£ãã¯ã§ã®ãããã³ã«ã®ããã©ãŒãã³ã¹ãåæãããšãããã»ãã·ã§ã³ã®çŽ 80% ã QUIC ã®äœ¿çšã«æåããŠããããšãããããŸããã ãã¹ãŠ äžæ¹ãã»ãã·ã§ã³ã® 15% 㯠QUIC ãš TCP ã®çµã¿åããã䜿çšããŠããŸããã ãã®çµã¿åããã¯ãCronet ã©ã€ãã©ãªãå®éã® UDP é害ãšå£æªãªãããã¯ãŒã¯ç¶æ ãåºå¥ã§ããªããããTCP ã«ã¿ã€ã ã¢ãŠãããããšãåå ã§ãããšèããããŸãã çŸåšãä»åŸã® QUIC ã®å®è£ ã«åããŠããã®åé¡ã®è§£æ±ºçãæ€èšäžã§ãã
QUICã®æé©å
ã¢ãã€ã« ã¢ããªããã®ãã©ãã£ãã¯ã¯é 延ã®åœ±é¿ãåããŸããã垯åå¹ ã®åœ±é¿ã¯åããŸããã ãŸããåœç€Ÿã®ã¢ããªã±ãŒã·ã§ã³ã¯äž»ã«æºåž¯é»è©±ãããã¯ãŒã¯ã§äœ¿çšãããŸãã å®éšã«ãããšããããã·ã䜿çšããŠãŠãŒã¶ãŒã®è¿ã㧠TCP ãš QUIC ãçµäºããŠããããŒã« ã¬ã€ãã³ã·ãŒã¯äŸç¶ãšããŠé«ãããšãããããŸãã ç§ãã¡ã¯ã茻茳管çãæ¹åããQUIC æ倱å埩ã¢ã«ãŽãªãºã ã®å¹çãåäžãããæ¹æ³ãç©æ¥µçã«æš¡çŽ¢ããŠããŸãã
ãããããã³ãã®ä»ã®ããã€ãã®æ¹åã«ããããããã¯ãŒã¯ãå°åã«é¢ä¿ãªããŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ãåäžãããäžçäžã§äŸ¿å©ã§ã·ãŒã ã¬ã¹ãªãã±ãã転éãããã¢ã¯ã»ã¹ããããããäºå®ã§ãã
åºæïŒ habr.com