Ua hoʻokō ʻo Cloudflare i kahi module e kākoʻo i ka HTTP/3 ma NGINX

ʻO Cloudflare Company hoomakaukauia ka ʻōlelo e hāʻawi i ke kākoʻo no ka protocol HTTP/3 ma NGINX. Hoʻolālā ʻia ka module i mea hoʻohui i ka waihona i hoʻomohala ʻia e Cloudflare kāleka me ka hoʻokō ʻana i ka protocol transport QUIC a me HTTP/3. Ua kākau ʻia ka code quiche ma Rust, akā ua kākau ʻia ka module NGINX ponoʻī ma C a komo i ka waihona me ka hoʻohana ʻana i ka loulou dynamic. Nā hoʻomohala ʻana hāmama ma lalo o ka laikini BSD.

No ka hui ʻana, hoʻoiho wale popōna i nginx 1.16 a wae helu quiche hale waihona puke, a laila kūkulu hou i ka nginx me nā koho “—with-http_v3_module —with-quiche=../quiche”. I ke kūkulu ʻana, pono e hoʻokumu ʻia ke kākoʻo TLS ma ka waihona BoringSSL (“--with-openssl=../quiche/deps/boringssl”), ʻaʻole i kākoʻo ʻia ka hoʻohana ʻana o OpenSSL. No ka ʻae ʻana i nā pilina, pono ʻoe e hoʻohui i ke kuhikuhi hoʻolohe me ka hae "quic" i nā hoʻonohonoho (no ka laʻana, "hoʻolohe 443 quic reuseport").

Ma ka polokalamu kelepona, ua hoʻohui ʻia ke kākoʻo HTTP/3 i nā kūkulu hoʻokolohua o Chrome Canary a me ka pono curl. Ma ka ʻaoʻao kikowaena, a hiki i kēia manawa ua pono ke hoʻohana ʻokoʻa, kaupalena hoʻokō hoʻokolohua. ʻO ka hiki ke hana i ka HTTP/3 i ka nginx e hoʻomaʻamaʻa nui i ka hoʻolaha ʻana o nā kikowaena me ke kākoʻo HTTP/3 a e hoʻokō ʻia ka hoʻokō ʻana i ka protocol hou. ʻO ka puka ʻana o ke kākoʻo maʻamau no HTTP/3 ma nginx manao ia ma ka lālā 1.17.x no 6-12 mahina.

E hoʻomanaʻo i ka hoʻohālikelike ʻana o HTTP/3 i ka hoʻohana ʻana i ka protocol QUIC ma ke ʻano he halihali no HTTP/2. Kūkākūkā QUIC (Quick UDP Internet Connections) ua hoʻomohala ʻia e Google mai ka makahiki 2013 ma ke ʻano he koho ʻē aʻe i ka hui pū ʻana o TCP+TLS no ka Pūnaewele, e hoʻonā i nā pilikia me ka lōʻihi o ka hoʻonohonoho ʻana a me nā manawa kūkākūkā no nā pilina ma TCP a me ka hoʻopau ʻana i nā lohi ke nalowale nā ​​packet i ka wā o ka hoʻoili ʻikepili. He hoʻonui ʻia ʻo QUIC o ka protocol UDP e kākoʻo ana i ka hoʻohui ʻana o nā pilina he nui a hāʻawi i nā ʻano hoʻopili e like me TLS/SSL.

ka papa kuhikuhiE hiʻona NUI:

  • ʻO ka palekana kiʻekiʻe e like me TLS (ʻo ka QUIC pono e hāʻawi i ka hiki ke hoʻohana i ka TLS ma luna o UDP);
  • Ka mālama pono ʻana o ka kahe, pale i ka poho o ka ʻeke;
  • ʻO ka hiki ke hoʻokumu koke i kahi pilina (0-RTT, ma kahi o 75% o nā hihia hiki ke hoʻouna koke ʻia ka ʻikepili ma hope o ka hoʻouna ʻana i ka ʻeke hoʻonohonoho pili) a hāʻawi i nā lohi liʻiliʻi ma waena o ka hoʻouna ʻana i kahi noi a me ka loaʻa ʻana o kahi pane (RTT, Round Trip Time);
  • ʻAʻole hoʻohana i ka helu kaʻina like i ka wā e hoʻouna hou ai i kahi ʻeke, e pale ana i ka pohihihi i ka ʻike ʻana i nā ʻeke i loaʻa a hoʻopau i nā manawa pau;
  • ʻO ka nalo ʻana o kahi ʻeke e pili wale i ka hāʻawi ʻana i ke kahawai e pili ana me ia a ʻaʻole hoʻōki i ka lawe ʻana i ka ʻikepili ma nā kahawai like i hoʻouna ʻia ma o ka pilina o kēia manawa;
  • Nā hiʻohiʻona hoʻoponopono hewa e hōʻemi i ka lohi ma muli o ka hoʻouna hou ʻana i nā ʻeke i nalowale. Hoʻohana i nā code hoʻoponopono hewa kūikawā ma ka pae ʻeke e hōʻemi i nā kūlana e koi ana i ka hoʻouna hou ʻana i ka ʻikepili packet nalowale.
  • Hoʻopili ʻia nā palena poloka Cryptographic me nā palena packet QUIC, e hōʻemi ana i ka hopena o nā poho o ka ʻeke ma ka wehe ʻana i nā ʻike o nā ʻeke ma hope;
  • ʻAʻohe pilikia me ka pale ʻana i ka pila TCP;
  • Kākoʻo no ka ʻike pili, e hōʻemi ana i ka manawa e hoʻokumu ai i kahi hoʻohui hou no nā mea kūʻai kelepona;
  • Hiki i ka hoʻohui ʻana i nā mīkini hoʻokele congestion congestion kiʻekiʻe;
  • Hoʻohana i nā ʻenehana wanana ma kēlā me kēia kuhikuhi e hōʻoia i ka hoʻouna ʻia ʻana o nā ʻeke i nā kumukūʻai maikaʻi loa, e pale ana iā lākou mai ka lilo ʻana a me ka lilo ʻana o ka ʻeke;
  • ʻIke ʻia ulu ana ka hana a me ka throughput i hoʻohālikelike ʻia me TCP. No nā lawelawe wikiō e like me YouTube, ua hōʻike ʻia ʻo QUIC e hōʻemi i nā hana rebuffering i ka wā e nānā ana i nā wikiō e 30%.
  • Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka