Replies: 2 comments 2 replies
-
Yes, we do get Cubic curves with MsQuic, but cubic curves can take a long time (10+ seconds sometimes), which might be why you don't see it in your traces. It could also be a result of a fairly small buffer in the middle, resulting in loss much faster. Spurious loss is generally only from random reordering. |
Beta Was this translation helpful? Give feedback.
-
Just for general information for anyone reading in the future, yes, the lack of the cubic curve was indeed caused by the short queue used to simulate congestion. Based on what I can see, that's because the TCP-Friendly region was being run, and that causes a sawtooth pattern that looked like this: After commenting that branch out and recompiling msquic, the cubic pattern does come out: To be clear, that's probably not anything wrong with msquic, my test environment is not pristine and the application queuing the QUIC traffic is a basement experiment that was not rigorously built for benchmarking flow, it was just a brew of weird circumstances for the AIMD window to be larger than the Cubic window. |
Beta Was this translation helpful? Give feedback.
-
I've been messing around with a rickety virtual environment between some Ubuntu machines for a project, and I've found it quite difficult to get a cubic CWND pattern out from the API's network statistics connection parameter - most of my attempts look something like a weird sawtooth:
![image](https://private-user-images.githubusercontent.com/9026032/410552601-2bf7789d-88ee-442b-849b-156ee56d3030.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzODY1ODAsIm5iZiI6MTczOTM4NjI4MCwicGF0aCI6Ii85MDI2MDMyLzQxMDU1MjYwMS0yYmY3Nzg5ZC04OGVlLTQ0MmItODQ5Yi0xNTZlZTU2ZDMwMzAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTJUMTg1MTIwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MGY4MThhZmRhNTRmZGNhODUyNGJjMmQ1MDQzMTNiODk5OWI3ODFhNTQ3YzhhM2Y1NGFiZGU3NjEwZjYwMGJjZiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.3NwdwqJZkGiKCgDsh75ZLNRpjTepz_PnQ0blTZyYhws)
In the same environment, the TCP implementation in Ubuntu 20.04 does exhibit the cubic pattern as I was hoping to trigger:
![image](https://private-user-images.githubusercontent.com/9026032/410553367-53ff4298-bfa6-48e3-829f-6c4f285cfdbc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzODY1ODAsIm5iZiI6MTczOTM4NjI4MCwicGF0aCI6Ii85MDI2MDMyLzQxMDU1MzM2Ny01M2ZmNDI5OC1iZmE2LTQ4ZTMtODI5Zi02YzRmMjg1Y2ZkYmMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTJUMTg1MTIwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NGYwM2ZmZTBjMDIwNGM4MjBjM2MxMjMzNWJmZGRkOWNlY2VjMTUzNzkxZjUzMDgzNmIyZGFmYTU2M2ViNjRmYyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.J_5Nb8j5qaW3xiuIX72PBOKuczDqylp_QUxxsx3oJ30)
In conditions without loss, MsQUIC's CWND behaves as expected:
![image](https://private-user-images.githubusercontent.com/9026032/410549998-e14705b8-ed8b-4e39-9e3d-3c448cd82aa7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzODY1ODAsIm5iZiI6MTczOTM4NjI4MCwicGF0aCI6Ii85MDI2MDMyLzQxMDU0OTk5OC1lMTQ3MDViOC1lZDhiLTRlMzktOWUzZC0zYzQ0OGNkODJhYTcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTJUMTg1MTIwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzhhMDFiZGIwYjViNzFiM2RlNDA1YTJhNDliN2Q2ZDkwMDBhYWVmN2RmNjEyOTM4MGIxNGFhYzcyODliZWEzOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.XAn5LWVSUPus_XIdS5yyZNJaZn0CtTXwsgjMqVdRJzY)
Granted, its possible that the dirt in my test environment is causing something weird to happen, I'm simulating congestion with traffic control's red in Ubuntu and the nodes themselves use a wild mix of virtual and physical interfaces.
Given all that:
Beta Was this translation helpful? Give feedback.
All reactions