Skip to content

libslirp doesn't support tcp window scaling #171

@majek

Description

@majek

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions