QUIC () is a general-purpose
transport layer
In computer networking, the transport layer is a conceptual division of methods in the layered architecture of protocols in the network stack in the Internet protocol suite and the OSI model. The protocols of this layer provide end-to-end c ...
network protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics, and synchronization of ...
initially designed by
Jim Roskind at
Google
Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
.
It was first implemented and deployed in 2012
and was publicly announced in 2013 as experimentation broadened. It was also described at an
IETF
The Internet Engineering Task Force (IETF) is a standards organization for the Internet standard, Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster ...
meeting.
The
Chrome web browser,
Microsoft Edge
Microsoft Edge is a Proprietary Software, proprietary cross-platform software, cross-platform web browser created by Microsoft and based on the Chromium (web browser), Chromium open-source project, superseding Edge Legacy. In Windows 11, Edge ...
,
Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curr ...
,
and
Safari
A safari (; originally ) is an overland journey to observe wildlife, wild animals, especially in East Africa. The so-called big five game, "Big Five" game animals of Africa – lion, African leopard, leopard, rhinoceros, African elephant, elep ...
all support it.
In Chrome, QUIC is used by more than half of all connections to Google's servers.
QUIC improves performance of connection-oriented
web application
A web application (or web app) is application software that is created with web technologies and runs via a web browser. Web applications emerged during the late 1990s and allowed for the server to dynamically build a response to the request, ...
s that before QUIC used
Transmission Control Protocol
The Transmission Control Protocol (TCP) is one of the main communications protocol, protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, th ...
(TCP).
It does this by establishing a number of
multiplexed
In telecommunications and computer networking, multiplexing (sometimes contracted to muxing) is a method by which multiple analog or digital signals are combined into one signal over a shared medium. The aim is to share a scarce resource— ...
connections between two endpoints using
User Datagram Protocol
In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages (transported as datagrams in Network packet, packets) to other hosts on an Internet Protoco ...
(UDP), and is designed to obsolete TCP at the transport layer for many applications. Although its name was initially proposed as an acronym for ''Quick UDP Internet Connections'', in IETF's use of the word, QUIC is not an acronym; it is simply the name of the protocol.
QUIC works hand-in-hand with
HTTP/3's multiplexed connections, allowing multiple streams of data to reach all the endpoints independently, and hence independent of
packet loss
Packet loss occurs when one or more packets of data travelling across a computer network fail to reach their destination. Packet loss is either caused by errors in data transmission, typically across wireless networks, or network congestion.Ku ...
es involving other streams. In contrast, HTTP/2 carried over TCP can suffer
head-of-line-blocking delays if multiple streams are multiplexed on a TCP connection and any of the TCP packets on that connection are delayed or lost.
QUIC's secondary goals include reduced connection and transport
latency, and
bandwidth estimation in each direction to avoid
congestion. It also moves
congestion control algorithms into the
user space
A modern computer operating system usually uses virtual memory to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware prote ...
at both endpoints, rather than the
kernel space
A modern computer operating system usually uses virtual memory to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware prote ...
, which it is claimed will allow these algorithms to improve more rapidly. Additionally, the protocol can be extended with
forward error correction
In computing, telecommunication, information theory, and coding theory, forward error correction (FEC) or channel coding is a technique used for controlling errors in data transmission over unreliable or noisy communication channels.
The centra ...
(FEC) to further improve performance when errors are expected. It is designed with the intention of avoiding
protocol ossification.
In June 2015, an
Internet Draft of a specification for QUIC was submitted to the
IETF
The Internet Engineering Task Force (IETF) is a standards organization for the Internet standard, Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster ...
for standardization. A QUIC working group was established in 2016. In October 2018, the IETF's HTTP and QUIC Working Groups jointly decided to call the HTTP mapping over QUIC "
HTTP/3" in advance of making it a worldwide standard.
In May 2021, the IETF standardized QUIC in , supported by , and .
DNS-over-QUIC is another application.
Background
Transmission Control Protocol
The Transmission Control Protocol (TCP) is one of the main communications protocol, protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, th ...
, or TCP, aims to provide an interface for sending streams of data between two endpoints. Data is sent to the TCP system, which ensures it reaches the other end in the exact same form; if any discrepancies occur, the connection will signal an error condition.
To do this, TCP breaks up the data into
network packet
In telecommunications and computer networking, a network packet is a formatted unit of Data (computing), data carried by a packet-switched network. A packet consists of control information and user data; the latter is also known as the ''Payload ...
s and adds small amounts of data to each packet. This additional data includes a sequence number that is used to detect packets that are lost or arrive out of order, and a
checksum
A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify dat ...
that allows the errors within packet data to be detected. When either problem occurs, TCP uses
automatic repeat request
Automatic repeat request (ARQ), also known as automatic repeat query, is an error-control method for data transmission that uses acknowledgements (messages sent by the receiver indicating that it has correctly received a message) and timeout ...
(ARQ) to ask the sender to re-send the lost or damaged packet.
[
In most implementations, TCP will see any error on a connection as a blocking operation, stopping further transfers until the error is resolved or the connection is considered failed. If a single connection is being used to send multiple streams of data, as is the case in the ]HTTP/2
HTTP/2 (originally named HTTP/2.0) is a major revision of the HTTP network protocol used by the World Wide Web. It was derived from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the HTTP Working ...
protocol, all of these streams are blocked although only one of them might have a problem. For instance, if a single error occurs while downloading a GIF image used for a favicon, the entire rest of the page will wait while that problem is resolved.[ This phenomenon is known as ]head-of-line blocking
Head-of-line blocking (HOL blocking) in computer networking is a performance-limiting phenomenon that occurs when a queue of packets is held up by the first packet in the queue. This occurs, for example, in input-buffered network switches, out-o ...
.
As the TCP system is designed to look like a "data pipe", or stream, it deliberately has little information regarding the data it transmits. If that data has additional requirements, like encryption
In Cryptography law, cryptography, encryption (more specifically, Code, encoding) is the process of transforming information in a way that, ideally, only authorized parties can decode. This process converts the original representation of the inf ...
using TLS, this must be set up by systems running on top of TCP, using TCP to communicate with similar software on the other end of the connection. Each of these sorts of setup tasks requires its own handshake
A handshake is a globally widespread, brief greeting or parting tradition in which two people grasp one of each other's hands, and in most cases, it is accompanied by a brief up-and-down movement of the grasped hands. Customs surrounding hands ...
process. This often requires several round-trips of requests and responses until the connection is established. Due to the inherent latency of long-distance communications, this can add significant delay to the overall transmission.[
TCP has suffered from protocol ossification, due to its wire image being in cleartext and hence visible to and malleable by middleboxes. One measurement found that a third of paths across the Internet encounter at least one intermediary that modifies TCP metadata, and 6.5% of paths encounter harmful ossifying effects from intermediaries. Extensions to TCP have been affected: the design of Multipath TCP (MPTCP) was constrained by middlebox behaviour, and the deployment of TCP Fast Open has been likewise hindered.
]
Characteristics
In the context of supporting encrypted HTTP
HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
traffic, QUIC serves a role similar to that of TCP, but with reduced latency during connection setup and more efficient loss recovery when multiple HTTP streams are multiplexed over a single connection. It does this primarily through two changes that rely on the understanding of the behaviour of HTTP traffic.[
The first change is to greatly reduce overhead during connection setup. As most HTTP connections will demand TLS, QUIC makes the exchange of setup keys and listing of supported protocols part of the initial handshake process. When a client opens a connection, the response packet includes the data needed for future packets to use encryption. This eliminates the need to set up an unencrypted ''pipe'' and then negotiate the security protocol as separate steps. Other protocols can be serviced in the same way, combining multiple steps into a single request–response pair. This data can then be used both for following requests in the initial setup and future requests that would otherwise be negotiated as separate connections.][
The second change is to use UDP rather than TCP as its basis, which does not include loss recovery. Instead, each QUIC stream is separately flow-controlled, and lost data is retransmitted at the level of QUIC, not UDP. This means that if an error occurs in one stream, like the favicon example above, the ]protocol stack
The protocol stack or network stack is an implementation of a computer networking protocol suite or protocol family. Some of these terms are used interchangeably but strictly speaking, the ''suite'' is the definition of the communication protoc ...
can continue servicing other streams independently. This can be very useful in improving performance on error-prone links, as in most cases considerable additional data may be received before TCP notices a packet is missing or broken, and all of this data is blocked or even flushed while the error is corrected. In QUIC, this data is free to be processed while the single multiplexed stream is repaired.
QUIC includes a number of other changes that improve overall latency and throughput. For instance, the packets are encrypted individually, so that they do not result in the encrypted data waiting for partial packets. This is not generally possible under TCP, where the encryption records are in a bytestream and the protocol stack is unaware of higher-layer boundaries within this stream. These can be negotiated by the layers running on top, but QUIC aims to do all of this in a single handshake process.
Another goal of the QUIC system was to improve performance during network-switching events, like what happens when a user of a mobile device moves from a local Wi-Fi hotspot to a mobile network. When this occurs on TCP, a lengthy process starts where every existing connection times out one-by-one and is then re-established on demand. To solve this problem, QUIC includes a connection identifier to uniquely identify the connection to the server regardless of source. This allows the connection to be re-established simply by sending a packet, which always contains this ID, as the original connection ID will still be valid even if the user's IP address
An Internet Protocol address (IP address) is a numerical label such as that is assigned to a device connected to a computer network that uses the Internet Protocol for communication. IP addresses serve two main functions: network interface i ...
changes.[
File:HTTP-1.1 vs. HTTP-2 vs. HTTP-3 Protocol Stack.svg, frame, Protocol stack of HTTP/3 compared to HTTP/1.1 and HTTP/2
rect 0 44 85 94 HTTP/1
rect 0 95 85 137 ]Transport Layer Security
Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications security over a computer network, such as the Internet. The protocol is widely used in applications such as email, instant messaging, and voice over ...
rect 0 138 85 189 Transmission Control Protocol
The Transmission Control Protocol (TCP) is one of the main communications protocol, protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, th ...
rect 126 44 210 94 HTTP/2
HTTP/2 (originally named HTTP/2.0) is a major revision of the HTTP network protocol used by the World Wide Web. It was derived from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the HTTP Working ...
rect 126 95 210 137 TLS 1.2
rect 126 138 210 189 Transmission Control Protocol
The Transmission Control Protocol (TCP) is one of the main communications protocol, protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, th ...
rect 251 44 336 74 HTTP/3
rect 255 90 328 121 TLS 1.3
rect 251 125 336 158 QUIC
rect 251 159 336 189 User Datagram Protocol
In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages (transported as datagrams in Network packet, packets) to other hosts on an Internet Protoco ...
rect 0 189 336 231 Internet Protocol
The Internet Protocol (IP) is the network layer communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
IP ...
QUIC can be implemented in the application space, as opposed to being in the operating system kernel. This generally invokes additional overhead due to context switch
In computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point, and then restoring a different, previously saved, state. This allows multiple processes ...
es as data is moved between applications. However, in the case of QUIC, the protocol stack is intended to be used by a single application, with each application using QUIC having its own connections hosted on UDP. Ultimately the difference could be very small because much of the overall HTTP/2 stack is already in the applications (or their libraries, more commonly). Placing the remaining parts in those libraries, essentially the error correction, has little effect on the HTTP/2 stack's size or overall complexity.
This organization allows future changes to be made more easily as it does not require changes to the kernel for updates. One of QUIC's longer-term goals is to add new systems for forward error correction
In computing, telecommunication, information theory, and coding theory, forward error correction (FEC) or channel coding is a technique used for controlling errors in data transmission over unreliable or noisy communication channels.
The centra ...
(FEC) and improved congestion control.
One concern about the move from TCP to UDP is that TCP is widely adopted and many of the "middleboxes" in the Internet infrastructure are tuned for TCP and rate-limit or even block UDP. Google carried out a number of exploratory experiments to characterize this and found that only a small number of connections were blocked in this manner. This led to the use of a system for rapid fallback to TCP; Chromium
Chromium is a chemical element; it has Symbol (chemistry), symbol Cr and atomic number 24. It is the first element in Group 6 element, group 6. It is a steely-grey, Luster (mineralogy), lustrous, hard, and brittle transition metal.
Chromium ...
's network stack starts both a QUIC and a conventional TCP connection at the same time, which allows it to fall back with negligible latency.
QUIC has been specifically designed to be deployable and evolvable and to have anti-ossification properties; it is the first IETF
The Internet Engineering Task Force (IETF) is a standards organization for the Internet standard, Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster ...
transport protocol to deliberately minimise its wire image for these ends. Beyond encrypted headers, it is 'greased' and it has protocol invariants explicitly specified.
The security layer of QUIC is based on TLS 1.2 or TLS 1.3. Earlier insecure protocols such as TLS 1.0 are not allowed in a QUIC stack.
Google QUIC (gQUIC)
The protocol that was created by Google and taken to the IETF under the name QUIC (already in 2012 around QUIC version 20) is now quite different from the QUIC that has continued to evolve and be refined within the IETF. The original Google QUIC (gQUIC) was designed to be a general purpose web protocol, though it was initially deployed as a protocol to support HTTP(S) in Chromium. The current evolution of the IETF QUIC (iQUIC) protocol is a general purpose transport protocol. Chromium developers continued to track the evolution of IETF QUIC's standardization efforts to adopt and fully comply with the most recent internet standards for QUIC in Chromium.
Applications
QUIC was developed with HTTP in mind, and HTTP/3 was its first application. DNS-over-QUIC is an application of QUIC to name resolution, providing security for data transferred between resolvers similar to DNS-over-TLS. The IETF is developing applications of QUIC for secure network tunnelling and streaming media
Streaming media refers to multimedia delivered through a Computer network, network for playback using a Media player (disambiguation), media player. Media is transferred in a ''stream'' of Network packet, packets from a Server (computing), ...
delivery. XMPP
Extensible Messaging and Presence Protocol (abbreviation XMPP, originally named Jabber) is an Open standard, open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Ext ...
has experimentally been adapted to use QUIC. Another application is SMB over QUIC, which, according to Microsoft, can offer an "SMB VPN" without affecting the user experience. SMB clients use TCP by default and will attempt QUIC if the TCP attempt fails or if intentionally requiring QUIC.
Adoption
Browser support
The QUIC code was experimentally developed in Google Chrome
Google Chrome is a web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macOS, iOS, iPadOS, an ...
starting in 2012, and was announced as part of Chromium version 29 (released on August 20, 2013). It is currently enabled by default in Chromium and Chrome.
Support in Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curr ...
arrived in May 2021.
Apple
An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
added experimental support in the WebKit engine through the Safari Technology Preview 104 in April 2020. Official support was added in Safari
A safari (; originally ) is an overland journey to observe wildlife, wild animals, especially in East Africa. The so-called big five game, "Big Five" game animals of Africa – lion, African leopard, leopard, rhinoceros, African elephant, elep ...
14, included in macOS Big Sur
macOS Big Sur (version 11) is the seventeenth software versioning, major release of macOS, Apple Inc., Apple's operating system for Macintosh computers. It was announced at Apple's Worldwide Developers Conference (WWDC) on June 22, 2020, and w ...
and iOS 14
iOS 14 is the fourteenth major release of the iOS mobile operating system developed by Apple for the iPhone and iPod touch lines. Announced at the company's Worldwide Developers Conference on June 22, 2020 as the successor to iOS 13, it was rel ...
, but the feature needed to be turned on manually. It was later enabled by default in Safari 16.
Client support
The cronet library for QUIC and other protocols is available to Android applications as a module loadable via Google Play Services.
cURL
cURL (pronounced like "curl", ) is a free and open source computer program for transferring data to and from Internet servers. It can download a URL from a web server over HTTP, and supports a variety of other network protocols, URI scheme ...
7.66, released 11 September 2019, supports HTTP/3 (and thus QUIC).
In October 2020, Facebook announced that it has successfully migrated its apps, including Instagram
Instagram is an American photo sharing, photo and Short-form content, short-form video sharing social networking service owned by Meta Platforms. It allows users to upload media that can be edited with Social media camera filter, filters, be ...
, and server infrastructure to QUIC, with already 75% of its Internet traffic using QUIC. All mobile apps from Google support QUIC, including YouTube
YouTube is an American social media and online video sharing platform owned by Google. YouTube was founded on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim who were three former employees of PayPal. Headquartered in ...
and Gmail
Gmail is the email service provided by Google. it had 1.5 billion active user (computing), users worldwide, making it the largest email service in the world. It also provides a webmail interface, accessible through a web browser, and is also ...
. Uber
Uber Technologies, Inc. is an American multinational transportation company that provides Ridesharing company, ride-hailing services, courier services, food delivery, and freight transport. It is headquartered in San Francisco, California, a ...
's mobile app also uses QUIC.
Server support
, there are several actively maintained implementations. Google servers support QUIC and Google has published a prototype server. Akamai Technologies
Akamai Technologies, Inc. is an American company specialized in content delivery networkJ. Dilley, B. Maggs, J. Parikh, H. Prokop, R. Sitaraman, and B. Weihl. (CDN), cybersecurity, DDoS mitigation, and cloud services. It is headquartered in ...
has been supporting QUIC since July 2016. A Go implementation called quic-go is also available, and powers experimental QUIC support in the Caddy server. On July 11, 2017, LiteSpeed Technologies officially began supporting QUIC in their load balancer (WebADC) and LiteSpeed Web Server products. , 88.6% of QUIC websites used LiteSpeed and 10.8% used Nginx
(pronounced "engine x" , stylized as NGINX or nginx) is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. The software was created by Russian developer Igor Sysoev and publicly released in 20 ...
. Although at first only Google servers supported HTTP-over-QUIC connections, Facebook
Facebook is a social media and social networking service owned by the American technology conglomerate Meta Platforms, Meta. Created in 2004 by Mark Zuckerberg with four other Harvard College students and roommates, Eduardo Saverin, Andre ...
also launched the technology in 2018, and Cloudflare
Cloudflare, Inc., is an American company that provides content delivery network services, cybersecurity, DDoS mitigation, wide area network services, reverse proxies, Domain Name Service, ICANN-accredited domain registration, and other se ...
has been offering QUIC support on a beta basis since 2018. The HAProxy load balancer added experimental support for QUIC in March 2022 and declared it production-ready in March 2023. , 8.9% of all websites use QUIC, up from 5% in March 2021. Microsoft Windows Server 2022 supports both HTTP/3 and SMB over QUIC protocols via MsQuic. The Application Delivery Controller of Citrix (Citrix ADC, NetScaler) can function as a QUIC proxy since version 13.
In addition, there are several stale community projects: libquic was created by extracting the Chromium implementation of QUIC and modifying it to minimize dependency requirements, and goquic provides Go bindings of libquic. Finally, quic-reverse-proxy is a Docker image that acts as a reverse proxy server, translating QUIC requests into plain HTTP that can be understood by the origin server.
.NET 5 introduces experimental support for QUIC using the MsQuic library.
Source code
See also
* Constrained Application Protocol (CoAP) – a UDP-based protocol utilizing REST model
* Datagram Congestion Control Protocol (DCCP)
* Datagram Transport Layer Security (DTLS)
* Fast and Secure Protocol
* HTTP/3
* LEDBAT (Low Extra Delay Background Transport)
* Micro Transport Protocol (μTP)
* Multipurpose Transaction Protocol (MTP/IP) – an alternative to QUIC from Data Expedition, Inc.
* Real-Time Media Flow Protocol (RTMFP)
* Reliable User Datagram Protocol (RUDP)
* SPDY
* Stream Control Transmission Protocol
The Stream Control Transmission Protocol (SCTP) is a computer networking communications protocol in the transport layer of the Internet protocol suite. Originally intended for Signaling System 7 (SS7) message transport in telecommunication, the ...
(SCTP UDP Encapsulation; RFC 6951)
* Structured Stream Transport
* UDP-based Data Transfer Protocol (UDT) – a UDP-based transport protocol
References
Bibliography
*
*
*
*
*
*
*
*
*
External links
*
*
* – Version-Independent Properties of QUIC
* – QUIC: A UDP-Based Multiplexed and Secure Transport
* – Using TLS to Secure QUIC
* – QUIC Loss Detection and Congestion Control
* Chromium
Chromium is a chemical element; it has Symbol (chemistry), symbol Cr and atomic number 24. It is the first element in Group 6 element, group 6. It is a steely-grey, Luster (mineralogy), lustrous, hard, and brittle transition metal.
Chromium ...
QUIC, a multiplexed stream transport over UDP
QUIC: Design Document and Specification Rationale
Jim Roskind's original document (2012/2013)
* Daniel Stenberg
Magnus Daniel Stenberg is a Swedish developer and recipient of the 2017 Polhem Prize (for a high-level technological innovation or an ingenious solution to a technical problem) for his work on the cURL utility.
Stenberg was born and raised in Hu ...
HTTP/3 explained
* Linux Weekly News
Connecting on the QUIC
(2013)
QUIC:
IETF-88 TSV Area Presentation (2013-11-07)
* Chromium Blog
(2013)
QUIC: next generation multiplexed transport over UDP
(Google Developers, 2014)
HTTP over UDP: an Experimental Investigation of QUIC
Multipath QUIC
(extension to QUIC)
Innovating Transport with QUIC: Design Approaches and Research Challenges
(2017)
EPIQ 2018 Keynote
– ''Facebook's IETF QUIC deployment'', Subodh Iyengar on YouTube
EPIQ 2021 Keynote
– ''QUIC at Microsoft'', Nick Bankson on YouTube
*
* {{youTube, nP1yzxHcgeM, QUIC at Apple (2021) – Tommy Pauly, link=no
qvis: QUIC and HTTP/3 visualization suite.
The Illustrated QUIC Connection
Internet properties established in 2012
Transport layer protocols
Internet protocols
Computer networking