Mercurial > hg > nginx-quic
comparison README @ 8160:dd8e50e11bfc quic
QUIC: updated README.
- ACK ranges are implemented
- up to draft-32 is now supported
- removed mentions of early alpha quality and further cleanup
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 22 Oct 2020 12:55:15 +0100 |
parents | 57e5393e5d40 |
children | 2dfc5ef29973 |
comparison
equal
deleted
inserted
replaced
8159:06af25901b1a | 8160:dd8e50e11bfc |
---|---|
13 | 13 |
14 This is an experimental QUIC [1] / HTTP/3 [2] support for nginx. | 14 This is an experimental QUIC [1] / HTTP/3 [2] support for nginx. |
15 | 15 |
16 The code is developed in a separate "quic" branch available | 16 The code is developed in a separate "quic" branch available |
17 at https://hg.nginx.org/nginx-quic. Currently it is based | 17 at https://hg.nginx.org/nginx-quic. Currently it is based |
18 on nginx mainline 1.19.x. We are planning to merge new nginx | 18 on nginx mainline 1.19.x. We merge new nginx releases into |
19 releases into this branch regularly. | 19 this branch regularly. |
20 | 20 |
21 The project code base is under the same BSD license as nginx. | 21 The project code base is under the same BSD license as nginx. |
22 | 22 |
23 The code is at an early alpha level of quality and should not | 23 The code is currently at a beta level of quality and should not |
24 be used in production. | 24 be used in production. |
25 | 25 |
26 We are working on improving HTTP/3 support with the goal of | 26 We are working on improving HTTP/3 support with the goal of |
27 integrating it to the main NGINX codebase. Expect frequent | 27 integrating it to the main NGINX codebase. Expect frequent |
28 updates of this code and don't rely on it for whatever purpose. | 28 updates of this code and don't rely on it for whatever purpose. |
32 | 32 |
33 You can always contact us via nginx-devel mailing list [3]. | 33 You can always contact us via nginx-devel mailing list [3]. |
34 | 34 |
35 What works now: | 35 What works now: |
36 | 36 |
37 Currently we support IETF-QUIC draft-27, draft-28, draft-29. | 37 Currently we support IETF-QUIC draft-27 through draft-32. |
38 Earlier drafts are NOT supported as they have incompatible wire format. | 38 Earlier drafts are NOT supported as they have incompatible wire format. |
39 | 39 |
40 You may look at src/event/ngx_event_quic.h for alternative values of the | 40 You may look at src/event/ngx_event_quic.h for alternative values of the |
41 NGX_QUIC_DRAFT_VERSION macro used to select IETF draft version number. | 41 NGX_QUIC_DRAFT_VERSION macro used to select IETF draft version number. |
42 | 42 |
43 nginx should be able to respond to simple HTTP/3 requests over QUIC and | 43 nginx should be able to respond to HTTP/3 requests over QUIC and |
44 it should be possible to upload and download big files without errors. | 44 it should be possible to upload and download big files without errors. |
45 | 45 |
46 + The handshake completes successfully | 46 + The handshake completes successfully |
47 + One endpoint can update keys and its peer responds correctly | 47 + One endpoint can update keys and its peer responds correctly |
48 + 0-RTT data is being received and acted on | 48 + 0-RTT data is being received and acted on |
64 - Address Mobility | 64 - Address Mobility |
65 - HTTP/3 trailers | 65 - HTTP/3 trailers |
66 | 66 |
67 Since the code is experimental and still under development, | 67 Since the code is experimental and still under development, |
68 a lot of things may not work as expected, for example: | 68 a lot of things may not work as expected, for example: |
69 | |
70 - ACK handling is basic: every received ack-eliciting packet | |
71 is acknowledged, no ack ranges are used | |
72 | 69 |
73 - Flow control mechanism is basic and intended to avoid CPU hog and make | 70 - Flow control mechanism is basic and intended to avoid CPU hog and make |
74 simple interactions possible | 71 simple interactions possible |
75 | 72 |
76 - Not all draft requirements are strictly followed; some of checks are | 73 - Not all draft requirements are strictly followed; some of checks are |
215 | 212 |
216 5. Troubleshooting | 213 5. Troubleshooting |
217 | 214 |
218 Here are some tips that may help you to identify problems: | 215 Here are some tips that may help you to identify problems: |
219 | 216 |
220 + Ensure you are building with proper SSL library that | 217 + Ensure you are building with proper SSL library that supports QUIC |
221 implements draft 29 | |
222 | 218 |
223 + Ensure you are using the proper SSL library in runtime | 219 + Ensure you are using the proper SSL library in runtime |
224 (`nginx -V` will show you what you are using) | 220 (`nginx -V` will show you what you are using) |
225 | 221 |
226 + Ensure your client is actually sending QUIC requests | 222 + Ensure your client is actually sending QUIC requests |
249 If you are willing to contribute, please refer to | 245 If you are willing to contribute, please refer to |
250 http://nginx.org/en/docs/contributing_changes.html | 246 http://nginx.org/en/docs/contributing_changes.html |
251 | 247 |
252 7. Links | 248 7. Links |
253 | 249 |
254 [1] https://tools.ietf.org/html/draft-ietf-quic-transport-29 | 250 [1] https://tools.ietf.org/html/draft-ietf-quic-transport |
255 [2] https://tools.ietf.org/html/draft-ietf-quic-http-29 | 251 [2] https://tools.ietf.org/html/draft-ietf-quic-http |
256 [3] https://mailman.nginx.org/mailman/listinfo/nginx-devel | 252 [3] https://mailman.nginx.org/mailman/listinfo/nginx-devel |
257 [4] https://boringssl.googlesource.com/boringssl/ | 253 [4] https://boringssl.googlesource.com/boringssl/ |
258 [5] https://tools.ietf.org/html/draft-ietf-quic-recovery-29 | 254 [5] https://tools.ietf.org/html/draft-ietf-quic-recovery |
259 [6] https://nginx.org/en/docs/http/ngx_http_core_module.html#listen | 255 [6] https://nginx.org/en/docs/http/ngx_http_core_module.html#listen |
260 [7] https://nginx.org/en/docs/debugging_log.html | 256 [7] https://nginx.org/en/docs/debugging_log.html |