UDP เชชเชฐ HTTP - QUIC เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เชธเชพเชฐเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

UDP เชชเชฐ HTTP - QUIC เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เชธเชพเชฐเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

QUIC (เช•เซเชตเชฟเช• UDP เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เช•เชจเซ‡เช•เซเชถเชจเซเชธ) เช UDP เชจเซ€ เชŸเซ‹เชš เชชเชฐ เชเช• เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เช›เซ‡ เชœเซ‡ TCP, TLS เช…เชจเซ‡ HTTP/2 เชจเซ€ เชคเชฎเชพเชฎ เชธเซเชตเชฟเชงเชพเช“เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเซ€ เชธเชฎเชธเซเชฏเชพเช“เชจเซเช‚ เชจเชฟเชฐเชพเช•เชฐเชฃ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡เชจเซ‡ เช˜เชฃเซ€เชตเชพเชฐ เชจเชตเซ‹ เช…เชฅเชตเชพ "เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช•" เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชคเชฌเช•เซเช•เชพเชฅเซ€ เช†เช—เชณ เชจเซ€เช•เชณเซ€ เช—เชฏเซเช‚ เช›เซ‡: เชตเชฟเช•เชพเชธ 7 เชตเชฐเซเชทเชฅเซ€ เชตเชงเซ เชธเชฎเชฏเชฅเซ€ เชšเชพเชฒเซ เช›เซ‡. เช† เชธเชฎเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชฌเชจเชตเชพเชจเซเช‚ เชฎเซ‡เชจเซ‡เชœ เช•เชฐเซ€ เชถเช•เซเชฏเซเช‚ เชจ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชคเซ‡ เชนเชœเซ€ เชชเชฃ เชตเซเชฏเชพเชชเช• เชฌเชจเซเชฏเซเช‚ เชนเชคเซเช‚. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, QUIC เชจเซ‹ เช‰เชชเชฏเซ‹เช— Google เช…เชจเซ‡ Facebook เชœเซ‡เชตเชพ เชœเชพเชฏเชจเซเชŸเซเชธ เชฆเซเชตเชพเชฐเชพ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเชพ เช…เชจเซ‡ เชฎเซ‹เชฌเชพเช‡เชฒ เชจเซ‡เชŸเชตเชฐเซเช•เชฎเชพเช‚ เชตเชฟเชฒเช‚เชฌ เช˜เชŸเชพเชกเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ IETF เช เชคเซ‡เชจเชพ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเชพ เชซเซ‹เชฐเซเช•เชจเซ‡ HTTP/3 เชธเซเชŸเชพเชจเซเชกเชฐเซเชกเชจเซ‹ เช†เชงเชพเชฐ เชœเชพเชนเซ‡เชฐ เช•เชฐเซเชฏเซ‹ (เชญเชฒเซ‡ HTTP/2 เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เชฎเชพเชคเซเชฐ 44.8% เชธเชพเช‡เชŸเซเชธ).

เช•เชจเซเชธเซ‡เชชเซเชŸ

