HTTP/3: Fandravana ny tany sy Tontolo Vaovao Mahery fo

Nandritra ny 20 taona mahery izahay no nijery pejin-tranonkala mampiasa ny protocol HTTP. Ny ankamaroan'ny mpampiasa dia tsy mieritreritra akory hoe inona izany sy ny fomba fiasany. Ny hafa dia mahafantatra fa any ambanin'ny HTTP dia misy TLS, ary eo ambanin'izany ny TCP, izay misy IP, sy ny sisa. Ary mbola misy hafa - ireo mpivadi-pinoana - mino fa ny TCP dia zavatra taloha; mila zavatra haingana kokoa, azo itokisana ary azo antoka izy ireo. Saingy amin'ny ezak'izy ireo hamorona protocole idealy vaovao, dia niverina tamin'ny teknolojia tamin'ny taona 80 izy ireo ary miezaka manangana tontolo vaovao feno herim-po eo aminy.
HTTP/3: Fandravana ny tany sy Tontolo Vaovao Mahery fo

Tantara kely: HTTP/1.1

Tamin'ny taona 1997, nahazo ny RFC azy manokana ny protocol exchange information text HTTP version 1.1. Tamin'izany fotoana izany, ny protocole dia nampiasain'ny navigateur nandritra ny taona maro, ary ny fenitra vaovao dia naharitra dimy ambin'ny folo hafa. Ny protocole dia tsy niasa afa-tsy tamin'ny fitsipiky ny famaliana fangatahana ary natao indrindra ho an'ny fampitana fampahalalana an-tsoratra.

Ny HTTP dia natao hihazakazaka eo ambonin'ny protocol TCP, hiantoka fa azo antoka ny fandefasana entana any amin'ny toerana halehany. Ny TCP dia miasa amin'ny alΓ lan'ny fametrahana sy fitazonana fifandraisana azo itokisana eo amin'ny teboka farany sy ny fanaparitahana ny fifamoivoizana ho fizarana. Ny fizarana dia manana ny laharan-tariby sy ny checksum azy manokana. Raha tampoka ny iray amin'ireo fizarana dia tsy tonga na tonga miaraka amin'ny checksum diso, dia hijanona ny fifindrana mandra-pamerenana ny ampahany very.

Ao amin'ny HTTP/1.0, nakatona ny fifandraisana TCP isaky ny fangatahana. Tena nandaniana izany, satria... Ny fametrahana fifandraisana TCP (3-Way-Handshake) dia dingana miadana. HTTP/1.1 dia nampiditra ny mekanika keep-alive, izay ahafahanao mampiasa indray fifandraisana iray ho an'ny fangatahana maro. Na izany aza, satria mety ho lasa bottleneck mora foana izy io, ny fampiharana isan-karazany amin'ny HTTP/1.1 dia mamela ny fifandraisana TCP marobe misokatra amin'ny mpampiantrano iray ihany. Ohatra, ny Chrome sy ny dikan-teny farany an'ny Firefox dia mamela fifandraisana enina.
HTTP/3: Fandravana ny tany sy Tontolo Vaovao Mahery fo
Noheverina ho navela ho an'ny protocols hafa koa ny encryption, ary noho izany, ny protocol TLS dia nampiasaina tamin'ny TCP, izay niaro tamim-pahatokiana ny angon-drakitra, saingy nampitombo ny fotoana takiana amin'ny fametrahana fifandraisana. Vokatr'izany dia nanomboka toy izao ny fizotran'ny fifanomezan-tanana:
HTTP/3: Fandravana ny tany sy Tontolo Vaovao Mahery fo
Cloudflare fanoharana

Noho izany dia nanana olana maromaro ny HTTP/1.1:

  • Fametrahana fifandraisana miadana.
  • Ampitaina amin'ny endrika lahatsoratra ny angon-drakitra, izay midika fa tsy mahomby ny fandefasana sary, horonan-tsary ary fampahalalana hafa tsy an-tsoratra.
  • Ny fifandraisana TCP iray dia ampiasaina amin'ny fangatahana iray, izay midika fa ny fangatahana hafa dia tsy maintsy mitady fifandraisana hafa na miandry mandra-pamoahan'ny fangatahana ankehitriny.
  • Ny modely misintona ihany no tohana. Tsy misy na inona na inona ao amin'ny fenitra momba ny server-push.
  • Ampitaina amin'ny lahatsoratra ny lohateny.

Raha toa ka ampiharina amin'ny alΓ lan'ny protocol WebSocket farafaharatsiny ny server-push, ny olana sisa tavela dia tsy maintsy nokarakaraina bebe kokoa.

