เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เป€เบ›เบฑเบ™เบ—เบตเปˆเปœเป‰เบฒเบชเบปเบ™เปƒเบˆเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเป€เบšเบดเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบกเบฑเบเบ‚เบฝเบ™เบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™. เปเบ•เปˆเบ–เป‰เบฒเบชเบดเปˆเบ‡เบžเบดเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบเปˆเบฝเบงเบเบฑเบš QUIC เป€เบ›เบฑเบ™เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”เบซเบผเบฒเบเบเบงเปˆเบฒ (เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™) เบ—เปเบฒเบกเบฐเบŠเบฒเบ”เปเบฅเบฐเบฎเบฒเบ”เปเบง, เบกเบทเป‰เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบเบดเบ™เบ”เบตเบ—เบตเปˆเบˆเบฐเป€เบœเบตเบเปเบœเปˆเบเบฒเบ™เปเบ›เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ - เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เปƒเบ™เบ›เบต 2019. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เบˆเบญเบ”เบฅเบปเบ”เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ Uber, เป€เบŠเบดเปˆเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบเบทเบญเบšเบ—เบปเปˆเบงเป‚เบฅเบ. เบงเบดโ€‹เบชเบฐโ€‹เบงเบฐโ€‹เบเบญเบ™โ€‹เบ‚เบญเบ‡โ€‹เบšเปโ€‹เบฅเบดโ€‹เบชเบฑเบ”โ€‹เบกเบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบเบฒเบ™โ€‹เบ•เบฑเบ”โ€‹เบชเบดเบ™โ€‹เปƒเบˆโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ QUIC เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹, เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เปเบฅเบฐโ€‹เบชเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เป€เบซเบฑเบ™โ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบกเป‰เบงเบ™โ€‹เบกเบฑเบ™โ€‹เบญเบญเบโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ” - เบ‚เป‰เบฒเบ‡โ€‹เบฅเบธเปˆเบกโ€‹เบ™เบตเป‰โ€‹เบเบฒเบ™โ€‹เบ•เบฑเบ”โ€‹.

เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เปเบกเปˆเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ„เบฅเบดเบโ€‹เปƒเบชเปˆโ€‹. เบกเปˆเบงเบ™เบเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™!

เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

Uber เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ—เบปเปˆเบงเป‚เบฅเบ, เบ„เบท 600 เป€เบกเบทเบญเบ‡เบ—เบตเปˆเบกเบต, เปƒเบ™เปเบ•เปˆเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเบซเบผเบฒเบเบเปˆเบงเบฒ 4500 เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบ—เบฅเบฐเบชเบฑเบšเบกเบทเบ–เบท. เบœเบนเป‰เปƒเบŠเป‰เบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒ app เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเป„เบง, เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡ - เป€เบžเบทเปˆเบญเบšเบฑเบ™เบฅเบธเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ™เบตเป‰, เปเบญเบฑเบšเบฏ Uber เบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบ•เปˆเปเบฒเปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบซเบผเบฒเบ. เบญเบฐเบ™เบดเบˆเบฒ, เปเบ•เปˆ stack เป„เบ”เป‰ HTTP / 2 เบšเปเปˆเป€เบฎเบฑเบ”เป„เบ”เป‰เบ”เบตเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป„เบฎเป‰เบชเบฒเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง เปเบฅเบฐเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‡เปˆเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบ”เบตเปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เป‚เบ”เบเบเบปเบ‡เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” TCP เปƒเบ™เปเบเปˆเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™.

เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰ QUIC, เป‚เบ›เป‚เบ•เบ„เบญเบ™เบเบฒเบ™ multiplexing เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡เบซเบผเบฒเบเบ‚เบถเป‰เบ™. เบ›เบฐเบˆเบธโ€‹เบšเบฑเบ™โ€‹เปเบกเปˆเบ™โ€‹เบ„เบฐเบ™เบฐโ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบ เบญเบปเบ‡เบเบฒเบ™ IETF เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ QUIC เป€เบ›เบฑเบ™ HTTP / 3.

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบฐเบซเบผเบธเบšเบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” QUIC เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบซเบฒเบ‡เบ•เปˆเปเบฒเป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบš TCP. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบเบฒเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เปƒเบ™เบฅเบฐเบ”เบฑเบš 10-30% เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ HTTPS เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฑเบšเบ‚เบตเปˆเปเบฅเบฐเบœเบนเป‰เป‚เบ”เบเบชเบฒเบ™. QUIC เบเบฑเบ‡เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบšเบ„เบธเบกเปเบžเบฑเบเป€เบเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰เปเบšเบšเบ•เบปเป‰เบ™เบ—เบฒเบ‡เป€เบ–เบดเบ‡เบ›เบฒเบเบ—เบฒเบ‡.

เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเปเบšเปˆเบ‡เบ›เบฑเบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš TCP เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Uber เป‚เบ”เบเปƒเบŠเป‰ stack เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ QUIC.

เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบŠเบตเบซเบฅเป‰เบฒเบชเบธเบ”: TCP

เบกเบทเป‰เบ™เบตเป‰, TCP เปเบกเปˆเบ™เป‚เบ›เป‚เบ•เบ„เบญเบ™เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡เบ—เบตเปˆเปƒเบŠเป‰เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ HTTPS เปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”. TCP เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ™เป‰เปเบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ bytes, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบฎเบฑเบšเบกเบทเบเบฑเบšเบ„เบงเบฒเบกเปเบญเบญเบฑเบ”เบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบฅเบฐเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบŠเบฑเป‰เบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เบ‚เบญเบ‡ TCP เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ HTTPS เปเบกเปˆเบ™เป€เบ™เบทเปˆเบญเบ‡เบกเบฒเบˆเบฒเบเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบญเบฐเบ”เบตเบ” (เป€เบเบทเบญเบšเบ—เบธเบ OS เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ TCP), เบกเบตเบขเบนเปˆเปƒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เบชเปˆเบงเบ™เปƒเบซเบเปˆ (เป€เบŠเบฑเปˆเบ™: load balancers, HTTPS proxies เปเบฅเบฐ CDNs), เปเบฅเบฐเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ™เบญเบเบเปˆเบญเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆ. เปƒเบ™เป€เบเบทเบญเบšเบ—เบธเบเป€เบงเบ—เบต เปเบฅเบฐเป€เบ„เบทเบญเบ‚เปˆเบฒเบ.

