ã¢ãããªãŒã»ãªã«ããïŒ anatolix ïŒãããã¹ã»ããŽã«ããïŒ Yandex ïŒ
ã¢ãããªãŒã»ãªã«ããïŒã¿ãªãããããã«ã¡ã¯ïŒ ç§ã®ååã¯ã¢ãããªãŒã§ãã ç§ã¯éå»10幎éãYandexã§åããŠããŸãã Yandexã§ã¯ããŸããŸãªããšãããŸããããHighLoadã§ã¯åžžã«ããŸããŸãªçš®é¡ã®é床ã«é¢ããã¬ããŒããäœæããããšããããŸããã ç§ã¯å ±åå ±åè ãããŸã-ããã¹ã»ããŽã«ããã圌ã¯ãŸã Yandexã§åããŠããããšããããã¹ããŒããä¿¡ããŠããŸããã
ãã®ã¬ããŒãã¯ãããŠãŒã¶ãŒãžã®é ä¿¡é床ããšåŒã°ããŸãã ãåç¥ã®ããã«ãèšå€§ãªæ°ã®äŒæ¥ãããŒãžã®èªã¿èŸŒã¿ãæé©åããããšããŠããŸãã äžéšã®äŒæ¥ã¯ãéæããçµæãéåžžã«èªãã«æã£ãŠããããããã®çµæãããŒãžã®äžéšã«èšèŒãããäžéšã«ãèšèŒããŠããŸãã
ããšãã°ãGoogleã®ã¹ã¯ãªãŒã³ã·ã§ããïŒ
ãã©ãŠã¶ã§éçºè ããŒã«ã®åãããŒãžãèŠããšãæ°å€ããããã«ç°ãªãããšãããããŸãã430ããªç§ã§ã¯ãªãã625ããªç§ã§ãã
çŽèŠ³çã«ã¯ã430ãGoogleãµãŒããŒäžã®ã©ããã«ããã625ããã©ãŠã¶ã«ããããšã¯ã ãããã¯ã£ãããšããããŸãã 質åïŒã©ã®æ°åãé床ææšã«é©ããŠããŸããïŒ ç§ã¯ããµãŒããŒäžã®æ°åãèªãã«æãããšãã§ããã®ã§ããã©ãŠã¶ã®æ°åããã䟿å©ã§ããããã«æããŸãããããã«ããå©çã¯ãã¯ããããŸããã ãããŠããã©ãŠã¶ã®æ°åã¯ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæ¬åœã«ã¹ããŒãã¢ããããŸãã
ã¯ã©ã€ã¢ã³ãã§äœããã®é床ã¡ããªãã¯ãäœæããããšèããŠããŸãã åé¡ã¯ããã«çºçããŸã-äœã枬å®ããã©ã®ããã«æž¬å®ããã®ã§ããïŒ
枬å®æ¹æ³ã¯ç°¡åãªè³ªåã§ãã ãŸããããŒãžã®èªã¿èŸŒã¿ã¯è€éãªããã»ã¹ã§ãããããäœã枬å®ãããã¯ããã»ã©ç°¡åã§ã¯ãããŸããã ããããæ³åããŠã¿ãŠãã ãããlib.ruããWar and Peaceã®ãã¡ã€ã«ãããŠã³ããŒããããšãããã«èªãããšãã§ããæ°åã§ããŒããããã§ãããã ããã¯ãããŒãæã«éžæãããã€ã³ããæ確ã§ãªãäŸã§ãã
ããšãã°ãããŒãžããããŒãžã«ç§»åãããšããã«æ©èœãããµã€ããå€æ°ãããŸãããã¹ãŠãã£ãã·ã¥ãããŠãããããããã«ããã²ãŒã·ã§ã³ã§ããŸãããçµæã®èªã¿èŸŒã¿ã«ã¯æéãããããŸãã
äžçäžã®ãã¹ãŠã®ãµã€ãã§äœã枬å®ããå¿ èŠãããããšãã質åã«å¯Ÿããçãã¯ååšããŸããã ç¹å®ã®ãµã€ãã«ã€ããŠããã®ãããªçããæãä»ãããšãã§ããŸãã æ€çŽ¢ãšã³ãžã³ã®å Žåãããããæåã®æ€çŽ¢çµæãèªã¿èŸŒãããšã¯ã枬å®ãã䟡å€ã®ããããŒã¯ã§ãã
ãã®ãããªãã¬ãŒãºããããŸãïŒããŒã«ãããã³ããŒããæã£ãŠããªãå Žåããã¹ãŠã®åé¡ã¯éã®ããã«èŠããŸãã ãã®ãšãªã¢ã«ã¯éåžžã«å€ãã®ãã³ããŒããããŸãã
ã€ãŸã å€ããå°ãªãã2ã€ã®APIãš2ã€ã®ããããã£ãããã1ã€ã¯Chromeã«å®è£ ããããã1ã€ã¯IEã«å®è£ ãããŠããŸãã ãããã£ãŠããã¹ãŠã枬å®ã§ããããã§ã¯ãããŸããã ããšãã°ãåé¡ã®æåã®çµæããã€æç»ããããã¯ããããŸããã
äœã枬å®ã§ããŸããïŒ ããªãã®ãã©ãŠã¶ã§èµ·ãã£ãŠããããšã®ããã€ãã®éåžžã«åçŽåãããã¹ããŒã ããããŸãïŒå®éã«ã¯5å倧ããã§ãïŒïŒ
ãã©ãŠã¶ããµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ããæç¹ããããŸãã ãã®åŸããµãŒããŒã¯HTMLã®çºè¡ãéå§ããŸãã æåã«æåã®ãã€ãã次ã«éãã«æ®ãã®ãã€ãã次ã«æåŸã®ãã€ããæ¥ãŸãã ãããŠãããã§ç¹å®ã®ã¡ããªãã¯ã®ã»ãããååŸããŸãã æåã®ãã€ããŸã§ã®æéã枬å®ãã転éæéã枬å®ããæåŸã®ãã€ããŸã§ã®æéã枬å®ãããããJava Scriptã§ãã¹ãŠåŒãåºããŠããµãŒããŒã«ã¢ããããŒããããµãŒããŒã§ã°ã©ããäœæã§ããŸãã
æ¯èŒã®ããã ããã¯é«éãµãŒããŒã®æåã®ãã€ãã§ããããµãŒããŒã¯ã¢ã¹ã¯ã¯ããããã»ã©é ããªãå Žæã«ãããŸãã ãã·ã¢ã®ããŸããŸãªéœåžã§ã©ã®ããã«èŠããŸããïŒ
ããã§åè¡ã«ã¯ããã€ãã®æå³ããããããã¯ãããã ããŒã»ã³ã¿ã€ã«ã ç¥ããªã人ã«ãšã£ãŠã50ããŒã»ã³ã¿ã€ã«ã¯ããŠãŒã¶ãŒã®å¿çã®50ïŒ ããã®å€ãããéãã50ïŒ å€ãããšãæå³ããŸãã ãŸãã95ïŒ ã¯åãã§ãã ãã®ãã£ãŒãã«ã¯äœãèŠããŸããïŒ ä»¥äžã¯ã0ãæ¡ä»¶ä»ãã§åŠçãããµãŒããŒã§ãã æåã®ãã€ãã¯ããã«ãµãŒããŒããé£ã³åºããŸãã ããã¯æåã®ãã€ãã§ãããããããŒãžãµã€ãºã¯æåã®ãã€ãã«ã¯é¢ä¿ãããŸããã ããšãã°ãããã§èå³æ·±ãããŒã¿ã®ãã¡ããŠã©ãžãªã¹ãã¯ãèŠãŠã¿ãŸããã-äœããã®çç±ã§ã圌ã¯èªä¿¡ãæã£ãŠããã·ãã«ã¹ã¯ãé«ãããŒã»ã³ã¿ã€ã«ã§ãäœæãããŸãããããŠãäœãããŒã»ã³ã¿ã€ã«ãèŠããšã äœããŒã»ã³ã¿ã€ã«ã¯ãå ã®é床ã«ãã£ãŠæ¡ä»¶ä»ãã§æ±ºå®ãããé«ããŒã»ã³ã¿ã€ã«ã¯ãäœã«ãã£ãŠäžå¯è§£ã«æ±ºå®ãããŸãã ç§ã«ãšã£ãŠã¯ããã®ã°ã©ããããããã·ãã«ã¹ã¯ã«ã¯ã€ãªããã«äœããã®åé¡ãããããã«æããŸãã
é«éãµãŒããŒã®æåŸã®ãã€ãã å®éãããã¯ç§ãããã§æããããçš®ã®åæææšã§ãã ã€ãŸã ããã§ã¯æ€çŽ¢æéãåããŸããããããã§ã®ãµãŒããŒæéã¯ããã»ã©ãŒãã§ã¯ãªããããçµæãããããå·®ãåŒããŸããã ã€ãŸãã倧ãŸãã«èšã£ãŠãããã¯ãµãŒããŒã®çšŒåæéããŒãã®å Žåã«æ€çŽ¢å¿çã«ãããæéã§ãã ããã§ãæ°å€ãååã«å€§ããããšãããããŸãã èå³æ·±ãããšã«ãããã§ããããã·ãã«ã¹ã¯ã¯ããçš®ã®åæå°è ã«ãªãããŠã©ãžãªã¹ãã¯ã¯äºæ³å€ã«ã¯ãŒã«ã«èŠããã¢ã«ããã€ãšããšãããäœãããŸãã ãããã®æ°åã«ã€ããŠã é åºãç解ã§ããããã«çªå·ãä»ããŸããã ããã§ãäžã®æ¡ã«95ããŒã»ã³ã¿ã€ã«ãã³ããã¯ã§3ç§ã ã€ãŸãã倧ãŸãã«èšãã°ããµãŒããŒã100ããªç§éæé©åãããšããã°ããã¯ãŸã£ããæé©åãããªãããšãããããŸãã
åã®2ã€ã®ã¹ã©ã€ãã«ã¯çµ±èšããããŸããã åãé²éªšãªåãçµ±èšããããšããããšããããããŸãã ããã¯çµ±èšã§ãã
çµ±èšã«ã€ããŠè©±ããšãã¯ãå¶éã«ã€ããŠè©±ãå¿ èŠããããŸãã ãŸãããããã®APIã¯ãã¹ãŠã®ãã©ãŠã¶ãŒã§ãµããŒããããŠããããã§ã¯ãããŸããã ã€ãŸã ããã¯ãã¹ã¯ãããã§ãåé¡ãããŸããããæºåž¯é»è©±ã§ã¯ãAndroidã®Chromeã®ã¿ããããã®APIãå®è¡ã§ããŸãã 第äºã«ããã©ãŠã¶ãç°ãªãæ°åãäžããããšãç解ããå¿ èŠããããŸãã ã€ãŸã ChomeããŒã¹ã®ãã©ãŠã¶ãšIEã®ç°ãªãããããã£åã¯ãäœãç°ãªããã®ã枬å®ãããšèšããŸãã
ãããŠãChromeã§ãã®æ°åãäœãæå³ããã®ãç解ã§ããå ŽåããœãŒã¹ããããããIEã§æ°åãäœãæå³ããã®ããå®éã«ã¯ç解ã§ããŸããã ãããã£ãŠãçŽç²ã«æ£åŒã«ããããæ¯èŒããããšã¯ããŸãæ£ãããããŸããããäžæ¹ã§ããã©ãŠã¶ã®äœæè ã§ã¯ãªããIEãè¿œãè¶ãããšããŠããªãå Žåãããªãã¯æ¬åœã«æ°ã«ããŸãããããªãããµã€ãã§ãã©ãŠã¶ã®ååžãã»ãŒåãã§ããããã ããããŠéåžžã ãããŠãç°ãªãçµ±èšççºèŠã¯ç°ãªãèªç¥ãšã©ãŒã®åœ±é¿ãåããŸãã
ãã£ãšé¢çœããã®ãèŠãŠã¿ãŸãããã ããã§ã¯ãããŸããŸãªãã©ãŠã¶ãŒã®ã³ã³ããã¹ãã§æåã®ãã€ããŸã§ã®æéã®å èš³ã瀺ããŸãã
ããã§äœãèŠããŸããïŒ Chromeã¯IEãããé«éã§ãããOperaã®ããã©ãŒãã³ã¹ã¯äºæ³å€ã«å£ã£ãŠããŸãã ãããŠãããã«ã¯SafariãšåŒã°ããã¹ãŒããŒãã©ãŠã¶ãŒããããŸããããã¯ãä»ã®ãã¹ãŠã®ãã©ãŠã¶ãŒããã2.5åé«éã«åäœããŸãã ããã¯ããã€ã¢ã¹ãšåŒã°ããå€å žçãªäŸã§ãã ç¶æ³ã¯éåžžã«åçŽã§ã-åšããèŠæž¡ãã°ãããããMacintoshã1ç§ããã«ãæ¯èŒç話ããŠããŸãã ãããã£ãŠããã€ã«ã«æ¹ã®å€ã®ã©ããã«æ£®ã«è¡ããšããããã³ããã·ã¥ã¯ããªãã ãã®ãã®ã«ãªããããã«ä»ã®ã±ã·ã¯ãããŸããããã®ãããSafariã®ãã¹ãŠã®äººãããŒãžããã°ããéãã®ã¯ç¢ºãã§ããããããã圌ãã¯éåžžè¯ãã€ã³ã¿ãŒããããæã£ãŠããããã§ãã 圌ãã¯ã¢ã¹ã¯ã¯ã«ããŠãITã®å°é家ã§ããããã¹ãŠã§ãã ãã®ãããªåçãååšããããšã¯é©ãããšã§ã¯ãããŸããã ããã¯ãããã€ãã®ä»®èª¬ãèŠããšãã«ããããããã§ãã¯ããŠç解ããããã«äœããã®åœ¢ã§èããªããã°ãªããªããšããäºå®ã§ãã
HTTPSãšåŒã°ãããã®ãããªéæ³ã®ãããã³ã«ããããŸãã ç§ãã¡ã¯ç圌ãæãã誰ãã圌ã®ãšãããžè¡ããŸãã 圌ã«ã€ããŠäœãç¥ã£ãŠããŸããïŒ äžè¬ã«ããããã³ã«ã®é床ã¯é ããªããŸãã 誰ãããããããçš®é¡ã®å ¬ééµã®èšç®ãããããçš®é¡ã®ãã³ãã·ã§ã€ã¯ããããäœåãªåŸåŸ©ãããããšãç解ããŠããŸãã äžè¬ã«ã誰ããHTTPSãé ãããšãç¥ã£ãŠããŸãã
ãããã®ã°ã©ããèŠããšãHTTPSã®æåã®ãã€ããéããªã£ãŠããŸãã ç§ã¯ããªãã«ã¹ã±ãžã¥ãŒã«ãèŠããŸãããããã¯ããã§æãéèŠã§ã¯ãããŸããã ããã¯äžçš®ã®çµ±èšã®éžæãã€ãŸã ã»ãšãã©ã®å Žåããã©ãŠã¶ã¯ãã³ãã·ã§ã€ã¯ã®æåã®ãã€ããHTMLã®æåã®ãã€ãã§ãããšèŠãªããŠãããããå°ãé«éã§ãããšèšãããŸãã ããããããã§ã¯ãäžè¬çã«å šäœçã«éããªããšããå¥åŠãªçµè«ããããŸãã ããã¯æ¬åœã§ããHTTPSã¯ããé«éã§ãã ãããŠãããæç¹ã§ã®ãã®çµè«ã¯éåžžã«é説çã§ããããšãå€æããåé¡ãäœã§ããããæãå§ããŸããã
ãã§ã«èŠããŸããã ãããã誰ãããã§ã«å¿ããŠããã®ã§ãç§ã¯åã³èŠããŸãã ãã©ã¡ãŒã¿ã1ãã€ãç®ãŸã§ã®æéããšãhtmlã®éä¿¡æéãã確èªããŸãã ããã§ã¯ããã®ãžã§ãŒã¯ã®é¢ä¿ã«éãããããŸãã ã ããïŒ
ã ããïŒ
ã ããïŒ
ãŸãã¯ïŒ
ã€ãŸããç¹å®ã®ã¹ã±ãžã¥ãŒã«ããããŸããããã¯ãå®éã«ã¯ãã¬ãŒã³ããŒã·ã§ã³ã®æåã®ã¹ã±ãžã¥ãŒã«ã§ãããäœãæãããŠããã®ããç解ããããã«èæ ®ããå¿ èŠããããŸãã
ç§ãã¡ãäœããããèŠãŠãã ãã x軞ã¯åãªããªã¯ãšã¹ãçªå·ã§ãã ãã ãããªã¯ãšã¹ãã¯html転éæéã§ãœãŒããããŸãã ãããŠãy軞ã«ã¯ç·è²ã®ãããïŒæåã®ãã€ããŸã§ã®æéïŒãšé»ããããïŒhtmläŒéãŸã§ã®æéïŒããããŸãã ãã¹ãŠãhtml転éã®æéã§ãœãŒããããããããã¹ãŠã®ãã©ãã¯ãã€ã³ãã¯1ã€ã®é£ç¶ããè¡ã«äžŠãã§ããŸãããããã¯å€å°è«ççã§ãã ãããŠãæåã®ãã€ããŸã§ã®æéããœãŒããããŠããªãããããããã¯æŽåããŠããŸããã§ããããäœããã®çžé¢ãããããšã¯æããã§ããããªãã¡ ããã§ã¯ãæåã®ãã€ãã®ããŒãæéãé·ãã»ã©ãéä¿¡æéãé·ããªããŸãã ãããããã®ã°ã©ãã§ã¯ãæããã«ç°ãªã2ã€ã®ã¯ã©ã¹ã¿ãŒããããŸãã æåã®ã¯ã©ã¹ã¿ãŒã¯ã»ãŒæ£åžžã«åäœããéä¿¡æéã¯çžé¢ããŠãããçŽ70ïŒ ã§ãããå³ç«¯ã®30ïŒ ã¯å¥åŠãªèŠæ±ã®æéã§ãããæ¡ä»¶ä»ãã§ããŒãæéã¯çŽ0ã§ãããæåã®ãã€ãã®æéã¯ãŒãã§ã¯ãããŸããã ã€ãŸãã倧ãŸãã«èšãã°ãããŒãžã¯é·ãé銬鹿ããŠããããã®åŸããã«å®å šã«éäŒããŸããã 質åïŒããã¯äœã§ããïŒ ä¿¡ããããªãã§ãããããããã¯å®éã«ã¯ã¢ã³ããŠã€ã«ã¹ã§ãã
ãŠã€ã«ã¹å¯Ÿçã¯ã©ã®ããã«æ©èœããŸããïŒ ã¢ã³ããŠã€ã«ã¹ã¯ãæããããŠã€ã«ã¹ããšã¯ã¹ããã€ãç»åãããŒãžãªã©ã«ã¢ããããŒãããŠããããšãéåžžã«æããŠããŸãã ãããã£ãŠãhttpãä»ããŠäœããããŒããããšãã¢ã³ããŠã€ã«ã¹ã¯ãã¹ãŠããããã¡ãªã³ã°ããæåŸã®ãã€ããåŸ æ©ãããã°ãããã§ãã¯ããŠãããã¹ãŠãåãåºããŸãã ãã®ããŒãžã¯æ¢ã«ã³ã³ãã¥ãŒã¿ãŒäžã«ãããããããŒãžã®é·æéã®ã¹ããŒããŠã³ãšãããã«å°éããããšãããããŸãã
質åïŒãã®å Žæã§HTTPSã«åãæ¿ãããšã©ããªããŸããïŒ ããã«ããã¹ãŠã®ãŠã€ã«ã¹å¯ŸçãœãããŠã§ã¢ã¯éæ³ã®ãããªããšãããèœåã倱ããããŒãžã¯ãã®åŸããéãããŒããéå§ããŸãã å®éããã®å¹æã¯ããã¹ãŠã®çŽæçãªå€æã«ããããããHTTPSãHTTPãããé«éã§ããçç±ã§ãã ãããŠããããGoogleãFacebookãªã©ã®ãã¹ãŠã®ãµã€ããHTTPSã«åãæ¿ããçç±ã§ã-ããã¯ãã æãã§ãã ããã¯ããçš®ã®éåžžã«é©åœçãªå£°æã§ããããšãç解ããŠããã®ã§ã蚌æ ãæ·»ä»ããŸãã
Proofpic-ããã¯äœã§ããïŒ ããã¯ãç¹å®ã®Yandexå éšã€ã³ã¿ãŒãã§ã€ã¹ããã®åçã§ãã 以åã®ã°ã©ããExcelã§åæç»ããŸãããããã®ã°ã©ããExcelã§åæç»ããå ŽåãProofpicã§ã¯ãªããåœé ã§ããŸãã ãããã£ãŠãããã¯çŽ°ãç·ã§ãéåžžã«äŸ¿å©ã§ã¯ãããŸããã ããã¯ããµã³ã¯ãããã«ãã«ã¯åžã®HTTPSã§ã¯ãªããHTTPSã§ã®ç¹å®ã®YandexããŒãžã®èªã¿èŸŒã¿æéã§ãã ããŒã»ã³ã¿ã€ã«ã¯X軞ã«æ²¿ã£ãŠãããããããããŒãæéã¯å¯Ÿæ°ã§ããã«ãããããããY軞ã«æ²¿ã£ãŠãããããããŸãã èŠæš¡ã¯10äžã1äžã§ã100ã200ã300ã§ã¯ãããŸããããã¹ãŠã®ããŒã»ã³ã¿ã€ã«ã§ã®HTTPSã®æ¹ãé«éã§ããããšãããããŸãã
ããã¯ãŠã©ãžãªã¹ãã¯ã§ãåãã§ãïŒ
YandexããŠã€ã«ã¹å¯Ÿçã«èŠåŽãããšãïŒãŠã€ã«ã¹å¯ŸçäŒç€Ÿãšè¯å¥œãªé¢ä¿ããããŸãïŒãç§ãã¡ã¯ãã¹ãŠãããã¯ã€ãã·ãŒããã«å ¥ããããã«äŸé ŒããŸããã ç·è²ã®ãããã§äœæããã°ã©ãã¯éåžžã«å€ããã®ã§ããããããŸã§ã§ãã ãããããã®å¹æã¯æ¶ããŠããŸããããããã¯æåéã9æã®æ°ããã°ã©ãã£ãã¯ã§ãã ãããã®ã°ã©ãã¯ãç§ãã¡ã®ãµã€ããçŠæ¢ããŠããããŸããŸãªDPIã·ã¹ãã ãæäŸããŠããããã«æããã®ã§ãã€ã³ã¿ãŒãããäžã§æªãããšã¯èŠãŠããŸããã§ããã ãããªããšãããããã§ãã
ãã®ãã£ãŒãã¯ããšãã®ãã®ã§ãïŒ
ãããŠãããã§ã¯ç¶æ³ã¯ãŸã£ããåãã§ãããã·ã¢ã®å倧ãªDPIã¯ãããšã¯äœã®é¢ä¿ããªããããããŸããããäœããã®åœ¢ã§ããã«åå ããŠããŸãã
ãããŠããã®ãã£ãŒãã¯ã€ã¹ã¿ã³ããŒã«ã®ãã®ã§ãã
ã€ã¹ã¿ã³ããŒã«ã§ã¯ãããããã®ããã«ãHTTPSãšHTTPã¯å®è³ªçã«åãã§ãããä»ã®ç¶æ³ããããŸããããã®çç±ã¯ããããŸããã
ç§ãæãçµè«ã¯ãããããéåžžã«ã¹ããŒãã§ãããšèããŠããèšå€§ãªæ°ã®ç°ãªãã¿ã€ãã®ã·ã¹ãã ãããã圌ãã¯ããªããHTTPã«æã£ãŠãããã®ã«éåžžã«èå³ãããããã®ããã«é床ãäœäžãããšããããšã§ãã ãããã£ãŠãã»ãšãã©ãã¹ãŠã®å Žåã«HTTPSã䜿çšããããšããå§ãããŸãã
ããã¯äžçš®ã®äžéçµæã§ãããæåã®éšåã®çµããã§ãã
ãµãŒããŒæéããã¹ãŠã§ã¯ãªãããšã«æ°ä»ããŸããã ãããŠãã¯ã©ã€ã¢ã³ãã枬å®ããæ¹æ³ãç解ããŸããã ããã§ã¯ã£ããããªãã®ã¯ããŠã©ãžãªã¹ãã¯ã§pingãæããã«200ããªç§æªæºã§ããå Žåã95ããŒã»ã³ã¿ã€ã«ã§ã®ããŒãžã®èªã¿èŸŒã¿æéã3ç§ã«ãªãå¯èœæ§ããããšããããšã§ãã ãããŠãããã§ç§ã話ãããããã®ãã©ãŠã¶APIã®æ¬ é¥ãæããã«ãªããŸãããªããªããããã¯ããªãã«æ°åãè¿ããããªãèªèº«ã¯ãã®æ°åãäœããæ¥ãã®ãããããªãããã§ãã
tcpdumpãšåŒã°ããéæ³ã®ããŒã«ããããŸãïŒ
ãã¹ãŠã®ç®¡çè ã¯ããããç¥ã£ãŠããã䜿çšããããšããããŸãã ããŒã«ã¯äœãããŸããïŒ ãã©ãã£ãã¯ãèªåããåé€ããããšãã§ããŸãããµãŒããŒããŠãŒã¶ãŒã«ãã±ãããéä¿¡ãããšããã±ããã¯ãããããã±ãããåä¿¡ããŸããããšãããŠãŒã¶ãŒããéä¿¡ããããããé ä¿¡æéãæ€åºã§ããŸãã åé¡ã¯ãããã¯æéããããããšã§ããã次ã«ããã€ã³ãããšã«é©çšããã1ã€ã®ã»ãã·ã§ã³ãèŠãããšãã§ãã10ã»ãã·ã§ã³ãèŠãããšãã§ããŸãããtcpdumpã§100äžã»ãã·ã§ã³ãèŠãããšãã§ããŸããã äœæ¥ãå®éã«æãã§ãããã®ããã«ã質åã¯æ¬¡ã®ãšããã§ãã ããªããã§ããããšãããããŸããã
ãã®ãããªãªãŒãã³ãœãŒã¹ããŒã«ããããŸãã æžããŸããã
GitHubã§ãããžã§ã¯ããéãã®ãå¿ããããšã«æ°ä»ããŸããããã¬ããŒãã®çŽåŸã«ãããè¡ããŸãã 2çªç®ã®ãªã³ã¯ã«é 眮ãããæåã®ãªã³ã¯ã«è»¢éãããŸãã
ããã¯äœã§ãã ããã¯ãtcpdumpã解æããããŒã«ã§ãã tcpdumpã解æããŠããã¹ããã¡ã€ã«ãäœæããExcelã«èªã¿èŸŒãã§ããã§äœãèµ·ãã£ãŠããã®ããç解ã§ããŸãã ããã¯æçµè£œåã§ã¯ãªããããŒãã³ã¢ãªããŒã«ã§ãããšããã«èšãããšãã§ããŸãã ãæ°è»œã«ãé£çµ¡ãã ããã䜿çšæ¹æ³ãæããŸãã
次ã«ãå®éã«ããŒã«ãšããŠäœ¿çšã§ããçµæãçæããããšããŸãã ãã®ãããªã¹ã¿ã³ããèŠãŠã¿ãŸãããïŒ
ããã¯å€å žçãªã¹ã¿ã³ãã§ãã WebãµãŒããŒãããããã®äžã«ããçš®ã®ãã©ã³ãµãŒããããŸããããšãã°ãnginxã§ãã èŠæ±ã¯ã€ã³ã¿ãŒãããããéä¿¡ãããŸãã ãããã®ãªã¯ãšã¹ãã®ã¿ã€ãã³ã°ãããã«ããããšãç解ããŠã¿ãŸãããã
ã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ãã¯åžžã«ãŒãããªç§ã§å°çããŸããããã¯ãããããæéãã«ãŠã³ããå§ããŠããããã§ãã ç§ãã¡ã®ãã©ã³ãµãŒã¯éåžžã«é«éã§ããæžãããŠããããããã®ãªã¯ãšã¹ãã¯åããŒãããªç§ã§ããã¯ãšã³ãã«éãããŸãã ããã°ãæ¥ãŠãããã«æããŸããã
以äžã WebãµãŒããŒã®çšŒåæéã ãã®ç¹å®ã®WebãµãŒããŒã¯æ¬¡ã®ããã«èšèšãããŠããŸãã 圌ã¯äœã170ããªç§ã«ã€ããŠèããåŸãå®æããããŒãžãå®å šã«æŸæ£ããŸãã ãããŠããªã¯ãšã¹ããéåžž1ã€ã®ããã°ã§ããå Žåãçãã¯ããã€ãã®ããã°ã§ãããæåãšæåŸã®ããã°ãåãåããŸããã圌女ã¯ãã¹ãŠç§ãã¡ã«çãŸãããã¹ãŠãåãåºãã®ã§ãåã³åããã®ã«ãªããŸãæéã ãããŠããã©ã³ãµãŒã¯ãã®ããŒãžããŠãŒã¶ãŒã«é åžãå§ããŸããå®éã«ã¯ãnginxãæžãããŠããŸãã
ãŸãããã©ã³ãµãŒã¯é«éã§ããããã170ããªç§ã§ãŠãŒã¶ãŒã«æåã®ãã€ããæäŸããŸãã 質åïŒåœŒã¯ãã€æåŸã®ãã€ããæäŸããŸããïŒ
ãã®ã°ã©ãã¯ãtcplanzã®çµæã«åºã¥ããŠããŸãã ãã£ãŒãäžã«ã¯äœããããŸããïŒ X軞ã«ã¯ãæéã§ãœãŒãããããªã¯ãšã¹ãçªå·ã衚瀺ãããŸãã ããã«ã¯å®éã«ã¯4æ¬ã®ã©ã€ã³ããããŸããã以äžã®3æ¬ã®ã©ã€ã³ã¯æ¡ä»¶ä»ãã§1æ¬ã«æ¥ç¶ãããŠããŸãããããã¯ãã»ãŒåããã®ã§ããã¹ãŠ170ããªç§ã§ãããäºãã«éãªãåã£ãŠããããã§ãã ãããŠçŽ«è²ã®ç·ã¯ããã©ã³ãµãŒããã®ãŠãŒã¶ãŒãžã®å¿çã®æåŸã®ãã€ãããªããªã£ããšãã§ãã ããã§äœãèŠããŸããïŒ WebãµãŒããŒã¯170ããªç§ã§ããŒãžãäœæããããããŠãŒã¶ãŒã«æäŸãå§ãããšãã«ãæåŸã®ãã€ãã490ããªç§ã§æäŸããŸããã
ã€ãŸã çµè«ã¯æ¬¡ã®ããã«ãªããŸããããã±ããã¯ä»ãŸã§ã©ãã«ã¶ãäžãã£ãŠããŸããïŒããšãã質åããããšãå®éã«ã¯åžžã«ãã±ããããµãŒããŒäžã«ãããŸããã ãŠã©ãžãªã¹ãã¯ã§95ããŒã»ã³ã¿ã€ã«ã3ç§ã§ããå Žåããã®éãã£ãšããã±ãŒãžã¯ãµãŒããŒãé¢ããŸããã ããã¯é説çãªçãã§ãã 次ã«ããããã©ãããæ¥ãã®ãã説æããŸãã
ãã®è³ªåã«å¯ŸããçããåŸãã«ã¯ãTCPã®ä»çµã¿ãç¥ãå¿ èŠããããŸãã TCPã«ã€ããŠã¯ãå€ãã®æ¬ãçŽæ¥æžãããŠããŸãã å¥ã®ãã¬ãŒã³ããŒã·ã§ã³ã§ãTCPã«ã€ããŠè©±ãããšãã§ããŸããã1ã€ã®ã¹ã©ã€ãã§èª¬æããããã«ããŸãã ããã¯éåžžã«åå§çã§ããããšãå€æããŸããã
ç解ããå¿ èŠããã3ã€ã®TCPã®æŠå¿µãããã«èšè¿°ãããŠããŸãã
- æåã¯ããããã åŸåŸ©æé-ããã¯ããã±ãããç®çã®ãµãŒããŒã«å°éããŠæ»ã£ãŠããæéã§ãã pingãŠãŒãã£ãªãã£ã䜿çšãããšãããã«è¡šç€ºãããæ°å€ãåŸåŸ©ã®æéã«ãªããŸãã
- 次ã«ãACKã®æŠå¿µããããŸã-ããã¯é
ä¿¡ã®ç¢ºèªã§ãã ããŒã¿ã®ãã±ããããŠãŒã¶ãŒã«æãããšããã±ããã¯ããããããŒã¿ãåãåã£ãããšãããŠãŒã¶ãŒããæ¥ãŸãããã®ãã±ããã«ããããã±ãããšackã®æéå·®ãååã«åå²ãããããããŒã¿ããã€å°çããããç解ã§ããŸãããŠãŒã¶ãŒã§ã 1ã€ã®ack ackã§è€æ°ã®ããã±ãŒãžã䜿çšããããããackããã¹ãŠã®ããã±ãŒãžã«å±ãããã§ã¯ãªãããšã«æ³šæããŠãã ããã
- 3çªç®ã®æŠå¿µã¯cwndãšåŒã°ããŸã-ããã¯ãããã 茻茳ãŠã£ã³ããŠã ããã¯äœã§ãã ããã¯ç¹å®ã®æ°ã§ããã€ãŸãã確èªãªãã§éä¿¡ã§ãããã±ããã®æ°ãã€ãŸã ããã€ãã®ãã±ãããéä¿¡ããå°çãããŸã§ç¢ºèªãåŸ
ã¡ãŸãã
é ä¿¡ã®é床ã決å®ãããã®ã ã«ãŒã«ã¯éåžžã«åçŽã§ãããã¹ãŠã®CWNDãã±ããã«å¯ŸããŠãrttæéãå¿ èŠãšããŸãã ã€ãŸã ã€ã³ã¿ãŒãããã§ã¯ãäžè¬çãªãã±ãããµã€ãºã¯1450ãã€ããŸãã¯1410ã§ããcwnd= 10ãrtt = 100ã®å Žåã1ç§ããã145 KBã®ã¹ããªãŒã é床ã«ãªããŸãã cwnd = 100ãrtt = 50ã®å Žåãé床ã¯æ¯ç§çŽ3ã¡ãŒãã«ã«ãªããŸãã ãŸããcwndã¯ããŒãã³ãŒãã£ã³ã°ããããã©ã¡ãŒã¿ãŒã§ã¯ãªããTCPãã£ãã«ã®é床ãå¶åŸ¡ãããã©ã¡ãŒã¿ãŒã§ãã å®éã«é©çšã§ããããªã·ãŒã¯ãããããããŸãããã«ãŒã«ã¯éåžžã«åçŽã§ããcwndã¯ãããŸã§ã®ãšãããã£ãããšæé·ããŠããŸããã ãã±ããã移åãããã£ãã«ã§äœãæªãããšãèµ·ãã£ããšãããã±ããã倱ããããšããã²ã©ãèœã¡ãŸãã é©çšã§ããäžè¬çãªããªã·ãŒ-åackã«å¯ŸããŠ1ã€ãã€å¢å ãããã±ããã倱ããããšååã«ãªããŸãã ããã¯æãå€ããã®ã§ãä»ã§ã¯ããããçš®é¡ã®æ°ããæ¿æ²»å®¶ããããã¡ãã·ã§ããã«ãªãã®ãªã©ã§ãã
ã§ã¯ãTCPã«ã€ããŠäœãç¥ã£ãŠããŸããïŒ äžè¬ã«ãããã¯70幎ç®ã«äœãããææ°ã®ãããã³ã«ã§ãçŸåšã¯å°ãæ代é ãã§ãã , , 70- . , - TP-, , -, .
, , .. , wi-fi, , . assumption , , : congestion. ããã¯äœã§ãã , , , , â 100- 100- , , , , . TCP , , , , , . , . ãªãã§ïŒ , , , wi-fi, wi-fi , , .
, wi-fi. , - , . wi-fi :
, wi-fi , . Wi-fi , , .. , wi-fi , . wi-fi 12.5 , - wi-fi , .. 12.5 , 12.5 , .. , . , . wi-fi , . TCP, wi-fi , , , .
â wi-fi vs TCP. , - 2000 rtt=100. 2000 , . , - , . wi-fi , 20 . , 20 . ã€ãŸã 5% wi-fi â , wi-fi. , , , 80% - . , TCP-, : rtt=100 5%. , . , , .
ã©ãããïŒ â .
-, , , -, , - . , - , .. , . - .
, CDN, , CDN - , , , - . , . , CDN , - , loop, TCP- 5% rtt=100. TCP-, 0% rtt=90, - , 0% KeepAlive-, CWND - , . CDN- 5% , , , rtt 10 .
TCP. , Initial CWND, CWND, TCP-. Initial CWND=10. «10» , , - .
. RFC, , 1 2. - RFC, , 2 4. Google , 10. , , 10 â , , ? 10 , , 3-4 rtt, 10 14 . , 3, 4 rtt, . , , .. , .
.
, . , initial cwnd=20. , sysctl unix'. ? 4 . â , . tcpdump. ã€ãŸã , , , 2/3. â ack , . tcpdump , , . ã€ãŸã sysctl . , TCP .
, , , , , â , . , .
:
? . , TCP. , CWND . ã€ãŸã , 60 â 40 , . , , 1 . 40 . , , , , 70%. - â , , , , . , - , , selective ack (, « , 3, 10, 17- », 3, 10, 17- ). T.O. : 1-2 rtt. ã€ãŸã , 3 . , TCP , .
, , TCP - , , . ã€ãŸã user agent , mobile safari -, , - , .
, QUIC. , UD-based. , , TCP, UDP. â , user space. user agent .. , QUIC, , , . ãªãã§ïŒ , , , .
. , : CDN, , â , . 1 . , , , , , congestion' , , CDN , , CWND , . CDN - .
.
, 3 , , , - , , - .
, - . , , , , QUIC .
â , , , . Tools' , Timing API , tcpdump, , . .
é£çµ¡å
» anatolix@yandex.ru
» den@yandex-team.ru
»
ç§ãã¡ã¯ãããã®ã¬ããŒããäœãããæ°ã«å ¥ã£ãŠããŸã-æçšã§ããããªã¹ããŒïŒãããŠä»ã¯èªè ïŒãå€ãã®æéãç¯çŽã§ããå®éã®ç 究ã
ãã®ã¬ããŒãã¯ãé«è² è·ã·ã¹ãã HighLoad ++ã®éçºè ã®äŒè°ã§è¡ãããæé«ã®ã¹ããŒãã®1ã€ã®è»¢åã§ãã
ãŸãããããã®è³æã®äžéšã¯ãé«è² è·ã·ã¹ãã HighLoadã®éçºã«é¢ãããªã³ã©ã€ã³ãã¬ãŒãã³ã°ã³ãŒã¹ã§äœ¿çšãããŸãã¬ã€ãã¯ãç¹å¥ã«éžæãããæåãèšäºãè³æããããªã®ãã§ãŒã³ã§ãã ç§ãã¡ã®æç§æžã«ã¯ãã§ã«30以äžã®ãŠããŒã¯ãªè³æããããŸãã æ¥ç¶ããŠãã ããïŒ
ããŠãäž»ãªãã¥ãŒã¹ã¯ãHighLoad ++ Juniorãå«ã8ã€ã®ã«ã³ãã¡ã¬ã³ã¹ãå«ãæ¥ç¥ããRussian Internet Technologiesãã®æºåãéå§ããããšã§ãããžã¥ãã¢ã¯åäŸåãã§ã¯ãããŸããïŒJuniorã¯ãã³ã³ãµã«ã¿ã³ãã«äœçŸãã®ãµãŒããŒãmegarasharedããŒã¿ããŒã¹ãIgor Sysoevãæããã«ãé«è² è·ã§äœæ¥ããæ¹æ³ã«ã€ããŠã§ããçŸå®ã®ç¶æ³ã§ã®ãã€ããŒã