# Is It My Mesh or My ISP? How I Went From 6 Mbps to 600 Mbps on Wi-Fi

I pay for a 600 Mbps fiber plan. For months my laptop got somewhere between 6 and 25 Mbps on Wi-Fi. The obvious suspect was the ISP. The real culprit turned out to be my own network, and the only way to prove it was to measure each segment of the path, one at a time.

This post walks through the method, the tools (all built into macOS), every measurement I took, and what finally fixed it.

* * *

## The setup

*   **Plan:** 600 Mbps download / ~300 Mbps upload fiber
    
*   **ISP router:** provided by the ISP, with its own Wi-Fi
    
*   **Mesh:** TP-Link Deco M5 (Wi-Fi 5 / 802.11ac, released 2017) in router mode behind the ISP router
    
*   **Laptop:** MacBook Air M4 (Wi-Fi 6E, supports 6 GHz, no Wi-Fi 7)
    

The path a packet takes:

```plaintext
Mac --(Wi-Fi)--> Deco node --(backhaul)--> main Deco --> ISP router --> ISP --> internet
```

The core idea: **test each segment separately. Wherever latency jumps or throughput drops, that's the problem.**

* * *

## The toolkit (all built into macOS)

**1\. Find your gateway and see what you're connected to**

```bash
route -n get default | grep gateway
```

**2\. Check your Wi-Fi link quality and band**

```bash
system_profiler SPAirPortDataType \
  | sed -n '/Current Network Information/,/Other Local Wi-Fi Networks/p' \
  | grep -E '^ +(PHY Mode|Channel|Signal / Noise|Transmit Rate|MCS Index):'
```

This shows the Wi-Fi standard (802.11ac, ax), the channel and band (2.4, 5 or 6 GHz), the signal strength, the link rate and the MCS index. A quicker GUI alternative: **hold Option and click the Wi-Fi icon** in the menu bar.

Rules of thumb:

*   Signal better than **\-65 dBm** is good. Worse than **\-70 dBm** is trouble.
    
*   **MCS** is the modulation level. Higher is better. MCS 2 on a decent signal points to interference or a weak access point.
    

**3\. Ping the local hop and the internet at the same time**

```bash
ping -c 60 -i 0.5 <gateway-ip>   # your router: should be 1–5 ms
ping -c 60 -i 0.5 1.1.1.1        # the internet: typically 10–30 ms
```

*   **Gateway ping bad** → the problem is inside your house.
    
*   **Gateway clean, internet bad** → the problem is the ISP or beyond.
    

**4\. Measure throughput and latency under load**

```bash
networkQuality -v
```

Apple's built-in test reports download and upload capacity, plus **responsiveness**: how much latency rises under load (bufferbloat). "Low" responsiveness with multi-second delays means video calls will stutter whenever something downloads.

**5\. Trace the path**

```bash
traceroute -n 1.1.1.1
```

If loss or latency starts at one hop and **continues through every hop after it**, that's where the problem is. A spike at a single middle hop that doesn't carry through is just a router deprioritizing ping replies, so ignore it.

* * *

## Phase 1: Diagnosing the old mesh

### First test: a broken network

| Metric | Result | Healthy |
| --- | --- | --- |
| Ping to mesh router | avg **140 ms**, max **1,515 ms**, 1.7% loss | < 5 ms |
| Ping to mesh router (another run) | **2.6–5 seconds** for many packets in a row | < 5 ms |
| Ping to 1.1.1.1 | avg 155 ms, max 1,526 ms | 10–30 ms |
| Download | **5.9 Mbps** | ~600 Mbps |
| Upload | 20.3 Mbps | ~300 Mbps |
| Delay under load | 3.2 s | < 100 ms |
| Wi-Fi link | 802.11ac, -65 dBm, **MCS 2**, 175 Mbps | MCS 7–9 |

The key finding came from the very first hop. **Latency to my own mesh router was already measured in seconds**, before traffic ever reached the ISP. Each hop beyond it added only 0–25 ms.

Traceroute also revealed **double NAT**: the Deco was routing (192.168.68.x) behind the ISP router, which was also routing (192.168.0.x).

### Adding a wired backhaul to the mesh

I ran an ethernet cable between the Deco nodes so they no longer relayed traffic to each other over Wi-Fi.

