soheil-ab / c2tcp Goto Github PK
View Code? Open in Web Editor NEWC2TCP: A Flexible Cellular TCP to Meet Stringent Delay Requirements.
License: MIT License
C2TCP: A Flexible Cellular TCP to Meet Stringent Delay Requirements.
License: MIT License
Dear Soheil,
We are trying to apply the C2TCP on multiple flows for testing the fairness. However, as we witness, when we use the idea of server-standalone.cc to control the flows, the C2TCP only successfully runs on a single flow.
Have you ever tested the multi-flows scenarios? Do you know why the aforementioned issue could happen?
Many thanks!
Best regards,
Yongchang
hello, @Soheil-ab,
I have some questions to discuss with you,
First, what about the latest research progress about c2tcp?
Second, when apply c2tcp in cellular network, especially in 4G LTE scenario with highly bw and delay jitter, I think it is much more reasonable to adaptively update target delay according to the character of network, especially in wireless network. So is there any research about this, except for reinforcement learning based?
thx a lot,
Eric
Dear Soheil,
We have tried the C2tcp. Though we keep getting avg_urtt = 0 at the followings.
c2tcp/src/server-standalone.cc
Line 264 in 7b84c91
Our plot shows:
avg_urtt:0 min_rtt:30814 cnt:0,avg_thr:0,thr_cnt:0,cwnd:18,pacing_rate:856164
min_rtt get non-zero value though.
BTW, why does C2tcp use deepcc struct, when there is tcp_c2tcp_info in define.h?
Yongchang
I am interested in optimizing the network. I want to try to optimize for international VPN lines.
How i use it in Ubuntu 19.04 (GNU/Linux 5.0.7-050007-lowlatency x86_64) ?
I am using Ubuntu20.1 on my PC and I have been trying to change the kernel for 2 days but still can't get it through.
I have followed the README sudo dpkg -i linux-image*521*
,sudo dpkg -i linux-header*521*
,sudo reboot
and then verify the kernel but it was still 5.x. And then I followed your instructions in C2TCP-IFIP option2 step6.
After running sudo upgrade-from-grub-legacy
, it gave me an error that dpkg-maintscript-helper: error: environment variable DPKG_MAINTSCRIPT_NAME is required
. I have read some solution but I still couldn't understand how to solve it.
If I skip the problem above and run the following instructions and use grub-customizer to bring the 4.13.1 at the first line and its recovery mode to the second line and reboot. It still see 5.x when verifying the kernel. I really don't know how to solve it.
I am new to this process and I would be really grateful if you can help me with these problems.
Hello, with your kind guide, I built kernel 4.13.1 with your patch(linux-4-13-1-orca-c2tcp-0521.patch) and tried to run server and client app.
I set the server machine with this settings
sudo sysctl -w net.ipv4.tcp_c2tcp_enable=1 # enable c2tcp
sudo sysctl -w net.ipv4.tcp_no_metrics_save=1 # disable tcp cache
sudo su
echo 0 > /sys/module/tcp_cubic/parameters/hystart # disable tcp hystart
exit
sudo sysctl -w -q net.ipv4.tcp_low_latency=1
sudo sysctl -w -q net.ipv4.tcp_autocorking=0
sudo sysctl -w -q net.ipv4.tcp_no_metrics_save=1
sudo sysctl -w -q net.ipv4.ip_forward=0 # no using mahimahi
And, I've got this error.
$ sudo ./server 9001 0 150 100
[start_server] cubic
[start_server] Server is Connected to the client...
testing
[DataThread] Server is sending the traffic ...
[server-standalone.cc-CntThread-298] setsockopt: for index:0 flow_index:1 ... Protocol not available (ret1:-1)
Do I have to set the kernel of client machine same as the server?
I didn't install the kernel on client machine
Hi, I want to test c2tcp with my testbed of a real network environment, not with mahimahi trace data.
My server and client device has installed with your c2tcp kernel and I was able to compile all of your scripts.
Now I want to run client and server app with my real network.
Could you guide me on how to run your server and client app?
As I know, from your src>server.cc, I was able to find the usage
"./server [Delay(ms)] [port] [DL-trace] [UP-trace] [log] [Target] [Initial Alpha] [qsize in pkts] [Report Period: 1 sec] "
however, if I want to run this on two different device in real network, I don't know how to set up with DL-trace / UP-trace.
and client.cc,
"./client [server IP address] [flowid] [request data size(MB)] [dst_ip] [server port] "
what is difference between server IP address and dst_ip?
Thank you.
In file included from scripts/selinux/genheaders/genheaders.c:18:
./security/selinux/include/classmap.h:242:2: error: #error New address family defined, please update secclass_map.
242 | #error New address family defined, please update secclass_map.
| ^~~~~
make[3]: *** [scripts/Makefile.host:101: scripts/selinux/genheaders/genheaders] Error 1
make[2]: *** [scripts/Makefile.build:561: scripts/selinux/genheaders] Error 2
make[1]: *** [scripts/Makefile.build:561: scripts/selinux] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:561: scripts] Error 2
When trying to apply linux-4-13-1-orca-c2tcp-0521.patch to the Debian 10 kernel version 4.19.0-16 I get:
patch: **** Only garbage was found in the patch input
Is it possible to apply the patch to a newer kernel version? Or I HAVE to revert to 4.13x if I want to try C2TCP?
Thanks.
Sorry about interrupting again.
I tried to compile my own kernel following your guide in the c2tcp-IFID repo and I successfully compiled it using sudo make -j4
. However, when I run sudo make modules_install
, it warns me that it couldn't find xxx.ko files(which are all compiled into .o files). I was stuck in the step and don't really not how to solve this problem.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.