เช•เซเชตเชฟเช•เชจเซ‡ เชฒเซ‡เช—เชธเซ€ TCPเชจเชพ เชฐเชฟเชชเซเชฒเซ‡เชธเชฎเซ‡เชจเซเชŸ เชคเชฐเซ€เช•เซ‡ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชœเซ‡ เชฎเซ‚เชณ เชฐเซ€เชคเซ‡ เช“เช›เชพ-เชจเซเช•เชธเชพเชจเชตเชพเชณเชพ เชตเชพเชฏเชฐเซเชก เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ เชฎเชพเชŸเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. TCP เช•เซเชฐเชฎเชฎเชพเช‚ เชชเซ‡เช•เซ‡เชŸเซ‹ เชชเชนเซ‹เช‚เชšเชพเชกเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชœเซ‹ เชเช• เชชเซ‡เช•เซ‡เชŸ เช–เซ‹เชตเชพเชˆ เชœเชพเชฏ, เชคเซ‹ เช†เช–เซ€ เช•เชคเชพเชฐ เชฌเช‚เชง เชฅเชˆ เชœเชพเชฏ เช›เซ‡ (เชนเซ‡เชก-เช“เชซ-เชฒเชพเช‡เชจ เชฌเซเชฒเซ‹เช•เชฟเช‚เช—), เชœเซ‡ เช•เชจเซ‡เช•เซเชถเชจเชจเซ€ เช—เซเชฃเชตเชคเซเชคเชพ เช…เชจเซ‡ เชธเซเชฅเชฟเชฐเชคเชพเชจเซ‡ เชจเช•เชพเชฐเชพเชคเซเชฎเช• เชฐเซ€เชคเซ‡ เช…เชธเชฐ เช•เชฐเซ‡ เช›เซ‡. เชฎเซ‹เชŸเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชจเซเช•เชธเชพเชจ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡, เชธเซ‡เชฒเซเชฏเซเชฒเชฐ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ เชฎเซ‹เชŸเชพ เชฌเชซเชฐเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ เชฌเชฆเชฒเชพเชฎเชพเช‚ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ€ เชจเชฟเชฐเชฐเซเชฅเช•เชคเชพ เช…เชจเซ‡ เช–เซ‹เชŸเชพ เชจเช•เชพเชฐเชพเชคเซเชฎเช• เชชเซเชฐเชคเชฟเชญเชพเชต เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡ (เชฌเชซเชฐเชฌเซเชฒเซ‹เชŸ). เชตเชงเซเชฎเชพเช‚, TCP เช•เชจเซ‡เช•เซเชถเชจ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช˜เชฃเซ‹ เชธเชฎเชฏ เชตเชฟเชคเชพเชตเซ‡ เช›เซ‡: SYN/ACK เช…เชจเซ‡ TLS เชตเชฟเชจเช‚เชคเซ€เช“ เช…เชฒเช—เชฅเซ€ เชœเชพเชฏ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ QUICเชจเซ€ เชœเซ‡เชฎ เชเช•เชจเซ‡ เชฌเชฆเชฒเซ‡ เชคเซเชฐเชฃ เชฐเชพเช‰เชจเซเชกเชŸเซเชฐเซ€เชชเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ‡ เช›เซ‡.

UDP เชชเชฐ HTTP - QUIC เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เชธเชพเชฐเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

QUIC เช TCP เชฐเชฟเชชเซเชฒเซ‡เชธเชฎเซ‡เชจเซเชŸ เช…เชจเซ‡ TLS 1.3 เชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เชœเซ‹เชกเชคเซเช‚ เชนเซ‹เชตเชพเชฅเซ€, เชฌเชงเชพ เช•เชจเซ‡เช•เซเชถเชจ เชนเช‚เชฎเซ‡เชถเชพ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชนเซ‹เชฏ เช›เซ‡, เช…เชจเซ‡ เช†เชตเชพ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเชตเซเช‚ เช HTTPS เชชเชฐ เชœเชคเชพ เชนเซ‹เชฏ เชคเซ‡เชจเชพ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชธเชฐเชณ เชจเชฅเซ€. เชตเชงเซเชฎเชพเช‚, เช•เซเชตเชฟเช• เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เชฒเซ‡เชตเชฒ เชชเชฐ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ TCP เชธเซเชŸเซ‡เช•เชจเซเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเชฟเชชเซเชฒเซ‡เชธเชฎเซ‡เชจเซเชŸ เชฒเซ‡เชตเชพเชถเซ‡ เช…เชจเช‚เชคเช•เชพเชณ.