Modernity kely: HTTP/2

Tamin'ny taona 2012, nanomboka niasa tamin'ny protocole SPDY (antsoina hoe β€œfaingana”) i Google. Ny protocol dia natao hamahana ny olana lehibe amin'ny HTTP/1.1 ary amin'izany fotoana izany dia tokony hitazona ny fifanarahana mihemotra. Tamin'ny taona 2015, ny vondrona miasa IETF dia nampiditra ny famaritana HTTP/2 mifototra amin'ny protocole SPDY. Ireto ny fahasamihafana amin'ny HTTP/2:

  • Serialization binary.
  • Fanamafisana ny fangatahana HTTP marobe amin'ny fifandraisana TCP tokana.
  • Tosika ny mpizara avy ao anaty boaty (tsy misy WebSocket).

Ny protocole dia dingana lehibe. Hery izy mandresy ny dikan-teny voalohany amin'ny hafainganam-pandeha ary tsy mitaky ny famoronana fifandraisana TCP maro: ny fangatahana rehetra amin'ny mpampiantrano iray dia atambatra ho iray. Izany hoe, amin'ny fifandraisana iray dia misy maromaro antsoina hoe renirano, izay samy manana ny ID azy. Ny bonus dia tosika mpizara efa voahidy.

Na izany aza, ny multiplexing dia mitarika olana lehibe hafa. Alaivo sary an-tsaina hoe manatanteraka fangatahana 5 amin'ny mpizara iray isika. Rehefa mampiasa HTTP/2, ireo fangatahana rehetra ireo dia hotanterahina ao anatin'ny fifandraisana TCP iray ihany, izay midika fa raha very na voaray tsy araka ny tokony ho izy ny iray amin'ireo ampahany amin'ny fangatahana rehetra, dia hijanona ny fandefasana ny fangatahana sy ny valinteny rehetra mandra-pahatongan'ny fizarana very. naverina tamin'ny laoniny. Mazava ho azy, ny ratsy kokoa ny kalitaon'ny fifandraisana, ny miadana kokoa ny HTTP/2. Araka ny voalazan'i Daniel Stenberg, Amin'ny toe-javatra misy ny fonosana very dia mitentina 2% amin'ny fonosana rehetra, ny HTTP/1.1 ao amin'ny navigateur dia miasa tsara kokoa noho ny HTTP/2 noho ny manokatra fifandraisana 6 fa tsy iray.

Ity olana ity dia antsoina hoe "head-of-line blocking" ary, indrisy, tsy azo atao ny mamaha izany rehefa mampiasa TCP.
HTTP/3: Fandravana ny tany sy Tontolo Vaovao Mahery fo
Sary nataon'i Daniel Steinberg

Vokatr'izany dia nanao asa lehibe ireo mpamorona ny fenitra HTTP/2 ary saika nanao izay rehetra azo atao tamin'ny sosona fampiharana ny modely OSI. Fotoana izao hidina any amin'ny sosona fitaterana ary hamorona protocole fitaterana vaovao.

Mila protocol vaovao isika: UDP vs TCP

Vetivety dia nanjary nazava fa ny fampiharana ny protocol layer vaovao dia asa tsy azo atao amin'ny zava-misy ankehitriny. Ny zava-misy dia ny fitaovana na ny boaty afovoany (router, firewall, server NAT ...) dia mahafantatra momba ny soson'ny fitaterana, ary asa sarotra be ny fampianarana azy ireo zava-baovao. Ankoatra izany, ny fanohanana ny protocols fitaterana dia natsangana ao amin'ny kernel amin'ny rafitra miasa, ary ny kernel dia tsy tena vonona ny hiova.

Ary eto dia afaka manindrona tanana ny olona iray ary miteny hoe "Izahay, mazava ho azy, dia hamorona HTTP / 3 vaovao miaraka amin'ny safidy sy courtesans, fa haharitra 10-15 taona ny fampiharana azy (aorian'io fotoana io ny ankamaroan'ny fitaovana dia ho lasa nosoloina)," fa misy iray hafa tsy izany Ny safidy mazava dia ny fampiasana ny protocol UDP. Eny, eny, ilay protocole mitovy amin'izay nampiasanay nanipy rakitra tamin'ny LAN tamin'ny faramparan'ny nineties sy ny fiandohan'ny taona XNUMX. Saika ny fitaovana rehetra ankehitriny dia afaka miasa miaraka aminy.

