рдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ

QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд╛рд╣рдгреЗ рдЕрддреНрдпрдВрдд рдордиреЛрд░рдВрдЬрдХ рдЖрд╣реЗ, рдореНрд╣рдгреВрдирдЪ рдЖрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдмрджреНрджрд▓ рд▓рд┐рд╣рд╛рдпрд▓рд╛ рдЖрд╡рдбрддреЗ. рдкрд░рдВрддреБ рдЬрд░ QUIC рдмрджреНрджрд▓рдЪреА рдорд╛рдЧреАрд▓ рдкреНрд░рдХрд╛рд╢рдиреЗ рдЕрдзрд┐рдХ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ (рд╕реНрдерд╛рдирд┐рдХ рдЗрддрд┐рд╣рд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рдбрдд рдЕрд╕рд▓реНрдпрд╛рд╕) рдирд┐рд╕рд░реНрдЧ рдЖрдгрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рдЪреА рд╣реЛрддреА, рддрд░ рдЖрдЬ рдЖрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреЗ рднрд╛рд╖рд╛рдВрддрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрдирдВрдж рд╣реЛрдд рдЖрд╣реЗ - рдЖрдореНрд╣реА 2019 рдордзреНрдпреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдмрджреНрджрд▓ рдмреЛрд▓реВ. рд╢рд┐рд╡рд╛рдп, рдЖрдореНрд╣реА рддрдерд╛рдХрдерд┐рдд рдЧреЕрд░реЗрдЬрдордзреНрдпреЗ рдЖрдзрд╛рд░рд┐рдд рдЫреЛрдЯреНрдпрд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓рдд рдирд╛рд╣реА, рддрд░ рдЙрдмреЗрд░рдмрджреНрджрд▓ рдмреЛрд▓рдд рдЖрд╣реЛрдд, рдЬреЗ рдЬрд╡рд│рдЬрд╡рд│ рд╕рдВрдкреВрд░реНрдг рдЬрдЧрднрд░рд╛рдд рдХрд╛рд░реНрдпрд░рдд рдЖрд╣реЗ. рдХрдВрдкрдиреАрдЪреЗ рдЕрднрд┐рдпрдВрддреЗ рдЙрддреНрдкрд╛рджрдирд╛рдд QUIC рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдирд┐рд░реНрдгрдпрд╛рд╡рд░ рдХрд╕реЗ рдЖрд▓реЗ, рддреНрдпрд╛рдВрдиреА рдЪрд╛рдЪрдгреНрдпрд╛ рдХрд╢рд╛ рдХреЗрд▓реНрдпрд╛ рдЖрдгрд┐ рдЙрддреНрдкрд╛рджрдирд╛рдд рд░реЛрд▓ рдЖрдЙрдЯ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рддреНрдпрд╛рдВрдиреА рдХрд╛рдп рдкрд╛рд╣рд┐рд▓реЗ - рдХрдЯрдЪреНрдпрд╛ рдЦрд╛рд▓реА.

рдЪрд┐рддреНрд░реЗ рдХреНрд▓рд┐рдХ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрд╣реЗрдд. рд╡рд╛рдЪрдирд╛рдЪрд╛ рдЖрдирдВрдж рдШреНрдпрд╛!

рдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ

Uber рдЪреЗ рдЬрд╛рдЧрддрд┐рдХ рд╕реНрддрд░рд╛рд╡рд░, рдореНрд╣рдгрдЬреЗ рдЙрдкрд╕реНрдерд┐рддреА рдЕрд╕рд▓реЗрд▓реА 600 рд╢рд╣рд░реЗ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдкреИрдХреА рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ 4500 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╕реЗрд▓реНрдпреБрд▓рд░ рдСрдкрд░реЗрдЯрд░реНрд╕рдЪреНрдпрд╛ рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдкреВрд░реНрдгрдкрдгреЗ рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ. рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЕреЕрдк рдлрдХреНрдд рд╡реЗрдЧрд╡рд╛рди рдирд╕реВрди рд░рд┐рдЕрд▓ рдЯрд╛рдЗрдордордзреНрдпреЗ рдЕрд╕рдгреНрдпрд╛рдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛рдд - рд╣реЗ рд╕рд╛рдзреНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, Uber рдЕреЕрдкрд▓рд╛ рдХрдореА рд╡рд┐рд▓рдВрдм рдЖрдгрд┐ рдЕрддрд┐рд╢рдп рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣ рдХрдиреЗрдХреНрд╢рди рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЕрд░реЗрд░реЗ, рдкрдг рд╕реНрдЯреЕрдХ HTTP / 2 рдбрд╛рдпрдиреЕрдорд┐рдХ рдЖрдгрд┐ рддреЛрдЯрд╛-рдкреНрд░рд╡рдг рд╡рд╛рдпрд░рд▓реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рдо рдХрд░рдд рдирд╛рд╣реА. рдЖрдордЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реЗ рдХреА рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдХрдореА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд░реНрдирд▓рдордзреАрд▓ TCP рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╢реА рдереЗрдЯ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ.

рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдЕрд░реНрдЬ рдХреЗрд▓рд╛ рдХреНрд╡рд┐рдХ, рдПрдХ рдЖрдзреБрдирд┐рдХ рдЪреЕрдиреЗрд▓ рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЬреЛ рдЖрдореНрд╣рд╛рд▓рд╛ рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╡рд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддреЛ. рд╕рдзреНрдпрд╛ рдХрд╛рд░реНрдпрд░рдд рдЧрдЯ IETF рдореНрд╣рдгреВрди QUIC рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рддреЗ HTTP / 3.

рд╡рд┐рд╕реНрддреГрдд рдЪрд╛рдЪрдгреАрдирдВрддрд░, рдЖрдореНрд╣реА рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдврд▓рд╛ рдХреА рдЖрдордЪреНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдордзреНрдпреЗ QUIC рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛рдиреЗ TCP рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдХрдореА рдЯреЗрд▓ рд▓реЗрдЯрдиреНрд╕реА рд╣реЛрддреАрд▓. рдЖрдореНрд╣реА рдбреНрд░рд╛рдпрд╡реНрд╣рд░ рдЖрдгрд┐ рдкреЕрд╕реЗрдВрдЬрд░ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ HTTPS рд░рд╣рджрд╛рд░реАрд╕рд╛рдареА 10-30% рдЪреНрдпрд╛ рд╢реНрд░реЗрдгреАрдд рдШрдЯ рдкрд╛рд╣рд┐рд▓реА. QUIC рдиреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкреЕрдХреЗрдЬреЗрд╕рд╡рд░ рдПрдВрдб-рдЯреВ-рдПрдВрдб рдирд┐рдпрдВрддреНрд░рдг рджреЗрдЦреАрд▓ рджрд┐рд▓реЗ.

рдпрд╛ рд▓реЗрдЦрд╛рдд, рдЖрдореНрд╣реА QUIC рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдгрд╛рд░рд╛ рд╕реНрдЯреЕрдХ рд╡рд╛рдкрд░реВрди Uber рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╛рдареА TCP рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЖрдордЪрд╛ рдЕрдиреБрднрд╡ рд╢реЗрдЕрд░ рдХрд░рддреЛ.

рдирд╡реАрдирддрдо рддрдВрддреНрд░рдЬреНрдЮрд╛рди: TCP

рдЖрдЬ, рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ HTTPS рд░рд╣рджрд╛рд░реА рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА TCP рд╣рд╛ рд╕рд░реНрд╡рд╛рдзрд┐рдХ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдгрд╛рд░рд╛ рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрд╣реЗ. TCP рдмрд╛рдЗрдЯреНрд╕рдЪрд╛ рдПрдХ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣ рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрдВрдЬреЗрд╢рди рдЖрдгрд┐ рд▓рд┐рдВрдХ рд▓реЗрдпрд░ рддреЛрдЯрд╛ рдпрд╛рдВрдЪрд╛ рд╕рд╛рдордирд╛ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. HTTPS рдЯреНрд░реЕрдлрд┐рдХрд╕рд╛рдареА TCP рдЪрд╛ рд╡реНрдпрд╛рдкрдХ рд╡рд╛рдкрд░ рдкреВрд░реНрд╡реАрдЪреНрдпрд╛ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреАрддреЗрдореБрд│реЗ рд╣реЛрддреЛ (рдЬрд╡рд│рдЬрд╡рд│ рдкреНрд░рддреНрдпреЗрдХ OS рдордзреНрдпреЗ TCP рдЕрд╕рддреЗ), рдмрд╣реБрддреЗрдХ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрд╡рд░реАрд▓ рдЙрдкрд▓рдмреНрдзрддрд╛ (рдЬрд╕реЗ рдХреА рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░реНрд╕, HTTPS рдкреНрд░реЙрдХреНрд╕реА рдЖрдгрд┐ CDN) рдЖрдгрд┐ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдореБрд│реЗ. рдмрд╣реБрддреЗрдХ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░.

