blog.apnic.net Open in urlscan Pro
104.18.236.68  Public Scan

URL: https://blog.apnic.net/2023/09/25/why-http-3-is-eating-the-world/
Submission: On October 07 via api from US — Scanned from DE

Form analysis 4 forms found in the DOM

GET https://blog.apnic.net

<form role="search" method="get" action="https://blog.apnic.net" class="form-inline omnibar-contextual-navigation-secondary__search">
  <label class="sr-only" for="form-search">Blog search</label>
  <input type="text" class="omnibar-contextual-navigation-secondary__search-input" id="form-search" name="s" value="" aria-label="Search" placeholder="BLOG SEARCH">
  <button type="submit" class="btn omnibar-contextual-navigation-secondary__search-submit">
    <span class="sr-only">Search</span>
    <span class="fa fa-search" aria-hidden="true"></span>
  </button>
</form>

GET https://blog.apnic.net

<form class="form-inline omnibar-contextual-search__form" role="search" method="get" action="https://blog.apnic.net">
  <div class="input-group w-100">
    <label class="sr-only" for="contextualSearchInput">Blog search</label>
    <input type="text" class="form-control omnibar-contextual-search__input" name="s" value="" id="contextualSearchInput" placeholder="Blog Search">
    <i class="fas fa-search omnibar-contextual-search__icon"></i>
  </div>
</form>

POST https://blog.apnic.net/wp-comments-post.php

<form action="https://blog.apnic.net/wp-comments-post.php" method="post" id="commentform" class="comment-form">
  <p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> <span class="required-field-message">Required fields are marked <span class="required">*</span></span></p>
  <p class="comment-form-comment"><label for="comment">Comment <span class="required">*</span></label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea></p>
  <p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required="required"></p>
  <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="text" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required="required">
  </p>
  <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"> <label for="wp-comment-cookies-consent" style="display: inline;">Save my name and email in this browser
      for the next time I comment.</label></p>
  <p class="comment-form-mailpoet">
    <label for="mailpoet_subscribe_on_comment">
      <input type="checkbox" id="mailpoet_subscribe_on_comment" value="1" name="mailpoet[subscribe_on_comment]">&nbsp;Yes, add me to your mailing list </label>
  </p>
  <div class="gglcptch gglcptch_v2">
    <div id="gglcptch_recaptcha_1683856084" class="gglcptch_recaptcha">
      <div style="width: 304px; height: 78px;">
        <div><iframe title="reCAPTCHA" width="304" height="78" role="presentation" name="a-ipr616g9vzj0" frameborder="0" scrolling="no"
            sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox"
            src="https://www.google.com/recaptcha/api2/anchor?ar=1&amp;k=6LdDdlEcAAAAAD2414mEcTlWhD_-NmM_lUv9pPz9&amp;co=aHR0cHM6Ly9ibG9nLmFwbmljLm5ldDo0NDM.&amp;hl=de&amp;v=lLirU0na9roYU3wDDisGJEVT&amp;theme=light&amp;size=normal&amp;cb=51ilzs7hr5bl"></iframe>
        </div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response"
          style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea>
      </div><iframe style="display: none;"></iframe>
    </div>
    <noscript>
      <div style="width: 302px;">
        <div style="width: 302px; height: 422px; position: relative;">
          <div style="width: 302px; height: 422px; position: absolute;">
            <iframe src="https://www.google.com/recaptcha/api/fallback?k=6LdDdlEcAAAAAD2414mEcTlWhD_-NmM_lUv9pPz9" frameborder="0" scrolling="no" style="width: 302px; height:422px; border-style: none;"></iframe>
          </div>
        </div>
        <div style="border-style: none; bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px; height: 60px; width: 300px;">
          <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response"
            style="width: 250px !important; height: 40px !important; border: 1px solid #c1c1c1 !important; margin: 10px 25px !important; padding: 0px !important; resize: none !important;"></textarea>
        </div>
      </div>
    </noscript>
  </div>
  <p class="comment-form-subscriptions"><label for="subscribe-reloaded"><input type="checkbox" name="subscribe-reloaded" id="subscribe-reloaded" value="yes"> Notify me of follow-up comments via email. You can also
      <a href="https://blog.apnic.net/comment-subscriptions/?srp=76248&amp;srk=a35872643f54971fbc6e048745cc9cad&amp;sra=s&amp;srsrc=f">subscribe</a> without commenting.</label></p>
  <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" disabled=""> <input type="hidden" name="comment_post_ID" value="76248" id="comment_post_ID">
    <input type="hidden" name="comment_parent" id="comment_parent" value="0">
  </p>
  <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="4d5e5bdab5"></p>
  <p style="display: none !important;"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="1696645480832">
    <script type="text/javascript">
      document.getElementById("ak_js_1").setAttribute("value", (new Date()).getTime());
    </script>
  </p>
</form>

POST https://blog.apnic.net/wp-admin/admin-post.php?action=mailpoet_subscription_form