| Metric | Before | After wired backhaul |
| --- | --- | --- |
| Download | 3.7–5.9 Mbps | **14.8 Mbps** |
| Upload | 20–33 Mbps | 40.5 Mbps |
| Delay under load | 3.2–10.3 s | 1.8 s |

It helped, but 15 Mbps on a 600 Mbps plan is still 2.5%.

### The decisive test: bypass the mesh entirely

I connected the laptop straight to the ISP router's own Wi-Fi.

|  | Through the Deco M5 | **ISP router directly** |
| --- | --- | --- |
| Wi-Fi link | 802.11ac, MCS 2, 195 Mbps | 802.11ax, MCS 8, 864 Mbps |
| Download | 14.8 Mbps | **184 Mbps** |
| Upload | 40.5 Mbps | **141 Mbps** |
| Delay under load | 1.8 s | 208 ms |

**12× faster, just by skipping the mesh.** That settled the main question: the mesh was the bottleneck.

### Ruling out time of day

ISP congestion usually shows up in the evening, so I tested at different times and in different rooms over the following week. Everything through the M5 landed in the same band:

| When / where | Download | Upload |
| --- | --- | --- |
| Evening, 20:57 | 14.5 Mbps | 38.8 Mbps |
| Morning, 10:37 | 12.3 Mbps | 50.7 Mbps |
| Office | 21.8 Mbps | 76.5 Mbps |
| Another morning, weak signal | 9.1 Mbps | 52.4 Mbps |
| Office, Mac fell back to **2.4 GHz** | 6.4 Mbps | 44.7 Mbps |
| Bedroom, 2.4 GHz | 11.1 Mbps | 48.1 Mbps |
| Bedroom, back on 5 GHz | 24.9 Mbps | 114.4 Mbps |

The result was the same at any hour and in any room, which ruled out ISP congestion. The time of day made no difference; the mesh hardware did.

### Why the Deco M5 couldn't keep up

The Deco M5 is an AC1300 Wi-Fi 5 system with 2×2 radios and an older processor. Even when everything goes right, it tops out at roughly 300–400 Mbps over Wi-Fi, and only right next to a unit. Mine was doing far worse than that, because of:

*   an old Wi-Fi 5 radio stuck at low MCS on a crowded channel,
    
*   clients occasionally falling back to 2.4 GHz,
    
*   double NAT putting extra load on both devices.
    

* * *

## Phase 2: Upgrading to Deco BE65 (Wi-Fi 7)

I bought two Deco BE65 units: Wi-Fi 7, tri-band 2.4/5/6 GHz, with 2.5 Gbps ethernet ports.

**Main router or satellite?** I set up the new unit as the **main** Deco on a fresh network. In a Deco mesh, the main unit does all the routing (NAT, DHCP, firewall). Adding a BE65 as a satellite under an M5 main unit would have kept the old bottleneck.

### Step by step

| Setup | Wi-Fi link | Download | Upload |
| --- | --- | --- | --- |
| BE65 main, Router mode (double NAT), 6 GHz | \-40 dBm, MCS 11, 1,921 Mbps | 343 Mbps | 261 Mbps |
| ISP router Wi-Fi (speedtest.net, for comparison) | \-38 dBm, MCS 11, 1,200 Mbps | 251 Mbps | 266 Mbps |
| **BE65 main, Access Point mode**, 6 GHz | \-30 dBm, MCS 11, 2,401 Mbps | 428 Mbps (531 on speedtest.net) | 243 Mbps (280 on speedtest.net) |
| **BE65 hall node, wired backhaul**, 6 GHz | \-47 dBm, MCS 11, 1,921 Mbps | 426 Mbps (**600 on speedtest.net**) | 243 Mbps (268 on speedtest.net) |

Three things stand out:

1.  **Wi-Fi 7 hardware on 6 GHz was the biggest jump:** from 15 Mbps to over 300 Mbps.
    
2.  **Removing double NAT added about 25%.** Switching the Deco to Access Point mode made the ISP router the only router.
    
3.  **A wired backhaul costs nothing.** The second node delivered the full 600 Mbps plan speed over Wi-Fi.
    

A note on tools: Apple's `networkQuality` consistently read about 100 Mbps lower than speedtest.net. The difference comes from the test servers, not the network. Use one tool when comparing runs.

* * *

## Phase 3: Room-by-room coverage

Full speed next to a node is great. Coverage in the far rooms is a separate problem.

