WLAN External vs. Internal Speed Mystery











up vote
0
down vote

favorite












First and foremost I'm not a network engineer, I'm a software developer. But my general knowledge about networking is oooookay :)



My main problem currently is really understanding WLAN.



OK first the setup.



Modem: Icotera i6850

Broadband: Fiber optic, 300Mbit/sec down, 40Mbit/sec up.

WLAN AP: Ubiquiti Nano HD

PC WLAN Card: Asus AC68



Next the Raw Stats:



These stats are meassured with IPerf 3.1.3 between a Windows 10 PC and a MacBook running macOS.



Server: MacBook Pro (2018) connected via USB-C to Ethernet 1Gbit/sec

Client: Windows 10 x64 connected via ASUS AC68 WLAN Card



Server command: ./iperf3 -s -F ...zip *(the zip file is ~20GB in size)*
Client command: .iperf3.exe -c 192.... -t 1000 -M 1000

[ ID] Interval Transfer Bandwidth
[ 4] 0.00-218.75 sec 9.21 GBytes 362 Mbits/sec sender
[ 4] 0.00-218.75 sec 0.00 Bytes 0.00 bits/sec receiver


WLAN Stats




  • 2.4GHz deactivated

  • 5GHz channel width = VHT160

  • 5GHz channel = 36

  • Transmit power = High


Utilization when using iperf is ~80 %. The PC is connected with about -59dBm signal strength





Okay now to my issue:



When issuing a speed test with speedtest.net, over WLAN I can only achieve ~240 Mbit/sec. When plugging in the cable I instantly run to 295Mbit/sec. I'm using Nessus (10G) as Server.



It even gets worse when like checking the download speed with Steam for example, I only achieve about ~150Mbit/sec.



A colleague of mine told me that this is because of the difference on the window scaling on TCP when comparing internal vs. external where the MTU can be 7000 or even higher internal and on external max 1500. But that is why I use the iperf parameter -M and set the MSS to 1000. Including the TCP header of 40 bytes that simulates an MTU of 1040, thus smaller than on external traffic.



Basically I wonder, I have some IPerf stats, that I'm not able to achieve anywhere in any real life application on my PC. Is the iperf benchmarking the wrong scenario for real life traffic or what is going on?





I have already tried disabling Nagle's Algorithm on Windows 10 with registry, but no changes.



Any advice is highly anticipated and I'm grateful if someone can simply explain me why this will not happen as wished.










share|improve this question




















  • 1




    Are you sure that the wireless connection is currently using VHT160 channel width, and not being limited to 80 or 40 (interference, regulatory settings, etc)?
    – grawity
    Nov 16 at 14:22










  • The Asus AC68 is only 80 max, the Ubiquiti AP runs on 160
    – Yosh Synergi
    Nov 16 at 14:46










  • TCP receive window scaling is a different thing from MTU/MSS. Overriding the default TCP receive window size is done with -w in iperf. You don't actually get 7k MTUs internally because Wi-Fi doesn't support them (and jumbo frames are disabled by default on almost all network endpoint devices).
    – Spiff
    Nov 16 at 17:10










  • Also, what's up with the -F you're doing on the iperf server side? I'm pretty sure iperf sends data from the client to the server by default (think of it as an upload test). I'm not sure what specifying a file on the server side would do, but it probably doesn't cause the server to send that file, unless you specify -R (reverse direction) on the client.
    – Spiff
    Nov 16 at 17:10










  • The usecase of the file with -F was to reduce compression algorythm on the AP. But I never saw a difference when using this or the default random data. And I will give the -w a try to check If I can simulate the values better thx
    – Yosh Synergi
    Nov 16 at 17:52















up vote
0
down vote

favorite












First and foremost I'm not a network engineer, I'm a software developer. But my general knowledge about networking is oooookay :)



My main problem currently is really understanding WLAN.



OK first the setup.



Modem: Icotera i6850

Broadband: Fiber optic, 300Mbit/sec down, 40Mbit/sec up.

WLAN AP: Ubiquiti Nano HD

PC WLAN Card: Asus AC68



Next the Raw Stats:



These stats are meassured with IPerf 3.1.3 between a Windows 10 PC and a MacBook running macOS.



Server: MacBook Pro (2018) connected via USB-C to Ethernet 1Gbit/sec