рдмрд╣реБрддреЗрдХ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЬрд╛рддрд╛ рдЬрд╛рддрд╛ рдЖрдордЪреЗ рдЕреЕрдк рд╡рд╛рдкрд░рддрд╛рдд рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рд░рд┐рдЕрд▓-рдЯрд╛рдЗрдо HTTPS рдЯреНрд░реЕрдлрд┐рдХрдЪреНрдпрд╛ рдорд╛рдЧрдгреАрдЪреНрдпрд╛ рдЬрд╡рд│рдкрд╛рд╕рд╣реА TCP рдЯреЗрд▓ рд▓реЗрдЯрдиреНрд╕реАрдЬ рдирд╡реНрд╣рддреЗ. рд╕реЛрдкреНрдпрд╛ рднрд╛рд╖реЗрдд рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░, рдЬрдЧрднрд░рд╛рддреАрд▓ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдиреА рдпрд╛рдЪрд╛ рдЕрдиреБрднрд╡ рдШреЗрддрд▓рд╛ рдЖрд╣реЗ - рдЖрдХреГрддреА 1 рдкреНрд░рдореБрдЦ рд╢рд╣рд░рд╛рдВрдордзреНрдпреЗ рд╡рд┐рд▓рдВрдм рджрд░реНрд╢рд╡рд┐рддреЗ:

рдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ
рдЖрдХреГрддреА 1: Uber рдЪреНрдпрд╛ рдореБрдЦреНрдп рд╢рд╣рд░рд╛рдВрдордзреНрдпреЗ рдЯреЗрд▓ рд▓реЗрдЯрдиреНрд╕реА рдмрджрд▓рддреЗ.

рднрд╛рд░рддреАрдп рдЖрдгрд┐ рдмреНрд░рд╛рдЭрд┐рд▓рд┐рдпрди рдиреЗрдЯрд╡рд░реНрдХрдордзреАрд▓ рд╡рд┐рд▓рдВрдмрддрд╛ рдпреВрдПрд╕ рдЖрдгрд┐ рдпреВрдХреЗрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдЬрд╛рд╕реНрдд рдЕрд╕рд▓реА рддрд░реА, рдЯреЗрд▓ рд▓реЗрдЯрдиреНрд╕реА рд╕рд░рд╛рд╕рд░реА рд▓реЗрдЯрдиреНрд╕реАрдкреЗрдХреНрд╖рд╛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдЬрд╛рд╕реНрдд рдЖрд╣реЗ. рдЖрдгрд┐ рд╣реЗ рдЕрдЧрджреА рдпреВрдПрд╕ рдЖрдгрд┐ рдпреВрдХреЗрд╕рд╛рдареА рдЦрд░реЗ рдЖрд╣реЗ.

рд╣рд╡рд╛рдИ рдХрд╛рдордЧрд┐рд░реАрд╡рд░ TCP

TCP рд╕рд╛рдареА рддрдпрд╛рд░ рдХреЗрд▓реЗ рд╣реЛрддреЗ рд╡рд╛рдпрд░реНрдб рдиреЗрдЯрд╡рд░реНрдХреНрд╕, рдореНрд╣рдгрдЬреЗ, рдЙрдЪреНрдЪ рдЕрдВрджрд╛рдЬ рд▓рд╛рд╡рддрд╛ рдпреЗрдгреНрдпрд╛рдЬреЛрдЧреНрдпрд╛ рд▓рд┐рдВрдХреНрд╕рд╡рд░ рдЬреЛрд░ рджреЗрдКрди. рддрдерд╛рдкрд┐, рд╡рд╛рдпрд░рд▓реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХрдЪреА рд╕реНрд╡рддрдГрдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрдгрд┐ рдЕрдбрдЪрдгреА рдЖрд╣реЗрдд. рдкреНрд░рдердо, рд╡рд╛рдпрд░рд▓реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЖрдгрд┐ рд╕рд┐рдЧреНрдирд▓ рдХреНрд╖реАрдгрддреЗрдореБрд│реЗ рдиреБрдХрд╕рд╛рдирд╛рд╕ рд╕рдВрд╡реЗрджрдирд╛рдХреНрд╖рдо рдЕрд╕рддрд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд╛рдп-рдлрд╛рдп рдиреЗрдЯрд╡рд░реНрдХ рдорд╛рдпрдХреНрд░реЛрд╡реЗрд╡реНрд╣, рдмреНрд▓реВрдЯреВрде рдЖрдгрд┐ рдЗрддрд░ рд░реЗрдбрд┐рдУ рд▓рд╣рд░реАрдВрд╕рд╛рдареА рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЕрд╕рддрд╛рдд. рд╕реЗрд▓реНрдпреБрд▓рд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕рд┐рдЧреНрдирд▓ рдЧрдорд╛рд╡рдгреНрдпрд╛рдиреЗ рдЧреНрд░рд╕реНрдд рдЖрд╣реЗрдд (рд╣рд░рд╡рд▓реЗрд▓рд╛ рдорд╛рд░реНрдЧ) рд╡рд╕реНрддреВ рдЖрдгрд┐ рдЗрдорд╛рд░рддреАрдВрджреНрд╡рд╛рд░реЗ рд╕рд┐рдЧреНрдирд▓рдЪреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдм/рд╢реЛрд╖рдг рдХреЗрд▓реНрдпрд╛рдореБрд│реЗ, рддрд╕реЗрдЪ рдкрд╛рд╕реВрди рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╢реЗрдЬрд╛рд░реА рдкрд╛рд╕реВрди рд╕реЗрд▓ рдЯреЙрд╡рд░реНрд╕. рд╣реЗ рдЕрдзрд┐рдХ рд▓рдХреНрд╖рдгреАрдп (4-10 рд╡реЗрд│рд╛) рдЖрдгрд┐ рдЕрдзрд┐рдХ рд╡реИрд╡рд┐рдзреНрдпрдкреВрд░реНрдг рдард░рддреЗ рд░рд╛рдЙрдВрдб рдЯреНрд░рд┐рдк рд╡реЗрд│ (RTT) рдЖрдгрд┐ рд╡рд╛рдпрд░реНрдб рдХрдиреЗрдХреНрд╢рдирдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдкреЕрдХреЗрдЯрдЪреЗ рдиреБрдХрд╕рд╛рди.

рдмрдБрдбрд╡рд┐рдбреНрде рдЪрдврдЙрддрд╛рд░ рдЖрдгрд┐ рддреЛрдЯрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА, рд╕реЗрд▓реНрдпреБрд▓рд░ рдиреЗрдЯрд╡рд░реНрдХреНрд╕ рд╕рд╛рдорд╛рдиреНрдпрдд: рдЯреНрд░реЕрдлрд┐рдХ рд╕реНрдлреЛрдЯрд╛рдВрд╕рд╛рдареА рдореЛрдареНрдпрд╛ рдмрдлрд░рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддрд╛рдд. рдпрд╛рдореБрд│реЗ рдЬрд╛рд╕реНрдд рд░рд╛рдВрдЧ рд▓рд╛рдЧреВ рд╢рдХрддреЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЬрд╛рд╕реНрдд рд╡рд┐рд▓рдВрдм рд╣реЛрдК рд╢рдХрддреЛ. рдмрд░реЗрдЪрджрд╛ рдЯреАрд╕реАрдкреА рдпрд╛ рд░рд╛рдВрдЧреЗрд▓рд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд╛рд▓рдмрд╛рд╣реНрдпрддреЗрдореБрд│реЗ рдХрдЪрд░рд╛ рдорд╛рдирддреЗ, рддреНрдпрд╛рдореБрд│реЗ рдЯреАрд╕реАрдкреА рд░рд┐рд▓реЗ рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдмрдлрд░ рднрд░рддреЛ. рд╣реА рд╕рдорд╕реНрдпрд╛ рдореНрд╣рдгреВрди рдУрд│рдЦрд▓реА рдЬрд╛рддреЗ рдмрдлрд░рдмреНрд▓реЛрдЯ (рдЕрддреНрдпрдзрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдмрдлрд░рд┐рдВрдЧ, рдмрдлрд░ рдмреНрд▓реЛрдЯ), рдЖрдгрд┐ рд╣реЗ рдЦреВрдк рдЖрд╣реЗ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдЖрдзреБрдирд┐рдХ рдЗрдВрдЯрд░рдиреЗрдЯ.

рд╢реЗрд╡рдЯреА, рд╕реЗрд▓реНрдпреБрд▓рд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдХреЕрд░рд┐рдпрд░, рдкреНрд░рджреЗрд╢ рдЖрдгрд┐ рд╡реЗрд│реЗрдиреБрд╕рд╛рд░ рдмрджрд▓рддреЗ. рдЖрдХреГрддреА 2 рдордзреНрдпреЗ, рдЖрдореНрд╣реА 2-рдХрд┐рд▓реЛрдореАрдЯрд░ рд░реЗрдВрдЬрдордзреАрд▓ рд╕реЗрд▓рдордзреАрд▓ HTTPS рдЯреНрд░реЕрдлрд┐рдХрдЪрд╛ рдордзреНрдп рд╡рд┐рд▓рдВрдм рдЧреЛрд│рд╛ рдХреЗрд▓рд╛. рджрд┐рд▓реНрд▓реА, рднрд╛рд░рддрд╛рддреАрд▓ рджреЛрди рдкреНрд░рдореБрдЦ рд╕реЗрд▓реНрдпреБрд▓рд░ рдСрдкрд░реЗрдЯрд░рд╕рд╛рдареА рдбреЗрдЯрд╛ рдЧреЛрд│рд╛ рдХреЗрд▓рд╛. рдЬрд╕реЗ рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддрд╛, рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реЗрд▓ рддреЗ рд╕реЗрд▓ рдмрджрд▓рддреЗ. рддрд╕реЗрдЪ, рдПрдХрд╛ рдСрдкрд░реЗрдЯрд░рдЪреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рджреБрд╕рд▒реНрдпрд╛рдЪреНрдпрд╛ рдЙрддреНрдкрд╛рджрдХрддреЗрдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реА рдЕрд╕рддреЗ. рд╣реЗ рдЦрд╛рддреЗ рд╡реЗрд│ рдЖрдгрд┐ рд╕реНрдерд╛рди, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреА рдЧрддрд┐рд╢реАрд▓рддрд╛, рддрд╕реЗрдЪ рдЯреЙрд╡рд░ рдШрдирддрд╛ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреЗ рдкреНрд░рдорд╛рдг (LTE, 3G, рдЗ.) рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди рдиреЗрдЯрд╡рд░реНрдХ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдШрдЯрдХрд╛рдВрджреНрд╡рд╛рд░реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреЗ.

рдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ
рдЖрдХреГрддреА 2. рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди 2 рдХрд┐рдореА рддреНрд░рд┐рдЬреНрдпрд╛ рд╡рд╛рдкрд░реВрди рд╡рд┐рд▓рдВрдм. рджрд┐рд▓реНрд▓реА, рднрд╛рд░рдд.

рддрд╕реЗрдЪ, рд╕реЗрд▓реНрдпреБрд▓рд░ рдиреЗрдЯрд╡рд░реНрдХрдЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдХрд╛рд▓рд╛рдВрддрд░рд╛рдиреЗ рдмрджрд▓рддреЗ. рдЖрдХреГрддреА 3 рдЖрдард╡рдбреНрдпрд╛рдЪреНрдпрд╛ рджрд┐рд╡рд╕рд╛рдиреБрд╕рд╛рд░ рдордзреНрдп рд╡рд┐рд▓рдВрдм рджрд░реНрд╢рд╡рддреЗ. рдЖрдореНрд╣реА рдПрдХрд╛ рджрд┐рд╡рд╕рд╛рдд рдЖрдгрд┐ рддрд╛рд╕рд╛рдЪреНрдпрд╛ рдЖрдд, рд▓рд╣рд╛рди рдкреНрд░рдорд╛рдгрд╛рдд рдлрд░рдХ рджреЗрдЦреАрд▓ рдкрд╛рд╣рд┐рд▓реЗ.

рдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ
рдЖрдХреГрддреА 3. рдЯреЗрд▓ рд╡рд┐рд▓рдВрдм рджрд┐рд╡рд╕рд╛рдВрдордзреНрдпреЗ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдмрджрд▓реВ рд╢рдХрддрд╛рдд, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪ рдСрдкрд░реЗрдЯрд░рд╕рд╛рдареА.

рд╡рд░реАрд▓ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреАрдВрдореБрд│реЗ рд╡рд╛рдпрд░рд▓реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХреНрд╕рдордзреНрдпреЗ TCP рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдХреБрдЪрдХрд╛рдореА рдард░рддреЗ. рддрдерд╛рдкрд┐, TCP рд╕рд╛рдареА рдкрд░реНрдпрд╛рдп рд╢реЛрдзрдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдЖрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рд▓реАрд▓ рдореБрджреНрджреНрдпрд╛рдВрд╡рд░ рдЕрдЪреВрдХ рд╕рдордЬ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛рдпрдЪреА рд╣реЛрддреА:

  • рдЖрдордЪреНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреАрд▓ рдЯреЗрд▓ рд▓реЗрдЯреЗрдиреНрд╕реАрдорд╛рдЧреЗ TCP рдореБрдЦреНрдп рджреЛрд╖реА рдЖрд╣реЗ рдХрд╛?
  • рдЖрдзреБрдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рд▓рдХреНрд╖рдгреАрдп рдЖрдгрд┐ рд╡рд┐рд╡рд┐рдз рд░рд╛рдЙрдВрдб-рдЯреНрд░рд┐рдк рд╡рд┐рд▓рдВрдм (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 рдХрдиреЗрдХреНрд╢рдирдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд▓реЗ tcptrace. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА рдПрдХ Android рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬреЛ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд╣рджрд╛рд░реАрдЪреЗ рдЕрдиреБрдХрд░рдг рдХрд░реВрди рдЪрд╛рдЪрдгреА рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЕрдиреБрдХрд░рдгрд┐рдд рд░рд╣рджрд╛рд░реА рдкрд╛рдард╡рддреЛ. рдпрд╛ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╣ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдЕрдиреЗрдХ рдХрд░реНрдордЪрд╛рд▒реНрдпрд╛рдВрдирд╛ рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реЗ, рдЬреНрдпрд╛рдВрдиреА рдЕрдиреЗрдХ рджрд┐рд╡рд╕ рдиреЛрдВрджреА рдЧреЛрд│рд╛ рдХреЗрд▓реНрдпрд╛.

рджреЛрдиреНрд╣реА рдкреНрд░рдпреЛрдЧрд╛рдВрдЪреЗ рдкрд░рд┐рдгрд╛рдо рдПрдХрдореЗрдХрд╛рдВрд╢реА рд╕реБрд╕рдВрдЧрдд рд╣реЛрддреЗ. рдЖрдореНрд╣реА рдЙрдЪреНрдЪ рдЖрд░рдЯреАрдЯреА рд╡рд┐рд▓рдВрдм рдкрд╛рд╣рд┐рд▓реЗ; рд╢реЗрдкрдЯреАрдЪреА рдореВрд▓реНрдпреЗ рд╕рд░рд╛рд╕рд░реА рдореВрд▓реНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╡рд│рдЬрд╡рд│ 6 рдкрдЯ рдЬрд╛рд╕реНрдд рд╣реЛрддреА; рд╡рд┐рд▓рдВрдмрд╛рдЪреА рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рд░рд╛рд╕рд░реА 1 рд╕реЗрдХрдВрджрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЖрд╣реЗ. рдЕрдиреЗрдХ рдЬреЛрдбрдгреНрдпрд╛ рддреЛрдЯреНрдпрд╛рдд рд╣реЛрддреНрдпрд╛, рдЬреНрдпрд╛рдореБрд│реЗ TCP рдиреЗ рд╕рд░реНрд╡ рдкреЕрдХреЗрдЯрдкреИрдХреА 3,5% рдкреБрдиреНрд╣рд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реЗ. рд╡рд┐рдорд╛рдирддрд│ рдЖрдгрд┐ рд░реЗрд▓реНрд╡реЗ рд╕реНрдерд╛рдирдХрд╛рдВрд╕рд╛рд░рдЦреНрдпрд╛ рдЧрдЬрдмрдЬрд▓реЗрд▓реНрдпрд╛ рднрд╛рдЧрд╛рдд, рдЖрдореНрд╣реА рен% рдиреБрдХрд╕рд╛рди рдкрд╛рд╣рд┐рд▓реЗ. рд╣реЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗрд▓реНрдпреБрд▓рд░ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рд╢рд╣рд╛рдгрдкрдгрд╛рд╡рд░ рд╢рдВрдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛рдд рдкреНрд░рдЧрдд рд░реАрдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд╕рд░реНрдХрд┐рдЯреНрд╕ рд╡рд╛рд╣рддреВрдХ рд╕реНрддрд░рд╛рд╡рд░реАрд▓ рддреЛрдЯрд╛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рдХрд░рд╛. рдЦрд╛рд▓реА тАЬрд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░тАЭ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреЗ рдЪрд╛рдЪрдгреА рдкрд░рд┐рдгрд╛рдо рдЖрд╣реЗрдд:

рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдЯреНрд░рд┐рдХреНрд╕
рдореВрд▓реНрдпреЗ

RTT, рдорд┐рд▓рд┐рд╕реЗрдХрдВрдж [релреж%,ренрел%, репрел%,репреп%]
[,, реи, рез,]]

RTT рд╡рд┐рдЪрд▓рди, рд╕реЗрдХрдВрдж
рд╕рд░рд╛рд╕рд░реА ~1,2 рд╕реЗ

рдЕрд╕реНрдерд┐рд░ рдХрдиреЗрдХреНрд╢рдирд╡рд░ рдкреЕрдХреЗрдЯ рдиреБрдХрд╕рд╛рди
рд╕рд░рд╛рд╕рд░реА ~3.5% (рдУрд╡реНрд╣рд░рд▓реЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рднрд╛рдЧрд╛рдд 7%)

рдпрд╛рдкреИрдХреА рдЬрд╡рд│рдкрд╛рд╕ рдЕрд░реНрдзреНрдпрд╛ рдХрдиреЗрдХреНрд╢рдирдордзреНрдпреЗ рдХрд┐рдорд╛рди рдПрдХ рдкреЕрдХреЗрдЯ рддреЛрдЯрд╛ рд╣реЛрддрд╛, рддреНрдпрд╛рдкреИрдХреА рдмрд╣реБрддреЗрдХ SYN рдЖрдгрд┐ SYN-ACK рдкреЕрдХреЗрдЯ рд╣реЛрддреЗ. рдмрд╣реБрддреЗрдХ TCP рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА SYN рдкреЕрдХреЗрдЯрд╕рд╛рдареА 1 рд╕реЗрдХрдВрджрд╛рдЪреЗ RTO рдореВрд▓реНрдп рд╡рд╛рдкрд░рддреЗ, рдЬреЗ рдирдВрддрд░рдЪреНрдпрд╛ рдиреБрдХрд╕рд╛рдирд╛рд╕рд╛рдареА рд╡реЗрдЧрд╛рдиреЗ рд╡рд╛рдврддреЗ. рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА TCP рд▓рд╛ рдЬрд╛рд╕реНрдд рд╡реЗрд│ рд▓рд╛рдЧрд▓реНрдпрд╛рдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓реЛрдб рд╣реЛрдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│рд╛ рд╡рд╛рдвреВ рд╢рдХрддрд╛рдд.

