关于C#:Socket发送和接收缓冲区

Socket发送和接收缓冲区默认是8KB,网上说如果自定义大小,最大不能超过42KB
但我设置为102410231024后,发送多达4M的数据 ,仍可一次性收到数据,是什么原因呢?
听说这样会丢包,如果是局域网应该不会吧?

byte[] buffer=new byte[102410231024]
int r=SocketSend.Receive(buffer)