dae
dae copied to clipboard
[Enhancement] Unify tcp early demux handling in wan and lan
Improvement Suggestion
early demux 是内核网络栈的一种加速机制,对于已建立的网络连接(tcp or udp),网络包不经过内核路由查询直接 local deliver。early demux 在大多数 distro 应该是默认开启的。
dae bpf 部分也有对应的 tcp early demux 逻辑,但是在 wan 和 lan 里实现得分离,比如:
- wan: 已经完成握手的 tcp 段会查询 routing_tuples_map 作为路由决策
- lan: 已经完成握手的 tcp 段会查询 bpf_skc_lookup_tcp 作为路由决策
- wan: early demux 的 tcp seg,需要查询 outbound_connectivity_map
- lan: early demux 的 tcp seg,不需要查询 outbound_connectivity_map
两者是否能统一逻辑,简化代码,提升性能?
先开一个 issue 收集一下反馈,可能是我没注意到一些边缘情况,也许 wan lan 对 tcp early demux 就是要不同逻辑才正确?
udp early demux 是目前没有实现的,非此 issue 目标。
Potential Benefits
更好维护的代码,更好的性能
Thanks for opening this issue!