Add support for passing the libctx to the config loader
[openssl.git] / doc / man3 / SSL_connect.pod
index df198f9b2e7c5bc126790228d574d8522d2ae770..b74aa1d2b60c877ef02b840b3a2e96f674475ec5 100644 (file)
@@ -35,6 +35,21 @@ nothing is to be done, but select() can be used to check for the required
 condition. When using a buffering BIO, like a BIO pair, data must be written
 into or retrieved out of the BIO before being able to continue.
 
+Many systems implement Nagle's algorithm by default which means that it will
+buffer outgoing TCP data if a TCP packet has already been sent for which no
+corresponding ACK has been received yet from the peer. This can have performance
+impacts after a successful TLSv1.3 handshake or a successful TLSv1.2 (or below)
+resumption handshake, because the last peer to communicate in the handshake is
+the client. If the client is also the first to send application data (as is
+typical for many protocols) then this data could be buffered until an ACK has
+been received for the final handshake message.
+
+The B<TCP_NODELAY> socket option is often available to disable Nagle's
+algorithm. If an application opts to disable Nagle's algorithm consideration
+should be given to turning it back on again later if appropriate. The helper
+function BIO_set_tcp_ndelay() can be used to turn on or off the B<TCP_NODELAY>
+option.
+
 =head1 RETURN VALUES
 
 The following return values can occur:
@@ -56,7 +71,7 @@ established.
 
 The TLS/SSL handshake was not successful, because a fatal error occurred either
 at the protocol level or a connection failure occurred. The shutdown was
-not clean. It can also occur of action is need to continue the operation
+not clean. It can also occur if action is needed to continue the operation
 for non-blocking BIOs. Call SSL_get_error() with the return value B<ret>
 to find out the reason.
 
@@ -65,16 +80,16 @@ to find out the reason.
 =head1 SEE ALSO
 
 L<SSL_get_error(3)>, L<SSL_accept(3)>,
-L<SSL_shutdown(3)>, L<ssl(3)>, L<bio(3)>,
+L<SSL_shutdown(3)>, L<ssl(7)>, L<bio(7)>,
 L<SSL_set_connect_state(3)>,
 L<SSL_do_handshake(3)>,
 L<SSL_CTX_new(3)>
 
 =head1 COPYRIGHT
 
-Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2020 The OpenSSL Project Authors. All Rights Reserved.
 
-Licensed under the OpenSSL license (the "License").  You may not use
+Licensed under the Apache License 2.0 (the "License").  You may not use
 this file except in compliance with the License.  You can obtain a copy
 in the file LICENSE in the source distribution or at
 L<https://www.openssl.org/source/license.html>.