faq.rst revision f3d781aa
1************************** 2Frequently Asked Questions 3************************** 4 5API/Design 6========== 7 8*Why have a separate engine for server and client? Surely traffic 9could be differentiated as much as it needs to be internally in one 10engine?* 11 12The traffic *cannot* be differentiated for gQUIC versions Q046 and Q050. 13This is because in these versions, the server never includes a connection 14ID into the packets it sends to the client. To have more than one 15connection, then, the client must open a socket per connection: otherwise, 16the engine would not be able to dispatch incoming packets to correct 17connections. 18 19To aid development, there is a :macro:`LSQUIC_FORCED_TCID0_VERSIONS` that 20specifies the list of versions with 0-sized connections. (If you, for 21example, want to turn them.) 22 23Once gQUIC becomes deprecated in the future, there will remain no technical 24reason why a single engine instance could not be used both for client and 25server connections. It will be just work. For example, the single 26engine settings :type:`lsquic_engine_settings` will have to be separated 27into client and server settings, as the two usually do need to have 28separate settings. 29