As I understand - between an application and a physical network - there are several buffers.
Application buffer, .NET socket buffer (e.g. socket.SendBufferSize), OS TCP/UDP stack buffers, NIC buffers.
Q1: what relation is between a .NET socket and an OS buffers. Are they the same (effectively - if I call SendBufferSize in my code - will it change size of a respective OS buffer)
if Q1 == no Q2: can I change OS buffer size by other means? How to query size of OS buffers?
As I understand OS stacks have multiply buffers. Q3: How many buffers WinXP and W2003 have? Effectively - how many simultaneous UDP socket can call Send with guarantee to dont drop a packet before they get pushed into network. Precisely that.