<form target="_self" method="post" action="https://blog.apnic.net/wp-admin/admin-post.php?action=mailpoet_subscription_form" class="mailpoet_form mailpoet_form_form mailpoet_form_widget" novalidate="" data-delay="" data-exit-intent-enabled=""
  data-font-family="" data-cookie-expiration-time="">
  <input type="hidden" name="data[form_id]" value="2">
  <input type="hidden" name="token" value="cdf2510ef1">
  <input type="hidden" name="api_version" value="v1">
  <input type="hidden" name="endpoint" value="subscribers">
  <input type="hidden" name="mailpoet_method" value="subscribe">
  <label class="mailpoet_hp_email_label" style="display: none !important;">Please leave this field empty<input type="email" name="data[email]"></label>
  <div class="mailpoet_paragraph "><label for="form_email_2" class="mailpoet_text_label" data-automation-id="form_email_label">Email <span class="mailpoet_required">*</span></label><input type="email" autocomplete="email" class="mailpoet_text"
      id="form_email_2" name="data[form_field_ZTY0NTU2N2ExMTA4X2VtYWls]" title="Email" value="" style="padding:5px;margin: 0 auto 0 0;" data-automation-id="form_email" data-parsley-required="true" data-parsley-minlength="6"
      data-parsley-maxlength="150" data-parsley-type-message="This value should be a valid email." data-parsley-errors-container=".mailpoet_error_email_" data-parsley-required-message="This field is required."></div>
  <div class="mailpoet_paragraph "><span id="get-updates-options-control">Show options</span></div>
  <div class="mailpoet_paragraph "><input type="submit" class="mailpoet_submit" value="Subscribe!" data-automation-id="subscribe-submit-button" style="padding:5px;margin: 0 auto 0 0;border-color:transparent;"><span class="mailpoet_form_loading"><span
        class="mailpoet_bounce1"></span><span class="mailpoet_bounce2"></span><span class="mailpoet_bounce3"></span></span></div>
  <div class="mailpoet_paragraph ">
    <div id="get-updates-options" style="display: none;"></div>
  </div>
  <div class="mailpoet_paragraph last">
    <fieldset>
      <legend class="mailpoet_segment_label">Select list(s):</legend><label class="mailpoet_checkbox_label"><input type="checkbox" class="mailpoet_checkbox" name="data[form_field_YzgzZjJlMzZlMGM1X3NlZ21lbnRz][]" value="4" data-parsley-required="true"
          data-parsley-group="segments" data-parsley-errors-container=".mailpoet_error_segments_2" data-parsley-required-message="Please select a list." data-parsley-multiple="dataform_field_YzgzZjJlMzZlMGM1X3NlZ21lbnRz"> Daily</label><label
        class="mailpoet_checkbox_label"><input type="checkbox" class="mailpoet_checkbox" name="data[form_field_YzgzZjJlMzZlMGM1X3NlZ21lbnRz][]" value="3" checked="checked" data-parsley-required="true" data-parsley-group="segments"
          data-parsley-errors-container=".mailpoet_error_segments_2" data-parsley-required-message="Please select a list." data-parsley-multiple="dataform_field_YzgzZjJlMzZlMGM1X3NlZ21lbnRz"> Weekly</label><span
        class="mailpoet_error_segments_2"></span>
    </fieldset>
  </div>
  <div class="mailpoet_message">
    <p class="mailpoet_validate_success" style="display:none;">Thanks for subscribing! Check your inbox or spam folder to confirm your subscription. </p>
    <p class="mailpoet_validate_error" style="display:none;"> </p>
  </div>
</form>

Text Content

Skip to content
MyAPNIC Academy Blog Orbit REx NetOX DASH
Log in


HOME

Blog search Search
Advanced Whois
Make a payment
Your IP address: 176.115.237.61
Close Search
Blog search
 * Get IP
   * Get IP
   * Make a payment
   * Membership
   * FAQs
 * Manage IP
   * MyAPNIC
   * Using Whois
   * IPv4 exhaustion
   * Go IPv6
   * Routing Registry
   * Make a payment
 * Training
   * About
   * Events
   * APNIC Academy
   * Community Trainers
   * Courses
 * Events
   * Conferences
   * Calendar
   * Sponsorship
   * Code of Conduct
 * Insights
   * APNIC Labs
   * DASH to secure your networks
   * REx
   * NetOX to solve routing issues
   * Raw Data
 * Community
   * Orbit
   * Community demographics
   * Policy Development
   * Fellowship
   * Addressing policies
   * Internet community
   * Code of Conduct
   * Technical Assistance
   * Root servers
   * Security at APNIC
   * ISIF Asia
   * APNIC Foundation
   * NRO Number Council (NC)
 * Blog
 * Help Centre
 * About
   * APNIC Region
   * APNIC Membership
   * Executive Council
   * Service updates
   * Team
   * Annual Reports
   * Transparency
   * APNIC Survey
   * Corporate Documents
   * Publications Archive
   * Careers
   * Glossary
 * Contact
 * Advanced Whois
 * Make a payment


 * Get IP
   * Get IP
   * Make a payment
   * Membership
   * FAQs
 * Manage IP
   * MyAPNIC
   * Using Whois
   * IPv4 exhaustion
   * Go IPv6
   * Routing Registry
   * Make a payment
 * Training
   * About
   * Events
   * APNIC Academy
   * Community Trainers
   * Courses
 * Events
   * Conferences
   * Calendar
   * Sponsorship
   * Code of Conduct
 * Insights
   * APNIC Labs
   * DASH to secure your networks
   * REx
   * NetOX to solve routing issues
   * Raw Data
 * Community
   * Orbit
   * Community demographics
   * Policy Development
   * Fellowship
   * Addressing policies
   * Internet community
   * Code of Conduct
   * Technical Assistance
   * Root servers
   * Security at APNIC
   * ISIF Asia
   * APNIC Foundation
   * NRO Number Council (NC)
 * Blog
 * Help Centre
 * About
   * APNIC Region
   * APNIC Membership
   * Executive Council
   * Service updates
   * Team
   * Annual Reports
   * Transparency
   * APNIC Survey
   * Corporate Documents
   * Publications Archive
   * Careers
   * Glossary
 * Contact


Skip to the article


WHY HTTP/3 IS EATING THE WORLD

By Robin Marx on 25 Sep 2023

Category: Tech matters

Tags: Guest Post, HTTP, QUIC

2 Comments



Blog home