| Room | Band | Signal | Download | Upload |
| --- | --- | --- | --- | --- |
| Hall (next to node) | 6 GHz | \-47 dBm | 426 Mbps | 243 Mbps |
| Office | 6 GHz | \-67 dBm | 194 Mbps | 174 Mbps |
| Office (5 GHz link only) | 5 GHz | \-64 dBm | link rate 288 Mbps vs 408 on 6 GHz | — |
| Bedroom | 5 GHz | \-71 to -73 dBm | 30–49 Mbps | 28–55 Mbps |

### Lessons from this phase

**Same network name for every band means you don't control the band.** When I gave 6 GHz the same name as the main network, macOS chose 5 GHz in the office, even though 6 GHz had the faster link there. Giving the bands separate names let me pick.

**MLO doesn't help a Wi-Fi 6E laptop.** Wi-Fi 7's Multi-Link Operation combines bands, but only Wi-Fi 7 clients can use it. My Mac joined the MLO network on a single band. Disabling MLO changed nothing measurable (49 vs 30 Mbps is normal variation on a weak signal).

**Signal strength is everything at the edges.** At -73 dBm the bedroom got about 40 Mbps, whatever the settings. Settings can't fix distance.

### The M5 relapse

I tried re-using one of the old Deco M5s as a third node near the bedroom, on a wireless backhaul. The laptop got a *better* signal (-57 dBm) and a *far worse* connection:

|  | Bedroom via hall BE65 | **Bedroom via M5 (wireless backhaul)** |
| --- | --- | --- |
| Signal | \-71 dBm | \-57 dBm |
| Ping to router | 17 ms | **3,286 ms** |
| Download | 29.6 Mbps | **0.08 Mbps** |
| Upload | 55.3 Mbps | 6.7 Mbps |

A strong signal to a node means nothing if that node's backhaul is bad. The M5's Wi-Fi 5 radio had to carry both the client traffic and the relay traffic back to the BE65, over a weak link. Removing it brought the bedroom straight back to 42.5 Mbps with 23 ms pings.

**Don't mix old Wi-Fi 5 nodes into a Wi-Fi 7 mesh, especially on a wireless backhaul.**

* * *

## Final results

| Setup | Download | Upload | vs. 600 Mbps plan |
| --- | --- | --- | --- |
| Deco M5 mesh (typical) | 6–25 Mbps | 20–114 Mbps | 1–4% |
| ISP router Wi-Fi | 184–251 Mbps | 141–266 Mbps | 31–42% |
| BE65, Router mode | 343 Mbps | 261 Mbps | 57% |
| BE65, AP mode, main node | 531 Mbps | 280 Mbps | 89% |
| **BE65, AP mode, hall node (wired backhaul)** | **600 Mbps** | **268 Mbps** | **100%** |

From 6 Mbps to 600 Mbps: about **100× faster**, without changing the ISP plan.

* * *

## Takeaways

1.  **Test segment by segment.** Ping your own router first. If that hop is slow, no ISP can fix it.
    
2.  **Bypass the mesh before blaming the ISP.** Connecting directly to the ISP router, by ethernet ideally or by its Wi-Fi, is the single most useful test.
    
3.  **Check the Wi-Fi link, not just the signal bars.** A good signal at MCS 2 is still a bad link.
    
4.  **Old mesh hardware caps you.** Wi-Fi 5 mesh systems can't deliver gigabit-class plans, and they degrade badly over wireless backhaul.
    
5.  **Avoid double NAT.** Run the mesh in Access Point mode, or put the ISP router in bridge mode.
    
6.  **Wire the backhaul if you can.** It removes the biggest throughput penalty in any mesh.
    
7.  **6 GHz is fast but short-range.** It's excellent near a node and fades quickly through walls.
    
8.  **A strong signal to a node means nothing if the node's backhaul is weak.**
    
9.  **Stick with one speed-test tool** when comparing runs. Different servers give different numbers.
    
10.  **Test at different times** to rule out ISP congestion before calling them.
     

## What's next

The bedroom is still the weak spot at around 40 Mbps. The options are moving the hall node closer, adding a Wi-Fi 6 or 7 node near the bedroom, or running ethernet. Each one comes down to getting the signal there better than -65 dBm.

I also still see ping times of 20–60 ms to the ISP router, even over a perfect Wi-Fi link. Those should be 1–5 ms. It doesn't affect throughput, but if video calls ever feel laggy, the ISP router is next in line.
