Очень большой пинг в клиент-серверном приложении в Windows Server 2012. Как уменьшить?
Я создал облачный сервер на Windows Server 2012 R2. При выполнении команды ping со своего компьютера на этот сервер пинг в среднем 60ms. Я написал простое клиент-серверное приложение на C#.
Клиент:
TcpClient client = new TcpClient(); client.Connect(IPAddress.Parse(«адрес»), 10000); NetworkStream stream = client.GetStream(); BinaryReader reader = new BinaryReader(stream); BinaryWriter writer = new BinaryWriter(stream); Stopwatch sw = new Stopwatch(); List pings = new List(); DateTime startTime = DateTime.Now; Random random = new Random(); while(true) { byte[] packet = Enumerable.Repeat(100, random.Next(50, 100)).ToArray(); sw.Start(); writer.Write(packet.Length); writer.Write(packet); packet = reader.ReadBytes(reader.ReadInt32()); sw.Stop(); pings.Add((float)sw.Elapsed.TotalMilliseconds); sw.Reset(); DateTime now = DateTime.Now; if(now — startTime > TimeSpan.FromSeconds(1)) { startTime = now; Console.WriteLine(pings.Average()); pings.Clear(); } }
Сервер:
TcpListener listener = new TcpListener(IPAddress.Any, 10000); listener.Start(); TcpClient client = listener.AcceptTcpClient(); NetworkStream stream = client.GetStream(); BinaryReader reader = new BinaryReader(stream); BinaryWriter writer = new BinaryWriter(stream); while (true) { byte[] packet = reader.ReadBytes(reader.ReadInt32()); writer.Write(packet.Length); writer.Write(packet); }
При запуске сервера на Windows Server, а клиента у себя я получаю результаты пинга в среднем 200ms.
На мой взгляд проблема кроется в настройках Windows Server`а. Подскажите, кто знает.
Клиент:
TcpClient client = new TcpClient(); client.Connect(IPAddress.Parse(«адрес»), 10000); NetworkStream stream = client.GetStream(); BinaryReader reader = new BinaryReader(stream); BinaryWriter writer = new BinaryWriter(stream); Stopwatch sw = new Stopwatch(); List pings = new List(); DateTime startTime = DateTime.Now; Random random = new Random(); while(true) { byte[] packet = Enumerable.Repeat(100, random.Next(50, 100)).ToArray(); sw.Start(); writer.Write(packet.Length); writer.Write(packet); packet = reader.ReadBytes(reader.ReadInt32()); sw.Stop(); pings.Add((float)sw.Elapsed.TotalMilliseconds); sw.Reset(); DateTime now = DateTime.Now; if(now — startTime > TimeSpan.FromSeconds(1)) { startTime = now; Console.WriteLine(pings.Average()); pings.Clear(); } }
Сервер:
TcpListener listener = new TcpListener(IPAddress.Any, 10000); listener.Start(); TcpClient client = listener.AcceptTcpClient(); NetworkStream stream = client.GetStream(); BinaryReader reader = new BinaryReader(stream); BinaryWriter writer = new BinaryWriter(stream); while (true) { byte[] packet = reader.ReadBytes(reader.ReadInt32()); writer.Write(packet.Length); writer.Write(packet); }
При запуске сервера на Windows Server, а клиента у себя я получаю результаты пинга в среднем 200ms.
На мой взгляд проблема кроется в настройках Windows Server`а. Подскажите, кто знает.
Похожие публикации
Как настроить DNS запись WPAD в Windows Server в случае нескольких сайтов AD?
Как в Windows Server 2008 r2 настроить доступ по внешнему IP из локальной сети?
Почему не стартует локальная сеть на виртуальной машине?
Как правильно перевести всю инфраструктуру на виртуализацию?
Мониторинг служб Windows по SNMP?
Нет комментариев