Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ipvs: adjust outbound window size for synproxy
Syn-proxy uses the same wscale option value in inbound direction, i.e., client->vs and vs->rs, but does not do so in outbound direction. When the wscale option value of rs->vs and vs->client are different, rs's window size shall not be advertised to client correctly. It causes serious time delay in bulk data transmission if the wscales differ too much. So window adjustment is applied in outbound direction for synproxy. The table below shows the test results in our layer2 network environments. The backend is a fileserver, and the file upload(.u) or download(.d) time are tested against three TCP windows related configs `synproxy`, `close_client_window` and `wscale` . | synproxy | close_client_window | wscale | 10MB file .u | 100MB file .u | 500MB file .u | 10MB file .d | 100MB file .d | 500MB file .d | | -------- | ------------------- | ------ | ------------ | ------------- | ------------- | ------------ | ------------- | ------------- | | off | x | x | 0.055s | 0.414s | 1.764s | 0.023s | 0.116s | 0.464s | | on | off | 0 | 0.052s | 0.405s | 1.820s | 0.036s | 0.260s | 1.178s | | on | off | 1 | 0.060s | 0.384s | 1.724s | 0.022s | 0.118s | 0.465s | | on | off | 3 | 0.051s | 0.377s | 1.913s | 0.023s | 0.116s | 0.465s | | on | off | 6 | 0.048s | 0.420s | 1.871s | 0.025s | 0.116s | 0.467s | | on | off | 9 | 0.052s | 0.392s | 1.823s | 0.024s | 0.116s | 0.463s | | on | on | 0 | 0.054s | 0.387s | 1.920s | 0.040s | 0.254s | 1.216s | | on | on | 1 | 0.052s | 0.387s | 1.742s | 0.026s | 0.116s | 0.463s | | on | on | 3 | 0.050s | 0.377s | 1.791s | 0.023s | 0.115s | 0.463s | | on | on | 6 | 0.051s | 0.394s | 1.678s | 0.023s | 0.115s | 0.474s | | on | on | 9 | 0.057s | 0.373s | 1.734s | 0.024s | 0.117s | 0.462s | Compared the test results without this patch shown in the table below: | synproxy | close_client_window | wscale | 10MB file .u | 100MB file .u | 500MB file .u | 10MB file .d | 100MB file .d | 500MB file .d | | -------- | ------------------- | ------ | ------------ | ------------- | ------------- | ------------ | ------------- | ------------- | | off | x | x | 0.049s | 0.398s | 1.767s | 0.026s | 0.118s | 0.466s | | on | off | 0 | 0.053s | 0.403s | 1.965s | 0.039s | 0.239s | 1.216s | | on | off | 1 | >10min | x | x | 0.024s | 0.116s | 0.465s | | on | on | 0 | 0.057s | 0.474s | 1.900s | 0.039s | 0.259s | 1.227s | | on | on | 1 | >10min | x | x | 0.024s | 0.116s | 0.469s | It shows the slow uploading problem is solved by the patch, and other TCP window related configs have minor effects on the transmission time. Signed-off-by: ywc689 <[email protected]>
- Loading branch information