Q: Why do clients broadcast SSID's and can you disable it? When a WiFi client is not connect to a wireless network and looking for WiFi networks to connect to, the client broadcasts a list of known networks. I know that this is so that it can connect to networks that have SSID broadcast disabled, but are there any other reasons the client sends the known network names? If that's the only reason, is it possible to prevent the client from broadcasting known SSIDs? It seems like a massive privacy violation, and I don't use any hidden networks (and most people I know don't use them either), so this feature seems pretty useless (for the end user).

A: This is called active scanning:

The reason for client scanning is to determine a suitable AP to which the client may need to roam now or in the future. A client can use two scanning methods: active and passive. During an active scan, the client radio transmits a probe request and listens for a probe response from an AP. With a passive scan, the client radio listens on each channel for beacons sent periodically by an AP. A passive scan generally takes more time, since the client must listen and wait for a beacon versus actively probing to find an AP. Another limitation with a passive scan is that if the client does not wait long enough on a channel, then the client may miss an AP beacon.

So "can connect to a network that doesn't broadcast its SSID" isn't the only reason.
And yes, it's normally not needed, and yes, it's a massive privacy violation (tracking smartphones through this is easy), and yes, in principle, it can be turned off. Whether your OS or smartphone provides an easy way to turn it off is another story ...
And this observation is nothing new; people have complained to smartphone manufacturers about this already years ago.