เบœเบนเป‰เปƒเบŠเป‰เบชเปˆเบงเบ™เปƒเบซเบเปˆเปƒเบŠเป‰ app เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เป€เบงเบฅเบฒเป€เบ”เบตเบ™เบ—เบฒเบ‡, เปเบฅเบฐ TCP เบซเบฒเบ‡ latencies เบšเปเปˆเบกเบตเบšเปˆเบญเบ™เปƒเบ”เบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ HTTPS เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เป€เบงเบฅเบฒเบˆเบดเบ‡. เป€เบงเบปเป‰เบฒเบ‡เปˆเบฒเบเป†, เบœเบนเป‰เปƒเบŠเป‰เบ—เบปเปˆเบงเป‚เบฅเบเป„เบ”เป‰เบ›เบฐเบชเบปเบšเบเบฑเบšเบชเบดเปˆเบ‡เบ™เบตเป‰ - เบฎเบนเบšเบ—เบต 1 เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเปƒเบ™เบ•เบปเบงเป€เบกเบทเบญเบ‡เปƒเบซเบเปˆ:

เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบฎเบนเบšเบ—เบต 1: เบ„เบงเบฒเบกเบขเบทเบ”เบขเบธเปˆเบ™เบ‚เบญเบ‡เบซเบฒเบ‡เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป„เบ›เบ—เบปเปˆเบงเป€เบกเบทเบญเบ‡เบซเบผเบฑเบเบ‚เบญเบ‡ Uber.

เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเป€เบงเบฅเบฒ latency เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบญเบดเบ™เป€เบ”เบเปเบฅเบฐ Brazilian เปเบกเปˆเบ™เบชเบนเบ‡เบเบงเปˆเบฒเปƒเบ™เบชเบฐเบซเบฐเบฅเบฑเบ”เปเบฅเบฐเบญเบฑเบ‡เบเบดเบ”, เบเบฒเบ™ latency เบซเบฒเบ‡เปเบกเปˆเบ™เบชเบนเบ‡เบเปˆเบงเบฒ latency เบชเบฐเป€เบฅเปˆเบเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ. เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบชเบฐเบซเบฐเบฅเบฑเบ”เปเบฅเบฐเบญเบฑเบ‡เบเบดเบ”.

TCP เปƒเบ™เป„เบฅเบเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฒเบ‡เบญเบฒเบเบฒเบ”

TCP เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš เบกเบตเบชเบฒเบ เป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป‚เบ”เบเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เบชเบนเบ‡. เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เป„เบฎเป‰เบชเบฒเบ เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบ. เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”, เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป„เบฎเป‰เบชเบฒเบเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบญเปˆเบญเบ™เป„เบซเบงเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบชเบนเบ™เป€เบชเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เปเบŠเบเปเบŠเบ‡เปเบฅเบฐเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบชเบฑเบ™เบเบฒเบ™. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Wi-Fi เบกเบตเบ„เบงเบฒเบกเบญเปˆเบญเบ™เป„เบซเบงเบ•เปเปˆเบเบฑเบšเป„เบกเป‚เบ„เป€เบงเบŸ, bluetooth เปเบฅเบฐเบ„เบทเป‰เบ™เบงเบดเบ—เบฐเบเบธเบญเบทเปˆเบ™เป†. เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ—เบฅเบฐเบชเบฑเบšเบกเบทเบ–เบทเบ—เบปเบ™เบ—เบธเบเบˆเบฒเบเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบชเบฑเบ™เบเบฒเบ™ (เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบชเบนเบ™เป€เบชเบ) เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบชเบฐเบ—เป‰เบญเบ™ / เบเบฒเบ™เบ”เบนเบ”เบŠเบถเบกเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบ™เป‚เบ”เบเบงเบฑเบ”เบ–เบธเปเบฅเบฐเบญเบฒเบ„เบฒเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบˆเบฒเบ เปเบŠเบเปเบŠเบ‡ เบˆเบฒเบโ€‹เป€เบžเบทเปˆเบญเบ™โ€‹เบšเป‰เบฒเบ™ towers เบซเป‰เบญเบ‡. เบ™เบตเป‰เบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบ (4-10 เป€เบ—เบทเปˆเบญ) เปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบซเบผเบฒเบเบซเบผเบฒเบเบซเบผเบฒเบ เป€เบงเบฅเบฒเป„เบ›เบเบฑเบš (RTT) เปเบฅเบฐเบเบฒเบ™เบชเบนเบ™เป€เบชเบเปเบžเบฑเบเป€เบเบฑเบ”เบ—เบฝเบšเบเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเบกเบตเบชเบฒเบ.

เป€เบžเบทเปˆเบญเบ•เปเปˆเบชเบนเป‰เบเบฑเบšเบเบฒเบ™เป€เปœเบฑเบ‡เบ•เบตเบ‡ เปเบฅเบฐเบเบฒเบ™เบชเบนเบ™เป€เบชเบเปเบšเบ™เบงเบดเบ”, เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ—เบฅเบฐเบชเบฑเบšเบกเบทเบ–เบทเป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเบˆเบฐเปƒเบŠเป‰ buffers เบ‚เบฐเปœเบฒเบ”เปƒเบซเบเปˆเบชเบณเบฅเบฑเบšเบเบฒเบ™เป€เบเบตเบ”เบเบฒเบ™เบˆเบฒเบฅเบฐเบˆเบญเบ™. เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบˆเบฑเบ”เปเบ–เบงเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบ•เปเปˆเป„เบ›เบญเบตเบเปเบฅเป‰เบง. เป€เบฅเบทเป‰เบญเบเป† TCP เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆเบเบฒเบ™เบˆเบฑเบ”เปเบ–เบงเบ™เบตเป‰เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เป€เบชเบ”เป€เบซเบผเบทเบญเบญเบฑเบ™เป€เบ™เบทเปˆเบญเบ‡เบกเบฒเบˆเบฒเบเบเบฒเบ™เปเบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบเบญเบญเบเป„เบ›, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ TCP เบกเบฑเบเบˆเบฐเบชเบปเปˆเบ‡เบ•เปเปˆ เปเบฅเบฐเป€เบฎเบฑเบ”เปเบ™เบงเบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆ buffer. เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ bufferbloat (buffering เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›, buffer bloat), เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบซเบผเบฒเบ เบšเบฑเบ™เบซเบฒเบฎเป‰เบฒเบเปเบฎเบ‡ เบญเบดเบ™โ€‹เป€เบ•เบตโ€‹เป€เบ™เบฑเบ”โ€‹เบ—เบตเปˆโ€‹เบ—เบฑเบ™โ€‹เบชเบฐโ€‹เป„เบซเบกโ€‹.

