Googleã®æ°ãããã³ã«QUICã試ã
1.QUICä»æ§ã®å ¬é
以åã「Googleが仕掛ける新プロトコルQUICとは何か」ã®ããã°ã¨ã³ããªã¼ãæ¸ããã®ã2ææ«ã®äºã§ããããããã4ãæçµã¡ãä»æGoogleãåãã¦QUICã®å ¬è¡¨(Chromium Blog: Experimenting with QUIC)ãè¡ãã¾ããã IE11ã®SPDY/3対å¿ãå¤æããç´å¾ã§ããããªãã¨ããã¿ã¤ãã³ã°ã§ããããã
ã¾ããè¿ããã¡ï¼æ¥é±ï¼ï¼ã«ã¯ HTTP/2.0 ã® Implementation Draft ãå ¬éãããäºå®ã§ãã8æä¸æ¬ã«ã¯ãGoogleãMicrosoftçãéã¾ã£ã¦åãã¦ã® HTTP/2.0 ã®ç¸äºæ¥ç¶è©¦é¨ãè¡ãäºå®ã§ãããã ä»HTTPé¢é£ã®ãããã³ã«ãæ¥æ¿ã«é²åããçã£æä¸ã§ããç®ãé¢ãã¾ããã
2. ã§ãQUICã¨ã¯ä½ãªã®ãï¼
å
ã®Chromium Blogã®ã¨ã³ããªã¼ã§QUICã¯ã
ãQuick UDP Internet Connectionsã
ã®ç¥èªã§ããã¨èª¬æããã¦ãã¾ãã
ããã«ããã®ããã°ã®èè æ¬ã§ "RTT Reduction Ranger" (ã©ã¦ã³ãããªããæéãåæ¸ããã¬ã³ã¸ã£ã¼é¨éï¼ã¨ã®ã¿ã¤ãã«ãã¤ãã¦ãããããã¨ã«ããã¤ã³ã¿ã¼ãããæ¥ç¶ä¸ã§çæéç´ æ©ããã¼ã¿ãéåä¿¡ãããã¨ãQUICã®å¤§ããªç®æ¨ã§ãã
å ¬éãããQUICä»æ§ã¯éãå¤ãããï¼æå·åãã¯ã¤ã¤ä»æ§çãå¥ã«ããï¼ãã¾ã ååèªã¿è¾¼ãã§ãã¾ãããããã£ã¨è¦ãã¨ãã4ãæåã®ç§ã®ããã°ã«æ¸ããã
ãQUIC㯠UDPãæ¹è¯ãããã®ã§ã¯ãªããæ¢åã®UDPä¸ã§TCP+TLSç¸å½ã®æ©è½ãå®ç¾ããæ°ãããã³ã«ã¹ã¿ãã¯ã§ãããã
ã¯ééã£ã¦ããªãã£ãã¨æãã¾ãã以åå
¬éãã以ä¸ã®å³ã®éãã§ããã
ãã ããå½æã®è§£ææ¼ãããã®å¾ã®éçºçã«ãããç´°ããã¨ããã§ç°ãªã£ã¦ãããã説æã大ããä¸è¶³ãã¦ããé¨åãããã¾ãï¼QUICãã¬ã¼ã ãã©ã¼ããããé çªãå¤ãã£ã¦ãããããã©ã°ã®è¿½å å¤æ´ããã¦ããã¨ãããæ°å¤ãåå¨ãã¾ãï¼ãããã¯ããããä¿®æ£ãã¦ããäºå®ã§ãã
ã¾ããå ã®Googleã«ããQUICã®ã¢ãã¦ã³ã¹ã§ã¯ãQUIC ã®ç¹å¾´ã¨ãã¦ä»¥ä¸ã®7ã¤ã®æ©è½ãæãããã¦ãã¾ãã
- TLSã«ããä¼¼ãé«ã»ãã¥ãªãã£
- TCP Fast Open 㨠TLS Snapstart ãçµã¿åããããããª(ã ããã 0-RTTã®ï¼ç´ æ©ãæ¥ç¶
- ãã±ãããã¹ãä½æ¸ãããã±ããé度調æ´
- åéé »åº¦ãä½æ¸ãããã±ããã®ã¨ã©ã¼è£æ£
- TCP ã®Head-of-Lineããããã³ã°(å é è©°ã)ãåé¿ããUDPãã©ã³ã¹ãã¼ã
- ã¢ãã¤ã«ã¯ã©ã¤ã¢ã³ãã®ããã«åæ¥ç¶ãåæ¸ããæ¥ç¶ID
- åãæ¿ãå¯è½(pluggable)ãªè¼»è¼³å¶å¾¡ã¡ã«ããºã
ããã4ãæåã®ç§ã®ããã°ã¨ã³ããªã¼ã«è¨è¼ãã¦ããã
åæ©è½ã®å®ç¾æ¹æ³ãã¾ã¨ããã¨ã
ã»GUIDãã¼ã¹ã®ã¹ããªã¼ã ã®FRAMEå½¢å¼ã使ãã»ãã·ã§ã³ç¢ºç« (STREAM_FRAME,RST_FRAME,CONNECTION_CLOSE_FRAME)
ã»ACK_FRAME, CONGESTION_FEEDBACK_FRAMEã使ã£ã¦ããã¼å¶å¾¡ã輻輳å¶å¾¡
ã»FECã使ã£ã¦ã¨ã©ã¼è¨æ£
ã»CRYPTO_FRAMEã使ã£ã¦æå·åã»èªè¨¼æ å ±ã®ãã³ãã·ã§ã¤ã¯
ã¨ãªãã¾ãã
ã®å 容ã¨ããªããã¶ã£ã¦ããã®ããããã¾ãã
3. æ©éQUICã試ã
æ¢ã« Google ã®ãµã¼ãã¹ã§ãã£ã¼ã«ã試é¨ãå§ã¾ã£ã¦ããã¨ã®ãã¨ã§ãã®ã§ãæ©é試ãã¦ã¿ã¾ãã
ç§ã®æå
ã§ã¯ã Chrome Dev (29.0.1547.0 dev-m) 㨠Chrome Canary(30.0.1549.0 canary) ã§åä½ã確èªã§ãã¾ããã
å¹¾ã¤ãã®Googleãµã¤ãå®ã«è©¦ããã¨ããæ¬æ¥åå¾ã§ã¯ã http://www.google.com/, http://www.youtube.com, http://maps.google.com çã QUIC 対å¿ãã¦ãã¾ãããæ®å¿µãªãã GMail ã¯ã¾ã ã¿ããã§ãã
3.1 æºå
å
ãã¯ããã¤ãã®éã about://flags ã§ä¸å³ã®éã QUIC ã®æ©è½ãæå¹ã«ãã¾ãã
次ã«ãæ¬æ¥ã§ã㨠QUIC対å¿ãµã¼ãã¯HTTPã§ã¢ã¯ã»ã¹ãã㨠Alternate-Protocol ããã㧠QUICæ¥ç¶ã¸ã®åãæ¿ããè¡ãã¾ããGoogleã¯ã¾ã ãã©ã¤ãã¼ãã®ãã£ã¼ã«ããã¹ãããã¦ããã¨æãã¾ãã®ã§ãã®åãæ¿ãããããä¸è¬åãã«æä¾ãã¦ãã¾ãããããã§ãç¹å®ã®ãµã¼ãåãã«QUICãæå®ããããã«ãã¾ãã
ãã®ããæ¹ãä¸è¬ã«å
¬è¡¨ãã¦å®ãµã¼ãã¹ã¸ã®QUICæ¥ç¶ãå¢ããã¨ãããããã¨Googleããã«ãè¿·æããããå¯è½æ§ãããã®ã§ãããã§è¨è¿°ããã®ã¯æ¢ãã¦ããã¾ããChromium ã®ã½ã¼ã¹ãèªãã¨ãã®ããæ¹ããããã¾ãã
æå¾ã«ãããã¯ã¼ã¯ç°å¢ã®æºåã§ããQUIC 㯠UDP ã®ãã¼ã80çªã«æ¥ç¶ã«è¡ãã¾ããFireWallç㧠80çªãã¼ãã¸ã®UDPæ¥ç¶ã¯æ¢ãããã¦ããå ´åãå¤ããã¨æãã¾ããQUICæ¥ç¶ããã«ã¯ãUDP 80çªã¸ã®æ¥ç¶ãã§ãããããã¯ã¼ã¯ç°å¢ãç¨æãã¾ãã
3.2 http://www.google.com/ 㸠QUICæ¥ç¶
æºåãæ´ã£ãããã©ã¦ã¶ãç«ã¡ä¸ããhttp://www.google.com/ ãé²è¦§ãã¾ãã chrome://net-internals/#quic ãè¦ã¦ã¿ãã¨ãµã¼ãã¸QUICã§æ¥ç¶ãã¦ããã®ããããã¾ãã
ããã§ã¯QUICã»ãã·ã§ã³ã®ä¸èº«ã¯ãªãã§ããããï¼ ä¸èº«ãè¦ã¦ã¿ã¾ãã
QUICã»ãã·ã§ã³ã®ãã¬ã¼ã ããµã¼ãã¨ããåããã¦ããã®ããããã¾ãã代表çãª2ã¤ã®ã¹ããªã¼ã ãåãåºãã¦ã¿ã¾ãã
t=1372402166319 [st= 1] QUIC_SESSION_PACKET_SENT
--> encryption_level = 0
--> packet_sequence_number = "1"
--> size = 564
æåã®æå·ã»èªè¨¼ãã³ãã·ã§ã¤ã¯ãè¡ãã¹ããªã¼ã ã§ããæå·åã¬ãã«ãï¼ãªã®ã§ãã®ã¹ããªã¼ã ã§ã¯æå·åãè¡ããªãããã§ãã
次ã¯ãã©ã¦ã¶ã¼ããã®ãªã¯ã¨ã¹ãã®ã¹ããªã¼ã
t=1372402166489 [st=171] QUIC_HTTP_STREAM_SEND_REQUEST_HEADERS
--> :host: www.google.com
:method: GET
:path: /
:scheme: http
:version: HTTP/1.1
accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-encoding: gzip,deflate,sdch
accept-language: en-US,en;q=0.8,ja;q=0.6
cookie: [767 bytes were stripped]
user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.0 Safari/537.36
x-chrome-variations: CLe1yQEIlLbJAQiqtskBCJSEygEIloTKAQi3hcoBCNaFygEIn4bKAQ==
SPDYã¨åãããããï¼å¤ã®çµããµã¼ãã«éä¿¡ãã¦ããã®ããããã¾ããï¼ä¸ä½ã¬ã¤ã¤ã¼ã¯SPDYãå©ç¨ãã¦ããï¼
æ®å¿µãªãããã https://www.google.co.jp/ ã«ãªãã¤ã¬ã¯ã·ã§ã³ãã¦ãã¾ããããç¾ç¶ç¶ç¶ãã¦QUICã使ãç¶ãããã¨ã¯é£ããããã§ããã§ãå®éã«ãµã¼ãã¹ä¸ã§åä½ãããµã¼ãã¨QUICã§ã¤ãªãããã¨ã¯æåãã®ã§ãã
ä»åã®ã¢ãã¦ã³ã¹ã§ããã¹ãç¨ã®QUICãµã¼ããChromiumã®ã½ã¼ã¹ä¸ã«ç¨æããã¦ããã®ããããã¾ãããä»å¾ãä»æ§æ¸ã¨ Chromium ã®ã³ã¼ããè¯ãèªã¿åããã¦ããã«QUICã®è§£æãç¶ãããã¨æãã¾ãã