我在Windows 7主机上运行简单的UDP客户端程序。网络配置为192.168.1.50
主机IP,255.255.255.0
子网掩码,192.168.1.1
默认网关。
var data = new byte[1200];
var sender = new UdpClient();
// takes ~2900 ms to non-existing host in same subnet
sender.Send(data, data.Length, new IPEndPoint(IPAddress.Parse("192.168.1.5"), 999));
// takes ~0 ms to non-existing host outside subnet
sender.Send(data, data.Length, new IPEndPoint(IPAddress.Parse("192.168.8.8"), 999));
将UDP数据包发送到同一子网中的不存在的主机(例如192.168.1.5
)大约需要3秒钟。但是,当我将目标地址更改为子网外部的不存在地址(例如192.168.8.8
)时,数据包几乎立即被传输。
如果我将data
的大小设置为小于或等于1024字节,则在两种情况下,数据包都会立即传输。
是网络堆栈实现的固有属性还是可以通过某种方式进行调整?