{"id":1341,"date":"2021-09-13T16:50:00","date_gmt":"2021-09-13T16:50:00","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=1341"},"modified":"2021-10-13T17:23:06","modified_gmt":"2021-10-13T17:23:06","slug":"navegando-camino-a-http-3","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/navegando-camino-a-http-3\/","title":{"rendered":"Navegando camino a HTTP\/3"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">En <a rel=\"noreferrer noopener\" href=\"https:\/\/www.mainmind.com\/blog\/navegando-camino-a-http-2\/\" data-type=\"URL\" data-id=\"https:\/\/www.mainmind.com\/blog\/navegando-camino-a-http-2\/\" target=\"_blank\">2015 empez\u00f3 en la pr\u00e1ctica <\/a>a utilizarse HTTP\/2, volvemos a tener delante la nueva evoluci\u00f3n. Este tipo de cambios afectan a la mayor\u00eda de tr\u00e1fico generado en internet, los cambios son lentos y silenciosos en ocasiones. Desde 2019 en Chrome (v79) y 2020 en Edge, Safari y Firefox el protocolo esta integrado en los navegadores pero no activado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<!--more-->\n\n\n\n<figure class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"344\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/chrome_quic.jpg\" alt=\"\" data-id=\"1345\" data-full-url=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/chrome_quic.jpg\" data-link=\"https:\/\/www.mainmind.com\/blog\/chrome_quic\/\" class=\"wp-image-1345\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/chrome_quic.jpg 736w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/chrome_quic-300x140.jpg 300w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><\/figure><\/li><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"929\" height=\"624\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/firefox_http3.jpg\" alt=\"\" data-id=\"1347\" data-full-url=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/firefox_http3.jpg\" data-link=\"https:\/\/www.mainmind.com\/blog\/firefox_http3\/\" class=\"wp-image-1347\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/firefox_http3.jpg 929w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/firefox_http3-300x202.jpg 300w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/firefox_http3-768x516.jpg 768w\" sizes=\"auto, (max-width: 929px) 100vw, 929px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Desde los inicios de DARPA en 1969, ARPAnet en 1974 y su utilizaci\u00f3n comercial desde 1990, el conjunto de protocolos TCP (Transmission Control Protocol), UDP (User Datagram Protoco) e IP (Internet Protocol) han sido la base del desarrollo para llegar a la red de redes que tenemos hoy en d\u00eda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De manera simplificada podemos indicar que IP se encarga de comunicar dos extremos, una vez se alcanza el acuerdo de como enviar la informaci\u00f3n se utiliza TCP, UDP o ambos. La diferencia es que TCP enviar\u00e1 la informaci\u00f3n (paquetes) numerados en orden y ser\u00e1 necesario confirmar al emisor que se ha recibido cada uno de ellos, en caso contrario se vuelven a enviar. Todos estos procesos a\u00f1aden retardo a la comunicaci\u00f3n, as\u00ed que UDP no realiza comprobaciones de este tipo, solo la comprobaci\u00f3n de checksum se realiza en todos ellos de manera m\u00ednima y b\u00e1sica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mientras que la cabecera del protocolo TCP es de 20 bytes la de UDP es de 8 bytes, un ahorro exponencial en transmisi\u00f3n de informaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Volviendo al uso diario \u00bfCu\u00e1ndo se utiliza UDP? mayoritariamente en transmisi\u00f3n de audio y video donde una perdida puntual de informaci\u00f3n es menos relevante que la velocidad a la que se realiza; imagina que empiezas a ver un video en streaming en tu plataforma preferida o alg\u00fan juego online&#8230; se entrecorta una parte de la imagen durante pocos milisegundos pero no vuelves o esperas a la parte \u00abperdida\u00bb, la prioridad es continuar la comunicaci\u00f3n a la suficiente velocidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los dos tipos de tr\u00e1fico discurren por la misma red, ambos son importantes por lo que se debe encontrar el equilibrio entre ambos. Parece m\u00e1s distante pero en 2024 se cumplir\u00e1n 50 a\u00f1os del inicio de internet, durante este tiempo han surgido diferentes iniciativas para mejorar Internet pero ha sido QUIC (Quick UDP) el que ha extendido el protocolo UDP a\u00f1adiendo caracter\u00edsticas de TCP y otras nuevas.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"331\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/TCP_TLS_QUIC.jpg\" alt=\"\" class=\"wp-image-1348\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/TCP_TLS_QUIC.jpg 800w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/TCP_TLS_QUIC-300x124.jpg 300w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2021\/http3\/TCP_TLS_QUIC-768x318.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">A partir del dise\u00f1o inicial de Jim Roskind (Google) se formaliz\u00f3 un <a rel=\"noreferrer noopener\" href=\"https:\/\/datatracker.ietf.org\/wg\/quic\/about\/\" data-type=\"URL\" data-id=\"https:\/\/datatracker.ietf.org\/wg\/quic\/about\/\" target=\"_blank\">grupo de trabajo para la estandarizaci\u00f3n IETF<\/a> en 2016 con algunas mejoras a destacar:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Se utiliza TLS 1.3 para todos los datos transmitidos, a\u00f1ade seguridad con menor latencia, en lugar de esperar la negociaci\u00f3n (handshake) de TCP + TLS se realiza de forma \u00fanica y m\u00e1s r\u00e1pida. Se a\u00f1aden protecciones frente a ataques DoS, playback, spoofing, reflection&#8230;<\/li><li><\/li><li>Reutilizaci\u00f3n de conexiones previas, se definen dos mecanismos para reutilizar una sesi\u00f3n: streams y tickets, permiten no tener que volver a negociar las caracter\u00edsticas del env\u00edo de datos entre las partes. Como consecuencia, un cambio de IP en el cliente no significa cerrar conexiones y renegociar; por ejemplo, navegar con tu port\u00e1til y cambiar a otra red wifi o por cable.<\/li><li><\/li><li>Pensando en versiones futuras, el protocolo incorpora control de versiones para que su adopci\u00f3n sea m\u00e1s r\u00e1pida as\u00ed como posibilidad de realizar extensiones privadas o p\u00fablicas.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de varios cambios <a rel=\"noreferrer noopener\" href=\"https:\/\/datatracker.ietf.org\/doc\/html\/draft-ietf-quic-http-17\" data-type=\"URL\" data-id=\"https:\/\/datatracker.ietf.org\/doc\/html\/draft-ietf-quic-http-17\" target=\"_blank\">HTTP\/3 se ha adoptado como el nombre final a la especificaci\u00f3n HTTP sobre QUIC<\/a>, todos los navegadores modernos ya lo soportan, Windows 10 21Hx, Windows 11 y Windows Server 2022 lo soportan de manera nativa. Con la adopci\u00f3n paulatina en grandes empresas y redes (<a rel=\"noreferrer noopener\" href=\"https:\/\/cloud.google.com\/blog\/products\/networking\/cloud-cdn-and-load-balancing-support-http3\" data-type=\"URL\" data-id=\"https:\/\/cloud.google.com\/blog\/products\/networking\/cloud-cdn-and-load-balancing-support-http3\" target=\"_blank\">Google<\/a>, <a rel=\"noreferrer noopener\" href=\"https:\/\/techcommunity.microsoft.com\/t5\/networking-blog\/enabling-http-3-support-on-windows-server-2022\/ba-p\/2676880\" data-type=\"URL\" data-id=\"https:\/\/techcommunity.microsoft.com\/t5\/networking-blog\/enabling-http-3-support-on-windows-server-2022\/ba-p\/2676880\" target=\"_blank\">Microsoft<\/a>, <a rel=\"noreferrer noopener\" href=\"https:\/\/blog.cloudflare.com\/quic-version-1-is-live-on-cloudflare\/\" data-type=\"URL\" data-id=\"https:\/\/blog.cloudflare.com\/quic-version-1-is-live-on-cloudflare\/\" target=\"_blank\">Cloudflare<\/a>, <a rel=\"noreferrer noopener\" href=\"https:\/\/www.akamai.com\/blog\/performance\/http3-and-quic-past-present-and-future\" data-type=\"URL\" data-id=\"https:\/\/www.akamai.com\/blog\/performance\/http3-and-quic-past-present-and-future\" target=\"_blank\">Akamai<\/a>&#8230;) los resultados para los usuarios finales tal vez no ser\u00e1n tan apreciables, pero permitir\u00e1 seguir creciendo internet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En 2015 empez\u00f3 en la pr\u00e1ctica a utilizarse HTTP\/2, volvemos a tener delante la nueva evoluci\u00f3n. Este tipo de cambios afectan a la mayor\u00eda de tr\u00e1fico generado en internet, los cambios son lentos y silenciosos en ocasiones. Desde 2019 en Chrome (v79) y 2020 en Edge, Safari y Firefox el protocolo esta integrado en los [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1355,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[806,804,805,810,638],"class_list":["post-1341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-networking","tag-http3","tag-quic","tag-quick-udp","tag-smb-over-quic","tag-tls"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/1341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=1341"}],"version-history":[{"count":0,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/1341\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media\/1355"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=1341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=1341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=1341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}