рдбреЗрдЯрд╛ рдкреЕрдХреЗрдЯреНрд╕рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдЙрдЪреНрдЪ рдЖрд░рдЯреАрдУ рдореВрд▓реНрдпреЗ рд╡рд╛рдпрд░рд▓реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХреНрд╕рдордзреНрдпреЗ рдХреНрд╖рдгрд┐рдХ рдиреБрдХрд╕рд╛рдиреАрдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдд рдиреЗрдЯрд╡рд░реНрдХрдЪрд╛ рдЙрдкрдпреБрдХреНрдд рд╡рд╛рдкрд░ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдХрдореА рдХрд░рддрд╛рдд. рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдврд│рд▓реЗ рдХреА рд╕рд░рд╛рд╕рд░реА рд░реАрдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд╡реЗрд│ рдЕрдВрджрд╛рдЬреЗ 1 рд╕реЗрдХрдВрджрд╛рдВрдЪреНрдпрд╛ рд╢реЗрдкрдЯреАрдЪреНрдпрд╛ рд╡рд┐рд▓рдВрдмрд╛рд╕рд╣ рдЕрдВрджрд╛рдЬреЗ 30 рд╕реЗрдХрдВрдж рдЖрд╣реЗ. TCP рд╕реНрддрд░рд╛рд╡рд░реАрд▓ рдпрд╛ рдЙрдЪреНрдЪ рд╡рд┐рд▓рдВрдмрд╛рдВрдореБрд│реЗ HTTPS рдХрд╛рд▓рдмрд╛рд╣реНрдпрддрд╛ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдЭрд╛рд▓реНрдпрд╛, рдкреБрдвреЗ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдВрдмрддрд╛ рдЖрдгрд┐ рдЕрдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рдврд▓реА.

рдореЛрдЬрд▓реЗрд▓реЗ RTT рдЪреЗ 75 рд╡реЗ рдкрд░реНрд╕реЗрдВрдЯрд╛рдЗрд▓ рд╕реБрдорд╛рд░реЗ 425 ms рд╣реЛрддреЗ, рддрд░ TCP рд╕рд╛рдареА 75 рд╡реЗ рдкрд░реНрд╕реЗрдВрдЯрд╛рдЗрд▓ рдЬрд╡рд│рдкрд╛рд╕ 3 рд╕реЗрдХрдВрдж рд╣реЛрддреЗ. рд╣реЗ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рдХреА рдиреБрдХрд╕рд╛рдиреАрдореБрд│реЗ TCP рдореБрд│реЗ рдбреЗрдЯрд╛ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА 7-10 рдкрд╛рд╕ рдШреНрдпрд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ. рд╣реЗ рдЕрдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрд░рдЯреАрдУ рдЧрдгрдирд╛, рдиреБрдХрд╕рд╛рдирд╛рд╕ рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгреНрдпрд╛рд╕ TCP рдЪреНрдпрд╛ рдЕрдХреНрд╖рдорддреЗрдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрд╕реВ рд╢рдХрддреЛ рдирд╡реАрдирддрдо рдкреЕрдХреЗрдЬреЗрд╕ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рдЖрдгрд┐ рдХрдВрдЬреЗрд╢рди рдХрдВрдЯреНрд░реЛрд▓ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреА рдЕрдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рдЬреЗ рд╡рд╛рдпрд░рд▓реЗрд╕ рдиреБрдХрд╕рд╛рди рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХрдЪреНрдпрд╛ рдЧрд░реНрджреАрдореБрд│реЗ рд╣реЛрдгрд╛рд░реЗ рдиреБрдХрд╕рд╛рди рдпрд╛рдВрдЪреНрдпрд╛рдд рдлрд░рдХ рдХрд░рдд рдирд╛рд╣реА. рдЦрд╛рд▓реА TCP рдиреБрдХрд╕рд╛рди рдЪрд╛рдЪрдгреНрдпрд╛рдВрдЪреЗ рдкрд░рд┐рдгрд╛рдо рдЖрд╣реЗрдд:

TCP рдкреЕрдХреЗрдЯ рдиреБрдХрд╕рд╛рди рдЖрдХрдбреЗрд╡рд╛рд░реА
рдореВрд▓реНрдп

рдХрд┐рдорд╛рди 1 рдкреЕрдХреЗрдЯ рдЧрдорд╛рд╡рд▓реЗрд▓реНрдпрд╛ рдХрдиреЗрдХреНрд╢рдирдЪреА рдЯрдХреНрдХреЗрд╡рд╛рд░реА
45%

рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрдЕрдк рджрд░рдореНрдпрд╛рди рдиреБрдХрд╕рд╛рди рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдХрдиреЗрдХреНрд╢рдирдЪреА рдЯрдХреНрдХреЗрд╡рд╛рд░реА
30%

рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рджрд░рдореНрдпрд╛рди рдиреБрдХрд╕рд╛рдирд╛рд╕рд╣ рдХрдиреЗрдХреНрд╢рдирдЪреА рдЯрдХреНрдХреЗрд╡рд╛рд░реА
76%

рд░реАрдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рдирдордзреНрдпреЗ рд╡рд┐рд▓рдВрдмрд╛рдЪреЗ рд╡рд┐рддрд░рдг, рд╕реЗрдХрдВрдж [50%, 75%, 95%,99%] [1, 2.8, 15, 28]

рдПрдХрд╛ рдкреЕрдХреЗрдЯ рдХрд┐рдВрд╡рд╛ TCP рд╡рд┐рднрд╛рдЧрд╛рд╕рд╛рдареА рд░реАрдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рдирдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдЪреЗ рд╡рд┐рддрд░рдг
[1,3,6,7]

QUIC рдЪрд╛ рдЕрд░реНрдЬ

рдореВрд▓рддрдГ Google рджреНрд╡рд╛рд░реЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реЗ, QUIC рдПрдХ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЖрдзреБрдирд┐рдХ рд╡рд╛рд╣рддреВрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрд╣реЗ рдЬреЛ UDP рдЪреНрдпрд╛ рд╡рд░ рдЪрд╛рд▓рддреЛ. рд╕рдзреНрдпрд╛ QUIC рдордзреНрдпреЗ рдЖрд╣реЗ рдорд╛рдирдХреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдЖрдореНрд╣реА рдЖрдзреАрдЪ рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ рдХреА, QUIC рдЪреНрдпрд╛ рджреЛрди рдЖрд╡реГрддреНрддреНрдпрд╛ рдЖрд╣реЗрдд, рдЙрддреНрд╕реБрдХ рдЖрд╣реЗрдд рджреБрд╡реНрдпрд╛рдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░реВ рд╢рдХрддрд╛ - рдЕрдВрджрд╛рдЬреЗ рдЕрдиреБрд╡рд╛рджрдХ). рдЖрдХреГрддреА 5 рдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, QUIC рд╣реЗ HTTP/3 рдЕрдВрддрд░реНрдЧрдд рдареЗрд╡рд▓реЗ рдЖрд╣реЗ (рдЦрд░рдВ рддрд░, QUIC рдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА HTTP/2 рд╣реЗ HTTP/3 рдЖрд╣реЗ, рдЬреЗ рдЖрддрд╛ рдЧрд╣рдирдкрдгреЗ рдкреНрд░рдорд╛рдгрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдд рдЖрд╣реЗ). рд╣реЗ рдкреЕрдХреЗрдЯреНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UDP рд╡рд╛рдкрд░реВрди HTTPS рдЖрдгрд┐ TCP рд╕реНрддрд░рд╛рдВрдирд╛ рдЕрдВрд╢рддрдГ рдмрджрд▓рддреЗ. QUIC рдХреЗрд╡рд│ рд╕реБрд░рдХреНрд╖рд┐рдд рдбреЗрдЯрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдгрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддреЗ рдХрд╛рд░рдг TLS рдкреВрд░реНрдгрдкрдгреЗ QUIC рдордзреНрдпреЗ рдЕрдВрддрд░реНрднреВрдд рдЖрд╣реЗ.

рдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ
рдЖрдХреГрддреА 5: QUIC HTTP/3 рдЕрдВрддрд░реНрдЧрдд рдЪрд╛рд▓рддреЗ, TLS рдЪреНрдпрд╛ рдЬрд╛рдЧреА, рдЬреЗ рдкреВрд░реНрд╡реА HTTP/2 рдЕрдВрддрд░реНрдЧрдд рдЪрд╛рд▓рдд рд╣реЛрддреЗ.

