I'm using NetworkStream.BeginRead to read asynchronously from a Socket.
But it is much faster if you actually wrap the network stream with a BufferedStream.
My question: NetworkStream.BeginRead internally invokes to Socket.BeginReceive and the whole stack of async IO (CompletionPorts on Windows and so on). Does the same happen when BufferedStream is in the middle?
 
     
    