HTTP3 ã§pub-subã¨MQTT-over-QUICã®æ¯è¼ãIoTã®è¦³ç¹ããè¡ã£ãè«æã®åå¿é²ã§ãã
IoTã¨ããæèã§ããããã¯ã¼ã¯ã¨ãã¥ã¬ã¼ã¿ã«é 延ã¨å¸¯åãè¨å®ãã¦ãæ§è½ï¼æåã®ãã¼ã¿ãå°éããã¾ã§ã®æéãéä¿¡çµäºã¾ã§ã®æéãã¹ã«ã¼ãããï¼ããããã¯ã¼ã¯ã¸ã®ãªã¼ãã¼ãããï¼ãã¤ãéã¨ãã±ããæ°ï¼ããªã½ã¼ã¹ã®ä½¿ç¨ç¶æ³ï¼CPU使ç¨çãRAM使ç¨éï¼ãã®3ã¤ãæ¯è¼ãã¦ãã¾ãã
æ§è½é¢ã§ã¯ãH3 pub-subã®ã»ããåªããçµæãå¾ããã¦ãã¾ããããããã¯ã¼ã¯ã®ãªã¼ãã¼ãããããªã½ã¼ã¹ã®ä½¿ç¨ç¶æ³ã¯HTTP3 pub-subã®ã»ãã MQTT-over-QUICãããå¤ãã®ãªã½ã¼ã¹ã使ç¨ããçµæã¨ãªã£ãããã§ãã
ãããã®çµæãããIoTã¨ããæèãèããå ´åããã¬ã¼ããªããåå¨ãã¦ããã¨ãããã¨ã示åãã¦ãã¾ãã
å è«æã¯ä¸ã§èªãã¾ãã
å®è£ ã«ã¤ãã¦
H3 pub-subãMQTT-over-QUICã¨ãã«æ¢åã®å®è£ ã®ä¸åããQUICã«å¤æ´ãããã®ã使ç¨ããã¦ãã¾ãã ã¾ãQUICã®å®è£ ã¯ãå ¬å¹³ãªæ¯è¼ã®ããã«ä¸¡è ã¨ãquic-goã使ç¨ãã¦ãã¾ããããã«ãããQUICã®å®è£ å·®ã§ã¯ãªããH3 pub-subã¨MQTTã®æ¯è¼ãå¯è½ã«ãªãã¾ãã
MQTT-over-QUIC
ã¯ã©ã¤ã¢ã³ã(publisher/subscriber) 㯠[Eclipse Paho](https://github.com/eclipse/paho.mqtt.golang ã¨ããã¯ã©ã¤ã¢ã³ããQUICã«å¯¾å¿ããããã®ã使ããã¦ãã¾ãã
brokerã¯ãVolantMQ ã¨ããããã¼ã«ã¼ãQUICã«å¯¾å¿ããããã®ã使ããã¦ãã¾ãã
H3 pub-sub
H3 pub-sub ã¯ãDriftã¨ããHTTP/2ã使ã£ã¦Pub/Subãè¡ãOSSã«H3ãé©ç¨ãããã®ã使ç¨ããã¦ãã¾ãã
Driftã§ã¯ä»¥ä¸ã®ãã¼ãã«ã®ããã«ãHTTPã®ã¡ã½ãããpub/subã«ãããã³ã°ãã¦ãã¾ãããããã¯åã¯URLã«ã¨ã³ã³ã¼ãããã¾ãã
Network Modeling
NetEmã使ç¨ãã¦ãé 延ã¨å¸¯åã®ã¹ããããªã³ã°ãå®ç¾ãã¦ãã¾ãã
Narrowband-IoT (NB-IoT) ãããã¯ã¼ã¯ãã©ã¡ã¼ã¿ã¼ã¨ããã®ããããããããã©ã¡ã¼ã¿ã¨ãã¦ä½¿ã£ã¦ããããã§ãã
å ·ä½çãªå¤ã¯ä»¥ä¸ã®å¤ã§ããRTTãããªã大ããå°è±¡ãåãã¾ãã
Experimental Setup
VirtualBoxä¸ã®OSã¯Ubuntu 18.04.4 (kernel 4.15.0-77)ã§ãpublisher, subscriber, brokerãããããå®è¡ãã¦ããããã§ãã quic-goã¯ãv0.20.1ã使ç¨ãã¦ãã¾ããH3ã¯draft29 ã§ãã
Results
çµæã¯ãæ§è½ææ¨ã§ã®è©ä¾¡ããããã¯ã¼ã¯ã®ãªã¼ãã¼ãããã®è©ä¾¡ããªã½ã¼ã¹ä½¿ç¨éã®è©ä¾¡ã®3ã¤ã§è©ä¾¡ããã¦ãã¾ãã
Performance Indicator
æ§è½ææ¨ã®è©ä¾¡ã®1ã¤ç®ã¯ãpublisherã®æåã®ãªã¯ã¨ã¹ãï¼ä¸åãã®QUICã®æ¥ç¶ã¯å·®ãåºãªãã®ã§ããããæ¥ç¶ç¢ºç«å¾ï¼ããããã¬ã¼ã ã®æåã®ãã¼ã¿ãå±ãã¾ã§ã®æéã§ããï¼ãããããpublisherâbrokerâsubscriberã®ãã¨ãæãã¦ããã¨æããã¾ãï¼
Fig 2ã¯æ¨ªè»¸ãéä¿¡ãããã¼ã¿ãµã¤ãºã縦軸ããã¬ã¼ã ã®æåã®ãã¼ã¿ãå±ãã¾ã§ã«ããã£ãæéã§ãã Fig 2 ããè¦ã¦ãããããã«ãMQTT-over-QUICã¯RTT2ååãH3 pub-subã¯RTT 1ååã«ãªã£ã¦ãã¾ãã
ãã®åå ã¯ãèªè¨¼ããã»ã¹ã®éãå®è£ ã®éãããæ¥ã¦ããããã§ãã MQTT-over-QUICã®å ´åã¯ãæåã«ã¦ã¼ã¶ã¼ã®credentialãéããããã¼ã«ã¼ããã®acknowledgementãå¾ ã¡ã¾ãããªã®ã§ãpublisherã¯brokerããã®ã¬ã¹ãã³ã¹ãå¾ ã£ã¦ããå®éã®ãã¼ã¿ãéããã¨ã«ãªãã¾ãããã®çµæã1-RTTåä½åãªé 延æéãçºçãã¾ãã
ä¸æ¹ã§ãH3 pub-subã®å®è£ ã§ã¯ãä¸ã¤ã®ãã±ããã«ãã¦ã¼ã¶ã¼ã®credentialãå«ãheader frameã¨ãããªãã·ã¥ããã¡ãã»ã¼ã¸ãå«ãdata frame ãå«ã¾ãã¾ãã ãªã®ã§ãMQTT-over-QUICã¨ç°ãªããã¬ã¹ãã³ã¹ã¯å¾ ããªãã®ã§1-RTTåã®é 延ã®ã¿ã§subscriberã¾ã§ãã¼ã¿ãå°éãã¾ãã
æ§è½ææ¨ã§ã®è©ä¾¡ã®2ã¤ç®ã¯ãæ¥ç¶ãéããã¾ã§ã®æéã¨ã¹ã«ã¼ãããã§ãã
ãã®å®é¨ã§ã¯ã5ã¤ã®publisherã1ç§æ¯ã«ç«ã¡ä¸ãã¦1KBã®ã¡ãã»ã¼ã¸ãbrokerã«éä¿¡ãã¾ããããã¦ãbrokerã¯2%ã®ãã±ãããã©ã³ãã ã«ããããããã¾ãã
Fig 3 ã¯æ¨ªè»¸ããæéã縦軸ãã¹ã«ã¼ãããã«ãªã£ã¦ããããã§ãããµã³ããªã³ã°ã¯200msecã§è¡ã£ã¦ãã¾ãã
H3 pub-subã®æ¥ç¶ã¯8ç§ã§çµäºãã¦ãã¾ãããMQTT-over-QUIC ã¯H3 pub-subããç´1.4ç§æéãããã£ã¦ãã¾ãã
ã³ãã¯ã·ã§ã³ã¬ãã«ã§è¦ãã¨ãH3 pub-subã®ãã¼ã¯ã®ã¹ã«ã¼ãããã¯24%é«ãã§ãããåè¨ããå ´åã¯ã2.88% MQTT-over-QUICã®ã»ããé«ãããã§ãã
åããã¼ã¿éãéã£ã¦ãããããH3 pub-sub ã®ã»ããæ©ãçµããããã¹ã«ã¼ããããé«ãããã§ãã
Network Overhead
ãããã¯ã¼ã¯ã®ãªã¼ãã¼ãããã®è©ä¾¡ã§ã¯ãbrokerã¨publisherã®éã§äº¤æããããã¤ãæ°ã¨å®éã®ã¡ãã»ã¼ã¸ãµã¤ãºãæ¯è¼ãã¦ãã¾ãã
FIg 4ã®æ¨ªè»¸ã¯ã¡ãã»ã¼ã¸ãµã¤ãºã1KBãã10KBã¾ã§å¢ãããå¤ã§ã縦軸ã¯å®éã«ããåãããã£ããã©ã³ã¶ã¯ã·ã§ã³ã®ãµã¤ãºï¼Kbyte)ã§ãã
軸ãè¦ãã¨ãããã®ã§ãããã¡ãã»ã¼ã¸ãµã¤ãºããããã©ã³ã¶ã¯ã·ã§ã³ã®ãµã¤ãºã®ã»ãã3ï½20åç¨åº¦å¤§ãããã¨ãåããã¾ãã
H3 pub-subã®ã»ãããMQTT-over-QUICããå¤ãã®ãã¼ã¿ã好æããã¦ãããããããã¯ã¼ã¯è² è·ãé«ãã¨èãããã¾ãããã ãããã¯å¹³åã§3.23%ã¨ç«¶äºå¯è½ãªã¬ãã«ã§ã¯ã¨ä¸»å¼µããã¦ãã¾ãã
éä¿¡ããããã¼ã¿ãµã¤ãºã®ã¿ã§ãªããéä¿¡ããããã±ããæ°ãåæ§ã«H3 pub-subã®ã»ããå¹³åã§11% å¤ãããã§ãã
ãã®ãããªçµæã«ãªã£ãçç±ã®èå¯ã¨ãã¦ãNB-IoTã¯RTTã大ãããã¨ãæãããã¦ãã¾ãã RTTã2ç§ã¨å¤§ããã®ã§ããã¥ã¼ãã³ã°ããã¦ããªãQUICã¯ã¢ã°ã¬ãã·ãã«ãªãã¾ãã ä¾ãã°ãpublisherã®æåã®æ¥ç¶ã確ç«ãããªã¯ã¨ã¹ãã«å¯¾ãã¦brokerã®ã¬ã¹ãã³ã¹ãæ¥ãã¾ã§ã«ã6åã®è¿½å ã®retry Client Hello ãã±ãããéä¿¡ããã¦ããããã§ãã ããã«ãã£ã¦æ´ã«è¿½å ã®ã¬ã¹ãã³ã¹ãèªçºããã¾ãããã®çµæãFig4ã®ããã«ãéä¿¡ããããã¼ã¿ãµã¤ãºã®æ°ååã®ãã¼ã¿ãéãããçµæã¨ãªã£ãããã§ãã
C. Device Overhead
ããã¤ã¹ã®ãªã¼ãã¼ãããã¨ãã¦ãpsã³ãã³ãã«ãã£ã¦CPU使ç¨çã¨RAMã®ä½¿ç¨éãåå¾ãã¦è©ä¾¡ãã¦ãã¾ãã
Fig5ã¯CPU使ç¨çã§ãã横軸ãã¡ãã»ã¼ã¸ãµã¤ãºã縦軸ã使ç¨çã«ãªã£ã¦ãã¾ãã
ããã§ã¯ãH3 pub-subã®ã»ããMQTT-over-QUICããã大ããå¤ã«ãªã£ã¦ãã¾ãããããã¡ã¤ã©ã§ãã®åå ãè¦ãã¨ãH3ã®å®è£ ã«ä½¿ããã¦ããTLSã®x509ã®è¨¼ææ¸ã®è§£æãåå ã¨ã®è¨è¿°ãããã¾ãã
Fig 6ã¯RAMã®ä½¿ç¨éã§ããRAMã®ä½¿ç¨éã¯ãã¹ãã«å¯¾ãã¦å®å®ãã¦ããã®ã§ããã¼ã¯ã®ãã®ã ããè¼ã£ã¦ãã¾ãã
ã°ã©ãããè¦ã¦ãããããã«H3 pub-sub ã®ã»ããã63.6% 使ç¨éãå¤ãããã§ãã
VII. DISCUSSION
å®é¨ã®çµæããã
ãããã¯ã¼ã¯ãªã¼ãã¼ãããã®è¦³ç¹ã§ã¯æ¯è¼å¯è½
H3ã¯ãã¤ãã©ã¤ã³åãããèªè¨¼ã«ãããæåã®ãã¼ã¿ãå°éããã¾ã§ã®æéã1RTTç¯ç´ã§ãã
åä¿¡ã¯H3ã®ã»ããæ°ç§æ©ã
H3ã¯ãªã½ã¼ã¹ã®å¶ç´ãããç°å¢ã§ã¯ããã¤ã¹ã¸ã®è² æ ã大ãã
ã¨ãããã¨ãåããã¾ããã
ãããããH3 pub-sub ã¯ãMQTT-over-QUICã¨æ¯ã¹ãã¨ãã¨ã³ãããã¤ã¹ã¸ã®è² æ ã大ããããªã½ã¼ã¹ã«å¶ç´ã®ããIoTã«ããã¦ãã¬ã¼ããªãã®é¢ä¿ãããã¨ä¸»å¼µããã¦ãã¾ãã
ã¾ããè«æã§ã¯ãHTTPã¯MQTTãããè¤éãªãããã³ã¼ããããããªã³ãã®é¢ã§ã®å½±é¿ãèµ·ããããã¨ä¸»å¼µããã¦ãã¾ãã
ããã¦ãã³ã¼ãã£ã³ã°æ¹æ³ãæé©åã«ãã£ã¦ããªã½ã¼ã¹æ¶è²»éã大ããå·¦å³ããããã¨ãããã¾ãã å®éãDriftã¯IoTåãã«ã¯éçºããã¦ããããã¾ããã¢ã¯ãã£ããªã¡ã³ããã³ã¹ã¯ããã¦ãããããã®ãã¨ã¯è©ä¾¡çµæããèªããããã¨ä¸»å¼µãã¦ãã¾ãã
ææ
å人çã«æ°ã«ãªã£ãã®ã¯ä»¥ä¸ã®2ç¹ã§ãã
1ç¹ç®ã¯ã1-RTT åç¯ç´ã§ããã¨ããçµæã§ããMQTTã®ä»æ§ã«ã¯è©³ãããªãã®ã§ããããããã³ã«ã¨ãã¦ã®åé¡ãªã®ããå®è£ ã®åé¡ãªã®ãã©ã¡ããªã®ããæ°ã«ãªãã¾ããã
2ç¹ç®ã¯ããããã¯ã¼ã¯ã®ãªã¼ãã¼ãããã®é¨åã§ããH3ã¨MQTT-over-QUICã®ã©ãããã¨ããã®å·®ããæ¥ããã®ãªã®ããæ°ã«ãªãã¾ããã1ãã±ãããããã®MQTTã¨HTTP3ã®ãã¤ãæ°ã®å·®ãå½±é¿ãã¦ããããã«æãã¾ãã