рдЦрд╛рд▓реА рдХрд╛рд░рдгреЗ рдЖрд╣реЗрдд рдЬреА рдЖрдореНрд╣рд╛рд▓рд╛ TCP рдкреНрд░рд╡рд░реНрдзрдирд╛рд╕рд╛рдареА QUIC рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рдкрдЯрд╡реВрди рджреЗрддрд╛рдд:

  • 0-RTT рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрдирд╛. рд╕реБрд░рдХреНрд╖рд╛ рд╣рдБрдбрд╢реЗрдХрдЪреА рд╕рдВрдЦреНрдпрд╛ рдХрдореА рдХрд░реВрди, QUIC рдорд╛рдЧреАрд▓ рдХрдиреЗрдХреНрд╢рдирдордзреАрд▓ рдЕрдзрд┐рдХреГрддрддрд╛ рдкреБрдиреНрд╣рд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рднрд╡рд┐рд╖реНрдпрд╛рдд TLS1.3 0-RTT рдЪреЗ рд╕рдорд░реНрдерди рдХрд░реЗрд▓, рдкрд░рдВрддреБ рддрд░реАрд╣реА рддреАрди-рдорд╛рд░реНрдЧреА TCP рд╣рдБрдбрд╢реЗрдХ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓.
  • HoL рдмреНрд▓реЙрдХрд┐рдВрдЧрд╡рд░ рдорд╛рдд рдХрд░рдгреЗ. HTTP/2 рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рддрд┐ рдХреНрд▓рд╛рдпрдВрдЯ рдПрдХ TCP рдХрдиреЗрдХреНрд╢рди рд╡рд╛рдкрд░рддреЗ, рдкрд░рдВрддреБ рдпрд╛рдореБрд│реЗ HoL (рд╣реЗрдб-рдСрдл-рд▓рд╛рдЗрди) рдмреНрд▓реЙрдХрд┐рдВрдЧ рд╣реЛрдК рд╢рдХрддреЗ. QUIC рдорд▓реНрдЯрд┐рдкреНрд▓реЗрдХреНрд╕рд┐рдВрдЧ рд╕реБрд▓рдн рдХрд░рддреЗ рдЖрдгрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рд╡рд┐рдирдВрддреНрдпрд╛ рд╡рд┐рддрд░реАрдд рдХрд░рддреЗ.
  • рдЧрд░реНрджреА рдирд┐рдпрдВрддреНрд░рдг. QUIC рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддрд░рд╛рд╡рд░ рд░рд╛рд╣рддреЛ, рдЬреНрдпрд╛рдореБрд│реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ (рдиреБрдХрд╕рд╛рдирд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдХрд┐рдВрд╡рд╛ RTT) рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдкрд╛рдард╡рдгреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгрд╛рд░реЗ рдореБрдЦреНрдп рд╡рд╛рд╣рддреВрдХ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЕрдкрдбреЗрдЯ рдХрд░рдгреЗ рд╕реЛрдкреЗ рд╣реЛрддреЗ. рдмрд╣реБрддреЗрдХ TCP рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░рддрд╛рдд рдХреНрдпреВрдмрд┐рдХ, рдЬреЗ рд╡рд┐рд▓рдВрдм-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд░рд╣рджрд╛рд░реАрд╕рд╛рдареА рдЗрд╖реНрдЯрддрдо рдирд╛рд╣реА. рдЕрд▓реАрдХрдбреЗ рд╡рд┐рдХрд╕рд┐рдд рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЬрд╕реЗ рдмреАрдмреАрдЖрд░, рдЕрдзрд┐рдХ рдЕрдЪреВрдХрдкрдгреЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЙрдбреЗрд▓ рдХрд░рд╛ рдЖрдгрд┐ рд▓реЗрдЯрдиреНрд╕реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рд╛. QUIC рддреБрдореНрд╣рд╛рд▓рд╛ BBR рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рд╣реЗ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рд╕реБрдзрд╛рд░рдгрд╛.
  • рдиреБрдХрд╕рд╛рдирд╛рдЪреА рднрд░рдкрд╛рдИ. QUIC рджреЛрди TLP рд▓рд╛ рдХреЙрд▓ рдХрд░рддреЗ (рд╢реЗрдкреВрдЯ рдиреБрдХрд╕рд╛рди рдЪреМрдХрд╢реА) рдЖрд░рдЯреАрдУ рд╕реБрд░реВ рд╣реЛрдгреНрдпрд╛рдЖрдзреА - рдиреБрдХрд╕рд╛рди рдЕрдЧрджреА рд▓рдХреНрд╖рд╛рдд рдпреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЕрд╕рддрд╛рдирд╛рд╣реА. рд╣реЗ TCP рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реЗ рдЖрд╣реЗ. рдЬрд▓рдж рднрд░рдкрд╛рдИ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА TLP рдореБрдЦреНрдпрддрдГ рд╢реЗрд╡рдЯрдЪреЗ рдкреЕрдХреЗрдЯ (рдХрд┐рдВрд╡рд╛ рдирд╡реАрди рдЕрд╕рд▓реНрдпрд╛рд╕) рдкреБрдиреНрд╣рд╛ рдкрд╛рдард╡рддреЗ. рдЯреЗрд▓ рд╡рд┐рд▓рдВрдм рд╣рд╛рддрд╛рд│рдгреЗ рд╡рд┐рд╢реЗрд╖рддрдГ Uber рдЪреЗ рдиреЗрдЯрд╡рд░реНрдХ рдЬреНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рдЪрд╛рд▓рд╡рддреЗ рддреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ рд▓рд╣рд╛рди, рддреБрд░рд│рдХ рдЖрдгрд┐ рд╡рд┐рд▓рдВрдм-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдиреНрд╕рдлрд░рд╕рд╛рдареА.
  • рдЕрдиреБрдХреВрд▓рд┐рдд ACK. рдкреНрд░рддреНрдпреЗрдХ рдкреЕрдХреЗрдЯрд▓рд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЕрдиреБрдХреНрд░рдо рдХреНрд░рдорд╛рдВрдХ рдЕрд╕рд▓реНрдпрд╛рдиреЗ рдХреЛрдгрддреАрд╣реА рдЕрдбрдЪрдг рдирд╛рд╣реА рднреЗрдж рдкреЕрдХреЗрдЯ рдЬреЗрд╡реНрд╣рд╛ рддреЗ рдкреБрдиреНрд╣рд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. ACK рдкреЕрдХреЗрдЯрдордзреНрдпреЗ рдкреЕрдХреЗрдЯрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ ACK рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡реЗрд│ рджреЗрдЦреАрд▓ рдЕрд╕рддреЛ. рд╣реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ QUIC рдЕрдзрд┐рдХ рдЕрдЪреВрдХрдкрдгреЗ RTT рдЧрдгрдирд╛ рдХрд░рддреЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рддрд╛рдд. QUIC рдордзреНтАНрдпреЗ ACK 256 рдмрдБрдбрдкрд░реНрдпрдВрдд рд╕рдкреЛрд░реНрдЯ рдХрд░рддреЗ NACK, рдкреНрд░реЗрд╖рдХрд╛рд▓рд╛ рдкреЕрдХреЗрдЯ рд╢рдлрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдзрд┐рдХ рд▓рд╡рдЪрд┐рдХ рд╣реЛрдгреНрдпрд╛рд╕ рдорджрдд рдХрд░рдгреЗ рдЖрдгрд┐ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдХрдореА рдмрд╛рдЗрдЯреНрд╕ рд╡рд╛рдкрд░рдгреЗ. рдирд┐рд╡рдбрдХ ACK (рд╕реЕрдХ) TCP рдордзреНрдпреЗ рд╕рд░реНрд╡ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдд рдирд╛рд╣реА.
  • рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд▓рд╛рдВрддрд░. QUIC рдХрдиреЗрдХреНрд╢рдиреНрд╕ 64-рдмрд┐рдЯ ID рджреНрд╡рд╛рд░реЗ рдУрд│рдЦрд▓реЗ рдЬрд╛рддрд╛рдд, рдореНрд╣рдгреВрди рдЬрд░ рдПрдЦрд╛рджреНрдпрд╛ рдХреНрд▓рд╛рдпрдВрдЯрдиреЗ IP рдкрддреНрддреЗ рдмрджрд▓рд▓реЗ, рддрд░ рдЬреБрдирд╛ рдХрдиреЗрдХреНрд╢рди ID рдирд╡реАрди IP рдкрддреНрддреНрдпрд╛рд╡рд░ рд╡реНрдпрддреНрдпрдпрд╛рд╢рд┐рд╡рд╛рдп рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдореЛрдмрд╛рдИрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╛рдареА рд╣реА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрджреНрдзрдд рдЖрд╣реЗ рдЬрд┐рдереЗ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ Wi-Fi рдЖрдгрд┐ рд╕реЗрд▓реНрдпреБрд▓рд░ рдХрдиреЗрдХреНрд╢рди рджрд░рдореНрдпрд╛рди рд╕реНрд╡рд┐рдЪ рдХрд░рддреЛ.

QUIC рд╕рд╛рдареА рдкрд░реНрдпрд╛рдп

рдЖрдореНрд╣реА QUIC рдирд┐рд╡рдбрдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкрд░реНрдпрд╛рдпреА рдкрдзреНрджрддреАрдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛.

рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЬрд╡рд│рдЪреЗ TCP рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА TPC PoPs (рдкреЙрдЗрдВрдЯреНрд╕ рдСрдл рдкреНрд░реЗрдЭреЗрдиреНрд╕) рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЖрдореНрд╣реА рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛. рдореВрд▓рдд:, PoPs рд╕реЗрд▓реНрдпреБрд▓рд░ рдиреЗрдЯрд╡рд░реНрдХрдЪреНрдпрд╛ рдЬрд╡рд│ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╕рд╣ TCP рдХрдиреЗрдХреНрд╢рди рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛рдд рдЖрдгрд┐ рдЯреНрд░реЕрдлрд┐рдХрд▓рд╛ рдореВрд│ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдХрдбреЗ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рддрд╛рдд. TCP рдЬрд╡рд│ рдмрдВрдж рдХрд░реВрди, рдЖрдореНрд╣реА рд╕рдВрднрд╛рд╡реНрдпрдкрдгреЗ RTT рдХрдореА рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ TCP рдбрд╛рдпрдиреЕрдорд┐рдХ рд╡рд╛рдпрд░рд▓реЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгрд╛рд░реА рдЖрд╣реЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░реВ рд╢рдХрддреЛ. рддрдерд╛рдкрд┐, рдЖрдордЪреНрдпрд╛ рдкреНрд░рдпреЛрдЧрд╛рдВрдиреА рджрд░реНрд╢рд╡рд┐рд▓реЗ рдЖрд╣реЗ рдХреА рдмрд╣реБрддреЗрдХ RTT рдЖрдгрд┐ рддреЛрдЯрд╛ рд╕реЗрд▓реНрдпреБрд▓рд░ рдиреЗрдЯрд╡рд░реНрдХрдордзреВрди рд╣реЛрддреЛ рдЖрдгрд┐ PoPs рдЪрд╛ рд╡рд╛рдкрд░ рд▓рдХреНрд╖рдгреАрдп рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгрд╛ рдкреНрд░рджрд╛рди рдХрд░рдд рдирд╛рд╣реА.

