There is a fixed cost to calling the read or write node, regardless of how much data is transferred with each read or write call.
Frequently calling read or write with relatively small data sets increases the fixed overhead overtime, which creates a bottleneck. Conversely, calling read or write with relatively large data sets less frequently also creates a bottleneck. To diagnose your network stream's throughput, check the following components and modify them accordingly:
Numbers of elements read or written per call
Endpoint buffer size