# Networking: Wireshark: TCP ZeroWindow, TCP Window Full — the receiver can't keep up and tells the sender to stop

**Code:** `TCP ZeroWindow / TCP Window Full` · **Category:** Networking · **Seen on:** Linux, Networking

The receiving application isn't reading data fast enough, so its TCP buffer filled and the sender must pause.

## Meaning

ZeroWindow is flow control working, but it means the receiver (app, disk, CPU, slow client) is the bottleneck, not the network. Profile the receiver, increase buffers only if justified, and check slow consumers, GC pauses and disk I/O.

## Common causes

- Receiving app too slow or blocked
- Small socket receive buffer
- Slow disk or database behind the receiver
- High CPU, GC pause or thread starvation
- Slow mobile client downloading

## Quick fix

1. Find the stalled process: `ss -tnmp` and check `Recv-Q`
2. Fix the slow consumer (I/O, CPU, GC)
3. Tune `rmem` only after fixing the app

## Detailed fix by platform

### Linux

1. `ss -tnmp state established | awk "$2>0"   # non-zero Recv-Q means the app isn't reading`

## How to diagnose

1. **Recv-Q** — Growing?
2. **Receiver** — CPU/disk bound?
3. **Window** — Zero repeatedly?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/networking/tcp-zero-window-receiver-slow)
