为什么iperf3和tcp_探测器报告不同的拥塞窗口?

为什么iperf3和tcp_探测器报告不同的拥塞窗口?,tcp,congestion-control,iperf,Tcp,Congestion Control,Iperf,我正在对不同服务器上的多个iperf3发送器运行一个简单的实验,将TCP流量发送到另一台服务器上的单个接收器 iperf3在此实验期间每隔0.1秒报告一次拥塞窗口Cwnd,单位为KB。在实验过程中,我还记录了tcp_probe内核模块的输出,它在每次分段更改时都会显示拥塞窗口。我将tcp_probe-reported拥塞窗口乘以MTU大小,得到以字节为单位的拥塞窗口。我期望拥塞窗口匹配,但我发现iperf3报告的拥塞窗口大约是tcp_probe报告的窗口大小的94%。一旦被这个乘法因子修正,它们

我正在对不同服务器上的多个iperf3发送器运行一个简单的实验,将TCP流量发送到另一台服务器上的单个接收器

iperf3在此实验期间每隔0.1秒报告一次拥塞窗口Cwnd,单位为KB。在实验过程中,我还记录了tcp_probe内核模块的输出,它在每次分段更改时都会显示拥塞窗口。我将tcp_probe-reported拥塞窗口乘以MTU大小,得到以字节为单位的拥塞窗口。我期望拥塞窗口匹配,但我发现iperf3报告的拥塞窗口大约是tcp_probe报告的窗口大小的94%。一旦被这个乘法因子修正,它们就完全一致了。为什么会发生这种情况?哪一个是对的

我运行的命令是:

iperf3 -c <dst_ip> -p <port> -i 0.1 -t 30

insmod tcp_probe.ko

我试图查看和的源代码,但没有发现任何可疑之处。

当您乘以整个MTU时,您包括了IP和TCP头。尝试乘以1460。@EJP要解释94%,我必须乘以1410,而不是1460或1500。我想不出为什么1410会有意义。