Add FAQ to the docs

This commit is contained in:
Dmitri Tikhonov 2020-10-11 16:53:34 -04:00
parent 00c58df38c
commit f3d781aa59
2 changed files with 29 additions and 0 deletions

28
docs/faq.rst Normal file
View File

@ -0,0 +1,28 @@
**************************
Frequently Asked Questions
**************************
API/Design
==========
*Why have a separate engine for server and client? Surely traffic
could be differentiated as much as it needs to be internally in one
engine?*
The traffic *cannot* be differentiated for gQUIC versions Q046 and Q050.
This is because in these versions, the server never includes a connection
ID into the packets it sends to the client. To have more than one
connection, then, the client must open a socket per connection: otherwise,
the engine would not be able to dispatch incoming packets to correct
connections.
To aid development, there is a :macro:`LSQUIC_FORCED_TCID0_VERSIONS` that
specifies the list of versions with 0-sized connections. (If you, for
example, want to turn them.)
Once gQUIC becomes deprecated in the future, there will remain no technical
reason why a single engine instance could not be used both for client and
server connections. It will be just work. For example, the single
engine settings :type:`lsquic_engine_settings` will have to be separated
into client and server settings, as the two usually do need to have
separate settings.

View File

@ -66,6 +66,7 @@ Contents
tutorial
apiref
internals
faq
Indices and tables
==================