HTTP/2 เชฎเชพเช‚ เชฎเชฒเซเชŸเชฟเชชเซเชฒเซ‡เช•เซเชธเชฟเช‚เช— เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เชนเซ‹เชตเชพ เช›เชคเชพเช‚, เช•เซเชฐเชฎเชฎเชพเช‚ เชชเซ‡เช•เซ‡เชŸเซ‹ เชชเชนเซ‹เช‚เชšเชพเชกเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชนเซ‡เชก-เช“เชซ-เชฒเชพเช‡เชจ เชฌเซเชฒเซ‹เช•เชฟเช‚เช—เชจเซ€ เชธเชฎเชธเซเชฏเชพ เชคเซเชฏเชพเช‚ เชœ เชฐเชนเซ€. QUIC เชจเซ‡ UDP เชจเซ€ เชŸเซ‹เชš เชชเชฐ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเซ‡เชฎเชพเช‚ เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡ เช•เซ‹เชˆ เช…เชตเชฐเซ‹เชง เชจเชฅเซ€, เช…เชจเซ‡ เชชเซ‡เช•เซ‡เชŸเซ‹เชจเซ‡ เชนเช‚เชฎเซ‡เชถ เชฎเชพเชŸเซ‡ เช–เซ‹เชตเชพเชˆ เชœเชคเชพ เช…เชŸเช•เชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเซ‡เช“เชจเซ‡ เช•เซเชฐเชฎเชพเช‚เช•เชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ "เชชเชกเซ‹เชถเซ€เช“" เชจเชพ เชญเชพเช—เซ‹ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เชœเซ‡ เชจเชฟเชฐเชฐเซเชฅเช•เชคเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชตเชงเซเชฎเชพเช‚, QUIC เชเช• เช•เชจเซ‡เช•เซเชถเชจเชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชชเซเชฐเช•เชพเชฐเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเชพเชŸเซ‡ เชเช•เชตเชฟเชง เช•เชคเชพเชฐเชจเซ‡ เชฌเชนเซเชตเชฟเชง เชฅเซเชฐเซ‡เชกเซ‹เชฎเชพเช‚ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เช†เชฎ, เชœเซ‹ เชชเซ‡เช•เซ‡เชŸ เช–เซ‹เชตเชพเชˆ เชœเชพเชฏ, เชคเซ‹ เชฎเชพเชคเซเชฐ เชเช• เช•เชคเชพเชฐ เชฎเชพเชŸเซ‡ เชธเชฎเชธเซเชฏเชพเช“ เชŠเชญเซ€ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เซ‹เชˆ เชšเซ‹เช•เซเช•เชธ เชซเชพเชˆเชฒ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡):

UDP เชชเชฐ HTTP - QUIC เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เชธเชพเชฐเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹

เชถเชฐเซ‚เช†เชคเชฎเชพเช‚, QUIC เชจเซ‡ Google เชจเซ€ เช…เช‚เชฆเชฐ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช…เชจเซ‡ เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เช•เช‚เชชเชจเซ€เชฎเชพเช‚ เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. 2013 เชฎเชพเช‚, เชคเซ‡เชจเซ‡ เชฎเชพเชจเช•เซ€เช•เชฐเชฃ เชฎเชพเชŸเซ‡ IETF เชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ (เชœเซ‡ เชนเชœเซ€ เชชเชฃ เชšเชพเชฒเซ เช›เซ‡), เช…เชจเซ‡ เชนเชตเซ‡ เชฆเชฐเซ‡เช• เชตเซเชฏเช•เซเชคเชฟ เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เชถเซเช‚ เช–เซ‚เชŸเซ‡ เช›เซ‡ เชคเซ‡ เชชเซเชฐเชธเซเชคเชพเชตเชฟเชค เช•เชฐเซ€เชจเซ‡ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเชพ เชตเชฟเช•เชพเชธเชฎเชพเช‚ เชญเชพเช— เชฒเชˆ เชถเช•เซ‡ เช›เซ‡. IETF เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชœเซ‚เชฅ เชตเชพเชฐเซเชทเชฟเช• เชฎเซ€เชŸเชฟเช‚เช—เซเชธเชจเซเช‚ เช†เชฏเซ‹เชœเชจ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชจเชตเชพ เชงเซ‹เชฐเชฃเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชจเชตเซ€เชจเชคเชพเช“เชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. QUIC เชจเชพ เช† เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เชฎเซเช–เซเชฏ เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชคเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡ เช›เซ‡ เช•เซ‡ HTTP/3 เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชชเซเชฐเชฎเชพเชฃเชฟเชค เช›เซ‡.

เช…เชคเซเชฏเชพเชฐ เชธเซเชงเซ€, เชฎเซเช–เซเชฏ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชคเชฐเซ€เช•เซ‡ HTTP/3 เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเชตเชพ เชตเชฟเชถเซ‡ เช•เซ‹เชˆ เชตเชพเชค เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชนเชœเซ€ เชชเซ‚เชฐเซเชฃ เชฅเชฏเซเช‚ เชจเชฅเซ€ เช…เชจเซ‡ เชฒเช—เชญเช— เชธเชฎเชฐเซเชฅเชฟเชค เชจเชฅเซ€:

UDP เชชเชฐ HTTP - QUIC เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เชธเชพเชฐเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

