Lines Matching +full:in +full:- +full:application

1 .\" -*- mode: troff; coding: utf-8 -*-
19 .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
29 .\" Escape single quotes in literal strings from groff's Unicode transform.
35 .\" entries marked with X<> in POD. Of course, you'll have to process the
36 .\" output yourself in some meaningful fashion.
57 .IX Title "OSSL-GUIDE-QUIC-INTRODUCTION 7ossl"
58 .TH OSSL-GUIDE-QUIC-INTRODUCTION 7ossl 2025-09-30 3.5.4 OpenSSL
60 .\" way too many mistakes in technical documents.
64 ossl\-guide\-quic\-introduction
65 \&\- OpenSSL Guide: An introduction to QUIC in OpenSSL
71 some OpenSSL and TLS fundamentals (see \fBossl\-guide\-libraries\-introduction\fR\|(7)
72 and \fBossl\-guide\-tls\-introduction\fR\|(7)).
76 communicate over a network. It is defined in RFC9000 (see
80 integrity and authentication (see \fBossl\-guide\-tls\-introduction\fR\|(7)).
86 allowing application protocols built on QUIC to create arbitrarily many
88 application protocol to avoid problems where one packet of data is held up
90 "head-of-line blocking"). It also enables an application to open additional
91 logical streams without requiring a round-trip exchange of packets between the
97 to use HTTP/3 using a suitable third-party library.
100 Future versions of OpenSSL will offer support for 0\-RTT connection initiation,
101 allowing a connection to be initiated to a server and application data to be
102 transmitted without any waiting time. This is similar to TLS 1.3's 0\-RTT
104 it is similar to a combination of TLS 1.3 0\-RTT and TCP Fast Open.
112 allowing support for both TLS and DTLS-style use cases on a single connection.
113 .IP "Implemented as application library" 4
114 .IX Item "Implemented as application library"
116 implemented as an application library rather than by an operating system, an
117 application can gain the benefit of QUIC without needing to wait for an OS
119 can be delivered as quickly as an application can be updated without dependency
123 Because QUIC is UDP-based, it is possible to multiplex a QUIC connection on the
124 same UDP socket as some other UDP-based protocols, such as RTP.
127 A key difference between the TLS implementation and the QUIC implementation in
129 performed on a regular basis regardless of whether application data is being
136 \&\fBSSL_get_event_timeout\fR\|(3) which tells an application the amount of time that
139 Fortunately a blocking application that does not leave the QUIC connection idle,
141 this. However if you are developing a nonblocking application or one that may
146 create a background thread and will regularly call \fBSSL_handle_events\fR\|(3) in a
147 thread safe manner. This provides a simple way for an application to satisfy the
152 QUIC reuses parts of the TLS protocol in its implementation. Specifically the
153 TLS handshake also exists in QUIC. The TLS handshake messages are wrapped up in
154 QUIC protocol messages in order to send them to the peer. Once the TLS handshake
155 is complete all application data is sent entirely using QUIC protocol messages
156 without using TLS \- although some TLS handshake messages may still be sent in
159 This relationship between QUIC and TLS means that many of the API functions in
161 applications can use them in exactly the same way. Some functions do not apply
164 Typically if QUIC is not mentioned in the manual pages then the functions apply
169 mechanism for sending and receiving application data between the endpoints. The
170 bytes transmitted are guaranteed to be received in the same order they were sent
171 without any loss of data or reordering of the bytes. A TLS application
172 effectively has one bi-directional stream available to it per TLS connection. A
173 QUIC application can have multiple uni-directional or bi-directional streams
177 A QUIC application creates an initial \fBSSL\fR object to represent the connection
185 can be used in any particular context. A connection \fBSSL\fR object that has a
186 default stream attached to it can be used in contexts that require a connection
187 \&\fBSSL\fR object or in contexts that require a stream \fBSSL\fR object.
192 by using UDP. An OpenSSL application using QUIC is responsible for creating a
198 applications is the way that blocking is implemented. In TLS if your application
200 blocking. Conversely if your application wants nonblocking behaviour then the
203 With an OpenSSL QUIC application the underlying socket must always be configured
205 in blocking mode. So, from an application's perspective, calls to functions such
208 socket. If nonblocking behaviour is desired then the application must call
212 See \fBossl\-guide\-quic\-client\-block\fR\|(7) to see an example of applying these
213 concepts in order to write a simple blocking QUIC client.
215 See \fBossl\-guide\-quic\-server\-block\fR\|(7) to see an example of applying these
216 concepts in order to write a simple blocking QUIC server.
219 \&\fBossl\-guide\-introduction\fR\|(7), \fBossl\-guide\-libraries\-introduction\fR\|(7),
220 \&\fBossl\-guide\-libssl\-introduction\fR\|(7), \fBossl\-guide\-tls\-introduction\fR\|(7),
221 \&\fBossl\-guide\-tls\-client\-block\fR\|(7), \fBossl\-guide\-quic\-client\-block\fR\|(7),
222 \&\fBossl\-guide\-quic\-client\-non\-block\fR\|(7), \fBossl\-guide\-quic\-multi\-stream\fR\|(7),
223 \&\fBossl\-guide\-quic\-server\-block\fR\|(7), \fBossl\-guide\-quic\-server\-non\-block\fR\|(7),
227 Copyright 2023\-2025 The OpenSSL Project Authors. All Rights Reserved.
230 this file except in compliance with the License. You can obtain a copy
231 in the file LICENSE in the source distribution or at