Inona no tombony azo amin'ny UDP noho ny TCP? Voalohany indrindra, tsy manana fotoam-pitaterana sosona izay fantatry ny hardware izahay. Izany dia ahafahantsika mamaritra ny fotoam-pivoriana amin'ny teboka farany ary mamaha ny disadisa ao. Izany hoe, tsy voafetra amin'ny session iray na maromaro isika (toy ny ao amin'ny TCP), fa afaka mamorona azy ireo araka izay ilainy. Faharoa, ny fifindran'ny angona amin'ny UDP dia haingana kokoa noho ny amin'ny TCP. Noho izany, amin'ny teoria, azontsika atao ny mamakivaky ny valindrihana haingana amin'izao fotoana izao amin'ny HTTP/2.

Na izany aza, tsy miantoka ny fifindran'ny angona azo antoka ny UDP. Raha ny marina dia mandefa fonosana fotsiny izahay, manantena fa ny farany dia handray azy ireo. Tsy nahazo? Eny ary, tsy vintana ... Ampy izany handefasana horonan-tsary ho an'ny olon-dehibe, fa ho an'ny zavatra matotra kokoa dia mila fahamendrehana ianao, izay midika fa tsy maintsy mametaka zavatra hafa eo ambonin'ny UDP ianao.

Tahaka ny amin'ny HTTP/2, nanomboka tamin'ny Google tamin'ny 2012 ny asa famoronana protocol vaovao, izany hoe, tamin'ny fotoana nanombohan'ny SPDY. Tamin'ny 2013, Jim Roskind nanolotra ho an'ny besinimaro Ny protocol QUIC (Quick UDP Internet Connections)., ary efa tamin'ny taona 2015 no nampidirina ny Draft Internet ho an'ny fenitra ao amin'ny IETF. Efa tamin'izany fotoana izany, ny protocol novolavolain'i Roskind ao amin'ny Google dia tsy mitovy amin'ny fenitra, ka ny dikan-Google dia nanomboka nantsoina hoe gQUIC.

Inona no atao hoe QUIC

Voalohany, araka ny efa voalaza, ity dia fonosana amin'ny UDP. Ny fifandraisana QUIC dia miakatra eo an-tampon'ny UDP, izay, amin'ny fampitahana amin'ny HTTP/2, dia misy renirano maromaro. Eo amin'ny teboka farany ihany no misy ireo renirano ireo ary atolotra tsy miankina. Raha misy fatiantoka amin'ny fonosana iray dia tsy hisy fiantraikany amin'ny hafa izany.
HTTP/3: Fandravana ny tany sy Tontolo Vaovao Mahery fo
Sary nataon'i Daniel Steinberg

Faharoa, ny encryption dia tsy ampiharina amin'ny ambaratonga samihafa, fa tafiditra ao anatin'ny protocol. Izany dia ahafahanao manangana fifandraisana sy mifanakalo fanalahidin'ny daholobe amin'ny fifampikasohana tokana, ary ahafahanao mampiasa ny mekanika 0-RTT hajaina tsara sy misoroka ny fahatarana amin'ny tΓ nana. Ho fanampin'izany, azo atao izao ny manidy ny fonosana data tsirairay. Izany dia mamela anao tsy hiandry ny fahavitan'ny fandraisana ny angona avy amin'ny renirano, fa ny decrypt ny fonosana voaray tsy miankina. Ity fomba fiasa ity dia tsy azo atao amin'ny TCP, satria Niara-niasa tsy miankina ny TLS sy ny TCP, ary tsy fantatry ny TLS hoe inona no ho tapatapaka ny angona TCP. Ary noho izany, tsy afaka nanomana ny fizaranany izy mba hifanaraka amin'ny fizarana TCP iray amin'ny iray ary azo fehezina tsy miankina. Ireo fanatsarana rehetra ireo dia mamela ny QUIC hampihenana ny fahatarana raha oharina amin'ny TCP.
HTTP/3: Fandravana ny tany sy Tontolo Vaovao Mahery fo
Fahatelo, ny foto-kevitry ny fandefasana hazavana dia ahafahanao manaisotra ny fifandraisana amin'ny adiresy IP an'ny mpanjifa. Zava-dehibe izany, ohatra, rehefa mifindra avy amin'ny teboka fidirana Wi-Fi iray mankany amin'ny iray hafa ny mpanjifa iray, manova ny IP-ny. Amin'ity tranga ity, rehefa mampiasa TCP dia misy dingana lava mitranga mandritra ny fotoanan'ny fifandraisana TCP efa misy ary mamorona fifandraisana vaovao avy amin'ny IP vaovao. Raha ny QUIC, ny mpanjifa dia manohy mandefa fonosana amin'ny mpizara avy amin'ny IP vaovao miaraka amin'ny ID stream taloha. SATRIA Ny stream ID dia tokana ary tsy ampiasaina indray; fantatry ny mpizara fa nanova IP ny mpanjifa, mandefa indray ny fonosana very ary manohy ny fifandraisana amin'ny adiresy vaovao.