เบชเบธเบ”เบ—เป‰เบฒเบ, เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบกเบทเบ–เบทเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป„เบ›เบ•เบฒเบกเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™, เบžเบฒเบเบžเบทเป‰เบ™ เปเบฅเบฐเป€เบงเบฅเบฒ. เปƒเบ™เบฎเบนเบšเบ—เบต 2, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบเบฑเบšเบเปเบฒเบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบชเบฐเป€เบฅเปˆเบเบ‚เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ HTTPS เปƒเบ™เบ—เบปเปˆเบงเป€เบŠเบฅเบžเบฒเบเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ” 2 เบเบดเป‚เบฅเปเบกเบฑเบ”. เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เป€เบเบฑเบšโ€‹เบเปเบฒโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบชเบญเบ‡โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป‚เบ—เบฅเบฐโ€‹เบชเบฑเบšโ€‹เบกเบทโ€‹เบ–เบทโ€‹เบ—เบตเปˆโ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เปƒเบ™ Delhiโ€‹, เบ›เบฐโ€‹เป€เบ—เบ”โ€‹เบญเบดเบ™โ€‹เป€เบ”เบโ€‹. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป„เบ›เบˆเบฒเบเปเบ•เปˆเบฅเบฐเบซเป‰เบญเบ‡. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบชเบญเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เบญเบดเบ”เบ—เบดเบžเบปเบ™เบˆเบฒเบเบ›เบฑเบ”เปƒเบˆเป€เบŠเบฑเปˆเบ™: เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เป€เบงเบฅเบฒเปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆ, เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™เบ‚เบญเบ‡ tower เปเบฅเบฐเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (LTE, 3G, เปเบฅเบฐเบญเบทเปˆเบ™เป†).

เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบฎเบนเบšเบ—เบต 2. เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเป‚เบ”เบเปƒเบŠเป‰เบฅเบฑเบ”เบชเบฐเปเบต 2 เบเบดเป‚เบฅเปเบกเบฑเบ”เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡. เป€เบ”เบฅเบต, เบญเบดเบ™เป€เบ”เบ.

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ—เบฅเบฐเบชเบฑเบšเบกเบทเบ–เบทเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป„เบ›เบ•เบฒเบกเป€เบงเบฅเบฒ. เบฎเบนเบšเบ—เบต 3 เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเปœเบญเบ‡เบ›เบฒเบ™เบเบฒเบ‡เป‚เบ”เบเบกเบทเป‰เบ‚เบญเบ‡เบญเบฒเบ—เบดเบ”. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป„เบ”เป‰เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒ, เบžเบฒเบเปƒเบ™เบกเบทเป‰เบ”เบฝเบงเปเบฅเบฐเบŠเบปเปˆเบงเป‚เบกเบ‡.

เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบฎเบนเบš 3. เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบซเบฒเบ‡เบชเบฒเบกเบฒเบ”เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบฅเบฐเบซเบงเปˆเบฒเบ‡เบกเบทเป‰, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ›เบฐเบเบญเบšเบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™.

เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” TCP เบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป„เบฎเป‰เบชเบฒเบ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบš TCP, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบเปˆเบฝเบงเบเบฑเบšเบˆเบธเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • TCP เปเบกเปˆเบ™เบœเบนเป‰เบเบฐเบ—เปเบฒเบœเบดเบ”เบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบฅเบฑเบ‡ latencies เบซเบฒเบ‡เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบšเป?
  • เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบกเบตเบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเป„เบ›เบเบฑเบš (RTT) เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบฅเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบšเป?
  • เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡ RTT เปเบฅเบฐเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” TCP เปเบกเปˆเบ™เบซเบเบฑเบ‡?

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš TCP

เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” TCP, เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เป„เบงเป†เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™ TCP เป‚เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบœเบนเป‰เบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบœเบนเป‰เบฎเบฑเบš. เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”, เบœเบนเป‰เบชเบปเปˆเบ‡เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP, เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฒเบกเบ—เบฒเบ‡ เบˆเบฑเบšเบกเบท: เบœเบนเป‰เบชเบปเปˆเบ‡เบˆเบฐเบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ” SYN, เบฅเปเบ–เป‰เบฒเปเบžเบฑเบเป€เบเบฑเบ” SYN-ACK เบˆเบฒเบเบœเบนเป‰เบฎเบฑเบš, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ” ACK. เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเบชเบญเบ‡เปเบฅเบฐเบ—เบตเบชเบฒเบกเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP. เบœเบนเป‰เบฎเบฑเบšเบฎเบฑเบšเบฎเบนเป‰เบเบฒเบ™เบฎเบฑเบšเปเบ•เปˆเบฅเบฐเบŠเบญเบ‡ (ACK) เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰.

เบ–เป‰เบฒเปเบžเบฑเบเป€เบเบฑเบ”เบซเบผเบท ACK เบซเบฒเบเป„เบ›, เบœเบนเป‰เบชเบปเปˆเบ‡เบˆเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบซเบกเบปเบ”เป€เบงเบฅเบฒ (RTO, เปเบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ). RTO เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ›เบฑเบ”เปƒเบˆเบ•เปˆเบฒเบ‡เป†, เป€เบŠเบฑเปˆเบ™เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒ RTT เบ—เบตเปˆเบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบฅเบฐเบซเบงเปˆเบฒเบ‡เบœเบนเป‰เบชเบปเปˆเบ‡เปเบฅเบฐเบœเบนเป‰เบฎเบฑเบš.

เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบฎเบนเบšเบ—เบต 4. เบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เปเบžเบฑเบเป€เบเบฑเบ”เปƒเบ™เป„เบฅเบเบฐ TCP/TLS เบ›เบฐเบเบญเบšเบกเบตเบเบปเบ™เป„เบเบเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™.

เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” TCP เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบดเบ”เบ•เบฒเบกเบŠเบธเบ” TCP เป‚เบ”เบเปƒเบŠเป‰ tcpdump เบชเปเบฒเบฅเบฑเบšเบซเบ™เบถเปˆเบ‡เบญเบฒเบ—เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบเบฒเบ™เบ•เปเปˆเบชเบนเป‰เบ—เบตเปˆเบกเบฒเบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบšเบ‚เบญเบ‡เบญเบดเบ™เป€เบ”เบ. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เป‚เบ”เบเปƒเบŠเป‰ tcptrac. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Android เบ—เบตเปˆเบชเบปเปˆเบ‡เบเบฒเบ™เบˆเบฒเบฅเบฐเบˆเบญเบ™เปเบšเบšเบˆเบณเบฅเบญเบ‡เป„เบ›เบซเบฒเป€เบŠเบตเบšเป€เบงเบตเบ—เบปเบ”เบชเบญเบš, เบฅเบฝเบ™เปเบšเบšเบเบฒเบ™เบˆเบฒเบฅเบฐเบˆเบญเบ™เบ•เบปเบงเบˆเบดเบ‡เปƒเบซเป‰เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เป‚เบ—เบฅเบฐเบชเบฑเบšเบชเบฐเบกเบฒเบ”เป‚เบŸเบ™เบ—เบตเปˆเบกเบตเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเปเบˆเบเบขเบฒเบเปƒเบซเป‰เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบซเบผเบฒเบเบ„เบปเบ™, เบœเบนเป‰เบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™เบšเบฑเบ™เบ—เบถเบเปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒเบซเบผเบฒเบเบกเบทเป‰.

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบ—เบฑเบ‡เบชเบญเบ‡เปเบกเปˆเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบซเบฑเบ™ latencies RTT เบชเบนเบ‡; เบ„เปˆเบฒเบซเบฒเบ‡เปเบกเปˆเบ™เป€เบเบทเบญเบš 6 เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบ„เปˆเบฒเบชเบฐเป€เบฅเปˆเบ; เบ•เบปเบงเป€เบฅเบเบชเบฐเป€เบฅเปˆเบเบ‚เบญเบ‡เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเปเบกเปˆเบ™เบซเบผเบฒเบเบเบงเปˆเบฒ 1 เบงเบดเบ™เบฒเบ—เบต. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเป„เบ”เป‰เบชเบนเบ™เป€เบชเบ, เป€เบฎเบฑเบ”เปƒเบซเป‰ TCP เบชเบปเปˆเบ‡เบ„เบทเบ™เปƒเบซเบกเปˆ 3,5% เบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”. เปƒเบ™เป€เบ‚เบ”เบ—เบตเปˆเปเบญเบญเบฑเบ”เป€เบŠเบฑเปˆเบ™: เบชเบฐเบซเบ™เบฒเบกเบšเบดเบ™เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบตเบฅเบปเบ”เป„เบŸ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบนเบ™เป€เบชเบ 7%. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบชเบปเบ‡เปƒเบชเปƒเบ™เบ›เบฑเบ™เบเบฒเบ—เปเบฒเบกเบฐเบ”เบฒเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ—เบฅเบฐเบชเบฑเบšเบกเบทเบ–เบท เบงเบปเบ‡เบˆเบญเบ™ retransmission เบ‚เบฑเป‰เบ™เบชเบนเบ‡ เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡. เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบˆเบฒเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ "simulator":