เชชเชฐเช‚เชคเซ QUIC เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช…เชจเซ‡ เชธเชฐเซเชตเชฐ เชตเชšเซเชšเซ‡ เชชเชฐเชฟเชตเชนเชจ เชคเชฐเซ€เช•เซ‡ เชฒเชพเช—เซ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชœเซ‡ เช‰เชฌเซ‡เชฐ เชชเชฐ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚:

QUIC เชจเซ€ เชฐเชœเซ‚เช†เชค เชชเชฐ Uberเชจเซ€ เชŸเชฟเชชเซเชชเชฃเซ€

QUIC เชจเซ‡ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชเชฎเซเชฌเซ‡เชก เช•เชฐเชตเชพ เช…เชจเซ‡ เชจเชฌเชณเชพ เช•เชจเซ‡เช•เซเชŸเชฟเชตเชฟเชŸเซ€ เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชœเซ‚เชจเชพ เชธเซเชŸเซ‡เช• (HTTP/2 เช“เชตเชฐ TLS/TCP) เชจเซ‡ QUIC เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชธเชพเชฅเซ‡ เชฌเชฆเชฒเซเชฏเซเช‚ เช›เซ‡. เช…เชฎเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เช•เซเชฐเซ‹เชจเซ‡เชŸ เชฅเซ€ เช•เซเชฐเซ‹เชฎเชฟเชฏเชฎ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ, เชœเซ‡เชฎเชพเช‚ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซเช‚ เชฎเซ‚เชณ, Google เชธเช‚เชธเซเช•เชฐเชฃ เช›เซ‡ - gQUIC. เชจเชตเซ€เชจเชคเชฎ IETF เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃเชจเซ‡ เช…เชจเซเชธเชฐเชตเชพ เชฎเชพเชŸเซ‡ เช† เช…เชฎเชฒเซ€เช•เชฐเชฃเชฎเชพเช‚ เชชเชฃ เชธเชคเชค เชธเซเชงเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡.

QUIC เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเซ‡ เชธเซŒเชชเซเชฐเชฅเชฎ เช…เชฎเชพเชฐเซ€ Android เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชฎเชพเช‚ Cronet เชเช•เซ€เช•เซƒเชค เช•เชฐเซเชฏเซเช‚. เชเช•เซ€เช•เชฐเชฃ เชเชตเซ€ เชฐเซ€เชคเซ‡ เชนเชพเชฅ เชงเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช•เซ‡ เชถเช•เซเชฏ เชคเซ‡เชŸเชฒเซเช‚ เชธเซเชฅเชณเชพเช‚เชคเชฐ เช–เชฐเซเชš เช˜เชŸเชพเชกเชตเชพ เชฎเชพเชŸเซ‡. เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพ เชœเซ‚เชจเชพ เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เชธเซเชŸเซ‡เช•เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฌเชฆเชฒเชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡ OkHttp, เช…เชฎเซ‡ OkHttp API เชซเซเชฐเซ‡เชฎเชตเชฐเซเช• เชนเซ‡เช เชณ Cronet เชจเซ‡ เชธเช‚เช•เชฒเชฟเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡. เช† เชฐเซ€เชคเซ‡ เชเช•เซ€เช•เชฐเชฃ เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชจเซ‡เชŸเชตเชฐเซเช• เช•เซ‰เชฒเซเชธเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชŸเชพเชณเซเชฏเชพ (เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฐเซ€เชŸเซเชฐเซ‹เชซเชฟเชŸ) API เชธเซเชคเชฐ เชชเชฐ.

Android เช‰เชชเช•เชฐเชฃเซ‹ เชฎเชพเชŸเซ‡เชจเชพ เช…เชญเชฟเช—เชฎเชจเซ€ เชœเซ‡เชฎ, เช…เชฎเซ‡ iOS เชชเชฐ เช‰เชฌเซ‡เชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชฎเชพเช‚ เช•เซเชฐเซ‹เชจเซ‡เชŸเชจเซ‹ เช…เชฎเชฒ เช•เชฐเซเชฏเซ‹, เชจเซ‡เชŸเชตเชฐเซเช•เชฎเชพเช‚เชฅเซ€ HTTP เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เช…เชŸเช•เชพเชตเซ€ APIเช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ NSURLเชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ. iOS เชซเชพเช‰เชจเซเชกเซ‡เชถเชจ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เช† เชเชฌเซเชธเซเชŸเซเชฐเซ‡เช•เซเชถเชจ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ-เชตเชฟเชถเชฟเชทเซเชŸ URL เชกเซ‡เชŸเชพเชจเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชธเซเชฅเชณเชพเช‚เชคเชฐ เช–เชฐเซเชš เชตเชฟเชจเชพ เช•เซเชฐเซ‹เชจเซ‡เชŸเชจเซ‡ เช…เชฎเชพเชฐเซ€ iOS เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชฎเชพเช‚ เชเช•เซ€เช•เซƒเชค เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช.