Fahefatra, ny QUIC dia ampiharina amin'ny ambaratonga fampiharana, fa tsy ny haavon'ny rafitra miasa. Izany, amin'ny lafiny iray, dia mamela anao hanova haingana ny protocol, satria Mba hahazoana fanavaozana dia mila manavao ny tranomboky fotsiny ianao, fa tsy miandry dikan-teny OS vaovao. Amin'ny lafiny iray, izany dia mitarika amin'ny fitomboana mahery amin'ny fanjifana processeur.

Ary farany, ny lohateny lehibe. Ny famatrarana lohapejy dia iray amin'ireo zavatra mahasamihafa ny QUIC sy ny gQUIC. Tsy hitako ny tanjona amin'ny fanokanana fotoana betsaka amin'izany, holazaiko fotsiny fa ao amin'ny dikan-teny natolotra ho an'ny manara-penitra, ny famatrarana lohapejy dia natao mitovy araka izay azo atao amin'ny famatrarana lohapejy ao amin'ny HTTP/2. Afaka mamaky bebe kokoa ianao eto.

Haingana ve izany?

Fanontaniana sarotra izany. Ny zava-misy dia raha tsy manana fenitra isika dia tsy misy zavatra manokana azo refesina. Angamba ny hany antontan'isa ananantsika dia ny antontan'isa avy amin'ny Google, izay nampiasa gQUIC hatramin'ny taona 2013 sy 2016. notaterina tamin'ny IETFfa manodidina ny 90% amin'ny fifamoivoizana mankany amin'ny lohamiliny avy amin'ny navigateur Chrome dia mampiasa QUIC izao. Ao amin'io famelabelarana io ihany, dia mitatitra izy ireo fa ny pejy dia mitondra 5% haingana kokoa amin'ny alΓ lan'ny gQUIC ary misy 30% vitsy kokoa ny miakanakana amin'ny fandefasana horonan-tsary raha oharina amin'ny TCP.

Tamin'ny taona 2017, nisy vondrona mpikaroka notarihin'i Arash Molavi Kakhki namoaka asa tsara handinihana ny fahombiazan'ny gQUIC raha oharina amin'ny TCP.
Ny fanadihadiana dia naneho ny fahalemen'ny gQUIC maro, toy ny tsy fandriam-pahalemana amin'ny fampifangaroana ny fonosan'ny tambajotra, ny fitiavam-bola (tsy rariny) amin'ny fampitana ny bandwidth ary ny fifindrana miadana kokoa amin'ny zavatra kely (hatramin'ny 10 kb). Ity farany anefa dia azo onitra amin'ny fampiasana 0-RTT. Amin'ny tranga hafa rehetra nodinihina, ny gQUIC dia nampiseho fitomboan'ny hafainganam-pandeha raha oharina amin'ny TCP. Sarotra ny miresaka isa manokana eto. Aleo mamaky ny fianarana mihitsy na lahatsoratra fohy.

Eto dia tsy maintsy lazaina fa ity data ity dia momba ny gQUIC manokana, ary tsy mifandraika amin'ny fenitra novolavolaina. Inona no hitranga amin'ny QUIC: mbola tsiambaratelo izany, saingy misy ny fanantenana fa hojerena sy hanitsiana ireo fahalemena hita ao amin'ny gQUIC.

Somary amin'ny ho avy: ahoana ny momba ny HTTP/3?

Saingy eto dia mazava tsara ny zava-drehetra: tsy hiova na inona na inona ny API. Ny zava-drehetra dia hitoetra ho toy ny tao amin'ny HTTP/2. Eny, raha mbola tsy miova ny API, dia tsy maintsy voavaha ny fifindrana mankany amin'ny HTTP/3 amin'ny alΓ lan'ny fampiasana kinova vaovao amin'ny tranomboky eo amin'ny backend izay manohana ny fitaterana QUIC. Marina fa tsy maintsy mitazona ny fiverenana amin'ny dikan-teny taloha amin'ny HTTP ianao mandritra ny fotoana fohy, satria Tsy vonona amin'ny fifindrana tanteraka mankany amin'ny UDP ny Internet amin'izao fotoana izao.

