I just went through my storagenode logs. One thing I noticed is the increasing number of ports used for sending data back to the satellite. Silly question, but isn’t there a think like TCP keep-alive? Correct me if I’m not getting this, but always opening a new connection brings a) overhead and is b) slower (latency)?
And to extend @arrogantrabbit’s answer, even when a single consumer (as identified by IP in your case) is so busy that fetches many pieces from one node within a short period of time, this traffic is not easily predictable. Keep-alives in anticipation of another fetch would need to be maintained by a single consumer to basically most of the nodes in the world, which is not feasible from consumer’s perspective.
The satellite does not act as a proxy for client data; all GET/PUT connections are made by clients (S3 gateways are also clients).
Repair workers (remote satellite parts distributed worldwide) execute GET_REPAIR/PUT_REPAIR requests.
Audit workers (remote distributed satellite parts) execute GET_AUDIT requests.
The only connections from the satellite occur during node check-in; this is typically a DRPC PING to the node’s external address using QUIC and TCP, which is provided during check-in. All other communications are statistics exchanges, which also occur after a successful check-in initiated by the node.
Another connection from the node to the satellite is to send signed completed orders (for usage payments).