Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libslirp doesn't support tcp window scaling #171

Open
majek opened this issue Dec 18, 2019 · 2 comments
Open

libslirp doesn't support tcp window scaling #171

majek opened this issue Dec 18, 2019 · 2 comments
Labels
enhancement New feature or request libslirp

Comments

@majek
Copy link

majek commented Dec 18, 2019

I'm looking at slirp4netns, and so far I'm very impressed with it (mostly libslirp).

Having said that, it would be nice if libslirp supported window scaling. The TCP handshake:

13:25:13.351571 IP 10.0.2.100.36762 > 1.1.1.1.80: Flags [S], seq 3200377829, win 65408, options [mss 61440,sackOK,TS val 595233473 ecr 0,nop,wscale 7], length 0
13:25:13.374705 IP 1.1.1.1.80 > 10.0.2.100.36762: Flags [S.], seq 7552001, ack 3200377830, win 65535, options [mss 61440], length 0

The SYN+ACK produced by libslirp lacks window scaling. This means we have max ~1 in flight packet (over links with MTU=64K), which is not happy.

I'm not entirely sure if having window scaling (ie: sliding window > 64K) would benefit performance, since in most cases the link between slirp and application has small RTT, but I guess it could reduce at least the amount of ACK's flying back.

@AkihiroSuda
Copy link
Member

cc @elmarco

@AkihiroSuda AkihiroSuda added enhancement New feature or request libslirp labels Dec 18, 2019
@elmarco
Copy link
Contributor

elmarco commented Dec 18, 2019

@AkihiroSuda feel free to open / move the bug to libslirp.

fwiw, I am not exactly impressed by libslirp. The code is showing age, and has seen a number of vunlerabilities. Yet, we don't have anything better for now. I have done some PoC based on rust smoltcp, which is imho a far more "impressive" work ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request libslirp
Projects
None yet
Development

No branches or pull requests

3 participants