Iza no efa manohana

eto lisitra fampiharana QUIC efa misy. Na dia eo aza ny tsy fisian'ny fenitra, ny lisitra dia tsy ratsy.

Tsy misy navigateur manohana ny QUIC amin'ny famoahana famokarana. Vao haingana dia nisy fampahalalana fa ny fanohanana ny HTTP / 3 dia nampidirina tao amin'ny Chrome, saingy hatreto dia ao amin'ny Canary ihany.

Amin'ny backends, HTTP/3 ihany no manohana Caddy ΠΈ Cloudflare, fa mbola andrana. NGINX amin'ny faran'ny lohataona 2019 nanambara, fa nanomboka niasa tamin'ny fanohanana HTTP/3 izy ireo, saingy mbola tsy nahavita izany.

Inona avy ireo olana?

Izaho sy ianao dia miaina ao anatin'ny tontolo tena izy, izay tsy misy teknolojia lehibe afaka mahatratra ny vahoaka raha tsy misy ny fanoherana, ary tsy misy afa-tsy ny QUIC.

Ny zava-dehibe indrindra dia mila manazava amin'ny navigateur ianao fa "https://" dia tsy zava-misy intsony fa mitondra mankany amin'ny seranan-tsambo TCP 443. Mety tsy misy TCP mihitsy. Ny lohatenin'ny Alt-Svc no ampiasaina amin'izany. Izany dia ahafahanao milaza amin'ny navigateur fa ity tranokala ity dia misy ihany koa amin'ny protocol toy izany sy izany amin'ny adiresy toy izany. Raha ny teoria dia tokony hiasa toy ny ody izany, fa amin'ny fampiharana dia ho hitantsika fa ny UDP dia azo, ohatra, voarara amin'ny firewall mba hisorohana ny fanafihana DDoS.

Saingy na dia tsy voarara aza ny UDP, ny mpanjifa dia mety ao ambadiky ny router NAT izay namboarina mba hitazonana fivoriana TCP amin'ny adiresy IP, ary hatramin'ny mampiasa UDP izahay, izay tsy manana session hardware, tsy hitazona ny fifandraisana ny NAT, ary fivoriana QUIC ho tapaka foana.

Ireo olana rehetra ireo dia noho ny tsy nampiasana ny UDP taloha handefasana votoaty amin'ny Internet, ary tsy hitan'ny mpanamboatra fitaovana fa hitranga izany. Torak'izany ihany koa, mbola tsy tena azon'ny mpitantana ny fomba fanamboarana tsara ny tambajotran'izy ireo mba hiasa ny QUIC. Hiova tsikelikely io toe-javatra io, ary, na ahoana na ahoana, ny fiovana toy izany dia haharitra ela kokoa noho ny fampiharana ny protocol layer vaovao.

Fanampin'izany, araka ny efa voalaza, ny QUIC dia mampitombo be ny fampiasana CPU. Daniel Stenberg NANKASITRAKA fitomboan'ny processeur hatramin'ny in-telo.

Rahoviana no ho tonga ny HTTP/3?

Malagasy te hanaiky amin'ny volana Mey 2020, saingy raha mbola tsy vita ny antontan-taratasy voatondro ho an'ny Jolay 2019 amin'izao fotoana izao, dia azo lazaina fa mety hahemotra ny daty.

Eny, Google dia nampiasa ny fampiharana gQUIC hatramin'ny 2013. Raha mijery ny fangatahana HTTP alefa any amin'ny motera fikarohana Google ianao dia ho hitanao izao:
HTTP/3: Fandravana ny tany sy Tontolo Vaovao Mahery fo

hitany

Ny QUIC izao dia toa teknolojia somary manjavozavo, saingy tena mampanantena. Raha jerena fa tao anatin'ny 20 taona lasa, ny fanatsarana rehetra momba ny protocols layer transport dia mahakasika indrindra ny TCP, QUIC, izay amin'ny ankamaroan'ny toe-javatra dia manana fampisehoana tsara indrindra, dia toa tena tsara.

Na izany aza, mbola misy ny olana tsy voavaha ka tsy maintsy hovahana ao anatin’ny taona vitsivitsy. Mety hahemotra ny dingana noho ny fisian'ny hardware tafiditra, izay tsy misy olona tia manavao, fa na izany aza, ny olana rehetra dia toa voavaha, ary na ho ela na ho haingana dia hanana HTTP/3 daholo isika.

Efa akaiky ny ho avy!

Source: www.habr.com

Add a comment