เบเบฒเบ™เบงเบฑเบ”เปเบ—เบเป€เบ„เบทเบญเบ‚เปˆเบฒเบ
เบ„เบธเบ™เบ„เปˆเบฒ

RTT, เบกเบดเบ™เบฅเบดเบงเบดเบ™เบฒเบ—เบต [50%, 75%, 95%, 99%]
[350, 425, 725, 2300]

เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ‚เบญเบ‡ RTT, เบงเบดเบ™เบฒเบ—เบต
เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบ ~1,2 เบงเบดเบ™เบฒเบ—เบต

เบเบฒเบ™เบชเบนเบ™เป€เบชเบเปเบžเบฑเบเป€เบเบฑเบ”เปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบšเปเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡
เบชเบฐเป€เบฅเปˆเบ ~3.5% (7% เปƒเบ™เป€เบ‚เบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เป‚เบซเบผเบ”เป€เบเบตเบ™)

เป€เบเบทเบญเบšเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบตเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”, เบชเปˆเบงเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เปเบžเบฑเบเป€เบเบฑเบ” SYN เปเบฅเบฐ SYN-ACK. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” TCP เบชเปˆเบงเบ™เปƒเบซเบเปˆเปƒเบŠเป‰เบ„เปˆเบฒ RTO 1 เบงเบดเบ™เบฒเบ—เบตเบชเปเบฒเบฅเบฑเบšเปเบžเบฑเบเป€เบเบฑเบ” SYN, เป€เบŠเบดเปˆเบ‡เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ•เปเปˆเบกเบฒ. เป€เบงเบฅเบฒเป‚เบซเบผเบ”เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ TCP เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบเบงเปˆเบฒเปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™, เบกเบนเบ™เบ„เปˆเบฒ RTO เบชเบนเบ‡เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบŠเบปเปˆเบงเบ„เบฒเบงเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป„เบฎเป‰เบชเบฒเบ. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบžเบปเบšโ€‹เป€เบซเบฑเบ™โ€‹เบงเปˆเบฒโ€‹เป€เบงโ€‹เบฅเบฒ retransmission เป‚เบ”เบโ€‹เบชเบฐโ€‹เป€เบฅเปˆเบโ€‹เปเบกเปˆเบ™โ€‹เบ›เบฐโ€‹เบกเบฒเบ™ 1 เบงเบดโ€‹เบ™เบฒโ€‹เบ—เบตโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบŠเบฑเบโ€‹เบŠเป‰เบฒโ€‹เบซเบฒเบ‡โ€‹เป€เบเบทเบญเบš 30 เบงเบดโ€‹เบ™เบฒโ€‹เบ—เบตโ€‹. latencies เบชเบนเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบš TCP เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒ HTTPS เปเบฅเบฐเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ„เบทเบ™เปƒเบซเบกเปˆ, เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบฅเบฐเบ„เบงเบฒเบกเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบ›เบตเป€เบŠเบฑเบ™เบ—เบต 75 เบ‚เบญเบ‡เบเบฒเบ™เบงเบฑเบ”เปเบ—เบ RTT เปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™ 425 ms, เป€เบ›เบตเป€เบŠเบฑเบ™เบ—เบต 75 เบชเปเบฒเบฅเบฑเบš TCP เปเบกเปˆเบ™เป€เบเบทเบญเบš 3 เบงเบดเบ™เบฒเบ—เบต. เบ™เบตเป‰เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบชเบนเบ™เป€เบชเบเป€เบฎเบฑเบ”เปƒเบซเป‰ TCP เปƒเบŠเป‰เป€เบงเบฅเบฒ 7-10 passes เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”. เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ RTO เบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เบ„เบงเบฒเบกเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ TCP เป€เบžเบทเปˆเบญเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบขเปˆเบฒเบ‡เป„เบงเบงเบฒ. เปเบžเบฑเบเป€เบเบ”เบซเบผเป‰เบฒเบชเบธเบ” เบขเบนเปˆเปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเปเบฅเบฐเบ„เบงเบฒเบกเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบก congestion algorithm, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เบˆเปเบฒเปเบ™เบเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเบนเบ™เป€เบชเบเป„เบฎเป‰เบชเบฒเบเปเบฅเบฐเบเบฒเบ™เบชเบนเบ™เป€เบชเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเปเบญเบญเบฑเบ”เบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบชเบนเบ™เป€เบชเบ TCP:

เบชเบฐเบ–เบดเบ•เบดเบเบฒเบ™เบชเบนเบ™เป€เบชเบเปเบžเบฑเบเป€เบเบฑเบ” TCP
เบกเบนเบ™เบ„เปˆเบฒ

เป€เบ›เบตเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบนเบ™เป€เบชเบเปเบžเบฑเบเป€เบเบฑเบ”เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ 1
45%

เป€เบ›เบตเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบชเบนเบ™เป€เบชเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ
30%

เป€เบ›เบตเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบชเบนเบ™เป€เบชเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบ‚เปเป‰เบกเบนเบ™
76%

เบเบฒเบ™เปเบœเปˆเบเบฐเบˆเบฒเบเบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเปƒเบ™ retransmission, เบงเบดเบ™เบฒเบ—เบต [50%, 75%, 95%, 99%] [1, 2.8, 15, 28]

