TCPãé ãããï¼QUICã使ããï¼
ããããQUIC使ããªãã®ï¼ã
ããããªãã§ãããQUICã使ããã¨ã主張ãããã¨ã§ãã¿ããªãããªããè¯ãããããªããã©ãTCPãç½®ãæããã»ããããã®ããªï¼ãã¨æãããã«ãªãã¯ããå ¨ã¦ã®ã¢ããªã±ã¼ã·ã§ã³ããTCPã®ä»£ããã«QUICã使ãããã«ä¿®æ£ããã¨ãªãã°ããã®å 10å¹´éããããã¨ã³ã¸ãã¢ã¿ããªã®ä»äºãä½ããã¨ãã§ãã¾ããæ¥çæã§ããã
ãã§ã«ãSSHãDNSã®QUIC対å¿ã¯å§ãããã¦ãã¾ããæ¢åã®ã¢ããªã±ã¼ã·ã§ã³ãQUICã«å¯¾å¿ãããé£ããã調æ»ããããã«ãRustã§BGP over QUICãå®è£ ãã¦ã¿ã¾ããã
QUICã®å®è£
QUICã¯ãTCPã¨åããããã±ããã®åéã輻輳å¶å¾¡ãªã©ãä¿¡é ¼æ§ã®ããéä¿¡ãå®ç¾ãããã©ã³ã¹ãã¼ããããã³ã«ã§ããå®è£ é¢ã®å¤§ããªéãã¯ãTCPããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã®ãããã³ã«ã¹ã¿ãã¯ã®ä¸æ©è½ã¨ãã¦å®è£ ãããã®ã«å¯¾ãã¦ãQUICã¯ã¢ããªã±ã¼ã·ã§ã³ã§å®è£ ãããç¹ã§ããã¢ããªã±ã¼ã·ã§ã³ãããã±ããå¦çã®ä¸é¨ãå®è¡ãããã¨ã«ãªãã¾ãã
å°æ¥çã«ã¯ããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ãQUICããµãã¼ãããå¯è½æ§ãããã¾ãããç¾å¨ã¯ãã¢ããªã±ã¼ã·ã§ã³ã®ã©ã¤ãã©ãªã¨ãã¦ãCãRustãJavaãGoãPythonãErlangãJavaScriptãªã©ã®æ§ã ãªè¨èªã®QUICå®è£ ãããã¾ããMicrosoftãGoogleãFacebookãªã©ããããããªä¼ç¤¾ã¯ãç¬èªã®OSSã®QUICå®è£ ãéçºãã¦ãããä»æã¯ããããããªãªãã£ã¹ãä½ã代ããã«ãèªç¤¾ã®QUICãéçºãããã¨ã§ããããããªä¼ç¤¾ã§ãããã¨ãã¢ãã¼ã«ãããã¨ãã§ããã¯ãã§ãã
Rustã§ãã£ã¦ã¿ãã
ä¸è¬ã«Cè¨èªã§å®è£ ããã¦ãããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã®ãã±ããå¦çã¨åç¨åº¦ã®æ§è½ãå®ç¾ããããã«ã¯ãCè¨èªã¨åç¨åº¦ã®å¦çé度ã®è¨èªã§ã¢ããªã±ã¼ã·ã§ã³ãå®è£ ããå¿ è¦ãããããã§ããããã§ããRustããããã¾ãããã
Rustã®QUICå®è£ ã«ã¯ãMozillaã®NeqoãCloudflareã®quicheãQuinnã®3種é¡ãããã¾ãããæåã®2ã¤ã¯ãCã®ã©ã¤ãã©ãªãå©ç¨ãã¦ãããRustã¸ã®æã足ããªãã®ã§ãQuinnãå©ç¨ãã¾ãã
BGP over QUIC
200è¡ç¨åº¦ã®å¤æ´ã§ãRustã®BGPå®è£ ãQUICã«å¯¾å¿ããããã¨ãã§ãã¾ãããQuinnã¯ãRustã§ãããã¯ã¼ã¯ã¢ããªã±ã¼ã·ã§ã³ãå®è£ ããéã«äººæ°ã®tokioã©ã¤ãã©ãªã¨ä¸ç·ã«åä½ããtokioã®TCPã®APIã¨é¡ä¼¼ã®QUICã®APIãæä¾ãã¦ããã®ã§ãtokioã©ã¤ãã©ãªãå©ç¨ãã¦ããã¢ããªã±ã¼ã·ã§ã³ã§ããã°ãæ¯è¼ç容æã«QUICã«å¯¾å¿ããããã¨ãã§ãããã§ãã
ããããå ã¯ããQUICã§BGPã»ãã·ã§ã³ï¼ï¼ãã¨å¿ãéããå°æ°æ´¾ã®æ¹ã 以å¤ã¯ãèªã¿é£ã°ãã¦ããã¾ã¨ããã«é²ãã§ãã ããã
ãã¼ã¢ã³ãèµ·åããç¶æ ã§ãTCPã179çªãã¼ããlistenããã®ã§ã¯ãªããUDPã§ä½¿ããã¦ãã¾ãã
$ lsof -P -c daemon|grep UDP
daemon 26132 root 7u IPv4 55772 0t0 UDP *:179
ãã¢ãacceptããã¨ãIPã¨UDPãã¼ãã表示ããã¾ãã
$ ./target/debug/daemon --as-number 65001 --router-id 1.1.1.1 --any-peers
Hello, RustyBGP!
accpeted new quic conn V4(172.31.22.144:53760)
å®éã«æ¥ç¶ããã¦ãããã¨ã確èªãã¾ãã
$ gobgp neighbor
Peer AS Up/Down State |#Received Accepted
172.31.22.144 65002 00:01:40 Establ | 0 0
ãã¢ã®ãã¹ãã§ãUDPã®53760çªãå©ç¨ãã¦ãããã¨ã確èªã§ãã¾ããã
$ lsof -c daemon|grep UDP
daemon 13238 root 7u IPv4 66927 0t0 UDP *:179
daemon 13238 root 8u IPv4 66956 0t0 UDP *:53760
ã¾ã¨ã
æ¢åã®ã¢ããªã±ã¼ã·ã§ã³ãQUICã«å¯¾å¿ããããã®ãã¤ã³ãã¯ãQUICãèæ ®ããè¨èªãã©ã¤ãã©ãªã§å®è£ ããã¦ãããã¨ãã¨ãããã¨ãåããã¾ããã
æ©éãææ¥ãããå ¨ã¦ã®ã¢ããªã±ã¼ã·ã§ã³ãRustã§åå®è£ ãã¦ããã¾ããããQUICã§ã¢ãã¤ã«ãã¡ã¼ã¹ãæ代ã§ãããããNTTã§ã¯ã仲éãåéä¸ã§ããé£çµ¡ãå¾ ã¡ãã¦ãã¾ãã