Lines Matching +full:in +full:- +full:application
5 ossl-guide-quic-introduction
6 - OpenSSL Guide: An introduction to QUIC in OpenSSL
13 some OpenSSL and TLS fundamentals (see L<ossl-guide-libraries-introduction(7)>
14 and L<ossl-guide-tls-introduction(7)>).
19 communicate over a network. It is defined in RFC9000 (see
23 integrity and authentication (see L<ossl-guide-tls-introduction(7)>).
32 allowing application protocols built on QUIC to create arbitrarily many
34 application protocol to avoid problems where one packet of data is held up
36 "head-of-line blocking"). It also enables an application to open additional
37 logical streams without requiring a round-trip exchange of packets between the
44 to use HTTP/3 using a suitable third-party library.
48 Future versions of OpenSSL will offer support for 0-RTT connection initiation,
49 allowing a connection to be initiated to a server and application data to be
50 transmitted without any waiting time. This is similar to TLS 1.3's 0-RTT
52 it is similar to a combination of TLS 1.3 0-RTT and TCP Fast Open.
62 allowing support for both TLS and DTLS-style use cases on a single connection.
64 =item Implemented as application library
67 implemented as an application library rather than by an operating system, an
68 application can gain the benefit of QUIC without needing to wait for an OS
70 can be delivered as quickly as an application can be updated without dependency
75 Because QUIC is UDP-based, it is possible to multiplex a QUIC connection on the
76 same UDP socket as some other UDP-based protocols, such as RTP.
82 A key difference between the TLS implementation and the QUIC implementation in
84 performed on a regular basis regardless of whether application data is being
91 L<SSL_get_event_timeout(3)> which tells an application the amount of time that
94 Fortunately a blocking application that does not leave the QUIC connection idle,
96 this. However if you are developing a nonblocking application or one that may
101 create a background thread and will regularly call L<SSL_handle_events(3)> in a
102 thread safe manner. This provides a simple way for an application to satisfy the
108 QUIC reuses parts of the TLS protocol in its implementation. Specifically the
109 TLS handshake also exists in QUIC. The TLS handshake messages are wrapped up in
110 QUIC protocol messages in order to send them to the peer. Once the TLS handshake
111 is complete all application data is sent entirely using QUIC protocol messages
112 without using TLS - although some TLS handshake messages may still be sent in
115 This relationship between QUIC and TLS means that many of the API functions in
117 applications can use them in exactly the same way. Some functions do not apply
120 Typically if QUIC is not mentioned in the manual pages then the functions apply
126 mechanism for sending and receiving application data between the endpoints. The
127 bytes transmitted are guaranteed to be received in the same order they were sent
128 without any loss of data or reordering of the bytes. A TLS application
129 effectively has one bi-directional stream available to it per TLS connection. A
130 QUIC application can have multiple uni-directional or bi-directional streams
133 In OpenSSL an B<SSL> object is used to represent both connections and streams.
134 A QUIC application creates an initial B<SSL> object to represent the connection
142 can be used in any particular context. A connection B<SSL> object that has a
143 default stream attached to it can be used in contexts that require a connection
144 B<SSL> object or in contexts that require a stream B<SSL> object.
150 by using UDP. An OpenSSL application using QUIC is responsible for creating a
156 applications is the way that blocking is implemented. In TLS if your application
158 blocking. Conversely if your application wants nonblocking behaviour then the
161 With an OpenSSL QUIC application the underlying socket must always be configured
163 in blocking mode. So, from an application's perspective, calls to functions such
166 socket. If nonblocking behaviour is desired then the application must call
171 See L<ossl-guide-quic-client-block(7)> to see an example of applying these
172 concepts in order to write a simple blocking QUIC client.
174 See L<ossl-guide-quic-server-block(7)> to see an example of applying these
175 concepts in order to write a simple blocking QUIC server.
179 L<ossl-guide-introduction(7)>, L<ossl-guide-libraries-introduction(7)>,
180 L<ossl-guide-libssl-introduction(7)>, L<ossl-guide-tls-introduction(7)>,
181 L<ossl-guide-tls-client-block(7)>, L<ossl-guide-quic-client-block(7)>,
182 L<ossl-guide-quic-client-non-block(7)>, L<ossl-guide-quic-multi-stream(7)>,
183 L<ossl-guide-quic-server-block(7)>, L<ossl-guide-quic-server-non-block(7)>,
188 Copyright 2023-2025 The OpenSSL Project Authors. All Rights Reserved.
191 this file except in compliance with the License. You can obtain a copy
192 in the file LICENSE in the source distribution or at