เบเบฒเบ™เปเบˆเบเบขเบฒเบเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ retransmissions เบชเปเบฒเบฅเบฑเบšเบซเบ™เบถเปˆเบ‡ packet เบซเบผเบท TCP segment
[1,3,6,7]

เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡ QUIC

เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Google, QUIC เปเบกเปˆเบ™เป‚เบ›เป‚เบ•เบ„เบญเบ™เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบซเบผเบฒเบเบเบฐเบ—เบนเป‰เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡ UDP. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ QUIC เบขเบนเปˆเปƒเบ™ เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ (เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เปเบฅเป‰เบงเบงเปˆเบฒเบกเบต, เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™, เบชเบญเบ‡เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ QUIC, curious เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ - เบ›เบฐโ€‹เบกเบฒเบ™โ€‹. เบ™เบฑเบเปเบ›). เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบš 5, QUIC เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเบžเบฒเบเปƒเบ•เป‰ HTTP / 3 (เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, HTTP / 2 เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡ QUIC เปเบกเปˆเบ™ HTTP / 3, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบˆเบธเบšเบฑเบ™เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”). เบกเบฑเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™เปเบ—เบ™เบŠเบฑเป‰เบ™ HTTPS เปเบฅเบฐ TCP เป‚เบ”เบเปƒเบŠเป‰ UDP เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบžเบฑเบเป€เบเบฑเบ”. QUIC เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบเบฒเบ™โ€‹เป‚เบญเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบ›เบญเบ”โ€‹เป„เบžโ€‹เบเป‰เบญเบ™โ€‹เบงเปˆเบฒ TLS เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบ•เบฑเบกโ€‹เบ—เบตเปˆโ€‹เปƒเบ™ QUICโ€‹.

เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบฎเบนเบšเบ—เบต 5: QUIC เปเบฅเปˆเบ™เบžเบฒเบเปƒเบ•เป‰ HTTP/3, เปเบ—เบ™เบ—เบตเปˆ TLS, เป€เบŠเบดเปˆเบ‡เบœเปˆเบฒเบ™เบกเบฒเปเบฅเปˆเบ™เบžเบฒเบเปƒเบ•เป‰ HTTP/2.

เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ QUIC เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ TCP:

  • เบเบฒเบ™เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ 0-RTT. QUIC เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰เบ„เบทเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบˆเบฒเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เบซเบผเบธเบ”เบœเปˆเบญเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบˆเบฑเบšเบกเบทเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž. เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ” เบญเบˆ S TLS1.3 เบˆเบฐเบฎเบญเบ‡เบฎเบฑเบš 0-RTT, เปเบ•เปˆเบเบฒเบ™เบˆเบฑเบšเบกเบท TCP เบชเบฒเบกเบ—เบฒเบ‡เบˆเบฐเบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™.
  • เป€เบญเบปเบฒเบŠเบฐเบ™เบฐเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡ HoL. HTTP/2 เปƒเบŠเป‰เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เบซเบ™เบถเปˆเบ‡เบ•เปเปˆเบฅเบนเบเบ„เป‰เบฒเป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เปเบ•เปˆเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡ HoL (เบซเบปเบงเบซเบ™เป‰เบฒเบชเบฒเบ). QUIC เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ„เบนเบ™เปเบšเบšเบ‡เปˆเบฒเบ เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป„เบ›เบเบฑเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบญเบดเบ”เบชเบฐเบซเบผเบฐ.
  • เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ„เบงเบฒเบกเปเบญเบญเบฑเบ”. QUIC เบขเบนเปˆเปƒเบ™เบŠเบฑเป‰เบ™เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เปƒเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡เบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบชเบปเปˆเบ‡เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ (เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบซเบผเบท RTT). เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” TCP เบชเปˆเบงเบ™เปƒเบซเบเปˆเปƒเบŠเป‰ algorithm CUBIC, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเป€เปเบฒเบฐเบชเบปเบกเบชเบณเบฅเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบฅเบฐเบญเบฝเบ”เบญเปˆเบญเบ™เป€เบงเบฅเบฒ latency. เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰เป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเป€เบŠเบฑเปˆเบ™: เบšเบตเบšเบต,เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบซเป‰เบ–เบทเบเบ•เป‰เบญเบ‡เบซเบผเบฒเบเบ‚เบถเป‰เบ™ เปเบฅเบฐเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เปเบเบ‡. QUIC เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰ BBR เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ™เบตเป‰เบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡.
  • เบเบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เป€เบ•เบตเบกโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบนเบ™โ€‹เป€เบชเบโ€‹. QUIC เป‚เบ—เบซเบฒเบชเบญเบ‡ TLP (เบเบฒเบ™เบชเบทเบšเบชเบงเบ™เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบซเบฒเบ‡) เบเปˆเบญเบ™เบ—เบตเปˆ RTO เบˆเบฐเบ–เบทเบเบเบฐเบ•เบธเป‰เบ™ - เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบˆเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบซเบผเบฒเบ. เบ™เบตเป‰เปเบกเปˆเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” TCP. TLP retransmits เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบŠเบธเบ”เบชเบธเบ”เบ—เป‰เบฒเบ (เบซเบผเบทเบญเบฑเบ™เปƒเบซเบกเปˆ, เบ–เป‰เบฒเบกเบตเบซเบ™เบถเปˆเบ‡) เป€เบžเบทเปˆเบญเบเบฐเบ•เบธเป‰เบ™เบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เป„เบง. เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบ‚เบญเบ‡เบซเบฒเบ‡เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆ Uber เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ•เบปเบ™, เบ„เบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบญเบ™เบ‚เปเป‰เบกเบนเบ™เป„เบฅเบเบฐเบชเบฑเป‰เบ™, เป€เบ›เบฑเบ™เป„เบฅเบเบฐเป†, เปเบฅเบฐ latency-sensitive.
  • เบ›เบฑเบšเบ›เบธเบ‡ ACK. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเปเบ•เปˆเบฅเบฐเปเบžเบฑเบเป€เบเบฑเบ”เบกเบตเบ•เบปเบงเป€เบฅเบเบฅเปเบฒเบ”เบฑเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ, เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒ เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡ packets เป€เบกเบทเปˆเบญเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™. เปเบžเบฑเบเป€เบเบฑเบ” ACK เบเบฑเบ‡เบกเบตเป€เบงเบฅเบฒเปƒเบ™เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เปเบžเบฑเบเป€เบเบฑเบ” เปเบฅเบฐเบชเป‰เบฒเบ‡ ACK เบขเบนเปˆเบเปˆเบฒเบเบฅเบนเบเบ„เป‰เบฒ. เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ QUIC เบ„เบดเบ”เป„เบฅเปˆ RTT เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบเบงเปˆเบฒ. ACK เปƒเบ™ QUIC เบฎเบญเบ‡เบฎเบฑเบšเบชเบนเบ‡เบชเบธเบ” 256 เปเบ–เบš NACK, เบŠเปˆเบงเบเปƒเบซเป‰เบœเบนเป‰เบชเบปเปˆเบ‡เบกเบตเบ„เบงเบฒเบกเบขเบทเบ”เบขเบธเปˆเบ™เบซเบผเบฒเบเบ•เปเปˆเบเบฒเบ™เบชเบฐเบซเบผเบฑเบšเปเบžเบฑเบเป€เบเบฑเบ”เปเบฅเบฐเปƒเบŠเป‰ bytes เบซเบ™เป‰เบญเบเบฅเบปเบ‡เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™. ACK เป€เบฅเบทเบญเบ (SACK) เปƒเบ™ TCP เบšเปเปˆเป„เบ”เป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เปƒเบ™เบ—เบธเบเบเปเบฅเบฐเบ™เบต.
  • เบเบฒเบ™โ€‹เป€เบ„เบทเปˆเบญเบ™โ€‹เบเป‰เบฒเบโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ QUIC เบ–เบทเบเบฅเบฐเบšเบธเป‚เบ”เบ ID 64-bit, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ–เป‰เบฒเบฅเบนเบเบ„เป‰เบฒเบ›เปˆเบฝเบ™เบ—เบตเปˆเบขเบนเปˆ IP, ID เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบเบปเปˆเบฒเบชเบฒเบกเบฒเบ”เบชเบทเบšเบ•เปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ—เบตเปˆเบขเบนเปˆ IP เปƒเบซเบกเปˆเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบปเปˆเบงเป„เบ›เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบกเบทเบ–เบทเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบ›เปˆเบฝเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡ Wi-Fi เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ—เบฅเบฐเบชเบฑเบšเบกเบทเบ–เบท.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบžเบทเปˆเบญ QUIC

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเบดเบ—เบตเบเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบทเบญเบ QUIC.

เบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ TPC PoPs (เบˆเบธเบ”เบ—เบตเปˆเบ›เบฒเบเบปเบ”) เป€เบžเบทเปˆเบญเบขเบธเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เบ—เบตเปˆเปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰. เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, PoPs เบขเบธเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบกเบทเบ–เบทเบ—เบตเปˆเปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ—เบฅเบฐเบชเบฑเบšเบกเบทเบ–เบทเปเบฅเบฐเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เป€เบ”เบตเบก. เป‚เบ”เบเบเบฒเบ™เบขเบธเบ” TCP เปƒเบเป‰เบŠเบดเบ”, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบฅเบปเบ‡ RTT เปเบฅเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ TCP เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ•เปเปˆเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป„เบฎเป‰เบชเบฒเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบซเบผเบฒเบเบ‚เบถเป‰เบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡ RTT เปเบฅเบฐเบเบฒเบ™เบชเบนเบ™เป€เบชเบเปเบกเปˆเบ™เบกเบฒเบˆเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ—เบฅเบฐเบชเบฑเบšเบกเบทเบ–เบทเปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ PoPs เบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™.

เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป„เบ”เป‰เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเบเปเบฒเบ™เบปเบ” TCP. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ TCP stack เปƒเบ™เป€เบŠเบตเบšเป€เบงเบตเบ‚เบญเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเป€เบžเบฒเบฐเบงเปˆเบฒ TCP เบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบ—เบปเปˆเบงเบฎเบธเปˆเบ™ OS. เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰เปเบฅเบฐเบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ TCP เป‚เบ”เบเบเบปเบ‡เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบทเบ–เบทเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ‚เบฒเบ”เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”. เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบฅเบฑเบเบชเบฐเบ™เบฐเป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ 0-RTT เปเบฅเบฐเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™ RTT เปเบกเปˆเบ™เบชเปเบฒเบ„เบฑเบ™เบ•เปเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบšเบฑเบ™เบฅเบธเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เป‚เบ”เบเบเบฒเบ™เบ›เบฑเบš TCP เบขเปˆเบฒเบ‡เบ”เบฝเบง.

เบชเบธเบ”เบ—เป‰เบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเป€เบกเบตเบ™เป‚เบ›เป‚เบ•เบ„เบญเบ™เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ UDP เบซเบผเบฒเบเบญเบฑเบ™เบ—เบตเปˆเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบงเบดเบ”เบตเป‚เบญ - เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเป‚เบ›เป‚เบ•เบ„เบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเป„เบ”เป‰เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ‚เบฒเบ”เบขเปˆเบฒเบ‡เบฎเป‰เบฒเบเปเบฎเบ‡เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบซเบผเบฒเบ, เปเบฅเบฐเบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบš metadata เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก.

เบเบฒเบ™เบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ QUIC เบšเบฒเบ‡เบ—เบตเบญเบฒเบ”เป€เบ›เบฑเบ™เป‚เบ›เป‚เบ•เบ„เบญเบ™เบ”เบฝเบงเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบŠเปˆเบงเบเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบฒเบ‡เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ‚เบญเบ‡ QUIC เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป€เบงเบ—เบต

เป€เบžเบทเปˆเบญเบชเบณเป€เบฅเบฑเบ”เบเบฒเบ™เบเบฑเบ‡ QUIC เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเบšเปเปˆเบ”เบต, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ—เบ™ stack เป€เบเบปเปˆเบฒ (HTTP/2 over TLS/TCP) เบ”เป‰เบงเบเป‚เบ›เบฃเป‚เบ•เบ„เป QUIC. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Cronet เบˆเบฒเบเบ™เบฑเป‰เบ™ เป‚เบ„เบ‡เบเบฒเบ™ Chromium, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, เบฎเบธเปˆเบ™ Google เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™ - gQUIC . เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบตเป‰เบเบฑเบ‡เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ‚เปเป‰เบเปเบฒเบ™เบปเบ” IETF เบซเบผเป‰เบฒเบชเบธเบ”.

เบ—เปเบฒเบญเบดเบ”เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ Cronet เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เปเบญเบฑเบšเบฏ Android เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš QUIC. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เปเบ—เบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเป€เบเบปเปˆเบฒเบ—เบตเปˆเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™ OkHttp, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ Cronet เบžเบฒเบเปƒเบ•เป‰เบเบญเบš OkHttp API. เป‚เบ”เบเบเบฒเบ™เป€เบฎเบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฒเบ™เป‚เบ—เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ (เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบ เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ„เบทเบ™เปƒเปˆ) เปƒเบ™เบฅเบฐเบ”เบฑเบš API.

