Closed qweiors closed 3 months ago
Hey @qweiors ,
1- For the Fairness part, there are different ways. One way is this: Modify the code so that Mahimahi is not called inside the sage source code. Instead bring it outside. Let's say you have a Mahimahi instance running using certain link and delay info. Then, try to run multiple instances of sage's client-server apps (by running the binary file and specifying different port numbers) and make sure that they all go through the created Mahimahi instance. (the current released code does not perform this by default).
In case you need to have all the flows share the same memory, you need to make sure that when multiple instances of the modified sage code generate memory, the address of that mem is similar to others. btw, you should not generally have a shared memory given to different flows, because different flows should have their own different control logic and in a general case are not aware of the other flows' internal things.
2- There are different ways to do this. One general thing to remember is that here we're generating real packets! That means you can use whatever tool you normally use to capture packets in a network and perform analysis. For example, you can simply use Wireshark, tcpdump, Tshark, etc. and observe all flows and their corresponding stats.
Hope that answers your questions. btw, next time, tag me in your question, if you need a bit faster response : )
I have some questions with multi-flow tests and would appreciate your advice.
I can run single-flow tests and see log in 'sage_rl/log'. After reading your paper, I noticed that there are experiments related to TCP friendliness and fairness.
Fairness experiment: I see there are interfaces for 'scheme' and 'num_flows', I noticed that in 'sage.cc', when ‘flows_num > 1’, it will open iperf and sending cubic flows. But if I want to run multiple sage flows, how can I achieve this?
Friendliness experiment: When I modify the parameters in 'sage_rl/run_sample.sh' (as shown below), i observe that there is iperf output in command line, indicating that mutli-flow (e.g., 'flow1: sage, flow2: cubic') are running correctly.
Thank you in advance for your assistance.