เชฎเชพเช‚เชฅเซ€ เชฒเซ€เชงเซ‡เชฒเซเช‚ เช† เช…เชจเซเชตเชพเชฆ เช‰เชฌเซ‡เชฐ เชฒเซ‡เช–เซ‹

เชฌเซ‡เช•เชเชจเซเชก เชชเชฐ เชคเซ‡เช“เช Google Cloud lb เชฆเซเชตเชพเชฐเชพ QUIC เช•เชจเซ‡เช•เซเชถเชจเซเชธ เชชเช•เชกเซเชฏเชพ, เชœเซ‡ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡ 2018 เชจเชพ เชฎเชงเซเชฏเชฅเซ€.

เชคเซ‡ เช†เชถเซเชšเชฐเซเชฏเชœเชจเช• เชจเชฅเซ€ เช•เซ‡ Google เช•เซเชฒเชพเช‰เชก Google-เชตเชฟเช•เชธเชฟเชค เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชธเชพเชฅเซ‡ เชถเซเชฐเซ‡เชทเซเช  เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชตเชฟเช•เชฒเซเชชเซ‹ เชถเซเช‚ เช›เซ‡?

Nginx

เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชชเชนเซ‡เชฒเชพ CloudFlare เชฎเซ‡เช‚ เชชเชพเชฐ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชคเซเชจ เช•เชฐเซเชฏเซ‹ nginx (เชœเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ HTTP/3 เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเชคเซเช‚ เชจเชฅเซ€) เชคเซ‡เชจเชพ Quiche เชŸเซ‚เชฒ เชธเชพเชฅเซ‡. เช…เชฎเชฒเซ€เช•เชฐเชฃ เชธเชฟเช‚เช—เชฒ .เชชเซ‡เชš เชซเชพเช‡เชฒ เชคเชฐเซ€เช•เซ‡ เช‰เชชเชฒเชฌเซเชง เช›เซ‡, เชœเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชŸเซเชฏเซเชŸเซ‹เชฐเซ€เชฏเชฒ เชธเชพเชฅเซ‡ เช†เชตเซ‡ เช›เซ‡:

curl -O https://nginx.org/download/nginx-1.16.1.tar.gz
tar xvzf nginx-1.16.1.tar.gz
git clone --recursive https://github.com/cloudflare/quiche
cd nginx-1.16.1
patch -p01 < ../quiche/extras/nginx/nginx-1.16.patch

เชœเซ‹ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซ‹ เช…เชนเซ€เช‚ เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹

./configure                          	
   	--prefix=$PWD                       	
   	--with-http_ssl_module              	
   	--with-http_v2_module               	
   	--with-http_v3_module               	
   	--with-openssl=../quiche/deps/boringssl 
   	--with-quiche=../quiche
 make

เชœเซ‡ เชฌเชพเช•เซ€ เช›เซ‡ เชคเซ‡ HTTP/3 เชธเชชเซ‹เชฐเซเชŸเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡

events {
    worker_connections  1024;
}

http {
    server {
        # Enable QUIC and HTTP/3.
        listen 443 quic reuseport;

        # Enable HTTP/2 (optional).
        listen 443 ssl http2;

        ssl_certificate      cert.crt;
        ssl_certificate_key  cert.key;

        # Enable all TLS versions (TLSv1.3 is required for QUIC).
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

        # Request buffering in not currently supported for HTTP/3.
        proxy_request_buffering off;

        # Add Alt-Svc header to negotiate HTTP/3.
        add_header alt-svc 'h3-27=":443"; ma=86400';
    }
}

