Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • JS Tutorial
  • JS Exercise
  • JS Interview Questions
  • JS Array
  • JS String
  • JS Object
  • JS Operator
  • JS Date
  • JS Error
  • JS Projects
  • JS Set
  • JS Map
  • JS RegExp
  • JS Math
  • JS Number
  • JS Boolean
  • JS Examples
  • JS Free JS Course
  • JS A to Z Guide
  • JS Formatter
Open In App
Next Article:
QUIC Protocol
Next article icon

QUIC Protocol

Last Updated : 23 Feb, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

What is QUIC Protocol?

As we know Protocol is a rule regarding how the data is communicated, how the data is transferred between two mediums, encryption standards, etc., QUIC Protocol is the same that was developed by Google INC. in the year 2012 and owned by itself. Without delving into its history, we will see the working & usage of the QUIC.

Prerequisite

  • OSI Model or TCP/IP Model
  • HTTP Protocol

Where QUIC is used?

QUIC, commonly known as HTTP/3, which is Version 3 of HTTP-based communication. We all know that HTTP Protocol is used in web technology to request data from the remote web server & present the data in the browser. The data may be anything such as images, text, video, audio, etc., HTTP will fetch those data from the server & present it in the visualized format in the browser.

Upto HTTP/2, it uses TCP in the transport layer. We are all aware that TCP is Connection-oriented & reliable.

The drawback of TCP is its latency which is it took 3 Round trips and sometimes more round trips are needed. Such as SYN(Client -> Server), SYNACK(Server -> Client), and ACK(Client ->Server), If it is SSL Trusted communication(HTTPS), One more round trip is needed to check the Certificate validation. So. this round trip, makes the latency in the single request.

So, the QUIC evolved which works in the transport layer and uses the UDP Protocol. Due to the nature of UDP, which is fast and furious, QUIC provides lesser latency and faster response than TCP. QUIC is used along with HTTP Protocol to provide faster response to the end-user.

QUIC - the replacement of TCP + TLS

HTTP works in the application layer and uses the TCP as its backend to communicate with the web server with its Handshaking mechanism. If TLS-enabled communication is enabled, then it will do the additional process to ensure that HTTPS Connection is secure & it's a valid certificate from a third party.

In QUIC, it doesn't do this round trips to each SYN, SYNACK, ACK, and SSL Verification in separate requests to the server. Instead of in the first request itself, it gets to know about the Server Security Information & as it is using UDP in its transport layer, no more connection establishment is needed that UDP is a connectionless protocol

In simple, we can say that

HTTP/2  = TCP (SYN, SYNACK, ACK) + TLS
HTTP/3 = QUIC

Which will remove the latency of those 2 processes in their first single request itself.

UDP Usage in QUIC

QUIC Protocol is running on the top of UDP. UDP is connection less & unreliable in data transmission. TCP standard is fame due to its reliablity. QUIC just extends the UDP as reliable connection provider here with some advanced techniques. So, due its fastness and reliable communication, the communication between the Client-server is both fasty and reliable. So, less data loss is there.

Along with that, due to its running on existing technology UDP, no more additional adoption is needed in the existing web technology world. most of the technology supports UDP. This is thing that adds more weight to the QUIC Protocol.

Steps to unable QUIC in the Browser

Now a days, by default QUIC Protocol is enabled in the recent versions of chromium based browsers such as Google Chrome, Microsoft Chromium Edge, Vivaldi, So if the site supports HTTP/3 website, the request took the HTTP/3 based protocol.

Using chromium experiments:

  • Open the Browser
  • Go to chrome://flags
  • Search for QUIC
  • There you can have option to Enable or disable to QUIC.

Using command line option:

  • <browser.exe> enable-quic --quic-version=h3-25
Eg: chrome.exe enable-quic --quic-version=h3-25

Enterprise Policy or registry:

  • This Policy will help to allow/block QUIC protocol in Enterprise level
  • Registry Key: [HKLM/HKCU]/SOFTWARE/Policies/Google/Chrome
  • QuicAllowed(REG-DWORD): 1(Allowed) or 0(Blocked)

Steps to see uses of QUIC for its communication in web Browser

  • Open Browser
  • In a new tab, open the devoper tools -> Network tab
  • Search for site (www.google.com)
  • Right Click the row header(Name, Status, ..), there you can find the header named Protocol -> choose it
  • If its http3 or h3, then it is using the QUIC Protocol for its communication.

View of Browser:

protoco_ref-min-min
Protocol Shows H3 - QUIC Protocol

QUIC took lesser time than TCP:

As we mentioned above, QUIC Took lesser time than TCP, to do this experiment, load the site www.google.com in H2 protocol & refer the latency time, then run in H3 Protocol and refer their latency. Then we can conclude the latency difference between H2 and H3.

QUIC's time:

h3
H3 time taken

TCP time:

we can see that time taken by H2 (TCP/IP) = 284 ms where as time taken by H3 (QUIC) is 261 ms.

h2-new
H2 time taken

Pros of QUIC Protocol

  • Due to its running based on UDP, no such overwhelming adoption is needed.
  • Reliablity based UDP makes the connection faster.
  • Security mechanism is handled based on existing TLS mechanism.

Cons of QUIC Protocol

  • As it is a new protocol so, not all browser support it yet. This can leeds to compatibility issue.
  • This protocol is not based on traditional TCP so it may not support all the debugging tools, that will make a challage to Network administrator.
  • Flow control mechanism needs to be handled properly.
  • It's congestion control mechanism is different from TCP that shows different behaviour in terms of Congestion-aware.

Next Article
QUIC Protocol

R

rasisilambu9
Improve
Article Tags :
  • Web Technologies
  • JavaScript

Similar Reads

    Network Protocols
    Network Protocols are a set of guidelines governing the exchange of information in a simple, dependable and secure way. Network protocols are formal standards and policies comprised of rules, methodology, and configurations that define communication between two or more devices over a network. To eff
    3 min read
    Network News Transfer Protocol (NNTP)
    Network News Transfer Protocol (NNTP) is the underlying protocol of UseNet, which is a worldwide discussion system which contains posts or articles which are known as news. Network News Transfer Protocol is used to transfer news from one network to another. It is designed specifically to transfer ne
    2 min read
    JavaScript Location protocol Property
    A network protocol defines rules and conventions for communication between network devices. By adopting these rules, two devices can communicate with each other and can interchange information. The protocol property sets or returns the protocol of the current URL, including the colon (:). Syntax: lo
    1 min read
    What is HTTP ?
    HTTP (Hypertext Transfer Protocol) is a fundamental protocol of the Internet, enabling the transfer of data between a client and a server. It is the foundation of data communication for the World Wide Web. HTTP provides a standard between a web browser and a web server to establish communication. It
    5 min read
    What is QUIC and HTTP/3?
    HTTP is the backbone of the Internet, controlling how communication devices exchange information and access resources. In simple terms, it allows consumers to load websites. HTTP/3 is a new standard under development that will change how online browsers and servers communicate, with major enhancemen
    7 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences