While nodes are set to be listening by default, the vast majority does not permit inbound connections either because listening has been disabled or their network setup doesn't make the necessary port accessible. There seem to be in the range of 8-10k listening nodes, while estimates for non-listening nodes range in 60-400k depending on the source.
Next to full nodes there are numerous thin clients that only consume but not propagate network gossip. As a listening node has a lot more connections to hear about new inventory quickly, it will be more likely to be the first to announce new transactions and blocks to its peers in turn. Additionally, a listening node will serve nodes undergoing initial synchronization and thin clients.
To give one data point:
$ bitcoin-cli getnettotals
{
"totalbytesrecv": 15176470806,
"totalbytessent": 4708177804982,
"timemillis": 1624363225070,
"uploadtarget": {
"timeframe": 86400,
"target": 262144000000,
"target_reached": false,
"serve_historical_blocks": true,
"bytes_left_in_cycle": 218592671495,
"time_left_in_cycle": 46909
}
}
In the last 11 hours, my node has uploaded 40.5 GiB. Altogether since it was last restarted, my node has received 14 GiB while uploading 4384 GiB, making its upload volume about 313× its download volume.