Adapted from Sven Mieke's orginal at Unsplash.

The HyperText Transfer Protocol (HTTP) is a cornerstone of the Internet, helping
to load web pages, stream videos, and fetch data for your favourite apps.

Last year a new version of the protocol, HTTP/3, was standardized by the
Internet Engineering Task Force (IETF), the organization in charge of defining
Internet technologies. Since then, HTTP/3 and the related QUIC protocol have
seen a rapid uptake on the public web. The exact numbers depend on the source
and measurement methodology, with HTTP/3 support ranging from 19% to 50+% of web
servers and networks worldwide.

A Flourish chart

Because these new protocols are heavily used by large companies such as Google
and Meta, we can safely say that a large chunk of current Internet traffic
already uses HTTP/3 today. In fact, the blog post you’re reading right now was
probably loaded over HTTP/3!

In this series, I’ll provide some context on what problems HTTP/3 solves, how it
performs, why it’s seen such swift adoption, and what limitations it is still
working to overcome.


WHY DO WE NEED HTTP/3?

A network protocol describes how data is communicated between two entities on
the network, typically the user’s device and a web server. As there are many
different companies building software for the web, the protocol needs to be
standardized so that all this software can be ‘interoperable’, that is, they can
all understand each other because they follow the same rules.

In practice, we don’t use a single protocol but a combination of several at the
same time, each with its own responsibilities and rules (Figure 1). This is to
make things flexible and reusable — you can still use the exact same HTTP logic,
regardless if you’re using Wi-Fi, cable, or 4G/5G.

Figure 1 — The protocol stack for HTTP/2 and HTTP/3, showing how multiple
protocols are combined to deliver the full Internet functionality.

Many of the original protocols for the Internet were standardized in the 80s and
90s, meaning they were built with the goals and restrictions of those decades in
mind. While some of these protocols have stood the test of time, others have
started to show their age. Most problems have been solved by workarounds and
clever tricks. However, it was clear something would have to change. This is
especially true for the Transport Control Protocol (TCP), which ensures your
data reliably gets across the Internet.


WHY TCP IS NOT OPTIMAL FOR TODAY’S WEB

HTTP/1.1 and HTTP/2 rely on TCP to successfully do their job. Before a client
and server can exchange an HTTP request/response, they must establish a TCP
connection.

Over time, there have been many efforts to update TCP and resolve some of its
inefficiencies — TCP still loads webpages as if they were single files instead
of a collection of hundreds of individual files. Some of these updates have been
successful, but most of the more impactful ones (for example, TCP multipath and
TCP Fast Open) took nearly a decade to be practically usable on the public
Internet.

The main challenge with implementing changes to TCP is thousands of devices on
the Internet all have their own implementation of the TCP protocol. These
include phones, laptops, and servers, as well as routers, firewalls, load
balancers, and other types of ‘middleboxes’. As such, if we want to update TCP,
we have to wait for a significant portion of all these devices to update their
implementation, which in practice can take years.


THE QUIC SOLUTION

This became a problem to the point that the most practical way forward was to
replace TCP with something entirely new. This replacement is the QUIC protocol,
though many still (jokingly) refer to it as TCP 2.0. This nickname is
appropriate because QUIC includes many of the same high-level features of TCP
but with a couple of crucial changes.

The main change is that QUIC heavily integrates with the Transport Layer
Security (TLS) protocol. TLS is responsible for encrypting sensitive data on the
web — it’s the thing that provides the S (secure) in HTTPS. With TCP, TLS only
encrypts the actual HTTP data (Figure 2). With QUIC, TLS also encrypts large
parts of the QUIC protocol itself. This means that metadata, such as packet
numbers and connection-close signals, which were visible to (and changeable by)
all middleboxes in TCP, are now only available to the client and server in QUIC.

Figure 2 — Encryption differences between TCP+TLS and QUIC. QUIC encrypts much
more than just the HTTP data.

Furthermore, because QUIC is more extensively encrypted, it will be much easier
than it was for TCP to change it or to add new features — we only need to update
the clients and servers, as the middleboxes can’t decrypt the metadata anyway.
This makes QUIC a future-proof protocol that will allow us to more quickly solve
new challenges.

Of course, this extra encryption is good for the general security and privacy of
the new protocol too. While TCP + TLS are perfect for securing sensitive
personal data, such as credit cards or email content, they can still be
vulnerable to complex (privacy) attacks, which have become ever more practical
to execute due to recent advances in AI. By further encrypting this type of
metadata, QUIC is more resilient to sophisticated threat actors.

QUIC also has many other security-related features, including defences against
Distributed Denial of Service (DDoS) attacks, with features such as
amplification prevention and RETRY packets.

Finally, QUIC also includes a large amount of efficiency and performance
improvements compared to TCP, including a faster connection handshake (see
Figure 3), the removal of the ‘head-of-line blocking’ problem, better packet
loss detection/recovery, and ways to deal with users switching networks (I’ll go
into more detail on this in my next post).

Figure 3 — QUIC has a faster connection setup, as it combines the ‘transport’
three-way handshake with the TLS cryptographic session establishment, which in
TCP+TLS are two separate processes.


WE DIDN’T NEED HTTP/3; WHAT WE NEEDED WAS QUIC

Initially, there were attempts to keep HTTP/2 and make minimal adjustments so we
could also use QUIC in the lower layers (after all, that’s the whole point of
having these different cooperating and reusable protocols). However, it became
clear QUIC was just different enough from TCP to make it HTTP/2-incompatible. As
such, the decision was made to make a new version of HTTP, just for QUIC, which
eventually became HTTP/3.

