4 ms·
Could this be opened up to other (none http) based protocols and also over UDP?
by edf13 6y ago
Could this be opened up to other (none http) based protocols and also over UDP?
- tptacek 6y agoShould work for any UDP. We can do the same thing for non-UDP protocols, I guess, too.
- Isamu 6y agoYou can filter pretty much any packet. The downside with using TCP is you are looking at individual packets, which may be out of order, that sort of thing.
- tptacek 6y agoFor CDN purposes, you assume that something on each end of the TCP connection --- something outside of BPF --- is going to be running a full TCP. In our case, that something is Linux's TCP/IP stack running in a Firecracker VM (we could load XDP programs into our VMs, but we don't). You can do a lot with TCP, and be tolerant to out-of-order delivery and drops, just by shuttling the individual packets. So we can in fact "cut through" TCP sessions directly to Firecracker, avoiding our proxies. We don't, though: our "tcp" handlers actually route through our Rust proxies, both because that's what they've always done, and because in most cases there isn't much of a win to bypassing the proxies, which have a lot more load balancing and resiliency logic than the BPF-based UDP data path does.