Я запускаю простую клиентскую программу UDP на хосте Windows 7.Конфигурация сети: 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 байта, пакет будетв обоих случаях передается практически мгновенно.
Это неотъемлемое свойство реализации сетевого стека или его можно каким-то образом настроить?