HTTP/3 is almost identical to HTTP/2. They mainly differ in the technical
implementation of the features on top of QUIC or TCP. However, because HTTP/3
can use all of QUIC’s new features, it is expected to be more performant when
loading web pages and streaming videos. In practice, it’s especially this aspect
that has led to HTTP/3’s rapid adoption.

In my next post, I’ll go into more detail on a common connectivity problem
you’ve most likely experienced and how QUIC can help reduce calls and videos
from cutting out when your mobile device changes from using Wi-Fi to cellular
connectivity.

Robin Marx is a Web Protocol and Performance Expert at Akamai.

This post was originally published on the Internet Society’s Pulse Blog.

Rate this article
 * 
 * 
 * 
 * 
 * 

Rate this (54 Votes)

--------------------------------------------------------------------------------

The views expressed by the authors of this blog are their own and do not
necessarily reflect the views of APNIC. Please note a Code of Conduct applies to
this blog.


2 COMMENTS

 1. Tim October 6, 2023 at 12:37 am
    
    “TCP still loads webpages as if they were single files instead of a
    collection of hundreds of individual files”
    
    In other words, the web that we wanted, versus the web that we got: tracking
    and ads. HTTP was built by users for users. HTTP/3 was built by companies
    for companies.
    
    Reply ↓
    
 2. Dylan October 6, 2023 at 12:39 am
    
    Great article. Thanks for the write up.
    
    Reply ↓
    


LEAVE A REPLY CANCEL REPLY

Your email address will not be published. Required fields are marked *

Comment *

Name *

Email *

Save my name and email in this browser for the next time I comment.

 Yes, add me to your mailing list



Notify me of follow-up comments via email. You can also subscribe without
commenting.





Δ

Top


GET UPDATES


Please leave this field empty
Email *
Show options


Select list(s): Daily Weekly

Thanks for subscribing! Check your inbox or spam folder to confirm your
subscription.