เบ„เป‰เบฒเบโ€‹เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบญเบธโ€‹เบ›เบฐโ€‹เบเบญเบ™ Androidโ€‹, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ” Cronet เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบเบดเบ” Uber เปƒเบ™ iOSโ€‹, เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบˆเบฐโ€‹เบฅเบฒโ€‹เบˆเบญเบ™ HTTP เบˆเบฒเบโ€‹เป€เบ„เบทเบญโ€‹เบ‚เปˆเบฒเบโ€‹. APIเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ NSURLProtocol. เบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™เบ™เบตเป‰, เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบกเบนเบ™เบ™เบดเบ—เบด iOS, เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™ URL เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เป‚เบ›เบฃเป‚เบ•เบ„เป เปเบฅเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ Cronet เป€เบ‚เบปเป‰เบฒเปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ iOS เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™.

เบเบณเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบชเบณเป€เบฅเบฑเบ” QUIC เปƒเบ™ Google Cloud Balancers

เบขเบนเปˆเบ”เป‰เบฒเบ™เบซเบผเบฑเบ‡, เบเบฒเบ™เบชเบณเป€เบฅเบฑเบ” QUIC เปเบกเปˆเบ™เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡ Google Cloud Load, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰ alt-svc headers เปƒเบ™เบ„เปเบฒเบ•เบญเบšเป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ QUIC. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, balancer เป€เบžเบตเปˆเบก header alt-svc เปƒเบซเป‰เบเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป HTTP, เปเบฅเบฐเบญเบฑเบ™เบ™เบตเป‰เบขเบทเบ™เบขเบฑเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ QUIC เบชเปเบฒเบฅเบฑเบšเป‚เบ”เป€เบกเบ™เปเบฅเป‰เบง. เป€เบกเบทเปˆเบญเบฅเบนเบเบ„เป‰เบฒ Cronet เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบญเบšเบฎเบฑเบš HTTP เบเบฑเบšเบชเปˆเบงเบ™เบซเบปเบงเบ™เบตเป‰, เบกเบฑเบ™เปƒเบŠเป‰ QUIC เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป HTTP เบ•เปเปˆเบกเบฒเบ•เปเปˆเป‚เบ”เป€เบกเบ™เบ™เบฑเป‰เบ™. เป€เบกเบทเปˆเบญเบœเบนเป‰เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบชเปเบฒเป€เบฅเบฑเบ” QUIC, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เบเบฐเบ—เปเบฒเบ™เบตเป‰เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เบœเปˆเบฒเบ™ HTTP2/TCP เป„เบ›เบซเบฒเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš: เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš

เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ•เบปเป‰เบ™เบ•เปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเปเบฒเบฅเบฑเบšเป‚เบ›เป‚เบ•เบ„เบญเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ. เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบˆเบธเบ”เบขเบทเบ™เบ”เป‰เบงเบ emulation เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบงเปˆเบฒ QUIC เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบ™เบงเปƒเบ”เบžเบฒเบเปƒเบ•เป‰เป‚เบ›เบฃเป„เบŸเบฅเปŒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ QUIC เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบฅเบเบˆเบดเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ‚เบฑเบšเบฅเบปเบ”เป„เบ›เบ—เบปเปˆเบงเบ™เบฐเบ„เบญเบ™เบ™เบดเบงเป€เบ”เบฅเบตเป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบเบฒเบ™เบˆเบฒเบฅเบฐเบˆเบญเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เป‚เบ— HTTP เปƒเบ™เปเบญเบฑเบšเบฏเบœเบนเป‰เป‚เบ”เบเบชเบฒเบ™.

เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡ 1

เบญเบธโ€‹เบ›เบฐโ€‹เบเบญเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบฅเบญเบ‡โ€‹:

  • เบ—เบปเบ”เบชเบญเบšเบญเบธเบ›เบฐเบเบญเบ™ Android เบ”เป‰เบงเบ OkHttp เปเบฅเบฐ Cronet stacks เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™ HTTPS เบœเปˆเบฒเบ™ TCP เปเบฅเบฐ QUIC เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš;
  • เป€เบŠเบตเบšเป€เบงเบต emulation เบ—เบตเปˆเปƒเบŠเป‰ Java เบ—เบตเปˆเบชเบปเปˆเบ‡เบชเปˆเบงเบ™เบซเบปเบง HTTPS เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบเบฑเบ™เปƒเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเปœเบญเบ‡ เปเบฅเบฐเป‚เบซเบผเบ”เบญเบธเบ›เบฐเบเบญเบ™เบฅเบนเบเบ„เป‰เบฒเป€เบžเบทเปˆเบญเบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบˆเบฒเบเบžเบงเบเป€เบ‚เบปเบฒ;
  • cloud proxies เบ—เบตเปˆเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบญเบดเบ™เป€เบ”เบเป€เบžเบทเปˆเบญเบขเบธเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เปเบฅเบฐ QUIC. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบขเบธเบ” TCP เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ proxy reverse on NGINX, เบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒ open source proxy reverse เบชเปเบฒเบฅเบฑเบš QUIC. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ proxy reverse เบชเปเบฒเบฅเบฑเบš QUIC เบ•เบปเบงเป€เบฎเบปเบฒเป€เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰ stack QUIC เบžเบทเป‰เบ™เบ–เบฒเบ™เบˆเบฒเบ Chromium เปเบฅเบฐ เป€เบœเบตเบเปเบœเปˆ เบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ chromium เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”.

เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบฎเบนเบšเบ—เบต 6. เบŠเบธเบ”เบ—เบปเบ”เบชเบญเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ TCP vs QUIC เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบญเบธเบ›เบฐเบเบญเบ™ Android เบ—เบตเปˆเบกเบต OkHttp เปเบฅเบฐ Cronet, cloud proxies เบชเบณเบฅเบฑเบšเบเบฒเบ™เบขเบธเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ เปเบฅเบฐเป€เบŠเบตเบšเป€เบงเบต emulation.

เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡ 2

เป€เบกเบทเปˆเบญ Google เป€เบฎเบฑเบ”เปƒเบซเป‰ QUIC เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบš Google Cloud Load Balancing, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰เบชเบดเบ™เบ„เป‰เบฒเบ„เบปเบ‡เบ„เบฑเบ‡เบ”เบฝเบงเบเบฑเบ™, เปเบ•เปˆเบกเบตเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบซเบ™เบถเปˆเบ‡: เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ NGINX, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบญเบปเบฒเบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡ Google เป€เบžเบทเปˆเบญเบขเบธเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เปเบฅเบฐ QUIC เบˆเบฒเบเบญเบธเบ›เบฐเบเบญเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ HTTPS เป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ emulation. Balancers เป„เบ”เป‰เบ–เบทเบเปเบˆเบเบขเบฒเบเบ—เบปเปˆเบงเป‚เบฅเบ, เปเบ•เปˆเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ PoP เบ—เบตเปˆเบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบชเบธเบ” (เบ‚เบญเบšเปƒเบˆเบ—เบตเปˆเบ•เบฑเป‰เบ‡เบžเบนเบกเบชเบฒเบ”).

เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบฎเบนเบšเบ—เบต 7. เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบ—เบตเบชเบญเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฒเบ™เป€เบฅเบฑเปˆเบ‡เป€เบงเบฅเบฒเบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡ TCP เปเบฅเบฐ QUIC: เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Google Cloud เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ cloud proxy เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เป€เบ›เบตเบ”เป€เบœเบตเบเบซเบผเบฒเบเบขเปˆเบฒเบ‡เบฅเปเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆ:

  • เบเบฒเบ™เบขเบธเบ”เป€เบŠเบปเบฒเป‚เบ”เบเบœเปˆเบฒเบ™ PoP เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” TCP. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบœเบนเป‰เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบขเบธเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ TCP เปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡, เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰ RTTs เบ•เปˆเปเบฒ, เป€เบŠเบดเปˆเบ‡เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” TCP. เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ QUIC เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบซเบ™เป‰เบญเบ, เบกเบฑเบ™เบเบฑเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ”เบตเบเบงเปˆเบฒ TCP เปƒเบ™เบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบซเบฒเบ‡ (เป‚เบ”เบ 10-30 เป€เบ›เบตเป€เบŠเบฑเบ™).
  • เบซเบฒเบ‡เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบš hops เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ QUIC proxy เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเป„เบเบˆเบฒเบเบญเบธเบ›เบฐเบเบญเบ™ (เบ›เบฐเบกเบฒเบ™ 50 ms เบชเบนเบ‡เบเบงเปˆเบฒ) เบเปˆเบงเบฒเบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡ Google, เบกเบฑเบ™เป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™ - 15% latency เบซเบผเบธเบ”เบฅเบปเบ‡เบ—เบฝเบšเบเบฑเบš TCP เบซเบผเบธเบ”เบฅเบปเบ‡ 20% เปƒเบ™เบชเปˆเบงเบ™เบฎเป‰เบญเบเบ—เบต 99. เบ™เบตเป‰เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เป„เบกเบฅเปŒเบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ„เปเบ‚เบงเบ”เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ.

เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบฎเบนเบšเบ—เบต 8: เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบˆเบฒเบเบชเบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒ QUIC เบ”เบตเบเบงเปˆเบฒ TCP เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.

เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ•เปเปˆเบชเบนเป‰

เป„เบ”เป‰เบฎเบฑเบšเปเบฎเบ‡เบšเบฑเบ™เบ”เบฒเบ™เปƒเบˆเบˆเบฒเบเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš QUIC เปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Android เปเบฅเบฐ iOS เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš A/B เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡ QUIC เบขเบนเปˆเปƒเบ™เบ•เบปเบงเป€เบกเบทเบญเบ‡เบ—เบตเปˆ Uber เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง, เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบกเบตเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบซเบฒเบ‡เบซเบผเบฒเบเปƒเบ™เบ—เบปเปˆเบงเบžเบฒเบเบžเบทเป‰เบ™, เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบ—เบฅเบฐเบ„เบปเบก เปเบฅเบฐ เบ›เบฐเป€เบžเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบ.

เบเบฃเบฒเบŸเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ‚เบญเบ‡เบซเบฒเบ‡ (95 เปเบฅเบฐ 99 เป€เบ›เบตเป€เบŠเบฑเบ™) เป‚เบ”เบเบžเบฒเบเบžเบทเป‰เบ™เบกเบฐเบซเบฒเบžเบฒเบ เปเบฅเบฐเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป† - LTE, 3G, 2G.
เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ›เบฃเป‚เบ•เบ„เป QUIC เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”: เบงเบดเบ—เบตเบเบฒเบ™ Uber เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
เบฎเบนเบšเบ—เบต 9. เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบชเบนเป‰เบฎเบปเบš, QUIC เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ”เบตเบเบงเปˆเบฒ TCP เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบเบฒเบ™เปเบเบ‡.

เบชเบปเปˆเบ‡เบ•เปเปˆเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™

เบšเบฒเบ‡เบ—เบตเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ - เบเบฒเบ™เบ›เปˆเบญเบ QUIC เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เป‚เบญเบเบฒเบ”เบ—เบตเปˆเบซเบ™เป‰เบฒเบ›เบฐเบซเบฅเบฒเบ”เปƒเบˆเป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เปเบฅเบฐเบšเปเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡, เบ„เบท:

เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™

เบกเบตเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เป‚เบ›เป‚เบ•เบ„เบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบ›เบฐเบกเบฒเบ™ 80% เบ‚เบญเบ‡เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰ QUIC เบชเปเบฒเบฅเบฑเบš ะฒัะตั… เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ 15% เบ‚เบญเบ‡เป€เบŠเบ”เบŠเบฑเบ™เปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡ QUIC เปเบฅเบฐ TCP. เบžเบงเบเป€เบฎเบปเบฒเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เปเบกเปˆเบ™เป€เบ™เบทเปˆเบญเบ‡เบกเบฒเบˆเบฒเบเบเบฒเบ™เบซเบกเบปเบ”เป€เบงเบฅเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Cronet เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™ TCP, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเปเบฒเปเบ™เบเบฅเบฐเบซเบงเปˆเบฒเบ‡ UDP เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เปเบฅเบฐเบชเบฐเบžเบฒเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบšเปเปˆเบ”เบต. เบ›เบฐเบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบเบณเบฅเบฑเบ‡เบŠเบญเบเบซเบฒเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰ เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบ•เปเปˆเบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” QUIC เบ•เปเปˆเป„เบ›.

เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš QUIC

เบเบฒเบ™เบˆเบฒเบฅเบฐเบˆเบญเบ™เบˆเบฒเบเปเบญเบฑเบšเบฏเบกเบทเบ–เบทเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบญเปˆเบญเบ™เป„เบซเบงเปƒเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเปœเบญเบ‡, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบญเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡เปเบšเบ™เบงเบดเบ”. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ•เบปเป‰เบ™เบ•เปเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ—เบฅเบฐเบชเบฑเบšเบกเบทเบ–เบท. เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡, เบซเบฒเบ‡ latencies เบเบฑเบ‡เบชเบนเบ‡เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเปเบ—เบ™เป€เบžเบทเปˆเบญเบขเบธเบ” TCP เปเบฅเบฐ QUIC เปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰. เบžเบงเบเป€เบฎเบปเบฒเบเบณเบฅเบฑเบ‡เบŠเบญเบเบซเบฒเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ„เบงเบฒเบกเปเบญเบญเบฑเบ” เปเบฅเบฐ เบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบเบฒเบ™เบชเบนเบ™เป€เบชเบ QUIC.

เบ”เป‰เบงเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ เปเบฅเบฐเบญเบตเบเบซเบผเบฒเบเป†เบญเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ เปเบฅเบฐเบžเบฒเบเบžเบทเป‰เบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบชเบฐเบ”เบงเบ เปเบฅเบฐ เบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบเบเบดเปˆเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ—เบปเปˆเบงเป‚เบฅเบ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™