Client: Windows 10 x64 connected via ASUS AC68 WLAN Card



Server command: ./iperf3 -s -F ...zip *(the zip file is ~20GB in size)*
Client command: .iperf3.exe -c 192.... -t 1000 -M 1000

[ ID] Interval Transfer Bandwidth
[ 4] 0.00-218.75 sec 9.21 GBytes 362 Mbits/sec sender
[ 4] 0.00-218.75 sec 0.00 Bytes 0.00 bits/sec receiver


WLAN Stats




  • 2.4GHz deactivated

  • 5GHz channel width = VHT160

  • 5GHz channel = 36

  • Transmit power = High


Utilization when using iperf is ~80 %. The PC is connected with about -59dBm signal strength





Okay now to my issue:



When issuing a speed test with speedtest.net, over WLAN I can only achieve ~240 Mbit/sec. When plugging in the cable I instantly run to 295Mbit/sec. I'm using Nessus (10G) as Server.



It even gets worse when like checking the download speed with Steam for example, I only achieve about ~150Mbit/sec.



A colleague of mine told me that this is because of the difference on the window scaling on TCP when comparing internal vs. external where the MTU can be 7000 or even higher internal and on external max 1500. But that is why I use the iperf parameter -M and set the MSS to 1000. Including the TCP header of 40 bytes that simulates an MTU of 1040, thus smaller than on external traffic.



Basically I wonder, I have some IPerf stats, that I'm not able to achieve anywhere in any real life application on my PC. Is the iperf benchmarking the wrong scenario for real life traffic or what is going on?





I have already tried disabling Nagle's Algorithm on Windows 10 with registry, but no changes.



Any advice is highly anticipated and I'm grateful if someone can simply explain me why this will not happen as wished.










share|improve this question




















  • 1




    Are you sure that the wireless connection is currently using VHT160 channel width, and not being limited to 80 or 40 (interference, regulatory settings, etc)?
    – grawity
    Nov 16 at 14:22










  • The Asus AC68 is only 80 max, the Ubiquiti AP runs on 160
    – Yosh Synergi
    Nov 16 at 14:46










  • TCP receive window scaling is a different thing from MTU/MSS. Overriding the default TCP receive window size is done with -w in iperf. You don't actually get 7k MTUs internally because Wi-Fi doesn't support them (and jumbo frames are disabled by default on almost all network endpoint devices).
    – Spiff
    Nov 16 at 17:10










  • Also, what's up with the -F you're doing on the iperf server side? I'm pretty sure iperf sends data from the client to the server by default (think of it as an upload test). I'm not sure what specifying a file on the server side would do, but it probably doesn't cause the server to send that file, unless you specify -R (reverse direction) on the client.
    – Spiff
    Nov 16 at 17:10










  • The usecase of the file with -F was to reduce compression algorythm on the AP. But I never saw a difference when using this or the default random data. And I will give the -w a try to check If I can simulate the values better thx
    – Yosh Synergi
    Nov 16 at 17:52













up vote
0
down vote

favorite









up vote
0
down vote

favorite











First and foremost I'm not a network engineer, I'm a software developer. But my general knowledge about networking is oooookay :)



My main problem currently is really understanding WLAN.



OK first the setup.



Modem: Icotera i6850

Broadband: Fiber optic, 300Mbit/sec down, 40Mbit/sec up.

WLAN AP: Ubiquiti Nano HD

PC WLAN Card: Asus AC68



Next the Raw Stats:



These stats are meassured with IPerf 3.1.3 between a Windows 10 PC and a MacBook running macOS.



Server: MacBook Pro (2018) connected via USB-C to Ethernet 1Gbit/sec

Client: Windows 10 x64 connected via ASUS AC68 WLAN Card



Server command: ./iperf3 -s -F ...zip *(the zip file is ~20GB in size)*
Client command: .iperf3.exe -c 192.... -t 1000 -M 1000

[ ID] Interval Transfer Bandwidth
[ 4] 0.00-218.75 sec 9.21 GBytes 362 Mbits/sec sender
[ 4] 0.00-218.75 sec 0.00 Bytes 0.00 bits/sec receiver


WLAN Stats




  • 2.4GHz deactivated

  • 5GHz channel width = VHT160

  • 5GHz channel = 36

  • Transmit power = High


Utilization when using iperf is ~80 %. The PC is connected with about -59dBm signal strength