AUTHORS

 * Adli Wahid
 * Aftab Siddiqui
 * Geoff Huston
 * George Michaelson
 * Jen Linkova
 * Job Snijders
 * Kathleen Moriarty
 * Paul Wilson
 * Ulrich Speidel
 * Vitaly Kamluk
 * A Khalil Azizi
 * A S M Rizvi
 * AbdelRahman Abdou
 * Abhishek Jain
 * Achie Atienza
 * Adam Gosling
 * Adam McFillin
 * Adam Oest
 * Adeel Sadiq
 * Adiel Akplogan
 * Adisorn Lertsinsrubtavee
 * Adli Wahid
 * Adrian Farrel
 * Adrian Wan
 * Afifa Abbas
 * Afsheen Saadat
 * Aftab Siddiqui
 * Agustín Formoso
 * Ahmad Darki
 * Ajay Kumar
 * Akimichi Ogawa
 * Alain Aina
 * Alan Mauldin
 * Albert Gran Alcoz
 * Alden Hilton
 * Alec Muffett
 * Alex Band
 * Alex Boten
 * Alex Turing
 * Alex Yen
 * Alexander Azimov
 * Alexander Kozlov
 * Alfred Arouna
 * Ali Abedi
 * Ali Norouzi
 * Amaury Van Bemten
 * Amrita Choudhury
 * Anand Buddhdev
 * Anant Shah
 * Andra Lutu
 * Andre Gelderblom
 * Andreas Dewes
 * Andreas Reuter
 * Andree Toonk
 * Andrei Robachevsky
 * Andrew Ayer
 * Andrew Campling
 * Andrew Cormack
 * Andrew Cushen
 * Andrew Gray
 * Andrew Sullivan
 * Andrew Toimoana
 * Andrijana Todosijević
 * Andy Mindnich
 * Andy Newton
 * Anju Mangal
 * Anna Maria Mandalari
 * Annaliza Mulingbayan
 * Anosh Khan
 * Anriette Esterhuysen
 * Anthony Lee
 * Anton Strydom
 * Anup Changaroth
 * Anurag Bhatia
 * APNIC
 * Apoorv Shukla
 * Arash Molavi Kakhki
 * Arian Niaki
 * Aris Tzermias
 * Arjuna Sathiaseelan
 * Arth Paulite
 * Artyom Gavrichenkov
 * Asad Ali
 * Asanka Sayakkara
 * Ashil Oogarah
 * Ashwin Kumar
 * Ashwin Rangan
 * Audrey Randall
 * Aurélien Aptel
 * Austin Hounsel
 * Austin Ruckstuhl
 * Avery Pennarun
 * Ayesha Iftikhar
 * Aysha Labiba
 * Ayush Mishra
 * Azfar Adib
 * Azhar Khuwaja
 * Azura Mat Salim
 * Baojun Liu
 * Baptiste Jonglez
 * Barry Greene
 * Bart Hogeveen
 * Basileal Imana
 * Bastian Kanbach
 * Beau Gieskens
 * Ben Cox
 * Ben Du
 * Ben Schwartz
 * Benjz Gerard Sevilla
 * Benno Overeinder
 * Bert Hubert
 * Bhadrika Magan
 * Bhumika Sapkota
 * Bikram Shrestha
 * Bill Hess
 * Bill Stearns
 * Bill Woodcock
 * Bjørn Teigen
 * Blake Anderson
 * Blas Trigueros
 * Brandon Hitzel
 * Brenda Buwu
 * Brenden Kuerbis
 * Brent Carey
 * Brian Carpenter
 * Brian Nisbet
 * Brian Trammell
 * Bruce Davie
 * Bruce Spang
 * Byambajargal Jamsran
 * Byron Ellacott
 * Byungjin Jun
 * Cameron Steel
 * Carsten Strotmann
 * Caspar Schutijser
 * Cecilia Testart
 * Cengiz Alaettinoglu
 * CF Chui
 * Champika Wijayatunga
 * Che-Hoo Cheng
 * Cheeyong Tay
 * Cherie Lagakali
 * Chia Ling (Jolin) Chan
 * Chika Yoshimura
 * Ching-Heng Ku
 * Chris Amin
 * Chris Grundemann
 * Chris Parker
 * Chris Ritzo
 * Chris Siebenmann
 * Christian Giese
 * Christian Huitema
 * Christoph Dietzel
 * Chuan Jiang
 * Ciprian Popoviciu
 * Clarence Filsfils
 * Claudio Jeker
 * Clemens Mosig
 * Colin Perkins
 * Constance Bommelaer
 * Constantin Sander
 * Constanze Dietrich
 * Craig Miller
 * Craig Ng
 * Craig Rowland
 * Dale Roberts
 * Dan Fidler
 * Dan Li
 * Daniel Dib
 * Daniel Kopp
 * Danilo Giordano
 * Danny Alex Lachos Perez
 * Danny Pinto
 * Daryll Swer
 * Dave Mill
 * Dave Phelan
 * David Anderson
 * David Burkett
 * David Dawson
 * David Holder
 * David Holsgrove
 * David Huberman
 * Dean Pemberton
 * Debashis Pal
 * Debopam Bhattacherjee
 * Deepak Vasisht
 * Denesh Bhabuta
 * Dennis Baaten
 * Désirée Miloshevic
 * Dewangga Alam
 * Dewole Ajao
 * Dhruv Dhody
 * Di Ma
 * Diego Pino García
 * Diptanshu Singh
 * Dirk Trossen
 * Dmytro Shypovalov
 * Donatas Abraitis
 * Doug Madory
 * Doug Montgomery
 * Dr Bahaa Al-Musawi
 * Dr Govind
 * Drikus Brits
 * Duane Wessels
 * Duncan Macintosh
 * E. Marie Brierley
 * Ed Horley
 * Edward Lewis
 * Edwin Sandys
 * Ege Cem Kirci
 * Eliot Lear
 * Elizabeth Krumbach Joseph
 * Ellisha Heppner
 * Elly Tawhai
 * Elvin Prasad
 * Emile Aben
 * Emily Gallarde
 * Emily Stark
 * Emir Beganović
 * Eneken Tikk
 * Enno Rey
 * Enric Pujol
 * Eric Lawrence
 * Eric Loos
 * Eric Vyncke
 * Erik Hjelmvik
 * Erik Rye
 * Erin Scherer
 * Eshaan Bansal
 * Esteban Carisimo
 * Eugene Bogomazov
 * Eunju Pak
 * Eyal Estrin
 * Fabián Bustamante
 * Fakrul Alam
 * Farha Diba
 * Fenglu Zhang
 * Ferenc Fejes
 * Fernando Gont
 * Flavia Salutari
 * Flavio Luciani
 * Florentin Rochet
 * Florian Holzbauer
 * Florian Streibelt
 * Foy Shiver
 * Francesco Ferreri
 * Francesco Sassi
 * Franck Martin
 * Frane Maroevic
 * Frank Denis
 * Frank Herberg
 * Franziska Lichtblau
 * Fred Christopher
 * Fred Templin
 * Fredrik Lindeberg
 * Ganga R Dhungyel
 * Gaurab Raj Upadhaya
 * Gautam Akiwate
 * Gavin Reid
 * Geoff Huston
 * George Kuo
 * George Michaelson
 * George Odagi
 * George Sadowsky
 * Giacomo Giuliari
 * Gianmarco Pagani
 * Giovane Moura
 * Gonchig Altansukh
 * Gordon King
 * Greg Ferro
 * Grégory Mounier
 * Guangliang Pan
 * Guillermo Baltra
 * GZ Kabir
 * Ha Dao
 * Haisheng Yu
 * Han Zhang
 * Hanna Kreitem
 * Hannah Durack
 * Hanno Böck
 * Harish Chowdhary
 * Haya Shulman
 * Helen Hollins
 * Hideyuki Sasaki
 * Hinne Hettema
 * Hiroki Kawabata
 * Hiroko Kamata
 * Hiromu Shiozawa
 * Hisham Ibrahim
 * Hoàng Nguyên Phong
 * Houlin Zhao
 * Hyeonmin Lee
 * Hyojoon Kim
 * Ignacio Castro
 * Ihita Gangavarpu
 * Ike Kunze
 * Ilker Nadi Bozkurt
 * Imtiaz Rahman
 * Indya Bolton
 * Ioana Livadariu
 * Italo Cunha
 * Ivan Ristić
 * Ivana Tomic
 * Ivo A. Ivanov
 * Ivy Yip
 * Izumi Okutani
 * Jaclyn Knight
 * Jacob Davis
 * Jahangir Hossain
 * Jake Bauer
 * Jake Flint
 * Jake Holland
 * James Ah Wai
 * James Bensley
 * James Kettle
 * James Pavur
 * James Richards
 * James Shank
 * Jamie Gillespie
 * Jan Harm Kuipers
 * Jan Rüth
 * Jan Schaumann
 * Jan Zorz
 * Jan-Piet Mens
 * Jane Yen
 * Jari Arkko
 * Jason Livingood
 * Jason Smith
 * Jasper den Hertog
 * Jawad Ahmed
 * Jay Daley
 * Jay Ford
 * Jeff Chan
 * Jeff Fry
 * Jeff Man
 * Jen Linkova
 * Jenine Beekhuyzen
 * Jeremy Harrison
 * Jerry Lundström
 * Jessica Shen
 * Jessica Wei
 * Jethro Webston
 * Jia-Rong Low
 * Jim Forster
 * Jim Vella
 * Jimmy Lim
 * Jing Qiao
 * Joanna Kulesza
 * João L. Sobrinho
 * Joao Luis Silva Damas
 * Joao M. Ceron
 * Job Snijders
 * Joel Jaeggli
 * Johanna Amann
 * Johannes Krupp
 * Johannes Weber
 * Johannes Zirngibl
 * John Bambenek
 * John Curran
 * John Garrity
 * John Jack
 * John Jason Brzozowski
 * John Kristoff
 * John Scudder
 * John Welborn
 * Jonathan Brewer
 * Jonathan Magnusson
 * Jordan Carter
 * Jordan Jueckstock
 * Jordi Paillissé
 * Jordi Palet Martinez
 * Josef Gustafsson
 * Joseph Salowey
 * Joy Chan
 * Joyce Chen
 * Juan Ramón Santana
 * Juha Saarinen
 * Julia Evans
 * Julián Martín Del Fiore
 * Julien Gamba
 * Jun Murai
 * Justin Loye
 * Kaajal Kumar
 * Kaan Onarlioglu
 * Kanagaraj Krishna
 * Karan Sharma
 * Karel Hynek
 * Karl Lovink
 * Karla Skarda
 * Kasek Galgal
 * Kashyap Thimmaraju
 * Kathleen Moriarty
 * Katsuyasu Toyama
 * Kazunori Fujiwara
 * Ke Ma
 * Keisuke Kamata
 * Kemal Sanjta
 * Kenjiro Cho
 * Kenny Huang
 * Kenrick Lin
 * Kensuke Fukuda
 * Kevin Backhouse
 * Kevin Bock
 * Kevin Jin
 * Kevin Ku
 * Kevin Meynell
 * Kevin Vermeulen
 * Kevon Swift
 * Keyu Man
 * Khee Hong Loke
 * Khwaja Zubair Sediqi
 * Kiruthika Devaraj
 * Klée Aiken
 * Kobayashi Masayuki
 * Koen van Hove
 * Koichi Kunitake
 * Koki Nakagawa
 * Konrad Wolsing
 * Korian Edeline
 * Kostas Zorbadelos
 * Kris Shrishak
 * Kurt Lindqvist
 * Kyle Drake
 * Kyle Schomp
 * Lan Wei
 * Lari Huttunen
 * Lars Prehn
 * Lars-Johan Liman
 * Leandro Bertholdo
 * Leandro Navarro
 * Lee Howard
 * Leo Vegoda
 * Leonid Todorov
 * Leslie Daigle
 * Lia Hestina
 * Liang Wang
 * Liangcheng Yu
 * Libin Liu
 * Linjian Song
 * Lisa Corness
 * Lisandro Ubiedo
 * Liz Izhikevich
 * Loba Olopade
 * Lorenzo Cogotti
 * Louise Tromp
 * Luca Sani
 * Luuk Hendriks
 * M. Yasir M. Haq
 * Maarten Botterman
 * Maciej Korczyński
 * Madeline Carr
 * Maemura Akinori
 * Mai Thu Thuy
 * Major Hayden
 * Mallory Knodel
 * Manaf Gharaibeh
 * Mannat Kaur
 * Mansour Ganji
 * Marc Bruyere
 * Marcin Nawrocki
 * Marco Chiesa
 * Marco Cilloni
 * Marco Hogewoning
 * Marcus Brinkmann
 * Marcus Keane
 * Marek Majkowski
 * Maria Namestnikova
 * Maria Theresa Perez
 * Mariko Kobayashi
 * Marilyn Zhang
 * Mario Loffredo
 * Mark Andrews
 * Mark Karpilovskij
 * Mark Nottingham
 * Mark Prior
 * Mark Smith
 * Mark Tinka
 * Markus Dahlmanns
 * Markus Legner
 * Markus Sosnowski
 * Marten Porte
 * Martin Hannigan
 * Martin Hoffmann
 * Martin Langer
 * Martin Thomson
 * Martin Winter
 * Martino Trevisan
 * Mary Rose Ofianga-Rontal
 * Masanori Yajima
 * Masataka Mawatari
 * Massimo Candela
 * Mat Ford
 * Matsuzaki Yoshinobu
 * Matt Larson
 * Matt Oh
 * Matt Palmer
 * Matt Ringel
 * Matt Stith
 * Matthew Thomas
 * Matthias Wichtlhuber
 * Matthijs Mekking
 * Mattijs Jonker
 * Max von Hippel
 * Maxime Mouchet
 * Maxime Piraux
 * Md Abdul Awal
 * Megan Baker
 * Melchior Aelmans
 * Merike Kaeo
 * Metin Açıkalın
 * Michael Kende
 * Michael Patterson
 * Michael Rabinovich
 * Michael Schapira
 * Michael Schneider
 * Mika Kerttunen
 * Mike Hollyman
 * Mike Kosek
 * Min Sung Jung
 * Mingwei Zhang
 * Minzhao Lyu
 * Miwa Fujii
 * Mohamad Dikshie Fauzie
 * Mohamed Awnallah
 * Mohamed Boucadair
 * Mohamed Kassem
 * Mohammad Larosh Khan
 * Molay Ghosh
 * Momoka Yamamoto
 * Moritz Müller
 * Mubashir Sargana
 * Muhammad Moinur Rahman
 * Muhammad Yasir Shamim
 * Munkhbat Gansukh
 * Muzamer Mohd Azalan
 * Nadir Hassan
 * Nafeez Islam
 * Nalini Elkins
 * Narayan G
 * Narelle Clark
 * Natale Bianchi
 * Nate Sales
 * Nathalie Romo Moreno
 * Nathalie Trenaman
 * Neta Rozen Schiff
 * Nick Buraglio
 * Nick Hilliard
 * Nick Janetakis
 * Nico Schottelius
 * Nicola Rustignoli
 * Nicole Wajer
 * Niels Provos
 * Nihit Tandon
 * Nikolai Hampton
 * Nikos Kostopoulos
 * Nils Wisiol
 * Nirav Atre
 * Nooshin Eghbal
 * Nurul Islam Roman
 * Nusenu
 * Nyamkhand Buluukhuu
 * Oanh Nguyen
 * Oky Tria Saputra
 * Ólafur Guðmundsson
 * Olamide Omolola
 * Oliver Gasser
 * Oliver Michel
 * Olivier Tilmans
 * Omar Alrawi
 * Ondřej Caletka
 * Ondřej Surý
 * Otto Moerbeek
 * Pablo Hinojosa
 * Paolo Lucente
 * Paresh Khatri
 * Parkpoom Tripatana
 * Pasan Lamahewa
 * Patrick McManus
 * Patrick Sattler
 * Patrik Fältström
 * Paul Dale
 * Paul Grubbs
 * Paul Wilson
 * Pavel Odintsov
 * Paweł Foremski
 * Paweł Urbanek
 * Pedro Marcos
 * Pengxiong Zhu
 * Pete Sclafani
 * Pete Stevens
 * Peter Blee
 * Peter Hansteen
 * Peter Lowe
 * Peter Maynard
 * Peter Peele
 * Petr Špaček
 * Petros Gigis
 * Phil Lavin
 * Phil Mawson
 * Philip Homburg
 * Philip Paeps
 * Philip Smith
 * Philipp Jeitner
 * Philipp Richter
 * Pier Carlo Chiodi
 * Piotr Kijewski
 * Platon Kotzias
 * Pranav Kondala
 * Praneet Kaur
 * Pubudu Jayasinghe
 * Qasim Lone
 * Quincy Liao
 * Rachee Singh
 * Rafael Cintra
 * Raffaele Sommese
 * Raffaele Zullo
 * Rahul Makhija
 * Rajnesh Singh
 * Ralph Dolmans
 * Ralph Holz
 * Ram Sundara Raman
 * Ramakrishna Padmanabhan
 * Rami Al-Dalky
 * Ramin Yazdani
 * Ran Ben Basat
 * Ranysha Ware
 * Raphael Hiesgen
 * Raquel Rugani Lage
 * Raskia Nayanajith
 * Ray Bellis
 * Rebekah Houser
 * Remi Gacogne
 * Rene Bakker
 * René Wilhelm
 * Renée Burton
 * Richard Cziva
 * Richard Jimmerson
 * Richard Nelson
 * Richard Patterson
 * Richard Read
 * Rick McElroy
 * Rishabh Chhabra
 * Robbie Mitchell
 * Robert Alexander
 * Robert Kisteleki
 * Robin Marx
 * Roderick Fanou
 * Roger Meyer
 * Rohana Palliyaguru
 * Roland Meier
 * Roland van Rijswijk-Deij
 * Rolf Winter
 * Romain Fontugne
 * Ron Bonica
 * Ron Winward
 * Ronald van Kleunen
 * Rowena Schoo
 * Roy Arends
 * Rüdiger Birkner
 * Russ White
 * Ryan Beckett
 * Ryan Gerstenkorn
 * Ryo Nakamura
 * Sachin Ashok
 * Safiqul Islam
 * Said Jawad Saidi
 * Said Zazai
 * Salvatore Cuzzilla
 * Samaneh Tajalizadehkhoob
 * Samantha Douglas
 * Samit Jana
 * Samuel Steffen
 * Sandra Davey
 * Sandra Siby
 * Sangeetha Abdu Jyothi
 * Sanjaya
 * Sara Dickinson
 * Sarah Escandor-Tomas
 * Sarmad Hussain
 * Sarvesh Mathi
 * Sasha Romijn
 * Satadal Sengupta
 * Satoru Matsushima
 * Satoru Tsurumaki
 * Sayda Kamrun Jahan Ripa
 * Scott Hollenbeck
 * Scott Shenker
 * Sebastian Castro
 * Sebastian Neef
 * Sebastian Zander
 * Seiichi Kawamura
 * Seluvaia Kauvaka
 * Seth Schoen
 * Shah Sahari
 * Shahee Mirza
 * Shahzeb Mustafa
 * Shamim Reza
 * Shamsullah Shams
 * Shane Alcock
 * Shane Kerr
 * Sharada Yeluri
 * Sharat Chandra Madanapalli
 * Sheetal Kumar
 * Sheikh Md Seum
 * Shermaine Yung
 * Sherry Shek
 * Sheryl Hermoso
 * Shian-Shyong Tseng
 * Shinoj Pittandavida
 * Shishio Tsuchiya
 * Shivan Sahib
 * Shoko Nakai
 * Shuai Hao
 * Shucheng Liu
 * Shumon Huque
 * Shusei Tomonaga
 * Siena Perry
 * Simon Baroi
 * Simon Bauer
 * Simran Patil
 * Siva Kesava
 * Sivaram Ramanathan
 * Sofia Silva Berenguer
 * Sonam Keba
 * Song Bing
 * Spiros Thanasoulas
 * Srikanth Sundaresan
 * Srimal Andrahennadi
 * Stanley Osao
 * Stefan Mehner
 * Stefan Ubbink
 * Steinthor Bjarnason
 * Stephan Marwedel
 * Stéphane Bortzmeyer
 * Stephen McQuistin
 * Stephen Ryan
 * Stephen Strowes
 * Steve Crocker
 * Steve Santorelli
 * Stijn Pletinckx
 * Sue Graves
 * Suetena Faatuuala Loia
 * Suksit Sripitchayaphan
 * Sunny Chendi
 * Susan Forney
 * Svaradiva Devi
 * Swapneel Patnekar
 * Swaran Ravindra
 * Sylvain Cortes
 * Sylvia Cadena
 * Szymon Trocha
 * Taejoong Chung
 * Taiji Kimura
 * Talha Paracha
 * Tan Kean Siong
 * Tan Tin Wee
 * Tanya Shreedhar
 * Tashi Phuntsho
 * Teav Sovandara
 * Terry Sweetser
 * Teun Vink
 * Theo Jepsen
 * Theophilus A. Benson
 * Thomas Holterbach
 * Thomas King
 * Thomas Koch
 * Thomas Krenc
 * Thomas Millar
 * Thomas Patzke
 * Thomas Scheffler
 * Thomas Wirtgen
 * Thy Boskovic
 * Thymen Wabeke
 * Tianxiang Dai
 * Tim Bruijnzeels
 * Tim Chown
 * Tim Fiola
 * Tim Raphael
 * Timm Böttger
 * Timothy Winters
 * Tiong Beng Ng
 * Tobias Fiebig
 * Todd Arnold
 * Tom Barbette
 * Tom Carpay
 * Tom Do
 * Tom Harrison
 * Tom Hollingsworth
 * Tom Křížek
 * Tom Perrine
 * Tomek Mrugalski
 * Tommaso Caiazzi
 * Tomoaki Tani
 * Tony Finch
 * Tony Li
 * Tony Scheid
 * Tony Smith
 * Tony Tauber
 * Torsten Zimmermann
 * Trinh Viet Doan
 * Truong Khanh Huyen
 * Tuan Nguyen
 * Tugsorshikh Badarch
 * Tushar Swamy
 * Ulrich Hauser
 * Ulrich Speidel
 * Usama Naseer
 * Uta Meier-Hahn
 * Vashkar Bhattacharjee
 * Vasileios Giotsas
 * Vasileios Kotronis
 * Vasilis Chryssos
 * Venkat Arun
 * Veronika McKillop
 * Vesna Manojlovic
 * Vicky Risk
 * Vijay Sivaraman
 * Vijay Varadharajan
 * Viktor Dukhovni
 * Vincent Bernat
 * Vitaly Kamluk
 * Vittorio Bertola
 * Vivek Nigam
 * W K Shiu
 * Wanqing Tu
 * Warren Finch
 * Warren Kumari
 * Wassie Goushe
 * Wayne Thayer
 * Werachart Muttitanon
 * Wes Hardaker
 * Wilaiwan Phanarin
 * Wilhelm Boeddinghaus
 * Willem Toorop
 * William Lu
 * Willy Sutrisno
 * Winfried Tilanus
 * Wita Laksono
 * Wout de Natris
 * Wouter de Vries
 * Xiang Li
 * Xiao Zhang
 * Xiaohong Deng
 * Xiaoqi Chen
 * Xing Li
 * Xinlei Yang
 * Xuewei Feng
 * Yali Liu
 * Yeo Lee Chin
 * Yevheniya Nosyk
 * Yi Cao
 * Yiming Zhang
 * Ying Tian
 * Ying-Chu Chen
 * Yoshibumi Suematsu
 * Yoshinori Takesako
 * Yoshitaka Aharen
 * Younghwan Choi
 * Yuedong Zhang
 * Yunfei Ma
 * Yurie Ito
 * Yuta Takata
 * Zachary Bischof
 * Zaid Ali Kahn
 * Zaifeng Zhang
 * Zain Shamsi
 * Zen Ng
 * Zhenyu Li
 * Zhiyi Chen
 * Zili Meng
 * Zinan Lin
 * Zolzaya Shagdar

 * MoreShow all