เชจเชฟเชฏเชฎเชฟเชค เชฌเซเชฐเชพเช‰เชเชฐเซเชธเชฎเชพเช‚ HTTP/3 เชฆเซเชตเชพเชฐเชพ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเซเช‚ เชนเชœเซ€ เชถเช•เซเชฏ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซเชฐเซ‹เชฎ เช•เซ‡เชจเซ‡เชฐเซ€ เช…เชจเซ‡ เชงเซเชตเชœ เชธเชพเชฅเซ‡ เชšเชฒเชพเชตเซ‹ --enable-quic, เชคเชฎเชพเชฐเชพ เชธเชฐเซเชตเชฐ เชชเชฐ เชœเชพเช“ เช…เชฅเชตเชพ, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, quic.rocks เชธเชพเช‡เชŸ เชชเชฐ เชœเชพเช“ เช…เชจเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชธเชพเชงเชจเซ‹เชฎเชพเช‚ เช•เชจเซ‡เช•เซเชถเชจ เชชเซเชฐเช•เชพเชฐ เชœเซเช“:
UDP เชชเชฐ HTTP - QUIC เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เชธเชพเชฐเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹
HTTP/3 เชจเซ‡ เชฌเชฆเชฒเซ‡ เชคเซ‡ เชฒเช–เชพเชฏเซ‡เชฒเซเช‚ เช›เซ‡ http2+quic/99, เชชเชฐเช‚เชคเซ เชคเซ‡ เช…เชจเชฟเชตเชพเชฐเซเชฏเชชเชฃเซ‡ เชธเชฎเชพเชจ เชตเชธเซเชคเซ เช›เซ‡.

เช…เชจเซเชฏ เชคเช•เชจเซ€เช•เซ‹

เชจเชฟเชทเซเช•เชฐเซเชท

UDP เชชเชฐ HTTP - QUIC เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เชธเชพเชฐเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

QUIC เชฎเชพเช‚ เชฐเชธ เช…เชธเซเชฅเชฟเชฐ เช›เซ‡, เชชเชฐเช‚เชคเซ เชตเชงเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชชเซเชฐเชฎเชพเชฃเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชพเชฎ เชšเชพเชฒเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡. เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเชพ เชจเชตเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเซ‹ เชฒเช—เชญเช— เชฆเชฐ เชฎเชนเชฟเชจเซ‡ เชฆเซ‡เช–เชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชฆเชฐ เชตเชฐเซเชทเซ‡ เชตเชงเซเชจเซ‡ เชตเชงเซ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเซ‡ เช–เชพเชคเชฐเซ€ เชฅเชพเชฏ เช›เซ‡ เช•เซ‡ QUIC เช เชญเชตเชฟเชทเซเชฏ เช›เซ‡. TCP เชธเซเชŸเซ‡เช•เชจเชพ เชญเชพเชตเชฟ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชฎเชพเช‚ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเชตเซ‹ เชชเชฃ เชถเช•เซเชฏ เช›เซ‡, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เชตเชนเซ‡เชฒเชพ เช•เซ‡ เชชเช›เซ€ เชธเชฎเช—เซเชฐ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชตเชงเซ เชธเซเชฅเชฟเชฐ เช…เชจเซ‡ เชเชกเชชเซ€ เชœเซ‹เชกเชพเชฃเซ‹ เชชเชฐ เชœเชถเซ‡.

เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชนเชตเซ‡ เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชฎเชพเชŸเซ‡ QUIC เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เช—เซ‹เช เชตเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชฅเชตเชพ เชคเซ‡เชจเซ‡ เชฌเซเชฐเชพเช‰เชเชฐเซเชธเชจเซ‡ เชชเชฃ เช†เชชเซ€ เชถเช•เซ‹ เช›เซ‹ - เชคเซ‡ เชฌเชงเชพ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚ เช†เชฏเซ‹เชœเชจ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡, เช…เชจเซ‡ เช•เซ‡เชจเชฟเชฏเซเช เชธเชพเชฅเซ‡เชจเชพ เช‰เชฆเชพเชธเซ€ เช†เช‚เช•เชกเชพ เชตเชงเซ เช–เซเชถเช–เซเชถเชพเชฒ เชฌเชจเชถเซ‡.

UDP เชชเชฐ HTTP - QUIC เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เชธเชพเชฐเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