Okay now to my issue:



When issuing a speed test with speedtest.net, over WLAN I can only achieve ~240 Mbit/sec. When plugging in the cable I instantly run to 295Mbit/sec. I'm using Nessus (10G) as Server.



It even gets worse when like checking the download speed with Steam for example, I only achieve about ~150Mbit/sec.



A colleague of mine told me that this is because of the difference on the window scaling on TCP when comparing internal vs. external where the MTU can be 7000 or even higher internal and on external max 1500. But that is why I use the iperf parameter -M and set the MSS to 1000. Including the TCP header of 40 bytes that simulates an MTU of 1040, thus smaller than on external traffic.



Basically I wonder, I have some IPerf stats, that I'm not able to achieve anywhere in any real life application on my PC. Is the iperf benchmarking the wrong scenario for real life traffic or what is going on?





I have already tried disabling Nagle's Algorithm on Windows 10 with registry, but no changes.



Any advice is highly anticipated and I'm grateful if someone can simply explain me why this will not happen as wished.










share|improve this question















First and foremost I'm not a network engineer, I'm a software developer. But my general knowledge about networking is oooookay :)



My main problem currently is really understanding WLAN.



OK first the setup.



Modem: Icotera i6850

Broadband: Fiber optic, 300Mbit/sec down, 40Mbit/sec up.

WLAN AP: Ubiquiti Nano HD

PC WLAN Card: Asus AC68



Next the Raw Stats:



These stats are meassured with IPerf 3.1.3 between a Windows 10 PC and a MacBook running macOS.



Server: MacBook Pro (2018) connected via USB-C to Ethernet 1Gbit/sec

Client: Windows 10 x64 connected via ASUS AC68 WLAN Card



Server command: ./iperf3 -s -F ...zip *(the zip file is ~20GB in size)*
Client command: .iperf3.exe -c 192.... -t 1000 -M 1000

[ ID] Interval Transfer Bandwidth
[ 4] 0.00-218.75 sec 9.21 GBytes 362 Mbits/sec sender
[ 4] 0.00-218.75 sec 0.00 Bytes 0.00 bits/sec receiver


WLAN Stats




  • 2.4GHz deactivated

  • 5GHz channel width = VHT160

  • 5GHz channel = 36

  • Transmit power = High


Utilization when using iperf is ~80 %. The PC is connected with about -59dBm signal strength





Okay now to my issue:



When issuing a speed test with speedtest.net, over WLAN I can only achieve ~240 Mbit/sec. When plugging in the cable I instantly run to 295Mbit/sec. I'm using Nessus (10G) as Server.



It even gets worse when like checking the download speed with Steam for example, I only achieve about ~150Mbit/sec.



A colleague of mine told me that this is because of the difference on the window scaling on TCP when comparing internal vs. external where the MTU can be 7000 or even higher internal and on external max 1500. But that is why I use the iperf parameter -M and set the MSS to 1000. Including the TCP header of 40 bytes that simulates an MTU of 1040, thus smaller than on external traffic.



Basically I wonder, I have some IPerf stats, that I'm not able to achieve anywhere in any real life application on my PC. Is the iperf benchmarking the wrong scenario for real life traffic or what is going on?





I have already tried disabling Nagle's Algorithm on Windows 10 with registry, but no changes.



Any advice is highly anticipated and I'm grateful if someone can simply explain me why this will not happen as wished.







wireless-networking wireless-access-point






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 16 at 16:43









Spiff

76k10116158




76k10116158










asked Nov 16 at 14:07









Yosh Synergi

1