TAGS

 * APNIC Foundation
 * APNIC Training
 * ASNs
 * Australia
 * BGP
 * capacity development
 * CERTs
 * DNS
 * DNSSEC
 * Event Wrap
 * Guest Post
 * How to
 * IANA
 * ICANN
 * IETF
 * IGF
 * India
 * Indonesia
 * Internet Governance
 * Internet of Things
 * IPv4
 * IPv6
 * ISIF Asia
 * ITU
 * IXPs
 * Japan
 * measurement
 * networking
 * NOGs
 * NRO
 * opinion
 * Pacific
 * peering
 * RIPE NCC
 * RIRs
 * ROAs
 * routing
 * RPKI
 * security
 * South Asia
 * Taiwan
 * TCP
 * Three of the best
 * tools
 * Whois


RELATED ARTICLES

 * Service exhaustion floods — HTTP/HTTPS flood, HTTP… by Debashis Pal November
   18, 2022 Guest Post: Learn about three different types of DDoS attacks and
   how to defend against them.
 * HTTP/3 and QUIC — prioritization and head-of-line blocking by Constantin
   Sander November 30, 2022 Guest Post: Moving streams from the application
   layer to the transport layer with HTTP/3/QUIC opens a new parameter space for
   new optimizations.
 * It’s time to reconsider selective FEC with high-priority… by Nooshin Eghbal
   August 30, 2022 Guest Post: Forward Error Correction can reduce the need for
   retransmission times in QUIC by >100 ms.
 * Browser-powered desync attacks: A new frontier in HTTP… by James Kettle
   October 28, 2022 Guest Post: The vulnerabilities that led to the discovery of
   browser-powered desync attacks.


APNIC Home
Connect with us
 * Facebook
 * Twitter
 * YouTube
 * Flickr
 * Weibo
 * Slideshare
 * LinkedIn
 * RSS

© 2023 APNICABN 42 081 528 010
 * Privacy
 * Contact
 * Help Centre
 * NRO News
 * Service Status
 * Careers