Closed hexiangdong0 closed 1 year ago
Honestly,
I have never investigated cwnd with mac80211_hwsim. The only pointer I could find is https://github.com/torvalds/linux/blob/8c0427842aaef161a38ac83b7e8d8fe050b4be04/drivers/net/wireless/mac80211_hwsim.c#L2471
I debug in Linux kernel. The reason seems to be the consequence of tsq(TCP small queue) and wireless aggregation. https://lwn.net/Articles/757643/
I created a simplest topo with Mininet-wifi:
and let
sta1 iperf sta2
. I found that the value oftcp_is_cwnd_limited(sk)
was alwaysfalse
, and because of that, the Linux kernel didn't call congestion control algorithm when an Acked occured. According to RFC2861, is_cwnd_limited==False is because of the lackness of data from application, but this shouldn't happen toiperf
. Further, I foundpackets_in_flight(about 14) < cwnd (about 40)
. These doesn't happen when I use Mininet.Is there a problem with the settings of Mininet-wifi or is it because of the characteristics of wireless network? If it is because of the characteristics of wireless network, does this mean that congestion control algorithm is useless (kernel doesn't call the congestion control algorithm at all) ?