将UDP数据包发送到同一子网中的脱机主机很长时间

时间:2019-06-17 10:00:47

标签: c# networking udp udpclient

我在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字节,则在两种情况下,数据包都会立即传输。

是网络堆栈实现的固有属性还是可以通过某种方式进行调整?

0 个答案:

没有答案