There are a few wait types that cause a large amounts of confusion, one of them being ASYNC_NETWORK_IO. The name of the wait type is pretty misleading because the issue rarely has to do with the actual network.
The wait type could mean that SQL has sent data to the requesting (client) application and is waiting for it to acknowledge receipt. When the client application inefficiently processes the data is receives, way may see occurrences of ASYNC_NETWORK_IO. When you see this wait type, take a look at how efficiently the client application is processing the requested data. There may be a cursor, badly designed join, or other poorly performing construct on the client side in play. Additionally, check how many records are actually being sent back to the client, and if it is possible to filter down that result set.
This said, it may actually be the network that is the bottleneck, but it’s best to start with the above.