1








  • 1




    Are you sure that the wireless connection is currently using VHT160 channel width, and not being limited to 80 or 40 (interference, regulatory settings, etc)?
    – grawity
    Nov 16 at 14:22










  • The Asus AC68 is only 80 max, the Ubiquiti AP runs on 160
    – Yosh Synergi
    Nov 16 at 14:46










  • TCP receive window scaling is a different thing from MTU/MSS. Overriding the default TCP receive window size is done with -w in iperf. You don't actually get 7k MTUs internally because Wi-Fi doesn't support them (and jumbo frames are disabled by default on almost all network endpoint devices).
    – Spiff
    Nov 16 at 17:10










  • Also, what's up with the -F you're doing on the iperf server side? I'm pretty sure iperf sends data from the client to the server by default (think of it as an upload test). I'm not sure what specifying a file on the server side would do, but it probably doesn't cause the server to send that file, unless you specify -R (reverse direction) on the client.
    – Spiff
    Nov 16 at 17:10










  • The usecase of the file with -F was to reduce compression algorythm on the AP. But I never saw a difference when using this or the default random data. And I will give the -w a try to check If I can simulate the values better thx
    – Yosh Synergi
    Nov 16 at 17:52














  • 1




    Are you sure that the wireless connection is currently using VHT160 channel width, and not being limited to 80 or 40 (interference, regulatory settings, etc)?
    – grawity
    Nov 16 at 14:22










  • The Asus AC68 is only 80 max, the Ubiquiti AP runs on 160
    – Yosh Synergi
    Nov 16 at 14:46










  • TCP receive window scaling is a different thing from MTU/MSS. Overriding the default TCP receive window size is done with -w in iperf. You don't actually get 7k MTUs internally because Wi-Fi doesn't support them (and jumbo frames are disabled by default on almost all network endpoint devices).
    – Spiff
    Nov 16 at 17:10










  • Also, what's up with the -F you're doing on the iperf server side? I'm pretty sure iperf sends data from the client to the server by default (think of it as an upload test). I'm not sure what specifying a file on the server side would do, but it probably doesn't cause the server to send that file, unless you specify -R (reverse direction) on the client.
    – Spiff
    Nov 16 at 17:10










  • The usecase of the file with -F was to reduce compression algorythm on the AP. But I never saw a difference when using this or the default random data. And I will give the -w a try to check If I can simulate the values better thx
    – Yosh Synergi
    Nov 16 at 17:52








1




1




Are you sure that the wireless connection is currently using VHT160 channel width, and not being limited to 80 or 40 (interference, regulatory settings, etc)?
– grawity
Nov 16 at 14:22




Are you sure that the wireless connection is currently using VHT160 channel width, and not being limited to 80 or 40 (interference, regulatory settings, etc)?
– grawity
Nov 16 at 14:22












The Asus AC68 is only 80 max, the Ubiquiti AP runs on 160
– Yosh Synergi
Nov 16 at 14:46




The Asus AC68 is only 80 max, the Ubiquiti AP runs on 160
– Yosh Synergi
Nov 16 at 14:46












TCP receive window scaling is a different thing from MTU/MSS. Overriding the default TCP receive window size is done with -w in iperf. You don't actually get 7k MTUs internally because Wi-Fi doesn't support them (and jumbo frames are disabled by default on almost all network endpoint devices).
– Spiff
Nov 16 at 17:10




TCP receive window scaling is a different thing from MTU/MSS. Overriding the default TCP receive window size is done with -w in iperf. You don't actually get 7k MTUs internally because Wi-Fi doesn't support them (and jumbo frames are disabled by default on almost all network endpoint devices).
– Spiff
Nov 16 at 17:10












Also, what's up with the -F you're doing on the iperf server side? I'm pretty sure iperf sends data from the client to the server by default (think of it as an upload test). I'm not sure what specifying a file on the server side would do, but it probably doesn't cause the server to send that file, unless you specify -R (reverse direction) on the client.
– Spiff
Nov 16 at 17:10




Also, what's up with the -F you're doing on the iperf server side? I'm pretty sure iperf sends data from the client to the server by default (think of it as an upload test). I'm not sure what specifying a file on the server side would do, but it probably doesn't cause the server to send that file, unless you specify -R (reverse direction) on the client.
– Spiff
Nov 16 at 17:10












The usecase of the file with -F was to reduce compression algorythm on the AP. But I never saw a difference when using this or the default random data. And I will give the -w a try to check If I can simulate the values better thx
– Yosh Synergi
Nov 16 at 17:52




The usecase of the file with -F was to reduce compression algorythm on the AP. But I never saw a difference when using this or the default random data. And I will give the -w a try to check If I can simulate the values better thx
– Yosh Synergi
Nov 16 at 17:52















active

oldest

votes











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1376004%2fwlan-external-vs-internal-speed-mystery%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1376004%2fwlan-external-vs-internal-speed-mystery%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Список кардиналов, возведённых папой римским Каликстом III

Deduzione

Mysql.sock missing - “Can't connect to local MySQL server through socket”