Oopenvela-robotImplement TCP FastOpen (TFO) RFC7413 (#840)
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
clang-format | 6 个月前 | |
Refactor connection handling (#839) Refactor some connection handling to reduce code duplication and to unify the TCP and UDP codepaths a bit more. This will make some future changes easier to make. This also does some structure renaming to better conform with current standards: - struct server_state -> ares_server_t - struct server_connection -> ares_conn_t - struct query -> ares_query_t Authored-by: Brad House (@bradh352) | 6 个月前 | |
Implement TCP FastOpen (TFO) RFC7413 (#840) TCP Fast Open (TFO) allows TCP connection establishment in 0-RTT when a client and server have previously communicated. The SYN packet will also contain the initial data packet from the client to the server. This means there should be virtually no slowdown over UDP when both sides support TCP FastOpen, which is unfortunately not always the case. For instance, 1.1.1.1 appears to support TFO, however 8.8.8.8 does not. This implementation supports Linux, Android, FreeBSD, MacOS, and iOS. While Windows does have support for TCP FastOpen it does so via completion APIs only, and that can't be used with polling APIs like used by every other OS. We could implement it in the future if desired for those using ARES_OPT_EVENT_THREAD, but it would probably require adopting IOCP completely on Windows. Sysctls are required to be set appropriately: - Linux: net.ipv4.tcp_fastopen: - 1 = client only (typically default) - 2 = server only - 3 = client and server - MacOS: net.inet.tcp.fastopen - 1 = client only - 2 = server only - 3 = client and server (typically default) - FreeBSD: net.inet.tcp.fastopen.server_enable (boolean) and net.inet.tcp.fastopen.client_enable (boolean) This feature is always-on, when running on an OS with the capability enabled. Though some middleboxes have impacted end-to-end TFO and caused connectivity errors, all modern OSs perform automatic blackholing of IPs that have issues with TFO. It is not expected this to cause any issues in the modern day implementations. This will also help with improving latency for future DoT and DoH implementations. Authored-By: Brad House (@bradh352) | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 | |
clang-format | 6 个月前 | |
Reorganize source tree (#822) c-ares is getting larger these days and we keep adding source files to the same directory so it can be hard to differentiate core c-ares implementation from library/utility functions. Lets make some subdirectories to help with that and shuffle files around. Fix By: Brad House (@bradh352) | 6 个月前 |