{"id":84853,"date":"2020-06-11T13:42:33","date_gmt":"2020-06-11T11:42:33","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/predvaritelnyj-vypusk-nginx-s-podderzhkoj-quic-i-http-3"},"modified":"2020-06-11T13:42:33","modified_gmt":"2020-06-11T11:42:33","slug":"predvaritelnyj-vypusk-nginx-s-podderzhkoj-quic-i-http-3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/predvaritelnyj-vypusk-nginx-s-podderzhkoj-quic-i-http-3","title":{"rendered":"Pre-release of nginx with support for QUIC and HTTP\/3","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>NGINX Company <noindex><a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/blog\/introducing-technology-preview-nginx-support-for-quic-http-3\/\">announced<\/a><\/noindex> announces the start of testing <noindex><a rel=\"nofollow\" href=\"https:\/\/quic.nginx.org\/\">implementations<\/a><\/noindex> of QUIC and HTTP\/3 protocols in the HTTP server and proxy nginx. The implementation is based on <noindex><a rel=\"nofollow\" href=\"https:\/\/datatracker.ietf.org\/doc\/draft-ietf-quic-transport\/\">Draft 27<\/a><\/noindex> of the IETF-QUIC specification and is available through <noindex><a rel=\"nofollow\" href=\"https:\/\/hg.nginx.org\/nginx-quic\/shortlog\/quic\">a separate repository<\/a><\/noindex>, branched from release 1.19.0. The code is distributed under a BSD license and does not overlap with <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51695\">the previously proposed<\/a><\/noindex> HTTP\/3 implementation for nginx from Cloudflare, which is a separate project.<\/p>\n<p>Support for HTTP\/3 in nginx is marked as experimental, as <noindex><a rel=\"nofollow\" href=\"https:\/\/quic.nginx.org\/readme.html\">not all features<\/a><\/noindex> of the protocol are implemented. However, nginx can already be used to respond to simple HTTP\/3 requests over QUIC and to upload\/download large files. Some of the currently missing protocol capabilities include version negotiation, ECN and congestion control, structured logs, recovery mode (QUIC recovery, flow and congestion control), NAT Rebinding, mobile addresses, Server push, and data attachment (trailer). Basic support for processing ACK packets and flow control is also proposed, which requires further development. Not all standard requirements are met.<\/p>\n<p>To activate HTTP\/3, nginx needs to be built with the http_v3_module and an additional 'listen' directive with the 'http3' flag must be added to create a listening UDP socket. For example:<br \/>\n\u00ablisten\u00bb with the flag \u00abhttp3\u00bb to create a listening UDP socket. For example:<\/p>\n<p>   server {<br \/>\n       listen 443 http3 reuseport;  # UDP socket for QUIC+HTTP\/3<br \/>\n       ssl_protocols       TLSv1.3; # TLS 1.3 is mandatory in QUIC<\/p>\n<p>       ssl_certificate     ssl\/www.example.com.crt;<br \/>\n       ssl_certificate_key ssl\/www.example.com.key;<br \/>\n       add_header Alt-Svc 'quic=\":443\"'; # indication of QUIC availability<\/p>\n<p>       add_header Alt-Svc 'quic=\u00bb:443'; # indicates QUIC availability<br \/>\n       (Quick UDP Internet Connections) has been developed by Google since 2013 as an alternative to the TCP+TLS stack for the Web, solving issues with long connection setup and negotiation times in TCP, and eliminating delays due to packet loss during data transmission. QUIC serves as an overlay on the UDP protocol, supporting multiplexing of multiple connections and providing encryption methods equivalent to TLS\/SSL. On the client-side, experimental support for HTTP\/3 has already been added to<br \/>\n   }<\/p>\n<p>It should be noted that HTTP\/3 standardizes the use of the QUIC protocol as a transport for HTTP\/2. The protocol <noindex><a rel=\"nofollow\" href=\"https:\/\/www.chromium.org\/quic\/\">QUIC<\/a><\/noindex> NGINX Company has announced the start of testing  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51540\">Curl<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51807\">Firefox<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51526\">Chromium<\/a><\/noindex>.<br \/>\n<center><noindex><a rel=\"nofollow\" href=\"https:\/\/www.nginx.com\/wp-content\/uploads\/2020\/06\/HTTP-v1-v2-v3-stacks.png\"><img decoding=\"async\" alt=\"Pre-release of nginx with support for QUIC and HTTP\/3\" src=\"\/wp-content\/uploads\/2020\/06\/d476eb3270bffc2caef1cb0fc79c38f5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>Key <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.google.com\/document\/d\/1lmL9EF6qKrk7gbazY8bIdvq3Pno2Xj_l_YShP40GLQE\/preview?sle=true#\">Features<\/a><\/noindex> QUIC:\n<\/p>\n<ul>\n<li class=\"l\"> High security comparable to TLS (essentially QUIC provides the option to use TLS 1.3 over UDP);\n<\/li>\n<li class=\"l\"> Stream integrity control that prevents packet loss;\n<\/li>\n<li class=\"l\"> The ability to establish a connection instantly (0-RTT, allowing data to be sent immediately after sending the connection establishment packet in about 75% of cases) and ensure minimal delays between sending a request and receiving a response (RTT, Round Trip Time);<br \/>\n<center><noindex><a rel=\"nofollow\" href=\"https:\/\/lh3.googleusercontent.com\/o62Ohn1Ppxna6zz0NtavqRyetjryOj-81Sz4bRt3U8lURVblk5RKOaCcf57i6BkmprremePJpq_sQcxfJiuA4wJBmRp3pR4BS1P-yiT6UNUPvnBeP_rLz9bvHxFE15kuNBM2hpE?a.png\"><img decoding=\"async\" alt=\"Pre-release of nginx with support for QUIC and HTTP\/3\" src=\"\/wp-content\/uploads\/2020\/06\/44e238666531ad98d2e7939a0d376ce5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<\/li>\n<li class=\"l\"> Not reusing the same sequence number for retransmitted packets, which helps avoid ambiguity in determining received packets and eliminates timeouts;\n<\/li>\n<li class=\"l\"> Packet loss only affects the delivery of the associated stream and does not halt the delivery of data in parallel streams sent over the current connection;\n<\/li>\n<li class=\"l\"> Error correction mechanisms that minimize delays caused by retransmitting lost packets. Utilizing special error correction codes at the packet level to reduce situations requiring the retransmission of lost packet data.\n<\/li>\n<li class=\"l\"> The boundaries of cryptographic blocks are aligned with the boundaries of QUIC packets, reducing the impact of packet loss on the decoding of subsequent packet contents;\n<\/li>\n<li class=\"l\"> No queue blocking issues as with TCP;\n<\/li>\n<li class=\"l\"> Support for connection identifiers that reduce the time needed to establish a reconnection for mobile clients;\n<\/li>\n<li class=\"l\"> The possibility of incorporating advanced congestion control mechanisms;\n<\/li>\n<li class=\"l\"> The use of bandwidth prediction techniques in each direction to ensure optimal packet transmission intensity, preventing a fall into a state of congestion where packet loss occurs;\n<\/li>\n<li class=\"l\">  Significant <noindex><a rel=\"nofollow\" href=\"http:\/\/web.cs.wpi.edu\/~claypool\/ms\/quic\/quic-thesis.pdf\">increase<\/a><\/noindex> in performance and throughput compared to TCP. For video services like YouTube, the application of QUIC has shown a 30% reduction in rebuffering events during video playback.\n<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53137\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f NGINX \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u043d\u0430\u0447\u0430\u043b\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 QUIC \u0438 HTTP\/3 \u0432 HTTP-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438 \u043f\u0440\u043e\u043a\u0441\u0438 nginx. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 27 \u0447\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 IETF-QUIC \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u043e\u0442\u0432\u0435\u0442\u0432\u043b\u0451\u043d\u043d\u044b\u0439 \u043e\u0442 \u0432\u044b\u043f\u0443\u0441\u043a\u0430 1.19.0. \u041a\u043e\u0434 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 BSD \u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u043d\u0435\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 HTTP\/3 \u0434\u043b\u044f nginx \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Cloudflare, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":84854,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-84853","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f NGINX \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u043d\u0430\u0447\u0430\u043b\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/predvaritelnyj-vypusk-nginx-s-podderzhkoj-quic-i-http-3\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a nginx \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 QUIC \u0438 HTTP\/3 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f NGINX \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u043d\u0430\u0447\u0430\u043b\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/predvaritelnyj-vypusk-nginx-s-podderzhkoj-quic-i-http-3\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-11T11:42:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-11T11:42:33+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Preliminary release of nginx with QUIC and HTTP\/3 support | ProHoster","description":"\ud83e\udd47Preliminary release of nginx with support for QUIC and HTTP\/3 | ProHoster","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/predvaritelnyj-vypusk-nginx-s-podderzhkoj-quic-i-http-3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a nginx \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 QUIC \u0438 HTTP\/3 | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f NGINX \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u043d\u0430\u0447\u0430\u043b\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/predvaritelnyj-vypusk-nginx-s-podderzhkoj-quic-i-http-3","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-11T11:42:33+00:00","article:modified_time":"2020-06-11T11:42:33+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"84853","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:48:23","updated":"2022-09-27 18:16:17","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/84853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=84853"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/84853\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/84854"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=84853"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=84853"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=84853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}