рдЖрдореНрд╣реА TCP рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдЯреНрдпреВрдирд┐рдВрдЧ рджреЗрдЦреАрд▓ рдкрд╛рд╣рд┐рд▓реЗ. рдЖрдордЪреНрдпрд╛ рд╡рд┐рд╖рдо рдПрдЬ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ TCP рд╕реНрдЯреЕрдХ рд╕реЗрдЯ рдХрд░рдгреЗ рдХрдареАрдг рд╣реЛрддреЗ рдХрд╛рд░рдг TCP рдЪреА рд╡рд┐рд╡рд┐рдз OS рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдордзреНрдпреЗ рднрд┐рдиреНрди рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрд╣реЗ. рдпрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреЗ рдЖрдгрд┐ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдгреЗ рдХрдареАрдг рд╣реЛрддреЗ. рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ рдереЗрдЯ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░ TCP рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЭрд╛рд▓реЗ рдирд╛рд╣реА. рдЕрдзрд┐рдХ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдореНрд╣рдгрдЬреЗ, 0-RTT рдХрдиреЗрдХреНрд╢рди рдЖрдгрд┐ рд╕реБрдзрд╛рд░рд┐рдд RTT рдЕрдВрджрд╛рдЬ рдпрд╛рд╕рд╛рд░рдЦреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреНрдпрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЖрд╣реЗрдд, рдЖрдгрд┐ рдореНрд╣рдгреВрдирдЪ рдХреЗрд╡рд│ TCP рдЯреНрдпреВрди рдХрд░реВрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдлрд╛рдпрджреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЕрд╢рдХреНрдп рдЖрд╣реЗ.

рд╢реЗрд╡рдЯреА, рдЖрдореНрд╣реА рдЕрдиреЗрдХ UDP-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗрд▓реЗ рдЬреЗ рд╡реНрд╣рд┐рдбрд┐рдУ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧрдЪреЗ рд╕рдорд╕реНрдпрд╛рдирд┐рд╡рд╛рд░рдг рдХрд░рддрд╛рддтАФрдЖрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдорджрдд рдХрд░рддреАрд▓ рдХреА рдирд╛рд╣реА рд╣реЗ рдкрд╛рд╣рд╛рдпрдЪреЗ рд╣реЛрддреЗ. рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдмрд░реНтАНрдпрд╛рдЪ рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдЪрд╛ рдЕрднрд╛рд╡ рд╣реЛрддрд╛ рдЖрдгрд┐ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЖрдгрд┐ рдирд┐рдпрдВрддреНрд░рдг рдорд╛рд╣рд┐рддреАрд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд TCP рдХрдиреЗрдХреНрд╢рди рджреЗрдЦреАрд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ.

рдЖрдордЪреНрдпрд╛ рд╕рдВрд╢реЛрдзрдирд╛рдд рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдЖрд╣реЗ рдХреА QUIC рд╣рд╛ рдХрджрд╛рдЪрд┐рдд рдПрдХрдореЗрд╡ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрд╣реЗ рдЬреЛ рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рдЖрдгрд┐ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдпрд╛ рджреЛрдиреНрд╣реА рдЧреЛрд╖реНрдЯреА рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди рдЗрдВрдЯрд░рдиреЗрдЯ рд░рд╣рджрд╛рд░реАрдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрд╕ рдорджрдд рдХрд░реВ рд╢рдХрддреЛ.

рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ QUIC рдЪреЗ рдПрдХрддреНрд░реАрдХрд░рдг

QUIC рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдПрдореНрдмреЗрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЦрд░рд╛рдм рдХрдиреЗрдХреНрдЯрд┐рд╡реНрд╣рд┐рдЯреА рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдЬреБрдирд╛ рд╕реНрдЯреЕрдХ (HTTP/2 рдУрд╡реНрд╣рд░ TLS/TCP) QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдиреЗ рдмрджрд▓рд▓рд╛. рдЖрдореНрд╣реА рдиреЗрдЯрд╡рд░реНрдХ рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рд▓реА рдХреНрд░реЛрдиреЗрдЯ рдкрд╛рд╕реВрди Chromium рдкреНрд░рдХрд▓реНрдк, рдЬреНрдпрд╛рдордзреНрдпреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреА рдореВрд│, Google рдЖрд╡реГрддреНрддреА рдЖрд╣реЗ - gQUIC. рдирд╡реАрдирддрдо IETF рддрдкрд╢реАрд▓рд╛рдВрдЪреЗ рдкрд╛рд▓рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╣реА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рджреЗрдЦреАрд▓ рд╕рддрдд рд╕реБрдзрд╛рд░рд▓реА рдЬрд╛рдд рдЖрд╣реЗ.

QUIC рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдкреНрд░рдердо рдЖрдордЪреНрдпрд╛ Android рдЕреЕрдкреНрд╕рдордзреНрдпреЗ Cronet рд╕рдорд╛рдХрд▓рд┐рдд рдХреЗрд▓реЗ. рд╕реНрдерд▓рд╛рдВрддрд░ рдЦрд░реНрдЪ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХрддреНрд░реАрдХрд░рдг рдХреЗрд▓реЗ рдЧреЗрд▓реЗ. рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдЬреБрдиреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд╕реНрдЯреЕрдХрд▓рд╛ рдкреВрд░реНрдгрдкрдгреЗ рдмрджрд▓рдгреНрдпрд╛рдРрд╡рдЬреА OkHttp, рдЖрдореНрд╣реА OkHttp API рдлреНрд░реЗрдорд╡рд░реНрдХ рдЕрдВрддрд░реНрдЧрдд Cronet рд╕рдорд╛рдХрд▓рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдПрдХрддреНрд░реАрдХрд░рдг рдХрд░реВрди, рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓рдордзреАрд▓ рдмрджрд▓ рдЯрд╛рд│рд▓реЗ (рдЬреЗ рд╡рд╛рдкрд░рддрд╛рдд рд░рд┐рдЯреНрд░реЛрдлрд┐рдЯ) API рд╕реНрддрд░рд╛рд╡рд░.

рдЕрдБрдбреНрд░реЙрдЗрдб рдЙрдкрдХрд░рдгрд╛рдВрд╕рд╛рдареАрдЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдкреНрд░рдорд╛рдгреЗрдЪ, рдЖрдореНрд╣реА iOS рд╡рд░реАрд▓ Uber рдЕреЕрдкреНрд╕рдордзреНрдпреЗ Cronet рд▓рд╛рдЧреВ рдХреЗрд▓реЗ, рдиреЗрдЯрд╡рд░реНрдХрд╡рд░реВрди HTTP рдЯреНрд░реЕрдлрд┐рдХ рд░реЛрдЦреВрди APIрд╡рд╛рдкрд░рдд рдЖрд╣реЗ NSURLрдкреНрд░реЛрдЯреЛрдХреЙрд▓. iOS рдлрд╛рдЙрдВрдбреЗрд╢рдирджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реЗ рд╣реЗ рдЕтАНреЕрдмреНрд╕реНрдЯреНрд░реЕрдХреНрд╢рди, рдкреНрд░реЛрдЯреЛрдХреЙрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ URL рдбреЗрдЯрд╛ рд╣рд╛рддрд╛рд│рддреЗ рдЖрдгрд┐ рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рдХреА рдЖрдореНрд╣реА рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕реНрдерд▓рд╛рдВрддрд░ рдЦрд░реНрдЪрд╛рд╢рд┐рд╡рд╛рдп рдЖрдордЪреНрдпрд╛ iOS рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдордзреНрдпреЗ Cronet рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░реВ рд╢рдХрддреЛ.

Google Cloud Balancers рд╡рд░ QUIC рдкреВрд░реНрдг рдХрд░рдд рдЖрд╣реЗ

рдмреЕрдХрдПрдВрдб рдмрд╛рдЬреВрд▓рд╛, Google рдХреНрд▓рд╛рдЙрдб рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░рджреНрд╡рд╛рд░реЗ QUIC рдкреВрд░реНрдгрддреНрд╡ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ рд╡рд╛рдкрд░рддреЗ alt-svc QUIC рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдВрдордзреНрдпреЗ рд╢реАрд░реНрд╖рд▓реЗрдЦ. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдмреЕрд▓рдиреНрд╕рд░ рдкреНрд░рддреНрдпреЗрдХ HTTP рд╡рд┐рдирдВрддреАрд╡рд░ alt-svc рд╢реАрд░реНрд╖рд▓реЗрдЦ рдЬреЛрдбрддреЛ рдЖрдгрд┐ рд╣реЗ рдбреЛрдореЗрдирд╕рд╛рдареА рдЖрдзреАрдЪ QUIC рд╕рдорд░реНрдерди рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рддреЗ. рдЬреЗрд╡реНрд╣рд╛ рдХреНрд░реЙрдиреЗрдЯ рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рдпрд╛ рд╢реАрд░реНрд╖рд▓реЗрдЦрд╛рд╕рд╣ HTTP рдкреНрд░рддрд┐рд╕рд╛рдж рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЛ, рддреЗрд╡реНрд╣рд╛ рддреЛ рддреНрдпрд╛ рдбреЛрдореЗрдирдЪреНрдпрд╛ рдкреБрдвреАрд▓ HTTP рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╛рдареА QUIC рд╡рд╛рдкрд░рддреЛ. рдПрдХрджрд╛ рдмреЕрд▓рдиреНрд╕рд░рдиреЗ QUIC рдкреВрд░реНрдг рдХреЗрд▓реНрдпрд╛рд╡рд░, рдЖрдордЪреА рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╣реА рдХреНрд░рд┐рдпрд╛ HTTP2/TCP рд╡рд░ рдЖрдордЪреНрдпрд╛ рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░рд╛рдВрдирд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдкрд╛рдард╡рддреЗ.

рдХрд╛рдордЧрд┐рд░реА: рдкрд░рд┐рдгрд╛рдо

рдЖрдЙрдЯрдкреБрдЯ рдХрд╛рдордЧрд┐рд░реА рд╣реЗ рдЖрдордЪреНрдпрд╛ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреНрдпрд╛ рд╢реЛрдзрд╛рдЪреЗ рдореБрдЦреНрдп рдХрд╛рд░рдг рдЖрд╣реЗ. рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, рдЖрдореНрд╣реА рдПрдХ рд╕реНрдЯрдБрдб рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдХрд░рдгрднрд┐рдиреНрди рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдЕрдВрддрд░реНрдЧрдд QUIC рдХрд╕реЗ рд╡рд╛рдЧреЗрд▓ рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА. рд░рд┐рдЕрд▓-рд╡рд░реНрд▓реНрдб рдиреЗрдЯрд╡рд░реНрдХреНрд╕рд╡рд░ QUIC рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рдЪреА рдЪрд╛рдЪрдгреА рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдкреНрд░рд╡рд╛рд╕реА рдЕреЕрдкрдордзреАрд▓ HTTP рдХреЙрд▓ рдкреНрд░рдорд╛рдгреЗрдЪ рдЕрдиреБрдХрд░рдгреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реЕрдлрд┐рдХ рд╡рд╛рдкрд░реВрди рдирд╡реА рджрд┐рд▓реНрд▓реАрднреЛрд╡рддреА рдЧрд╛рдбреА рдЪрд╛рд▓рд╡рддрд╛рдирд╛ рдкреНрд░рдпреЛрдЧ рдХреЗрд▓реЗ.

рдкреНрд░рдпреЛрдЧ рез

рдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА рдЙрдкрдХрд░рдгреЗ:

  • рдЖрдореНрд╣реА рдЕрдиреБрдХреНрд░рдореЗ TCP рдЖрдгрд┐ QUIC рд╡рд░ HTTPS рд░рд╣рджрд╛рд░реАрд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА OkHttp рдЖрдгрд┐ Cronet рд╕реНрдЯреЕрдХрд╕рд╣ Android рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рдЪреА рдЪрд╛рдЪрдгреА рдШреНрдпрд╛;
  • Java-рдЖрдзрд╛рд░рд┐рдд рдЗрдореНрдпреБрд▓реЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░ рдЬреЛ рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдВрдордзреНрдпреЗ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░рдЪреЗ HTTPS рд╢реАрд░реНрд╖рд▓реЗрдЦ рдкрд╛рдард╡рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреВрди рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд▓рд╛рдпрдВрдЯ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рд▓реЛрдб рдХрд░рддреЛ;
  • TCP рдЖрдгрд┐ QUIC рдХрдиреЗрдХреНрд╢рди рд╕рдВрдкреБрд╖реНрдЯрд╛рдд рдЖрдгрдгреНрдпрд╛рд╕рд╛рдареА рднреМрддрд┐рдХрд░рд┐рддреНрдпрд╛ рднрд╛рд░рддрд╛рдЬрд╡рд│ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХреНрд▓рд╛рдЙрдб рдкреНрд░реЙрдХреНрд╕реА. TCP рдЯрд░реНрдорд┐рдиреЗрд╢рдирд╕рд╛рдареА рдЖрдореНрд╣реА рд░рд┐рд╡реНрд╣рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдСрди рд╡рд╛рдкрд░рд▓реА рдПрдирдЬреАрдПрдирдПрдХреНрд╕, QUIC рд╕рд╛рдареА рдУрдкрди рд╕реЛрд░реНрд╕ рд░рд┐рд╡реНрд╣рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╢реЛрдзрдгреЗ рдХрдареАрдг рд╣реЛрддреЗ. рдЖрдореНрд╣реА рдХреНрд░реЛрдорд┐рдпрдо рдЖрдгрд┐ рдкреНрд░рдХрд╛рд╢рд┐рдд рдореБрдХреНрдд рд╕реНрд░реЛрдд рдореНрд╣рдгреВрди рдХреНрд░реЛрдорд┐рдпрдордордзреНрдпреЗ.

рдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗрдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ
рдЖрдХреГрддреА 6. TCP vs QUIC рд░реЛрдб рдЪрд╛рдЪрдгреА рд╕рдВрдЪрдордзреНрдпреЗ OkHttp рдЖрдгрд┐ Cronet рд╕рд╣ Android рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕, рдХрдиреЗрдХреНрд╢рди рд╕рдорд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд▓рд╛рдЙрдб рдкреНрд░реЙрдХреНрд╕реА рдЖрдгрд┐ рдПрдХ рдЗрдореНрдпреБрд▓реЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░ рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ.

рдкреНрд░рдпреЛрдЧ рез

рдЬреЗрд╡реНрд╣рд╛ Google рдиреЗ QUIC рдЙрдкрд▓рдмреНрдз рдХрд░реВрди рджрд┐рд▓реЗ Google рдХреНрд▓рд╛рдЙрдб рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ, рдЖрдореНрд╣реА рд╕рдорд╛рди рдЗрдиреНрд╡реНрд╣реЗрдВрдЯрд░реА рд╡рд╛рдкрд░рд▓реА, рдкрд░рдВрддреБ рдПрдХрд╛ рдмрджрд▓рд╛рд╕рд╣: NGINX рдРрд╡рдЬреА, рдЖрдореНрд╣реА рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рд╡рд░реВрди TCP рдЖрдгрд┐ QUIC рдХрдиреЗрдХреНрд╢рди рд╕рдорд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрд╕реЗрдЪ рдЗрдореНрдпреБрд▓реЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ HTTPS рдЯреНрд░реЕрдлрд┐рдХ рд░реВрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Google рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░реНрд╕ рдШреЗрддрд▓реЗ. рдмреЕрд▓рдиреНрд╕рд░ рдЬрдЧрднрд░рд╛рдд рд╡рд┐рддрд░реАрдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдкрд░рдВрддреБ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рдЪреНрдпрд╛ рд╕рд░реНрд╡рд╛рдд рдЬрд╡рд│рдЪрд╛ PoP рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░рд╛ (рдЬрд┐рдУрд▓реЛрдХреЗрд╢рдирдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж).

рдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ
рдЖрдХреГрддреА 7. рджреБрд╕рд▒реНрдпрд╛ рдкреНрд░рдпреЛрдЧрд╛рдд, рдЖрдореНрд╣рд╛рд▓рд╛ TCP рдЖрдгрд┐ QUIC рдЪреНрдпрд╛ рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреНрдпрд╛ рд╡рд┐рд▓рдВрдмрд╛рдЪреА рддреБрд▓рдирд╛ рдХрд░рд╛рдпрдЪреА рд╣реЛрддреА: Google Cloud рд╡рд╛рдкрд░реВрди рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рдХреНрд▓рд╛рдЙрдб рдкреНрд░реЙрдХреНрд╕реАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди.

рдкрд░рд┐рдгрд╛рдореА, рдЕрдиреЗрдХ рдЦреБрд▓рд╛рд╕реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдЯ рдкрд╛рд╣рдд рд╣реЛрддреЗ:

  • PoP рджреНрд╡рд╛рд░реЗ рд╕рдорд╛рдкреНрддреА TCP рдХрд╛рдордЧрд┐рд░реА рд╕реБрдзрд╛рд░рд▓реА. рдмреЕрд▓рдиреНрд╕рд░реНрд╕ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЬрд╡рд│ TCP рдХрдиреЗрдХреНрд╢рдиреНрд╕ рд╕рдВрдкреБрд╖реНрдЯрд╛рдд рдЖрдгрддрд╛рдд рдЖрдгрд┐ рдЙрдЪреНрдЪ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдпрд╛рдореБрд│реЗ RTT рдХрдореА рд╣реЛрддрд╛рдд, рдЬреНрдпрд╛рдореБрд│реЗ TCP рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рддреЗ. рдЖрдгрд┐ рдЬрд░реА QUIC рдЪрд╛ рдХрдореА рдкрд░рд┐рдгрд╛рдо рдЭрд╛рд▓рд╛, рддрд░реАрд╣реА рдЯреЗрд▓ рд▓реЗрдЯрдиреНрд╕реА (10-30 рдЯрдХреНрдХреНрдпрд╛рдВрдиреА) рдХрдореА рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рддреЗ TCP рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдХрд╛рдордЧрд┐рд░реА рдХрд░рддреЗ.
  • рд╢реЗрдкрдЯреА рдкреНрд░рднрд╛рд╡рд┐рдд рдЖрд╣реЗрдд рдиреЗрдЯрд╡рд░реНрдХ рд╣реЙрдкреНрд╕. рдЬрд░реА рдЖрдордЪреА QUIC рдкреНрд░реЙрдХреНрд╕реА Google рдЪреНрдпрд╛ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░реНрд╕рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд (рд╕реБрдорд╛рд░реЗ 50 ms рдЬрд╛рд╕реНрдд рд▓реЗрдЯрдиреНрд╕реА) рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рд╡рд░реВрди рд╣реЛрддреА, рддрд░реАрд╣реА рддреНрдпрд╛рдиреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рджрд┐рд▓реЗ - рд▓реЗрдЯрдиреНрд╕реАрдордзреНрдпреЗ 15% рдШрдЯ рд╡рд┐рд░реБрджреНрдз TCP рд╕рд╛рдареА 20 рд╡реНрдпрд╛ рдкрд░реНрд╕реЗрдВрдЯрд╛рдЗрд▓рдордзреНрдпреЗ 99% рдШрдЯ. рд╣реЗ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рдХреА рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рдореИрд▓рд╛рдЪреЗ рд╕рдВрдХреНрд░рдордг рдиреЗрдЯрд╡рд░реНрдХрдордзреАрд▓ рдЕрдбрдерд│реЗ рдЖрд╣реЗ.

рдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗрдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ
рдЖрдХреГрддреА 8: рджреЛрди рдкреНрд░рдпреЛрдЧрд╛рдВрдЪреЗ рдкрд░рд┐рдгрд╛рдо рджрд░реНрд╢рд╡рддрд╛рдд рдХреА QUIC рд▓рдХреНрд╖рдгреАрдпрд░рд┐рддреНрдпрд╛ TCP рд▓рд╛ рдорд╛рдЧреЗ рдЯрд╛рдХрддреЗ.

рд╡рд╛рд╣рддреВрдХ рд╡рд╛рд╣рддреВрдХ

рдкреНрд░рдпреЛрдЧрд╛рдиреЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдКрди, рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ Android рдЖрдгрд┐ iOS рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдордзреНрдпреЗ QUIC рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЬреНрдпрд╛ рд╢рд╣рд░рд╛рдВрдордзреНрдпреЗ Uber рдХрд╛рд░реНрдпрд░рдд рдЖрд╣реЗ рддреЗрдереЗ QUIC рдЪрд╛ рдкреНрд░рднрд╛рд╡ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА A/B рдЪрд╛рдЪрдгреА рдХреЗрд▓реА. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдЖрдореНрд╣реА рджреЛрдиреНрд╣реА рдХреНрд╖реЗрддреНрд░рд╛рдВрдордзреНрдпреЗ, рджреВрд░рд╕рдВрдЪрд╛рд░ рдСрдкрд░реЗрдЯрд░ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рдХрд╛рд░рд╛рдд рдЯреЗрд▓ рд╡рд┐рд▓рдВрдмрд╛рдордзреНрдпреЗ рд▓рдХреНрд╖рдгреАрдп рдШрдЯ рдкрд╛рд╣рд┐рд▓реА.

рдЦрд╛рд▓реАрд▓ рдЖрд▓реЗрдЦ рдореЕрдХреНрд░реЛ-рд░рд┐рдЬрди рдЖрдгрд┐ рд╡рд┐рд╡рд┐рдз рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рдХрд╛рд░рд╛рдВрдиреБрд╕рд╛рд░ рдкреБрдЪреНрдЫрд╛рдВрдордзреНрдпреЗ (95 рдЖрдгрд┐ 99 рдЯрдХреНрдХреЗрд╡рд╛рд░реА) рдЯрдХреНрдХреЗрд╡рд╛рд░реА рд╕реБрдзрд╛рд░рдгрд╛ рджрд░реНрд╢рд╡рддрд╛рдд - LTE, 3G, 2G.
рдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗрдХреГрддреАрдордзреНрдпреЗ QUIC рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА UberрдиреЗ рддреЗ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ
рдЖрдХреГрддреА 9. рдпреБрджреНрдзрд╛рдЪреНрдпрд╛ рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ, QUIC рдиреЗ рд╡рд┐рд▓рдВрдмрддреЗрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдЯреАрд╕реАрдкреАрд▓рд╛ рдорд╛рдЧреЗ рдЯрд╛рдХрд▓реЗ.

рдлрдХреНрдд рдкреБрдвреЗ

рдХрджрд╛рдЪрд┐рдд рд╣реА рдлрдХреНрдд рд╕реБрд░реБрд╡рд╛рдд рдЖрд╣реЗ - рдЙрддреНрдкрд╛рджрдирд╛рдордзреНрдпреЗ QUIC рдЪреНрдпрд╛ рдкреНрд░рдХрд╛рд╢рдирд╛рдиреЗ рд╕реНрдерд┐рд░ рдЖрдгрд┐ рдЕрд╕реНрдерд┐рд░ рджреЛрдиреНрд╣реА рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╢реНрдЪрд░реНрдпрдХрд╛рд░рдХ рд╕рдВрдзреА рдкреНрд░рджрд╛рди рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд, рдореНрд╣рдгрдЬреЗ:

рд╡реНрдпрд╛рдкреНрддреА рд╡рд╛рдврд╡рд▓реА

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд╣рджрд╛рд░реАрд╡рд░реАрд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд▓реНрдпрд╛рд╡рд░, рдЖрдореНрд╣реА рдкрд╛рд╣рд┐рд▓реЗ рдХреА рдЕрдВрджрд╛рдЬреЗ 80% рд╕рддреНрд░рд╛рдВрдиреА рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ QUIC рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ ╨▓╤Б╨╡╤Е рд╡рд┐рдирдВрддреНрдпрд╛, рддрд░ 15% рд╕рддреНрд░рд╛рдВрдиреА QUIC рдЖрдгрд┐ TCP рдЪреЗ рд╕рдВрдпреЛрдЬрди рд╡рд╛рдкрд░рд▓реЗ. рдЖрдореНрд╣реА рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рддреЛ рдХреА рд╣реЗ рд╕рдВрдпреЛрдЬрди рдХреНрд░реЛрдиреЗрдЯ рд▓рд╛рдпрдмреНрд░рд░реА TCP рдХрдбреЗ рдкрд░рдд рдЬрд╛рдгреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд▓рдмрд╛рд╣реНрдпрддреЗрдореБрд│реЗ рдЖрд╣реЗ, рдХрд╛рд░рдг рддреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ UDP рдЕрдкрдпрд╢ рдЖрдгрд┐ рдЦрд░рд╛рдм рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдерд┐рддреА рдпрд╛рдВрдЪреНрдпрд╛рдд рдлрд░рдХ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. рдЖрдореНрд╣реА рд╕рдзреНрдпрд╛ рдпрд╛ рд╕рдорд╕реНрдпреЗрд╡рд░ рдЙрдкрд╛рдп рд╢реЛрдзрдд рдЖрд╣реЛрдд рдХрд╛рд░рдг рдЖрдореНрд╣реА QUIC рдЪреНрдпрд╛ рдкреБрдвреАрд▓ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рджрд┐рд╢реЗрдиреЗ рдХрд╛рдо рдХрд░рдд рдЖрд╣реЛрдд.

QUIC рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди

рдореЛрдмрд╛рдЗрд▓ рдЕреЕрдкреНрд╕рд╡рд░реАрд▓ рд░рд╣рджрд╛рд░реА рд╡рд┐рд▓рдВрдм рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдмрдБрдбрд╡рд┐рдбреНрде рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдирд╛рд╣реА. рддрд╕реЗрдЪ, рдЖрдордЪреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ рд╕реЗрд▓реНрдпреБрд▓рд░ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд. рдкреНрд░рдпреЛрдЧрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЬрд╡рд│рдЪреНрдпрд╛ TCP рдЖрдгрд┐ QUIC рдмрдВрдж рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░реЙрдХреНрд╕реА рд╡рд╛рдкрд░рдд рдЕрд╕рддрд╛рдирд╛рд╣реА рдЯреЗрд▓ рд▓реЗрдЯреЗрдВрд╕реА рдЕрдЬреВрдирд╣реА рдЬрд╛рд╕реНрдд рдЖрд╣реЗрдд. рдЖрдореНрд╣реА рдЧрд░реНрджреАрдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ QUIC рдиреБрдХрд╕рд╛рди рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рдорд╛рд░реНрдЧ рд╢реЛрдзрдд рдЖрд╣реЛрдд.

рдпрд╛ рдЖрдгрд┐ рдЗрддрд░ рдЕрдиреЗрдХ рд╕реБрдзрд╛рд░рдгрд╛рдВрд╕рд╣, рдЖрдореНрд╣реА рдиреЗрдЯрд╡рд░реНрдХ рдЖрдгрд┐ рдХреНрд╖реЗрддреНрд░рд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рди рдХрд░рддрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪрд╛ рдЕрдиреБрднрд╡ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЖрд╣реЛрдд, рдЬреНрдпрд╛рдореБрд│реЗ рдЬрдЧрднрд░рд╛рддреАрд▓ рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрдгрд┐ рдЕрдЦрдВрдб рдкреЕрдХреЗрдЯ рд╡рд╛рд╣рддреВрдХ рдЕрдзрд┐рдХ рд╕реБрд▓рдн рд╣реЛрдИрд▓.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